PIC12C508單片機燈光控制系統(tǒng)源程序
;PIC12C508單片機燈光控制系統(tǒng)源程序
;以上程序使用PIC12C508 單片機 ,內部4MHz時鐘,4腳輸入50HZ脈沖信號,7,6,3腳(GP0,GP1,GP4端口)為輸出口。其中漸變部分是讓燈慢慢的變亮(或滅)。不知道單片機燈光控制系統(tǒng)程序有沒錯誤,有錯誤之處請大家多多給意見。謝謝
;程序如下:
GPI0EQU6
COUNT1EQU11
COUNT2EQU12
COUNT3EQU13
COUNT4EQU14
COUNT5EQU15
POINTEREQU16
POINTER1EQU17
ORG00H
MOV LW07H;設定時鐘參數1:256分頻
OPTION
MOV LW2CH;輸出端口設定0,1,4輸出,3輸入50HZ
TRIS6
;-------------------------------
START:
;對3端口掃描掃描0低電位
MOV FGPI0,W
MOV WFCOUNT1
BTFSCCOUNT1,3
GOTOSTART
NEXT:;對3端口掃描掃描1高電位
MOV FGPI0,W
MOV WFCOUNT1
BTFSSCOUNT1,3
GOTONEXT
INCFCOUNT2
MOV LW100
DECFSZCOUNT2,1
GOTOSTART;------外接50HZ信號,掃描100次,延時2秒
;------------------- 單片機 燈光控制系統(tǒng)----------------------------------------
JB:
CLRFTMR0
MOV LW250
MOV WFCOUNT4
MOV WFCOUNT5
INCFPOINTER,F
MOV FPOINTER,0
MOV WFPOINTER1
MOV LWTABLE
ADDWFPOINTER,0
CALLAA
MOV WF6;返回,輸出-----亮
CHANGE:
MOV FTMR0,0
MOV WFCOUNT3
SUBWFCOUNT4,1
BTFSSSTATUS,Z;TMR0=250?N空循環(huán)TMR0次Y跳出重新開始漸變
GOTONOPDELAY1
GOTOOUT
NOPDELAY1:
NOP
DECFSZCOUNT3,1
GOTONOPDELAY1
DECFPOINTER1,F;<--- 單片機 燈光控制系統(tǒng)-------"
MOV LWTABLE;|
ADDWFPOINTER1,0;|
CALLAA;|
MOV WF6;返回上一次顯示數據,輸出到GP端口---滅<--|
NOPDELAY2:
NOP
DECFSZCOUNT4,1
GOTONOPDELAY2
GOTOCHANGE
;-----漸-----變------------ 單片機 燈光控制系統(tǒng)-----------------------------------
OUT:
MOV LW9;取表9次
SUBWFPOINTER,0
BTFSSSTATUS,Z
GOTOJB
GOTOSTART
AA: MOV WF2
TABLE:RETLW2CH
RETLW3CH
RETLW2DH
RETLW2EH
RETLW2FH
RETLW3DH
RETLW3EH
RETLW2CH
RETLW3FH
ORG1FFH
MOV WFOSCCAL
END