标题:
帮忙看下这个程序,按下后显示有抖动, 只显示以前的数字
[打印本页]
作者:
天涯浪子99
时间:
2014-6-15 18:11
标题:
帮忙看下这个程序,按下后显示有抖动, 只显示以前的数字
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV R2,#50
MOV R1,#00H
MOV R3,#00H
MOV DPTR,#0000H
CLR C
D0: CALL ADCINT
CALL DISP
D1: JNB P2.3,KEY1
CALL DISP
JNB P2.2,KEY2
CALL DISP
LJMP D0
ADCINT: MOV R1,#30H
MOV DPTR,#7FF8H
MOV R7,#08H
LOOP:MOVX @DPTR,A
HER: JNB P3.0,HER
MOVX A,@DPTR
MOV @R1,A
INC DPTR
INC R1
DJNZ R7,LOOP
DISP: MOV A,R2
MOV B,#10
DIV AB
MOV 20H,A
MOV 21H,B
MOV DPTR,#TABLE
SETB P2.5
CLR P2.4
MOV A,20H
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
SETB P2.4
CLR P2.5
MOV DPTR,#TABLE
MOV A,21H
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
RET
DELAY: MOV R6,#5
D2: MOV R5,#249
DL0: NOP
NOP
DJNZ R5,DL0
DJNZ R6,D2
RET
DELAY1: MOV R6,#10
D3: MOV R5,#249
DL1: NOP
NOP
DJNZ R5,DL0
DJNZ R6,D3
RET
//¼ó1×ó3ìDò
KEY1:
JB P2.3,D1
MOV A,R2
INC A
MOV R2,A
RET
//¼õ1×ó3ìDò
KEY2:
JB P2.2,D1
MOV A,R2
DEC A
MOV R2,A
RET
TABLE: DB 3FH,06H,5BH,4FH,66H ;
DB 6DH,7DH,07H,7FH,6FH
END
作者:
ahshmj
时间:
2014-6-17 13:19
你使用” JNB P2.3,KEY1“语句中的”JNB“指令进入”KEY1“(不是调用子程序,所以没有入栈),
而在”KEY1:
JB P2.3,D1
MOV A,R2
INC A
MOV R2,A
RET”
中使用”RET“退出,按子程序退出,有出栈,栈顶地址不是正确的地址,所以出错。
至于你从KEY1(或KEY2)中退出后,欲往何处,无法推测,你自己按自己的意图,使用合适的跳转指令改正吧。
作者:
天涯浪子99
时间:
2014-6-17 14:27
ahshmj 发表于 2014-6-17 13:19
你使用” JNB P2.3,KEY1“语句中的”JNB“指令进入”KEY1“(不是调用子程序,所以没有入栈),
而在”KEY ...
恩,谢谢你了,是这个问题,已经解决
作者:
openpppp2008
时间:
2014-7-5 20:40
谢谢分享
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1