欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

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

讀入獨立鍵,并點亮相應(yīng)的LED燈

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

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

/*循環(huá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

/*鍵盤掃描程序*/

KEY_READ:
    CLR EA     ;掃描鍵盤時關(guān)定時中斷
    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      ;重賦定時初值
      MOV TL0,#9FH
   INC R4
   POP ACC
   SETB EA
   RETI

/*延時子程序 */

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


   END
關(guān)閉窗口

相關(guān)文章