專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

51單片機電子時鐘【帶視頻】

作者:李俊軒   來源:本站原創(chuàng)   點擊數:  更新時間:2013年07月18日   【字體:

哈哈。終于把一直認為好高深的時鐘電路做出來了,現(xiàn)在想想,其實也挺簡單的,有些東西要自已去做了,并認真地做好,你會發(fā)現(xiàn)其實它沒有你想的那么神秘的。

程序:#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;
    }
  }
 }
 }
}

關閉窗口

相關文章