51单片机高手请帮下忙~不胜感激

来源:百度知道 编辑:UC知道 时间:2024/05/27 01:15:53
我用汇编语言编写的。小弟还不会用C51~
做的是一个视觉暂留实验。灯的频率从10HZ到99HZ变化,当人眼觉察到分辨不出频率时,就按下~有按键的话就暂停,并在屏幕上显示此时的频率。
到了三十秒后,如果没有按键就自动跳回。
可是,编好后发现,到了三十秒的时候频率只有70HZ~为什么不能到90HZ呢?请高手帮助下~
以下是此程序
ORG 000BH
AJMP INTR0
ORG 001BH
AJMP INTR1
ORG 0100H
START: MOV IE,#10011010B
MOV TMOD,#00010001B
MOV SP,#60H
MOV P2,#00H
MOV P0,#0FFH
MOV R1,#0
MOV R5,#10
MOV R6,#0
MOV P3,#11101111B
STA1: JB P3.3,$
LCALL DELAY10MS
JB P3.3,STA1
JNB P3.3,$
L1: MOV TH0,#89H
MOV TL0,#33H
MOV DPTR,#TABLE1
MOV A,R1
MOVC A,@A+DPTR
MOV TH1,A
INC R1
MOV A,R1
MOVC A,@A+DPTR
MOV TL1,A
DEC R1
SETB P2.4
CLR P0.0
SETB TR0
SETB TR1

L5: JB P3.3,$
LCALL DELAY10MS

别人汇编看起来比较苦难。既然你知道显示到70就不再往上显示了,那为什么你不检查一下你的BCD转换呢。可能就这里出问题。要不就是字形定义那里。
你仔细找找。