天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術熱線: 4007-888-234
設計開發

專注差異化嵌入式產品解決方案 給智能產品定制注入靈魂給予生命

開發工具

提供開發工具、應用測試 完善的開發代碼案例庫分享

技術支持

從全面的產品導入到強大技術支援服務 全程貼心伴隨服務,創造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產品競爭力

新聞中心

提供最新的單片機資訊,行業消息以及公司新聞動態

PWM脈寬調制

更新時間: 2019-03-23
閱讀量:1793

十年專注單片機方案開發的方案公司英銳恩,分享PWM脈寬調制。英銳恩現提供服務產品涉及主控芯片:8位單片機、16位單片機、32位單片機及各類運算放大器等。

;************************************** ; 用片內PWM功能實現 ;************************************** ; PWM脈寬調制 ** ;平時RC0 RC1均位高電平,RC0為低電平則等變亮* ;RC1為低電平則燈變暗 ** ;加或減均寫入EEPROM ** ;************************************** LIST P=16F877 include Y1 EQU 71H Y2 EQU 72H ORG 000H NOP GOTO START ;*******中斷服務子程序******************** ORG 004H CALL DELAY MOVLW B'10000000' XORWF PORTC,F BCF PIR1,TMR2IF MOVF CCPR1L,W XORLW .0 BTFSC STATUS,Z GOTO UUU BTFSS PORTC,0 GOTO DECREMENT UUU MOVF CCPR1L,W XORLW .254 BTFSC STATUS,Z RETFIE BTFSS PORTC,1 GOTO INCREMENT RETFIE INCREMENT INCF CCPR1L,F COMF CCPR1L,W CALL WRITE RETFIE DECREMENT DECF CCPR1L,F CALL WRITE RETFIE ;*********主程序************************* START CALL DELAY CALL DELAY CALL DELAY CALL READ ;;;;;;;;;;;;;;;;; BSF STATUS,RP0 MOVLW B'01111011' MOVWF TRISC MOVWF PR2 BSF PIE1,TMR2IE BCF STATUS,RP0 BSF INTCON,PEIE BSF INTCON,GIE MOVLW B'00001100' MOVWF CCP1CON CLRF T2CON BSF T2CON,1 BSF T2CON,TMR2ON LOOP NOP GOTO 

LOOP ;**************************************** DELAY MOVLW 03FH MOVWF Y1 M2 MOVLW 0FFH MOVWF Y2 M1 DECFSZ Y2 GOTO M1 DECFSZ Y1 GOTO M2 RETURN ;***************************************** ;EEPROM讀寫子程序 ;***************************************** WRITE BSF STATUS,RP0 BSF STATUS,RP1 BTFSC EECON1,WR GOTO $-1 BCF STATUS,RP0 MOVF 75H,W;;;;;;; MOVWF EEADR BCF STATUS,RP1 BCF STATUS,RP0 MOVF CCPR1L,W;;;;;; BSF STATUS,RP1 MOVWF EEDATA BSF STATUS,RP1 BSF STATUS,RP0 BCF EECON1,EEPGD ;寫EEPROM BSF EECON1,WREN MOVLW 55H MOVWF EECON2 MOVLW 0AAH MOVWF EECON2 BSF EECON1,WR BCF EECON1,WREN BCF STATUS,RP1 BCF STATUS,RP0 RETURN ;**************************************** READ BCF STATUS,RP0 BSF STATUS,RP1 MOVF 75H,W;;;;;;;;;; MOVWF EEADR BSF STATUS,RP0 BCF EECON1,EEPGD ;讀EEPROM BSF EECON1,RD BCF STATUS,RP0 MOVF EEDATA,W BCF STATUS,RP1 BCF STATUS,RP0 MOVWF CCPR1L RETURN ;**************************************** END 

;********************************* ; 用TMR0實現PWM ;********************************* ; 用TMR0實現PWM試驗程序 *** ;RC7輸出PWM,RC0 RC1輸入 *** ;********************************* LIST P=16F877 include Y1 EQU 20H Y2 EQU 21H QQ EQU 22H ORG 0000H NOP GOTO MAIN ORG 004H ;中斷入口 ;*********中斷服務程序*************** MOVF QQ,W ;如果QQ到255 XORLW .255 ;則跳至_GO,不 BTFSC STATUS,Z ;再加一操作 GOTO _GO BTFSC PORTC,0 ;脈寬增檢測 GOTO _GO INCF QQ,F _GO MOVF QQ,W XORLW 01H ;如果QQ到1 BTFSC STATUS,Z ;則跳至FIE,不 GOTO FIE ;再減一操作 BTFSS PORTC,1 ;脈寬減檢測 DECF QQ,F FIE ; BTFSS INTCON,T0IF ;檢測是否是TMR0溢出 RETFIE ;否,則返回 BCF INTCON,T0IF ;是,馬上清標志位 BSF PORTC,7 ;脈寬調整 MOVF QQ,W CALL DELAY ;RB1 一開一關, BCF PORTC,7 ;形成高電平占空比 RETFIE ;**********主程序******************* MAIN BSF STATUS,RP0 MOVLW 

B'00000100' ;設TMR0為定時器 MOVWF OPTION_REG ;分頻比為1:32 BCF TRISC,7 ;設RC7輸出 BSF TRISC,1 ;設RC0輸入 BSF TRISC,0 ;設RC1輸入 BCF STATUS,RP0 BSF INTCON,GIE ;INTCON在4個體均能尋址 BSF INTCON,T0IE BCF INTCON,T0IF ;清標志位 MOVLW 00H MOVWF TMR0 ;啟動TMR0 CLRF QQ ;清QQ LOOP NOP ;在此循環等TMR0溢出 GOTO LOOP ;則轉到中斷服務程序 ;*******高電平延時子程序************** DELAY MOVWF Y1 M2 MOVLW 0AH MOVWF Y2 M1 DECFSZ Y2 GOTO M1 DECFSZ Y1 GOTO M2 RETURN ;*********************************** END

联系我们: 海伦市| 揭东县| 左权县| 玉溪市| 榆中县| 孝义市| 那坡县| 建昌县| 峨山| 昌黎县| 开阳县| 珠海市| 莱州市| 澄江县| 雷州市| 嘉善县| 闽侯县| 盈江县| 五莲县| 灯塔市| 墨脱县| 游戏| 陇西县| 子洲县| 田阳县| 绥芬河市| 阿鲁科尔沁旗| 宜章县| 阜新市| 连州市| 淮南市| 清流县| 商城县| 广灵县| 阳泉市| 资兴市| 遂川县| 三门县| 西乡县| 浠水县| 公安县|