标题: 单片机定时器计时 怎样能分别让定时器2的值在液晶屛上显示出来呢 [打印本页]

作者: ningninghappy    时间: 2016-5-14 09:05
标题: 单片机定时器计时 怎样能分别让定时器2的值在液晶屛上显示出来呢
st89c52单片机,如果我有四路中断:int0,int1,计数器0,计数器1,当第一路中断到达时,启动定时器2,令初值TH2=0,TL2=0;然后其他三路到达时,分别从定时器2中读取TH2,TL2;请问这样可行吗?如果可行,怎样能分别让定时器2的值在液晶屛上显示出来呢?

作者: hbuzdf    时间: 2016-5-14 10:40
这个可以 但是要注意计时器的溢出问题 中断没有什么特殊的 本质就是程序的跳转
作者: ningninghappy    时间: 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();       
                 
}        




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1