專注電子技術(shù)學(xué)習(xí)與研究
當前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

芯海單片機按開始鍵后實現(xiàn)閃爍

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2013年02月27日   【字體:


;按開始鍵(PT2.1)后程序?qū)崿F(xiàn)LED閃爍
;目的學(xué)習(xí)I/O口的輸入輸出控制
;============================================
;完整代碼下載地址: http://www.torrancerestoration.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ū)動外部設(shè)備(點亮LED燈)
  CALL  M001 ;延時
  MOVLW  10101010B ;把數(shù)據(jù)10101010B存到W中用做I/O口輸出數(shù)據(jù)
  MOVWF  PT3 ;把W中的數(shù)據(jù)從PT3(28h)輸出驅(qū)動外部設(shè)備(點亮LED燈)
  CALL  M001  ;延時
  goto  a2 ;返回反復(fù)執(zhí)行程序
;****************************************************
;     延時程序段
;****************************************************
 
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é)束
;============================================
 

關(guān)閉窗口

相關(guān)文章