|
|
以?xún)煞N時(shí)間單位(s/ms)倒計(jì)時(shí)沒(méi)有任何技術(shù)問(wèn)題,不過(guò)以1ms周期刷新LCD不現(xiàn)實(shí)。就算LCD能完成但肉眼根本無(wú)法分辨。給你改為1ms中斷周期并增加一個(gè)標(biāo)志位allow用于區(qū)分兩種時(shí)間單位的倒計(jì)時(shí),至于LCD顯示ms問(wèn)題只能呵呵了。
void Timer1_isr(void) interrupt 3
{
TH1=(65536-1000)/256;//定時(shí)器裝初值
TL0=(65536-1000)%256;
if(allow==0)
{
count++; //中斷次數(shù)累加
if(count==1000) //1000次1毫秒為1秒
{
count=0;
Pon--; // 單片機(jī)工作默認(rèn)繼電器閉合,Pon上電時(shí)間倒計(jì)時(shí),單位秒
write_twodate(9,Pon); //變化送到LCD顯示
if(Pon==0)
{
JDQ=0; //繼電器斷開(kāi)
allow=1;
// count++; //繼電器斷電后,Poff掉電時(shí)間倒計(jì)時(shí)
}
}
}
else
{
// if(count==1) //1次為1毫秒,這里是錯(cuò)誤的,實(shí)際為50ms,還沒(méi)想到辦法轉(zhuǎn)換不同單位
// {
// count=0;
Poff--; //Poff掉電時(shí)間倒計(jì)時(shí),單位毫秒
write_onedate(10,Poff); //變化送到LCD顯示
// }
if(Poff==0)
{
JDQ=1; //繼電器吸合
TR1=0; //定時(shí)器1關(guān)閉,即倒計(jì)時(shí)關(guān)閉
TR0=1; // 定時(shí)器0開(kāi)啟,即按鍵掃描開(kāi)啟
allow=0;//到此一輪倒計(jì)時(shí)結(jié)束,等待定時(shí)器1再次開(kāi)啟
}
}
} |
|