• <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    技術(shù)熱線: 4007-888-234
    設(shè)計(jì)開(kāi)發(fā)

    專(zhuān)注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

    開(kāi)發(fā)工具

    提供開(kāi)發(fā)工具、應(yīng)用測(cè)試 完善的開(kāi)發(fā)代碼案例庫(kù)分享

    技術(shù)支持

    從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!

    新品推廣

    提供新的芯片及解決方案,提升客戶(hù)產(chǎn)品競(jìng)爭(zhēng)力

    新聞中心

    提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)

    PIC16F84單片機(jī)產(chǎn)生兩組PWM輸出實(shí)例

    更新時(shí)間: 2019-03-23
    閱讀量:2774

    十年專(zhuān)注單片機(jī)方案開(kāi)發(fā)的方案公司英銳恩,分享PIC16F84單片機(jī)產(chǎn)生兩組PWM輸出實(shí)例。英銳恩現(xiàn)提供服務(wù)產(chǎn)品涉及主控芯片:8位單片機(jī)、16位單片機(jī)、32位單片機(jī)及各類(lèi)運(yùn)算放大器等。

    list p=16F84 ; list directive to define processor
    #include ; processor specific variable definitions

     

    __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_OFF & _RC_OSC

    ; '__CONFIG' directive is used to embed configuration data within .asm file.
    ; The lables following the directive are located in the respective .inc file.
    ; See respective data sheet for additional information on configuration word.


    ;********************** CONST DEFINITIONS******************************
    FULL_WORK = 10 ; 程
    DEF_WORK2 = 8 ; PWM2
    PORT_OUT = PORTB ;
    PIN_PWM1 = 0 ; P
    PIN_PWM2 = 1 ;
    ;********************** VARIABLE DEFINITIONS***************************
    CBLOCK 0x0C
    w_temp ; variable used for context saving
    status_temp ; variable used for context saving
    PWM_FULL ; 程
    PWM_WORK_CFG1 ; PWM1 
    PWM_WORK_CFG2 ; PWM2 

    PWM_WORK_CNT1 ; PWM1 
    PWM_WORK_CNT2 ; PWM2 
    ENDC
    ;**********************************************************************
    ;****************** *******************
    ;**********************************************************************
    ORG 0x000 ; processor reset vector
    ResetStart
    goto main ; go to beginning of program
    ;**********************************************************************
    ;**************************************
    ;**********************************************************************
    ORG 0x004 ; interrupt vector location
    movwf w_temp ; save off current W register contents
    movf STATUS,w ; move status register into W register
    movwf status_temp ; save off contents of STATUS register

     

    bsf STATUS,RP0
    bcf INTCON,T0IF ;
    bcf STATUS,RP0 

    decfsz PWM_FULL,F ;
    goto ISR_PWM1
    bsf PORT_OUT,PIN_PWM1 ; PWM1/PWM2
    bsf PORT_OUT,PIN_PWM2
    movlw FULL_WORK ; 
    movwf PWM_FULL
    movf PWM_WORK_CFG1,W
    movwf PWM_WORK_CNT1
    movf PWM_WORK_CFG2,W
    movwf PWM_WORK_CNT2
    goto ISR_EXIT
    ISR_PWM1
    decfsz PWM_WORK_CNT1,F ;
    goto ISR_PWM2
    bcf PORT_OUT,PIN_PWM1 ; 
    ISR_PWM2

    decfsz PWM_WORK_CNT2,F ;
    goto ISR_EXIT
    bcf PORT_OUT,PIN_PWM2 ; 
    ISR_EXIT
    movf status_temp,w ; retrieve copy of STATUS register
    movwf STATUS ; restore pre-isr STATUS register contents
    swapf w_temp,f
    swapf w_temp,w ; restore pre-isr W register contents
    retfie ; return from interrupt
    ;**********************************************************************
    ;****************** ﹍てPWM *******************************
    ;**********************************************************************
    InitPWM
    bsf STATUS,RP0 ;
    bcf PORT_OUT,PIN_PWM1
    bcf PORT_OUT,PIN_PWM2
    bcf STATUS,RP0
    bsf PORT_OUT,PIN_PWM1 ;
    bsf PORT_OUT,PIN_PWM2
    movlw FULL_WORK ;
    movwf PWM_FULL
    movlw DEF_WORK1

    movwf PWM_WORK_CFG1
    movwf PWM_WORK_CNT1
    movlw DEF_WORK2
    movwf PWM_WORK_CFG2
    movwf PWM_WORK_CNT2
    retlw 0
    ;**********************************************************************
    ;************************************************
    ;**********************************************************************
    InitTimer
    bsf STATUS,RP0
    bsf OPTION_REG,T0CS ;
    bsf OPTION_REG,PSA ;
    bsf INTCON,GIE ;
    bcf INTCON,T0IF ;
    bcf STATUS,RP0
    retlw 0
    ;********************************************************************

    **
    ;********************
    ;**********************************************************************
    StartTimer
    bsf STATUS,RP0
    bcf OPTION_REG,T0CS ;
    bsf INTCON,T0IE ;
    bcf STATUS,RP0
    retlw 0
    ;**********************************************************************
    ;****************** *******************************
    ;**********************************************************************
    StopTimer
    bsf STATUS,RP0
    bsf OPTION_REG,T0CS ;
    bcf INTCON,T0IE ;
    bcf STATUS,RP0
    retlw 0
    ;**********************************************************************
    ;****************** *******************************

    ;**********************************************************************
    main
    bcf STATUS,RP0 ; select Page 0 for Port Access
    call InitPWM
    call InitTimer
    call StartTimer
    goto $
    ;**********************************************************************
    END ; directive 'end of program'

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频
  • <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>