打印

各位帮我看看这个程序,我实在找不出问题

[复制链接]
1806|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
beyondzxc|  楼主 | 2007-5-14 10:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ov, HC, hm, vr, se
我用keil c51仿真,时分秒都变化太快了。实在找不出是哪里的问题,给位帮我看看吧!
;时钟程序。40,41,42分别为时分秒。振荡频率12mHZ
ORG 0
AJMP M
ORG 0BH
AJMP T0INT
ORG 40H
M:
MOV TMOD,#1
MOV TL0,#0B0H
MOV TH0,#3CH
CLR 40H
CLR 41H
CLR 42H
CLR 43H
SETB TR0
SETB ET0
SETB EA

SJMP $
T0INT:
      MOV TL0,#3CH
      MOV TH0,#0B0H
      INC 43H
      MOV R0,43H
      CJNE R0,#20,RT
      MOV  43H,#0
      INC 42H
      MOV R0,42H
      CJNE R0,#3CH,RT
      MOV 42H,#0
      INC 41H
      MOV R0,41H
      CJNE R0,#3CH,RT
      MOV  41H,#0
      INC 40H
      MOV R0,40H
      CJNE R0,#18H,RT
      MOV  40H,#0
    RT:
       RETI
RET 
 END

相关帖子

沙发
ayb_ice| | 2007-5-14 10:07 | 只看该作者

随便说说

40,41,42分别为时分秒...
一看就是菜鸟...

使用特权

评论回复
板凳
懒人| | 2007-5-14 10:56 | 只看该作者

一看就是菜鸟

中断程序里面定时常数改变了

注意保护中断现场

为什么不用 Acc,而用 R0 呢

使用特权

评论回复
地板
prcxf| | 2007-5-14 15:46 | 只看该作者

aaa

ORG 0
AJMP M
ORG 0BH
AJMP T0INT
ORG 40H
M:
MOV TMOD,#1
MOV TL0,#0B0H
MOV TH0,#3CH
CLR 40H      ;应改为mov 40h,#0 吧,下三条指令相同
CLR 41H
CLR 42H
CLR 43H
SETB TR0
SETB ET0
SETB EA

SJMP $
T0INT:
      MOV TL0,#3CH   ;改为MOV Th0,#3CH
      MOV TH0,#0B0H  ;改为MOV TL0,#0b0H
      INC 43H
      MOV R0,43H
      CJNE R0,#20,RT
      MOV  43H,#0
      INC 42H
      MOV R0,42H
      CJNE R0,#3CH,RT
      MOV 42H,#0
      INC 41H
      MOV R0,41H
      CJNE R0,#3CH,RT
      MOV  41H,#0
      INC 40H
      MOV R0,40H
      CJNE R0,#18H,RT
      MOV  40H,#0
    RT:
       RETI
RET 
END

很明显的就那几条,其他的没有读

使用特权

评论回复
5
power5000| | 2007-5-14 16:02 | 只看该作者

大家难道不是从菜鸟过来的?忘本,不帮人家也别说人家

指令时间也要考虑进去啊

使用特权

评论回复
6
conwh| | 2007-5-14 17:09 | 只看该作者

虽然指令上有点问题,但不是根本的。

最主要是时间计算的问题。时间常数0B03C是20多毫秒,那么43又是20进位,这样产生的秒实际就是400多毫秒,所以产生的时间要快一倍多。

使用特权

评论回复
7
dengm| | 2007-5-15 18:23 | 只看该作者

回头给你写一个

使用特权

评论回复
8
yaoyunyuan| | 2007-5-16 09:51 | 只看该作者

细心些

看看你m中和T0INT,TL0和TH0的值是不是颠倒了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

17

帖子

0

粉丝