標(biāo)題: 設(shè)計代碼 [打印本頁]

作者: lllxxx    時間: 2017-10-24 11:01
標(biāo)題: 設(shè)計代碼
scan_code EQU 30H
          ORG 0000H
                  JMP start
                  ORG 0030H
start:   
          MOV P0,#0FFH ;初始化p0口,使輸出無顯示
loop:                                    ; 循環(huán)調(diào)用read—key獲取鍵盤信息,若鍵盤按下,
         CALL read_key        ; 則用R7返回鍵值信息
         CJNE R7,#0FFH,next         ; 若R7返回值不為0xff,則調(diào)用顯示函數(shù)
                  JMP loop
next:                                             ;顯示程序
          MOV A,R7
                  MOV DPTR,#disp_code
                 MOVC A,@A+DPTR
                  MOV P0,A
                  JMP loop
read_key:
          MOV scan_code,#7FH
                  MOV P1,#0FH
                  MOV A,P1
                  MOV R7,#0FFH
                 CJNE A,#0FH,wait_key   ;鍵盤按下則p1的值會改變
                  JMP end_key
wait_key:
         CALL delay_10ms        ;延時10ms,若p1口仍右鍵按下,則跳到scan—key
                  MOV A,P1
                  MOV R7,#0FFH
                  MOV R6,#4
                 CJNE A,#0FH,scan_key
                  JMP end_key
scan_key:
          MOV P1,scan_code       ;將0x7f循環(huán)右移并賦給P1
                  MOV A,P1
                 CJNE A,scan_code,get_key;p1的值改變則確定出其行數(shù)
                   RR A
                  MOV scan_code,A
                 DJNZ R6,scan_key
                  JMP end_key
get_key:
   ;       MOV P1,#0FH
        ;          MOV R1,P1
        ;         CJNE R1,#0FH,$
                  MOV R7,#4
get_key0:
          JNB ACC.0,add_r6;移位循環(huán)判斷最低位,為0則確定其列數(shù)
                   RR A
                 DJNZ R7,get_key0
                  MOV R7,#0FFH
                  JMP end_key
add_r6:
          DEC R6        ;從第0個鍵盤數(shù)起,數(shù)滿(R6-1)*4個鍵盤,再加上第R6行
                  MOV A,R6      ;的列數(shù)R7-1,便得第幾個鍵盤按下
                  MOV B,#4
                  MUL AB
                  DEC R7
                  ADD A,R7
                  MOV R7,A
end_key:
          RET
delay_10ms:
          MOV R7,#10
delay0:
          MOV R6,#0FAH
delay1:
          NOP                    ;   1us
                  NOP                        ;  1us
……………………






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1