8051 address程式問題 |
答題得分者是:src
|
cyw1984
一般會員 發表:45 回覆:67 積分:22 註冊:2005-06-25 發送簡訊給我 |
這是keypad連續進來的4個數值放在4個byte KEY_DETECT: MOVC A,@A DPTR MOV @R0,A INC R0 但是多之後多出來的數值會放在第4個byte以後 第一個按的是1...第2個是2..第3個是3..第4個是4 結果: 20H -> 1 21H -> 2 22H -> 3 23H -> 4 假如之後按第5個是5..第6個是6 結果: 20H -> 1 21H -> 2 22H -> 3 23H -> 4 24H -> 5 25H -> 6 如何把之後多出來的數值移前一個位 假如之後按第5個是5..第6個是6 結果: 20H -> 3 21H -> 4 22H -> 5 23H -> 6 THX~ 這是小弟的程式,但不能做到我想要的 LOOP: MOV KEY_ADDRESS.#4 KEY_DETECT: MOVC A,@A DPTR MOV @R0,A INC R0 DJNZ KEY_ADDRESS,LOOP ACALL SHIFT_KEY_ADDRESS SHIFT_KEY_ADDRESS: MOV KEY_BUFFER1,KEY_BUFFER2 MOV KEY_BUFFER2,KEY_BUFFER3 MOV KEY_BUFFER3,KEY_BUFFER4 RETP.S: po程式碼請做好縮排. 下次將直接砍. 發表人 - ㊣ 於 2005/11/11 21:58:07 |
src
高階會員 發表:1 回覆:94 積分:154 註冊:2005-08-23 發送簡訊給我 |
;============================ KEY_N0 EQU 30h KEY_BUFFER1 EQU 31h KEY_BUFFER2 EQU 32h KEY_BUFFER3 EQU 33h KEY_BUFFER4 EQU 34h KEY_BUFFER5 EQU 35h ;============================ ORG 0H JMP START ORG 30H START: MOV SP,#60H MOV KEY_N0,#4 MOV R0,#KEY_BUFFER1 MOV DPTR,#KEY_DATA ;============================ ;KEY_DETECT_LOOP1: ;先讀取4組按鍵值分別存放在 ;KEY_BUFFER1 ;KEY_BUFFER2 ;KEY_BUFFER3 ;KEY_BUFFER4 ;============================ KEY_DETECT_LOOP1: MOV A,#0 MOVC A,@A DPTR MOV @R0,A INC R0 INC DPTR DJNZ KEY_N0,KEY_DETECT_LOOP1 ;============================ ;KEY_DETECT_LOOP2: ;接著讀取下一組按鍵值存放在 ;KEY_BUFFER5 ;============================ KEY_DETECT_LOOP2: MOV A,#0 MOVC A,@A DPTR MOV KEY_BUFFER5,A INC DPTR CALL SHIFT_KEY_ADDRESS JMP KEY_DETECT_LOOP2 ;============================ ;SHIFT_KEY_ADDRESS: ;KEY_BUFFER1=KEY_BUFFER2 ;KEY_BUFFER2=KEY_BUFFER3 ;KEY_BUFFER3=KEY_BUFFER4 ;KEY_BUFFER4=KEY_BUFFER5 ;============================ SHIFT_KEY_ADDRESS: MOV KEY_N0,#4 MOV R1,#KEY_BUFFER1 MOV R0,#KEY_BUFFER2 SHIFT_LOOP: MOV A,@R0 MOV @R1,A INC R1 INC R0 DJNZ KEY_N0,SHIFT_LOOP RET ;============================ ;KEY_DATA 模擬按鍵讀取的內容 ;============================ KEY_DATA: DB 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 ;============================ END |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |