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

讀入獨(dú)立鍵,并點(diǎn)亮相應(yīng)的LED燈

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2010年09月30日   【字體:
/***************************************************************************
         006.asm
     讀入獨(dú)立鍵盤(pán)上的按鍵,并把相應(yīng)的LED燈點(diǎn)亮,若一段時(shí)間無(wú)按鍵,剛循環(huán)點(diǎn)亮LED
     接線:P0口接八位LED
        P2口接八位獨(dú)立按鍵
        定時(shí)器T0計(jì)時(shí),中斷方式
                                          2010.09.04
***************************************************************************/
   ORG 0000H
      LJMP MAIN
   ORG 000BH
      LJMP INT_T0
   ORG 0100H
MAIN:     ;主程序入口
    MOV SP,#50H    ;設(shè)置堆棧
 MOV TMOD,#01H     ;設(shè)置定時(shí)模式
 MOV TH0,#15H   ;賦定時(shí)初值
 MOV TL0,#9FH
 CLR 20H.0    ;初始化按鍵標(biāo)志
 MOV R2,#0FFH   ;初始化鍵值
 MOV R3,#01H    ;初始化循環(huán)閃鑠初值
 MOV R4,#00H    ;初始化定時(shí)初值
 SETB TR0    ;啟動(dòng)定時(shí)器
 MOV IE,#82H    ;開(kāi)中斷
LOOP:
    LCALL KEY_READ    ;掃描鍵盤(pán)
L1: JB 20H.0,LIGH  ;有鍵輸入,則去點(diǎn)亮相應(yīng)LED
    JBC 20H.0,LOOP  
 MOV A,R4
 CJNE A,#0C8H,LOOP   ;否則去判斷定時(shí)是否到,定時(shí)到,循環(huán)點(diǎn)亮八位LED
 LCALL LEED
 LJMP L1

/*點(diǎn)亮相應(yīng)LED*/
LIGH:
    MOV A,R2     ;取鍵值
 MOV P0,A     ;輸出
 RET

/*循環(huán)點(diǎn)亮LED*/
LEED:
    MOV A,R3
LOOP1:
 CPL A
 MOV P0,A
 LCALL KEY_READ
 JB 20H.0,RETUN0
 MOV R0,#0FFH
 LCALL DELAY
 MOV A,R3
 RL A
 MOV R3,A
 CJNE A,#80H,LOOP1
LOOP2:
 CPL A
 MOV P0,A
 LCALL KEY_READ
 JB 20H.0,RETUN0
 MOV R0,#0FFH
 LCALL DELAY
 MOV A,R3
 RR A
 MOV R3,A
 CJNE A,#01H,LOOP2
 SJMP LOOP1
RETUN0:
    RET

/*鍵盤(pán)掃描程序*/

KEY_READ:
    CLR EA     ;掃描鍵盤(pán)時(shí)關(guān)定時(shí)中斷
    MOV A,P2
 CJNE A,#0FFH,DE
 LJMP RETUN
DE: MOV R0,#8AH
    LCALL DELAY
 MOV A,P2
 CJNE A,#0FFH,DE0
 LJMP RETUN
DE0:MOV R2,A
    SETB 20H.0
 MOV R4,#00H
DE1:MOV A,P2
 CJNE A,#0FFH,DE1
RETUN:
    SETB EA
    RET 

/*中斷子程序*/

INT_T0:
      CLR EA
      PUSH ACC
   MOV TH0,#15H      ;重賦定時(shí)初值
      MOV TL0,#9FH
   INC R4
   POP ACC
   SETB EA
   RETI

/*延時(shí)子程序 */

DELAY:
D1:   MOV R1,#0FFH
D0:   DJNZ R1,D0
      DJNZ R0,D1
   RET  


   END
關(guān)閉窗口

相關(guān)文章