專注差異化嵌入式產品解決方案 給智能產品定制注入靈魂給予生命
提供開發(fā)工具、應用測試 完善的開發(fā)代碼案例庫分享
從全面的產品導入到強大技術支援服務 全程貼心伴隨服務,創(chuàng)造無限潛能!
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 ;設定時鐘參數(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秒
;-----------------------------------------------------------
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 ; <----------|
MOVLW TABLE ; |
ADDWF POINTER1,0 ; |
CALL AA ; |
MOVWF 6 ;返回上一次顯示數(shù)據(jù),輸出到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