|
PIC12C508单片机灯光控制系统源程序 ;以上程序使用PIC12C508单片机,内部4MHZ时钟,4脚输入50HZ脉冲信号,7,6,3脚(GP0,GP1,GP4端口)为输出口。其中渐变部分是让灯慢慢的变亮(或灭)。不知道单片机灯光控制系统程序有没错误,有错误之处请大家多多给意见。谢谢 ;程序如下: GPI0 EQU 6 COUNT1 EQU 11 COUNT2 EQU 12 COUNT3 EQU 13 COUNT4 EQU 14 COUNT5 EQU 15 POINTER EQU 16 POINTER1 EQU 17 ORG 00H MOVLW 07H ;设定时钟参数1:256分频 OPTION MOVLW 2CH ;输出端口设定 0,1,4输出,3输入50HZ TRIS 6 ;------------------------------- START: ;对3端口扫描 扫描0低电位 MOVF GPI0,W MOVWF COUNT1 BTFSC COUNT1,3 GOTO START NEXT: ;对3端口扫描 扫描1高电位 MOVF GPI0,W MOVWF COUNT1 BTFSS COUNT1,3 GOTO NEXT INCF COUNT2 MOVLW 100 DECFSZ COUNT2,1 GOTO START ;------外接50HZ信号,扫描100次,延时2秒 ;-------------------单片机灯光控制系统---------------------------------------- JB: CLRF TMR0 MOVLW 250 MOVWF COUNT4 MOVWF COUNT5 INCF POINTER,F MOVF POINTER,0 MOVWF POINTER1 MOVLW TABLE ADDWF POINTER,0 CALL AA MOVWF 6 ;返回,输出-----亮 CHANGE: MOVF TMR0,0 MOVWF COUNT3 SUBWF COUNT4,1 BTFSS STATUS,Z ;TMR0=250? ‘N’空循环TMR0次 ‘Y’跳出重新开始渐变 GOTO NOPDELAY1 GOTO OUT NOPDELAY1: NOP DECFSZ COUNT3,1 GOTO NOPDELAY1 DECF POINTER1,F ; 《---单片机灯光控制系统-------| MOVLW TABLE ; | ADDWF POINTER1,0 ; | CALL AA ; | MOVWF 6 ;返回上一次显示数据,输出到GP端口---灭 《--| NOPDELAY2: NOP DECFSZ COUNT4,1 GOTO NOPDELAY2 GOTO CHANGE ;-----渐-----变------------单片机灯光控制系统----------------------------------- OUT: MOVLW 9 ;取表9次 SUBWF POINTER,0 BTFSS STATUS,Z GOTO JB GOTO START AA: MOVWF 2 TABLE:RETLW 2CH RETLW 3CH RETLW 2DH RETLW 2EH RETLW 2FH RETLW 3DH RETLW 3EH RETLW 2CH RETLW 3FH ORG 1FFH MOVWF OSCCAL END |
微信公众号
手机版