请高手给找一下错,单片机的程序。

来源:百度知道 编辑:UC知道 时间:2024/09/21 11:08:31
实现的是秒表和时钟的功能,但进入秒表后时钟就基本停止了,很慢。十几秒才走一秒钟,请高手看看是哪错了。程序稍后奉上。
ORG 0000H
LJMP MAIN ORG 000BH LJMP INT ORG 0030HMAIN: MOV R0,#K1
MOV R7,#06H LOOP0: MOV A,#3AH ;赋初值23:59:58 MOV @R0,A
INC R0 MOV A,#3BH MOV @R0,A INC R0 MOV A,#17H
MOV @R0,A MOV IE,#82H MOV TMOD,#01H MOV TH0,#4CH MOV TL0,#00H SETB TR0 MOV R5,#00H LOOP: SETB P1.0 SETB P1.1 LCALL TEST ;扫描键盘 CJNE A,#0FBH,NEXTD ;判断是否需要时间调整 CLR TR0
CLR EA LCALL TIAOZHENG ;调整时间NEXTD: CJNE A,#0F7H,LOOP ;判断是否进入秒表 LCALL DY250MS CLR EA CLR TR0 LCALL DY250MS LCALL DY250MS
LCALL DY250MS LCALL MIAOBIAO SJMP LOOP
秒表也没有关中断,存储单元也是另外开辟的,秒表中应该怎样设置才行。

又是你啊,你程序是列出来,版式很糟糕!

理好帮你看了下,没看到你定时器中断入口嘛

还有 CLR TR0
CLR EA
在主循环出现两次,还说没关中断,就算有个跳转,指令,这两个指令都会被执行,有按键,无按键,不就都执行了

你的延时
LCALL DY250MS
CLR EA
CLR TR0
LCALL DY250MS
LCALL DY250MS

LCALL DY250MS
LCALL MIAOBIAO
是什么作用,没想明白。

不是打击你,估计你的程序总体问题很大的

建议你理下思路,可以参考一些例程。对了,为什么不用c语言。现在的人都喜欢C,代码少,可读性强。

定时器(计数器)没有复位吧

太乱了,不想看都.....