📄 pwm508.txt
字号:
ption: PIC12C508A驱动PWM程序 GP1为PWM输出 GP2为PWM按钮加程序 30 级别
list P=12c508a
#include <P12c508a.inc>
__CONFIG _CP_OFF & _WDT_OFF & _MCLRE_ON & _IntRC_OSC
TRMA EQU 0X10
TRMB EQU 0X11
CONT EQU 0X12
PO EQU 0X13
CONTZ EQU 0X14
CONT2 EQU 0X15
CONT3 EQU 0X16
ORG 0X00
GOTO MAIN
ZD:
MOVF CONT,W
XORLW 0X01
BTFSC STATUS,Z
GOTO TZ
GOTO T
TZ: ;频率控制
MOVF TRMA,W
MOVWF TMR0
COMF GPIO
INCF CONT
GOTO ZDA
T: ;占空比控制
MOVF TRMB,W
MOVWF TMR0
COMF GPIO
MOVF CONT,W
XORLW 0X02
BTFSS STATUS,Z
GOTO ZDA
CLRF CONT
INCF CONT
GOTO ZDA
TTZ: ;按件调节程序
CALL YANSHI
INCF CONTZ
MOVF CONTZ,W
XORLW 0XFF ; 1处和2处共同组成从最亮最最暗的的时间
BTFSS STATUS,Z
GOTO ZDA
CLRF CONTZ
CALL YANSHI
INCF CONT2
MOVF CONT2,W
XORLW 0X10 ; 1处和2处共同组成从最亮最最暗的的时间
BTFSS STATUS,Z
GOTO ZDA
CLRF CONT2
NOP
CLRF CONT2
INCF TRMB,F
DECF TRMA,F
MOVF TRMB,W
XORLW 0XFE
BTFSS STATUS,Z
GOTO $+5
MOVLW 0XFE
MOVWF TRMA
MOVLW 0XE2
MOVWF TRMB
NOP
RETLW 0X00
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
YANSHI:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RETLW 0X00
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MAIN:
MOVLW B'00111101'
TRIS GPIO
MOVLW 0XFF
MOVWF GPIO
MOVLW B'10000110' ; 1/128
OPTION
CLRF 0x10
CLRF 0X11
CLRF 0X12
INCF CONT
MOVLW 0XFE ;A 处和B处共同组成PWM的频率
MOVWF TRMA
MOVLW 0XE2 ;A 处和B处共同组成PWM的频率
MOVWF TRMB
MOVWF TMR0
CLRF CONTZ
ZDA:
MOVF TMR0,W
XORLW 0X00
BTFSC STATUS,Z
GOTO ZD
BTFSS GPIO,2
CALL TTZ
GOTO ZDA
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -