找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2049|回复: 2
收起左侧

单片机定时器计时 怎样能分别让定时器2的值在液晶屛上显示出来呢

[复制链接]
ID:120148 发表于 2016-5-14 09:05 | 显示全部楼层 |阅读模式
st89c52单片机,如果我有四路中断:int0,int1,计数器0,计数器1,当第一路中断到达时,启动定时器2,令初值TH2=0,TL2=0;然后其他三路到达时,分别从定时器2中读取TH2,TL2;请问这样可行吗?如果可行,怎样能分别让定时器2的值在液晶屛上显示出来呢?
回复

使用道具 举报

ID:120699 发表于 2016-5-14 10:40 | 显示全部楼层
这个可以 但是要注意计时器的溢出问题 中断没有什么特殊的 本质就是程序的跳转
回复

使用道具 举报

ID:120148 发表于 2016-5-14 10:46 | 显示全部楼层
hbuzdf 发表于 2016-5-14 10:40
这个可以 但是要注意计时器的溢出问题 中断没有什么特殊的 本质就是程序的跳转

你好,那请问为什么下面这个程序不显示,理论上外部中断1 发生时,定时器2初始化,液晶屛应该显示0000才对,请问这是为什么呢?

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();       
                 
}        
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表