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

單片機控制LED按1閃1秒按2閃10秒

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

ORG 30H             ;初始化地址
START:MOV SP,#5FH   ;初始化堆棧
      MOV P2,#0ffH  ;將P2端口打開(位)
      MOV P3,#0FFH  ;將P3端口打開(位)
L1:JNB P3.2,L2      ;P3.2上接有一只按鈕,它按下時,P3.2=0(字)
   JNB P3.3,L3      ;P3.3上接有一只按鈕,它按下時,P3.3=0(字)
   LJMP L1          ;跳轉(zhuǎn)到L1
L2:lJMP YS1MS       ;閃爍1秒
   LJMP L1          ;跳轉(zhuǎn)到L1
L3:LJMP YS10MS      ;閃爍10秒
   LJMP L1          ;跳轉(zhuǎn)到L1

YS1MS:MOV p0,#07FH  ;  給數(shù)碼管置數(shù)“.”
      MOV p2,#0FFH  ;  打開八個數(shù)碼管“.”給整個P2口打開
      LCALL DELAY   ; 調(diào)用延時子程序
      mov p2,#00H   ;  關(guān)閉八個數(shù)碼管“.”
      LCALL DELAY   ;  調(diào)用延時子程序
      LJMP YS1MS    ;  返回

YS10MS:MOV P0,#07FH     ;給數(shù)碼管置數(shù)“.”
       MOV P2,#0FFH     ;打開八個數(shù)碼管“.”給整個P2口打開
       LCALL DELAY10MS  ;調(diào)用延時子程序
       MOV P2,#00H      ;關(guān)閉八個數(shù)碼管“.”
       LCALL DELAY10MS  ;調(diào)用延時子程序
       LJMP YS10MS      ;返回

;延時1秒子程序
DELAY:MOV R7,#250  ;把250送入工作寄存器R7
   D1:MOV R6,#250  ;把250送入工作寄存器R6
   D2:DJNZ R6,D2   ;工作寄存器R6每次減1,即執(zhí)行250次
      DJNZ R7,D1   ;工作寄存器R7每次減1,即執(zhí)行250次
      RET          ;返回調(diào)用子程序

;延時10秒子程序
DELAY10MS:MOV R5,#10   ; 把10送入工作寄存器R5
      dd1:LCALL DELAY  ; 調(diào)用
          DJNZ R5,dd1  ; 工作寄存器R5每次減1,即執(zhí)行10次
          RET          ; 返回調(diào)用子程序
END                    ; 結(jié)束
單片機網(wǎng)www.torrancerestoration.com 第12群 模留哥的作品,歡迎轉(zhuǎn)載,保留版權(quán)。

關(guān)閉窗口