×
单片机 > 单片机程序设计 > 详情

我的电子钟c程序完整代码

发布时间:2020-05-27 发布时间:
|
真的很感谢问问的朋友帮我解决了定时器的问题。

今天是拿到单片机的第五天了,经过五天的挑灯学习,单片机的基础也算了解的三三两两了。

解决了定时器问题,早上逃课,趁热打铁,把电子钟的程序写完。有一年没有写复杂的程序了,今天的过程也是磕磕碰碰,问题颇多。废话不说了,想玩wow了。有图有真相。

 

#include
#define  unchar unsigned char
//sbit beep=P1^5;
unchar temp=0;
unsigned char code shuzi[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
unsigned char  count[]={0,0,10,5,5,10,3,2};
void delay(void)
{
 int i=100;
 while(--i);
}

unchar time(unchar j)
{
 
 
 if (temp==20)
 { 
   temp=0 ;
    ++count[0];
   if (count[0]==10)
  { 
   count[0]=0;
   ++count[1];
    }
    if(count[1]==6)
  {
     count[1]=0;
     ++count[3];
  }  

    
   if (count[3]==10)
    {
    count[3]=0;
    ++count[4];
   }
    if (count[4]==6)
    {
     count[4]=0;
   ++count[6];
    }
    if (count[6]==10)
    {
     count[6]=0;
   ++count[7];
    }
   if (count[7]==3)
    count[7]=0;
    if (count[7]==2&&count[6]==4)
        count[7]=count[6]=0;

  }
 return count[j];

}


void main()
{
 unchar num,i,j;
 EA=1;
 ET0=1;
 TMOD=0x01;
 TL0=15535%256;
 TH0=15535/256;
 TR0=1;
 while(1)
 {
    
     P2=0xff;
  i=1;
  for (j=0;j<8;++j)
    {
   num=time(j);
   P2=P2-i;
   P0=shuzi[num];
   i=i*2;
   delay();
   
     }
 }

}


void  duan() interrupt 1
{
 TL0=15535%256;
 TH0=15535/256;
 ++temp;
}
 
关键字:电子钟  c程序  完整代码 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
AVR熔丝位操作时的要点和需要注意的相关事项