新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 讀入獨(dú)立鍵,并點(diǎn)亮相應(yīng)的LED燈

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

作者: 時(shí)間:2012-09-05 來(lái)源:網(wǎng)絡(luò) 收藏

***************************************************************************
006.asm
讀入鍵盤(pán)上的按鍵,并把,若一段時(shí)間無(wú)按鍵,剛循環(huán)
接線:P0口接八位
P2口接八位按鍵
定時(shí)器T0計(jì)時(shí),中斷方式
***************************************************************************/
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 ;有鍵輸入,則去LED
JBC 20H.0,LOOP
MOV A,R4
CJNE A,#0C8H,LOOP ;否則去判斷定時(shí)是否到,定時(shí)到,循環(huán)點(diǎn)亮八位LED
LCALL LEED
LJMP L1

本文引用地址:http://m.butianyuan.cn/article/170918.htm

/*點(diǎn)亮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

led燈相關(guān)文章:led燈原理




評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉