标题: 求助,利用定时器做一个显示时,分,秒的时钟,如何利用方式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;
上面的设置,已经是最大的吗?是不是可以:
  TH0=0XFF;
   TL0=0XFF;这样才是最大?
若不行,再加一个计数器吗!
作者: HC6800-ES-V2.0    时间: 2018-6-11 16:10
dorent 发表于 2018-6-11 15:15
TH0=0Xd8;
   TL0=0Xf0;
上面的设置,已经是最大的吗?是不是可以:

同学,你说了句外行话哦!
TH0=0;TL0=0;这才是最大!!!!!
作者: 1258011    时间: 2018-6-11 16:26
wulin 发表于 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
设置好初值,先产生方式1的最大定时时间50ms,然后设置中断次数20次,就可以实现1s的定时了




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