新聞中心

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

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

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

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

本文引用地址:http://2s4d.com/article/170918.htm

/*點亮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

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




關(guān)鍵詞: LED 相應(yīng) 點亮 獨立

評論


相關(guān)推薦

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

關(guān)閉