打印
[其它应用]

单片机定时器计时

[复制链接]
810|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
feiqi1|  楼主 | 2016-5-16 10:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
st89c52单片机,如果我有四路中断:int0,int1,计数器0,计数器1,当第一路中断到达时,启动定时器2,令初值TH2=0,TL2=0;然后其他三路到达时,分别从定时器2中读取TH2,TL2;请问这样可行吗?如果可行,怎样能分别让定时器2的值在液晶屛上显示出来呢?
沙发
androidbus| | 2016-5-16 10:51 | 只看该作者
这个可以 但是要注意计时器的溢出问题

使用特权

评论回复
板凳
litengg| | 2016-5-16 11:16 | 只看该作者
理论上外部中断1 发生时,定时器2初始化,液晶屛应该显示0000才对,请问这是为什么呢?

使用特权

评论回复
地板
qiangweii| | 2016-5-16 11:20 | 只看该作者
不是很懂,中断没有什么特殊的 本质就是程序的跳转吧

使用特权

评论回复
5
feiqi1|  楼主 | 2016-5-16 11:32 | 只看该作者
那请问为什么下面这个程序不显示
void ds1820disp()  
{
disdata[0]=tvalue/1000+0x30;//百位数
disdata[1]=tvalue%1000/100+0x30;//十位数
disdata[2]=tvalue%100/10+0x30;//个位数
disdata[3]=tvalue%10+0x30;//小数位
}
void main()
{

InitLcd1602();
Init_INT0();
TH2=0;       //定时器2装初值
TL2=0;
LcdShowStr(0, 1, "ceshi");
while (1)
{
LcdShowStr(8, 1, disdata);
LcdShowStr(12, 1, disdata1);        
}
}
void waibuzhongduan1()interrupt 0
{  
        LcdShowStr(0, 0, "1");
        InitTimer2();
        tvalue=TH2*256+TL2;
        ds1820disp();        
                  
}

使用特权

评论回复
6
xia00| | 2016-5-16 11:34 | 只看该作者
看看,感觉楼主给的这个程序太片面了吧。

使用特权

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

本版积分规则

424

主题

1616

帖子

1

粉丝