單片機燈光控制系統(tǒng)
;****************************************
;* PIC12C508單片機燈光控制系統(tǒng)源程序 *
;****************************************
;※※※※※※※※※※※※※※※※※
;※資料提供:www.51c51.net ※
;※※※※※※※※※※※※※※※※※
;以上程序使用PIC12C508單片機,內(nèi)部4MHZ時鐘,4腳輸入50HZ脈沖信號,7,6,3腳(GP0,GP1,GP4端口)為輸出口。其中漸變部分是讓燈慢慢的變亮(或滅)。不知道單片機燈光控制系統(tǒng)程序有沒錯誤,有錯誤之處請大家多多給意見。謝謝
;程序如下:
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 ;設定時鐘參數(shù)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秒
;-------------------單片機燈光控制系統(tǒng)----------------------------------------
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'空循環(huán)TMR0次 'Y'跳出重新開始漸變
GOTO NOPDELAY1
GOTO OUT
NOPDELAY1:
NOP
DECFSZ COUNT3,1
GOTO NOPDELAY1
DECF POINTER1,F ; ---單片機燈光控制系統(tǒng)-------|
MOVLW TABLE ; |
ADDWF POINTER1,0 ; |
CALL AA ; |
MOVWF 6 ;返回上一次顯示數(shù)據(jù),輸出到GP端口---滅 --|
NOPDELAY2:
NOP
DECFSZ COUNT4,1
GOTO NOPDELAY2
GOTO CHANGE
;-----漸-----變------------單片機燈光控制系統(tǒng)-----------------------------------
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
單片機相關文章:單片機教程
單片機相關文章:單片機視頻教程
單片機相關文章:單片機工作原理
光控開關相關文章:光控開關原理 聲光控開關相關文章:聲光控開關原理
評論