中断执行完后什么跟什么都没有做啊?
时间:10-02
整理:3721RD
点击:
我用的是51系列的单片机,做的一个在中断中执行键盘扫描的程序,用的lcd1602显示,但是当中断返回后,显示器上已经输入的东西会不见,
用的是外部中断,跳沿触发方式
请帮我看一下是什么问题啊
汇编语言的,
MOV R0,#66H
KWAIT:MOV P2,#0FFH
CLR P2.0
MOV A,P2
ANL A,#0F0H
XRL A,#0F0H
JZ KNOKEY1
MOV R6,#20
LCALL DELAY1
MOV A,P2
ANL A,#0F0H
XRL A,#0F0H
JZ KNOKEY1
MOV A,P2
ANL A,#0F0H
CJNE A,#0E0H,KNK1
MOV @R0,#1
AJMP KDK1
KNK1:CJNE A,#0D0H,KNK2
MOV @R0,#4
AJMP KDK1
KNK2:CJNE A,#0B0H,KNK3
AJMP KDK
.
.
.
.
.
.
KNK10:CJNE A,#0B0H,KNK11
MOV @R0,#9
AJMP KDK
KNK11:CJNE A,#70H,KNK12
AJMP CHUQU
KNK12:AJMP KWAIT
.
.
.
KEXIT:AJMP KWAIT
CHUQU:RETI
中间省略的部分是键盘扫描,
关键是红色的部分,我想按下12号键后就中断返回,但是返回后中断中输入到屏幕上的东西也会消失
问题出现早哪里啊
很愁人的
用的是外部中断,跳沿触发方式
请帮我看一下是什么问题啊
汇编语言的,
MOV R0,#66H
KWAIT:MOV P2,#0FFH
CLR P2.0
MOV A,P2
ANL A,#0F0H
XRL A,#0F0H
JZ KNOKEY1
MOV R6,#20
LCALL DELAY1
MOV A,P2
ANL A,#0F0H
XRL A,#0F0H
JZ KNOKEY1
MOV A,P2
ANL A,#0F0H
CJNE A,#0E0H,KNK1
MOV @R0,#1
AJMP KDK1
KNK1:CJNE A,#0D0H,KNK2
MOV @R0,#4
AJMP KDK1
KNK2:CJNE A,#0B0H,KNK3
AJMP KDK
.
.
.
.
.
.
KNK10:CJNE A,#0B0H,KNK11
MOV @R0,#9
AJMP KDK
KNK11:CJNE A,#70H,KNK12
AJMP CHUQU
KNK12:AJMP KWAIT
.
.
.
KEXIT:AJMP KWAIT
CHUQU:RETI
中间省略的部分是键盘扫描,
关键是红色的部分,我想按下12号键后就中断返回,但是返回后中断中输入到屏幕上的东西也会消失
问题出现早哪里啊
很愁人的
你这样做相当于每次中断后就要重新键入,然后显示,相当于重新再来,当然会消失啊?先看得到的话,你应该吧当时保存起来,然后返回后在输出才行!
谢谢回复
但是应该怎样保存啊
希望指点迷津
我现在明白您的意思了
但是如果那样的话
就不能在按键时候就看到我键盘输入的是什么了啊?