×
单片机 > 单片机程序设计 > 详情

PIC12C508单片机灯光控制系统源程序

发布时间:2020-05-16 发布时间:
|

;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 
MOV LW 07H ;设定时钟参数1:256分频 
OPTION 
MOV LW 2CH ;输出端口设定 0,1,4输出,3输入50HZ 
TRIS 6 

;------------------------------- 
START: 
;对3端口扫描 扫描0低电位 
MOV F GPI0,W 
MOV WF COUNT1 
BTFSC COUNT1,3 
GOTO START 
NEXT: ;对3端口扫描 扫描1高电位 
MOV F GPI0,W 
MOV WF COUNT1 
BTFSS COUNT1,3 
GOTO NEXT 

INCF COUNT2 
MOV LW 100 
DECFSZ COUNT2,1 
GOTO START ;------外接50HZ信号,扫描100次,延时2秒 

;------------------- 单片机 灯光控制系统---------------------------------------- 
JB: 
CLRF TMR0 
MOV LW 250 
MOV WF COUNT4 
MOV WF COUNT5 

INCF POINTER,F 
MOV F POINTER,0 
MOV WF POINTER1 
MOV LW TABLE 
ADDWF POINTER,0 
CALL AA 
MOV WF 6 ;返回,输出-----亮 
CHANGE: 
MOV F TMR0,0 
MOV WF 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 ; MOV LW TABLE ; | 
ADDWF POINTER1,0 ; | 
CALL AA ; | 
MOV WF 6 ;返回上一次显示数据,输出到GP端口---灭 NOPDELAY2: 
NOP 
DECFSZ COUNT4,1 
GOTO NOPDELAY2 
GOTO CHANGE 
;-----渐-----变------------ 单片机 灯光控制系统----------------------------------- 
OUT: 
MOV LW 9 ;取表9次 
SUBWF POINTER,0 
BTFSS STATUS,Z 
GOTO JB 
GOTO START 


AA:  MOV WF 2 
TABLE:RETLW 2CH 
RETLW 3CH 
RETLW 2DH 
RETLW 2EH 
RETLW 2FH 
RETLW 3DH 
RETLW 3EH 
RETLW 2CH 
RETLW 3FH 

ORG 1FFH 
MOV WF OSCCAL 
END 



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址