標(biāo)題: 單片機定時器計時 怎樣能分別讓定時器2的值在液晶屛上顯示出來呢 [打印本頁]

作者: ningninghappy    時間: 2016-5-14 09:05
標(biāo)題: 單片機定時器計時 怎樣能分別讓定時器2的值在液晶屛上顯示出來呢
st89c52單片機,如果我有四路中斷:int0,int1,計數(shù)器0,計數(shù)器1,當(dāng)?shù)谝宦分袛嗟竭_時,啟動定時器2,令初值TH2=0,TL2=0;然后其他三路到達時,分別從定時器2中讀取TH2,TL2;請問這樣可行嗎?如果可行,怎樣能分別讓定時器2的值在液晶屛上顯示出來呢?

作者: hbuzdf    時間: 2016-5-14 10:40
這個可以 但是要注意計時器的溢出問題 中斷沒有什么特殊的 本質(zhì)就是程序的跳轉(zhuǎn)
作者: ningninghappy    時間: 2016-5-14 10:46
hbuzdf 發(fā)表于 2016-5-14 10:40
這個可以 但是要注意計時器的溢出問題 中斷沒有什么特殊的 本質(zhì)就是程序的跳轉(zhuǎn)

你好,那請問為什么下面這個程序不顯示,理論上外部中斷1 發(fā)生時,定時器2初始化,液晶屛應(yīng)該顯示0000才對,請問這是為什么呢?

void ds1820disp()  
{
disdata[0]=tvalue/1000+0x30;//百位數(shù)
disdata[1]=tvalue%1000/100+0x30;//十位數(shù)
disdata[2]=tvalue%100/10+0x30;//個位數(shù)
disdata[3]=tvalue%10+0x30;//小數(shù)位
}
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.torrancerestoration.com/bbs/) Powered by Discuz! X3.1