芯海單片機(jī)按開始鍵后實(shí)現(xiàn)閃爍
;目的學(xué)習(xí)I/O口的輸入輸出控制
;============================================
;完整代碼下載地址: http://www.51hei.com/f/xhpms.rar
; filename: 111.asm
; chip : csu1181b
; author :
; date : 2012-07-18
;============================================
include csu1181b.inc
;============================================
; program start
;============================================
org 0000h ;
goto a1 ;
org 0005h ;
;***************************************************
; 判斷是否按下開始鍵程序段
;***************************************************
a1: CLRWDT ;清看門狗
MOVLW 00H ;把數(shù)據(jù)00H存到W中用做設(shè)置I/O口為輸入口
MOVWF PT2EN ;把W中的數(shù)據(jù)存到PT2EN(25h)中將I/O口設(shè)置為輸入口
MOVLW 0FFH ;把數(shù)據(jù)0FFH存到W中用做設(shè)置I/O口為上拉模式
MOVWF PT2PU ;把W中的數(shù)據(jù)存到PT2PU(26h)中將I/O口設(shè)置為上拉模式
BTFSC PT2,1 ;判斷PT2.1是否為0是則跳過嚇一指令(判斷有無按鍵按下有執(zhí)行下面程序無則等待按鍵按下)
GOTO A1 ;無條件轉(zhuǎn)移到A1
;***************************************************
; 閃爍程序段
;***************************************************
A2: CLRWDT ;清看門狗
MOVLW 0FFH ;把數(shù)據(jù)0FFH存到W中用做設(shè)置I/O口為輸出口
MOVWF PT3EN ;把W中的數(shù)據(jù)存到PT3EN(29h)中將I/O口設(shè)置為輸出口
MOVLW 0 ;把數(shù)據(jù)00H存到W中用做設(shè)置I/O口為禁止上拉模式
MOVWF PT3PU ;把W中的數(shù)據(jù)存到PT3PU(2ah)中將I/O口設(shè)置為禁止上拉模式
MOVLW 01010101B ;把數(shù)據(jù)01010101B存到W中用做I/O口輸出數(shù)據(jù)
MOVWF PT3 ;把W中的數(shù)據(jù)從PT3(28h)輸出驅(qū)動(dòng)外部設(shè)備(點(diǎn)亮LED燈)
CALL M001 ;延時(shí)
MOVLW 10101010B ;把數(shù)據(jù)10101010B存到W中用做I/O口輸出數(shù)據(jù)
MOVWF PT3 ;把W中的數(shù)據(jù)從PT3(28h)輸出驅(qū)動(dòng)外部設(shè)備(點(diǎn)亮LED燈)
CALL M001 ;延時(shí)
goto a2 ;返回反復(fù)執(zhí)行程序
;****************************************************
; 延時(shí)程序段
;****************************************************
M001: MOVLW 2 ;
MOVWF 80H ;
M002: MOVLW 248 ;
MOVWF 81H ;
M003: MOVLW 250 ;
MOVWF 82H ;
M004: DECFSZ 82H,1 ; (減一后結(jié)果存在82h中)減一為0跳過下一指令
; DECFSZ 82H,0 ;(減一后結(jié)果存在工作寄存器中)減一為0跳過下一指令
GOTO M004 ;
DECFSZ 81H,1 ;
GOTO M003 ;
DECFSZ 80H,1 ;
GOTO M002 ;
RETURN ;子程序返回
end ;結(jié)束
;============================================
評(píng)論