在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > PIC單片機PWM波形產(chǎn)生程序

      PIC單片機PWM波形產(chǎn)生程序

      作者: 時間:2012-12-31 來源:網(wǎng)絡 收藏

      ;本例通過編程,在pic單片機的控制下使CCP1模塊工作在脈寬調制方式下從RC2口上輸出分辨率達10位的

      ;,波形的占空比可以通過鍵盤調節(jié),當按下K1鍵時,輸出的的占空比為25%,
      ;當按下K2鍵時,輸出的PWM波形的占空比為50%,當按下K3鍵時,輸出的PWM波形的占空
      ;比為75%,當按下K4鍵時,輸出的PWM波形的占空比為100% ,默認輸出波形的占空比為50%
      ;為了強調編程技巧,鍵盤程序采用變位中斷方式
      LIST P=18F458
      INCLUDE "P18F458.INC"
      DEYH EQU 0X20
      DEYL EQU DEYH+1
      JIANR EQU DEYH+2 ;存儲鍵值用寄存器
      ORG 0X00
      GOTO MAIN ;轉向主程序
      ORG 0X08
      GOTO INTSERVE ;轉向中斷服務程序
      ORG 0X30
      ;***************PWM波形產(chǎn)生程序初始化******************
      INITIAL
      CLRF INTCON ;禁止總中斷和外圍中斷
      BSF INTCON,RBIE ;B口變位中斷允許
      BCF INTCON2,7 ;使弱上拉有效
      BSF INTCON2,1 ;B口變位中斷高優(yōu)先級
      BSF RCON,7 ;使能中斷優(yōu)先級
      MOVLW 0XFF
      MOVWF PR2 ;設置PWM的工作周期
      MOVLW 0X7F
      MOVWF CCPR1L ;默認占空比為50%
      MOVLW 0X3C
      MOVWF CCP1CON ;設置CCP1模塊為PWM工作方式,且其工作循
      ;環(huán)的低2位為11,高8位為01111111=7F
      MOVLW 0X04
      MOVWF T2CON ;打開TMR2,且使其前分頻為1
      BCF TRISC,2 ;設置CCP1引腳為輸出方式
      BCF TRISB,1
      BCF TRISA,3
      BCF TRISE,0
      BCF TRISE,1
      BSF TRISB,4 ;設置與鍵盤有關的各口的輸入輸出方式
      BCF PORTB,1
      BCF PORTA,3
      BCF PORTE,0
      BCF PORTE,1 ;K1,K2,K3,K4四條列線置0,為電平變化
      ;中斷的產(chǎn)生創(chuàng)造初始條件
      MOVF PORTB,W ;讀PORTB端口,建立變位中斷的初始條件
      ;(由高到低時中斷)
      RETURN
      ;*********鍵盤去抖子程序(8ms的延時)******************
      KEYDELAY
      MOVLW 0X0A
      MOVWF DEYH
      AGAIN2 MOVLW 0XFF
      MOVWF DEYL
      AGAIN1 DECFSZ DEYL,1
      GOTO AGAIN1
      DECFSZ DEYH,1
      GOTO AGAIN2 ;具體程序語句參考3. 2節(jié)
      RETURN
      ;***************鍵服務子程序******************
      KEYSERVE
      JIANZHI ;確定鍵值的子程序
      BCF PORTB,1
      BCF PORTA,3
      MOVLW 0X03
      MOVWF PORTE ;K1,K2置低電平,K3,K4置高電平
      NOP
      NOP ;使引腳電平穩(wěn)定
      BTFSS PORTB,4
      GOTO K1K2 ;RB4為0,表示按鍵為K1,K2中的一個
      GOTO K3K4 ;RB4為1,表示按鍵為K3,K4中的一個
      K1K2 BCF PORTB,1
      BSF PORTA,3 ;K1置低電平,K2置高電平
      NOP
      NOP ;使引腳電平穩(wěn)定
      BTFSS PORTB,4
      GOTO K1 ;RB4為0,表示按鍵為K1
      GOTO K2 ;RB4為1,表示按鍵為K2
      K3K4 BCF PORTE,0
      BSF PORTE,1 ;K3置低電平,K4置高電平
      NOP
      NOP ;使引腳電平穩(wěn)定
      BTFSS PORTB,4
      GOTO K3 ;RB4為0,表示按鍵為K3
      GOTO K4 ;RB4為1,表示按鍵為K4,以上對鍵盤進行掃
      ;描,來確定是哪一個鍵按下
      K1 MOVLW 0X01
      MOVWF JIANR
      GOTO RET
      K2 MOVLW 0X02
      MOVWF JIANR
      BCF PORTA,3
      GOTO RET
      K3 MOVLW 0X03
      MOVWF JIANR
      GOTO RET
      K4 MOVLW 0X04
      MOVWF JIANR ;以上根據(jù)按下的鍵把相應的值送給JIANR
      BCF PORTE,1
      RET NOP
      RETURN
      ;**********確定占空比為25%的子程序*********
      PER25 MOVLW 0X3F
      MOVWF CCPR1L
      RETURN
      ;**********確定占空比為50%的子程序*********
      PER50 MOVLW 0X7F
      MOVWF CCPR1L
      RETURN
      ;**********確定占空比為75%的子程序*********
      PER75 MOVLW 0XBF
      MOVWF CCPR1L
      RETURN
      ;**********確定占空比為100%的子程序*********
      PER100 MOVLW 0XFF
      MOVWF CCPR1L
      RETURN
      ;**************中斷程序(注:由http://www.51hei.com 單片機學習網(wǎng)斑竹ccmcu修改)***************
      INTSERVE NOP
      BCF INTCON,RBIF ;清除中斷標志
      CALL KEYDELAY ;調用軟件延時子程序消抖動
      MOVF PORTB,W ;讀PORTB的值,并同時改變中斷發(fā)生的條件可
      ;以屏蔽一次無用的中斷,又可以防止按鍵時間
      ;過長發(fā)生連續(xù)中斷
      BTFSC PORTB,4
      RETFIE ;判斷為干擾,則返回,并可以屏蔽一次無用的
      ;中斷
      CALL KEYSERVE ;調用鍵服務子程序,確定鍵值
      BCF PORTB,1
      BCF PORTA,3
      BCF PORTE,0
      BCF PORTE,1 ;送低電平至K1,K2,K3,K4,以防止鍵掃描
      ;時改變K1,K2,K3,K4的電平,從而改變中
      ;斷條件
      BCF INTCON,RBIF ;鍵掃描時可能會產(chǎn)生"電平變化"而使RBIF
      ;置1,再清除一次RBIF以求避免額外中斷
      MOVLW 0X01 ;以下通過判斷是哪個鍵按下從
      SUBWF JIANR,0 ;而選擇PWM波形的不同占空比
      BTFSC STATUS,Z
      CALL PER25 ;若是K1按下,則PWM占空比為25%
      ;以下同理
      MOVLW 0X02
      SUBWF JIANR,0
      BTFSC STATUS,Z
      CALL PER50
      MOVLW 0X03
      SUBWF JIANR,0
      BTFSC STATUS,Z
      CALL PER75
      MOVLW 0X04
      SUBWF JIANR,0
      BTFSC STATUS,Z
      CALL PER100
      RETFIE ;中斷返回
      ;****************************************
      MAIN NOP
      CALL INITIAL ;初始化
      BSF INTCON,GIE ;總中斷允許
      HERE GOTO HERE ;等待中斷
      END

      pwm相關文章:pwm是什么


      單片機相關文章:單片機教程


      單片機相關文章:單片機視頻教程


      單片機相關文章:單片機工作原理


      pwm相關文章:pwm原理


      脈寬調制相關文章:脈寬調制原理


      評論


      相關推薦

      技術專區(qū)

      關閉