ORG 0000H
MAIN: MOV R3,#F7H ; 掃描初始值
MOV R1,#00H ; 取碼指標(biāo)
SCAN1: MOV A,R3 ; 開(kāi)始掃描
MOV P1,A ; 將掃描值輸出到 P1
MOV A,P1 ; 讀入 P1 判斷是否有按下
MOV R4,A ; 存到 R4, 判斷是否放開(kāi)
SETB C ; C=1
MOV R5,#04H ; 掃描 P14~P17
L1: RLC A ; 將按鍵值左移一位元
JNC KEYIN ; 若 C=0, 有按, 執(zhí)行 KEYIN
INC R1 ; 將指標(biāo)值加 1, 繼續(xù)掃描下一行
DJNZ R5,L1
nbsp: ; 掃描四行
MOV A,R3 ; 載入掃描值
SETB C ; C=1
RRC A ; 掃描下一列(P13~P10)
MOV R3,A ; 存回掃描值
JC SCAN1 ; C=1, 尚未完成掃描
RET ; 結(jié)束鍵盤掃描, 回到 Main Program
KEYIN: MOV R7,#10 ; 消除彈跳
D2: MOV R6,#248
DJNZ R6,$
DJNZ R7,D2
D3: MOV A,P1 ; 讀入 P1
XRL A,R4
JZ D3
MOV A,R1
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
TABLE: DB 0c0h,0f9h,0a4h,0b0h,099h ;0-4
DB 092h,082h,0f8h,080h,090h ;5-9
DB 088h,083h,0a7h,0a1h,086h ;A-E
DB 08eh ;F
end
這個(gè)編譯的時(shí)候總出現(xiàn)TABLE 那兒重復(fù)定義的錯(cuò)誤 不知道哪兒的問(wèn)題...
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |