专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

51单片机电子时钟【带视频】

作者:李俊轩   来源:本站原创   点击数:  更新时间:2013年07月18日   【字体:

哈哈。终于把一直认为好高深的时钟电路做出来了,现在想想,其实也挺简单的,有些东西要自已去做了,并认真地做好,你会发现其实它没有你想的那么神秘的。

程序:#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
code uchar number[]={0x3f
,0x06,
0x5b,
0x4f,
0x66,
0x6d,
0x7d,
0x07,
0x7f,
0x6f
};
uint second=50,minter=58,hour=15;
uint ss,sg,mg,ms,hs,hg;
static char court=0;

void delay()
{
 uchar i,j;
 for(i=0;i<2;i++)
 for(j=0;j<120;j++);
}
void int1() interrupt 3
{
 TH1=(65536-20000)/256;
 TL1=(65536-20000)%256;
 court++;
}
void main()
{
 TMOD =0x10;
 TH1=(65536-20000)/256;
 TL1=(65536-20000)%256;
 EA =1;
 ET1=1;
 TR1=1;
 P1=0xff;
 for(;;)
 {
 ss=second /10;
 sg =second %10;
 ms=minter/10;
 mg =minter%10;
 hs=hour/10;
 hg =hour%10;
 P1=number[sg];
 P0=0x07;
 delay();

 P1=number[ss];
 P0=0x06;
 delay();

 P1=0x40;
 P0=0x05;
 delay();

 P1=number[mg];
 P0=0x04;
 delay();

 P1=number[ms];
 P0=0x03;
 delay();

 P1=0x40;
 P0=0x02;
 delay();

 P1=number[hg];
 P0=0x01;
 delay();

 P1=number[hs];
 P0=0x00;
 delay();
 if(court==50)
 {
  court=0;
  second++;
  if(second==60)
  {
   second=0;minter++;
   if(minter==60)
    {
     minter=0;hour++;
     if(hour==24)
     hour=0;
    }
  }
 }
 }
}

关闭窗口

相关文章