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

51单片机电子时钟

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

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



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

热门文章 更多
ARM 汇编的必知必会