標題: 求助,利用定時器做一個顯示時,分,秒的時鐘,如何利用方式1,定時一秒呢? [打印本頁]

作者: 1258011    時間: 2018-6-11 13:06
標題: 求助,利用定時器做一個顯示時,分,秒的時鐘,如何利用方式1,定時一秒呢?
void main()
{
Timer0Init();
while(1)
{
  datapros();
  DigDisplay();
}}
  void Timer0() interrupt 1
  {
   TH0=0Xd8; //這里
   TL0=0Xf0;//如何定時1秒呢,方式一最大只能定時65.6ms。
   sec++;
  if(sec>=60)  
  {
   sec=0;
   min++;
   if(min>=60)
   {
    sound();
    min=0;
   hour++;
  
  if(hour>=1)
  {
   sound();
   min=0;
}
}
}
  
}
  



作者: wulin    時間: 2018-6-11 14:52
10ms中斷100次就是1秒
void Timer0() interrupt 1
{
        TH0=0Xd8; //這里
        TL0=0Xf0;//如何定時1秒呢,方式一最大只能定時65.6ms。
        Cnt10ms++;
        if(Cnt10ms==100)//1秒
        {
                Cnt10ms=0;
                sec++;
                if(sec>=60)  
                {
                        sec=0;
                        min++;
                        if(min>=60)
                        {
                                sound();
                                min=0;
                                hour++;
                                if(hour>=1)
                                {
                                        sound();
                                        min=0;
                                }
                        }
                }
        }
}
作者: dorent    時間: 2018-6-11 15:15
  TH0=0Xd8;
   TL0=0Xf0;
上面的設置,已經(jīng)是最大的嗎?是不是可以:
  TH0=0XFF;
   TL0=0XFF;這樣才是最大?
若不行,再加一個計數(shù)器嗎!
作者: HC6800-ES-V2.0    時間: 2018-6-11 16:10
dorent 發(fā)表于 2018-6-11 15:15
TH0=0Xd8;
   TL0=0Xf0;
上面的設置,已經(jīng)是最大的嗎?是不是可以:

同學,你說了句外行話哦!
TH0=0;TL0=0;這才是最大。。。!
作者: 1258011    時間: 2018-6-11 16:26
wulin 發(fā)表于 2018-6-11 14:52
10ms中斷100次就是1秒
void Timer0() interrupt 1
{

解決了,謝謝了
作者: 981208572    時間: 2018-6-11 16:43
牛逼啊兄弟
作者: 1017078381    時間: 2018-6-11 16:51
TH0=0Xfc;
 TL0=0X18;
這樣每次中斷就是1ms  累加1000次就是1秒了
作者: yjw1    時間: 2018-6-11 17:52
設置好初值,先產(chǎn)生方式1的最大定時時間50ms,然后設置中斷次數(shù)20次,就可以實現(xiàn)1s的定時了




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1