?? 開關鍵盤控制顯示.txt
字號:
ORG 0000H
MAIN: MOV SP,#70H
MOV A,#03H;把控制命令放到a中
MOV DPTR,#0FF20H;控制命令地址
MOVX @DPTR,A;把對應的控制命令放到81c55
LOOP2:MOV R1,#0FEH;用于一位作用
MOV R0,#30H;6個數字所在的首地址
LOOP1:MOV DPTR,#TABLE;將要查的數方到dptr中
MOV A,@R0;把r0的數放到a中
MOVC A,@A+DPTR;轉碼所得數方到a中
MOV DPTR,#0FF22H;把pb口地址方到dptr中
MOVX @DPTR,A;把要顯示的數放到pb口上
MOV A,R1;把位控制方到a中
MOV DPTR,#0FF21H;把pa口地址放到dptr中
MOVX @DPTR,A
RL A;左移一位
MOV R1,A;把移位的數方到r1中
CALL YANCHI;調用延遲程序
INC R0
CJNE R0,#36H,LOOP1
JMP LOOP2
TABLE:DB 0CFH,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
YANCHI:
MOV R6,#0FFH
MOV A,#0FFH
LOOP:
ACALL KEYP
LOOP3: DEC R6
MOV R5,A
MOV A,R6
CJNE A,00H,LOOP3
MOV A,R5
DEC A
CJNE A,00H,LOOP
RET
KEYP:
PUSH ACC;對a進行入棧保護
MOV A,P1;把p1口的地址放到a中
ORL A,#0C0H;將a的高兩位置為11
CPL A
JZ OVER;沒有按鍵被按下
JNB ACC.0,OVER1;第一位沒有被按下
MOV @R0,#1H
SJMP OVER
OVER1:JNB ACC.1,OVER2;第二位沒有被按下
MOV @R0,#2H
SJMP OVER
OVER2:JNB ACC.2,OVER3;第三位沒有被按下
MOV @R0,#3H
SJMP OVER
OVER3:JNB ACC.3,OVER4;第四位沒有被按下
MOV @R0,#4H
SJMP OVER
OVER4:JNB ACC.4,OVER5;第五位沒有被按下
MOV @R0,#5H
SJMP OVER
OVER5:MOV @R0,#6H;定是第六位被按下了
OVER: POP ACC
RET
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -