打印

STC系列单片机T0计数不跳转

[复制链接]
2142|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zzkkll22|  楼主 | 2008-6-21 10:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ORG 0000H
JMP MAIN
ORG 0003H
JMP INT0
ORG 000BH
JMP INTER
ORG 0013H
JMP INT1
ORG 0023H
JMP PINT
INT0:
     
     CLR EX0
     SETB TR0
    
RETI
INTER:
     CLR EA
     SETB LED3
     INC SUB1
     MOV TH0,#0H
     MOV TL0,#0H
     SETB EA
RETI
INT1:
     CLR EA
     CLR TR0
     MOV 31H,TH0
     MOV 32H,TL0
     SETB NC
     SETB EX0
     SETB EA
RETI
;;;系统初始化
SETUP:
      MOV  R0,#70H
CLRAM:
      CLR EA
      MOV  @R0,#0
      DJNZ R0,CLRAM
      CLR LED1
      CLR LED2
      CLR LED3
      CLR LED4
    
      MOV  TL1,#0F5H     ;设置波特率为9600   '双倍速
      MOV  TH1,#0F5H
      MOV  TH0,#00H
      MOV  TL0,#00H
      MOV  PCON,#0H       ;SMOD=0
      MOV  TMOD,#25H     ;波特率方式1 ,定时器0计数方式1
      MOV  SCON,#50H     ;设置串口方式1,REN=1
      MOV  IP,#02H
      SETB TR1
      
      MOV IE,#0F7H
            RET

MAIN:
      MOV SP,#70H
      CALL SETUP
MAINN:
      CPL LED1
     
      JMP MAINN
END
本程序为了计算INT0和 INT1两个外部中断之间的时间差,可是T0就是不跳转,那位高手可以为小弟指点一下,不胜感激

相关帖子

沙发
nuptfred| | 2008-6-21 10:38 | 只看该作者

STC用过很多次

还真没遇到国这样的情况啊

使用特权

评论回复
板凳
whydo| | 2008-6-21 13:58 | 只看该作者

应该不是STC片机的事,软仿真试下啊

使用特权

评论回复
地板
p4x266| | 2008-6-22 10:02 | 只看该作者

楼主换换芯片重新试试看。

使用特权

评论回复
5
rj1985| | 2008-6-23 22:07 | 只看该作者

你的TMOD是不是设错了?

你的TMOD设置为0x25,也就是T0的模式如下
GATE   C/T    M1   M0
  0     1     0    1
T0为16位计数模式,而你的 C/T = 1 ,这时T0为计数工作方式,在这种方式下,计数脉冲来自外部引脚(T0对应P3.4脚)。当T0脚发生从高电平到低电平的跳变时,计数器加1。

所以你看看是不是你的TMOD设错了?按照你的思路,要测两个外部中断的间隔,TMOD中的低四位应该是 0001 吧,也就是 TMOD=0x21

要不你给T0的时钟输入脚加一个时钟信号,看看中断会不会被触发

使用特权

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

本版积分规则

5

主题

5

帖子

0

粉丝