會員 | 8051組合語言問題 編碼如下 小弟現在卡在不知道如何讓他由鍵盤輸出我要的文字 如按1的時候顯示 I LOVE 按2顯示 HAPPY 而且要想辦法清除第1次輸入的結果才能顯示第2次的 清除的部份測試的結果都是無法完全清除 不知道這兩個問題該如何解決 有大大可以幫忙解答一下嗎?? 用過好多方法了~"~ MASK EQU 00001111B DSEG AT 30H KBDBUF: DS 1 CSEG AT 00H ORG 00H JMP START ORG 13H JMP KBD_ISR START: MOV SP,#5FH CLR P1.3 CLR P1.7 ;設定4bit模式 CLR P1.6 ; SETB P1.5 ; CLR P1.4 ; SETB P1.2 ; CLR P1.2 ; CALL DELAY ; ;游標歸位 SETB P1.2 ;設定4bit CLR P1.2 ; SETB P1.7 ;改變bit SETB P1.2 ;在設定4bit CLR P1.2 CALL DELAY ;輸入模式設定 CLR P1.7 CLR P1.6 CLR P1.5 CLR P1.4 SETB P1.2 CLR P1.2 SETB P1.6 SETB P1.5 SETB P1.2 CLR P1.2 CALL DELAY ;顯示器控制 CLR P1.7 CLR P1.6 CLR P1.5 CLR P1.4 SETB P1.2 CLR P1.2 SETB P1.7 SETB P1.6 CLR P1.5 ;游標開關 SETB P1.4 SETB P1.2 CLR P1.2 CALL DELAY MOV P0,#11111111B ;中斷程式 MOV P0,#11110000B ;<-- SETB IT1 ; SETB EA ; SETB EX1 ; SETB P1.3 LOOP: JMP $ CLEAR_LCD: CLR P1.3 CLR P1.7 CLR P1.6 CLR P1.5 CLR P1.4 SETB P1.2 CLR P1.2 SETB P1.4 SETB P1.2 CLR P1.2 CALL LONG_DELAY RET SendChar: MOV C,ACC.7 MOV P1.7,C MOV C,ACC.6 MOV P1.6,C MOV C,ACC.5 MOV P1.5,C MOV C,ACC.4 MOV P1.4,C SETB P1.2 CLR P1.2 MOV C,ACC.3 MOV P1.7,C MOV C,ACC.2 MOV P1.6,C MOV C,ACC.1 MOV P1.5,C MOV C,ACC.0 MOV P1.4,C SETB P1.2 CLR P1.2 CALL DELAY RET KBD_ISR: PUSH ACC CLR EX1 MOV P0,#11111111B CALL KEY_SCAN JNB F0,RECOUNT CALL TRANS MOV A,KBDBUF CALL SendChar RECOUNT: MOV P0,#11110000B JNB P3.3,$ SETB EX1 POP ACC RETI TRANS: MOV A,KBDBUF MOV DPTR,#KEY_TAB MOVC A,@A+DPTR MOV KBDBUF,A RET KEY_SCAN: CLR F0 MOV KBDBUF,#0 CLR P0.3 CALL COL_SCAN SETB P0.3 JB F0,FINISH_SCAN CLR P0.2 CALL COL_SCAN SETB P0.2 JB F0,FINISH_SCAN CLR P0.1 CALL COL_SCAN SETB P0.1 JB F0,FINISH_SCAN CLR P0.0 CALL COL_SCAN SETB P0.0 FINISH_SCAN: RET COL_SCAN: JNB P0.6,GET_KEY INC KBDBUF JNB P0.5,GET_KEY INC KBDBUF JNB P0.4,GET_KEY INC KBDBUF RET GET_KEY: SETB F0 RET DELAY: PUSH 0 MOV R0,#50 DJNZ R0,$ POP 0 RET LONG_DELAY: PUSH 0 PUSH 1 MOV R0,#100 L0: MOV R0,#200 DJNZ R0,$ DJNZ R1,L0 POP 1 POP 0 RET KEY_TAB: DB '1' DB '2' DB '3' DB '4' DB '5' DB '6' DB '7' DB '8' DB '9' DB '*' DB '0' DB '#' END |
回覆 |
www.ublink.org | 回覆: 8051組合語言問題 ^^ 誰知道你的板子長怎樣 !! |
回覆 |
會員 | 回覆: 8051組合語言問題 |
回覆 |
*停權中* | 回覆: 8051組合語言問題 沒有縮排看起來好痛苦.... 直接清掉 DD RAM不行嗎? |
回覆 |
全宇宙最閒的人 | 回覆: 8051組合語言問題 程式可用 [CODE] 的對映來表示,就不會省掉起頭的空格了。 另,原PO不是用模擬器嗎?就算單步追蹤也該找得出問題所在吧... |
回覆 |
www.ublink.org | 回覆: 8051組合語言問題 edsim51 Java寫的模擬器 |
回覆 |
散人 | 回覆: 8051組合語言問題 模擬器確實好用,學習上是可以,不過實際上要進行電路製作時,只怕 會有很大的差距。 |
回覆 |
|
XML | RSS 2.0 | RSS |
本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。