资源简介

具有按键可调实时时钟显示,断电时间保存,开机时间校准,通过51单片机控制在LCD1602上显示

资源截图

代码片段和文件信息

#include //包含单片机寄存器的头文件
sbit led1=P1^0;
sbit led2=P1^2;
sbit led5=P1^5;
sbit du=P2^6;//段选
sbit we=P2^7;//位选
sbit s1=P3^4;
sbit s2=P3^5;
sbit s3=P3^6;
sbit s4=P3^7;
sbit beep=P2^3;
sbit dot=P0^7;
unsigned char shifenmiaounitkeyvkeyavashiafenamiao;

void delay()   //1ms
  {
      unsigned char ab;
     
        for(b=102;b>0;b--)
          for(a=3;a>0;a--);
  }  

void delay5(void)   //误差 5ms
{
    unsigned char ab;
    for(b=15;b>0;b--)
        for(a=152;a>0;a--);
}

void delayhalf (void)   //误差 0.5s
{
    unsigned char abc;
    for(c=23;c>0;c--)
        for(b=152;b>0;b--)
            for(a=70;a>0;a--);
}


void display( unsigned char hfs)
 {
unsigned char code duma[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x770x38};
unsigned char code mawei[]={0xfe0xfd0xfb0xf70xef0xdf0xbf0x7f};
unsigned char shiwanwanqianbaishige;

shiwan=h/10;
wan=h%10;
qian=f/10;
bai=f%10;
shi=s/10;
 ge=s%10;

 P0=duma[shiwan];
  du=1;
  du=0;
  P0=mawei[0];
  we=1;
  we=0;
 delay();
  
  P0=duma[wan];
  dot=1;
  du=1;
  du=0;
  dot=0;
P0=mawei[1];
  we=1;
  we=0;
 delay();  
  
  P0=duma[qian];
  du=1;
  du=0;
  P0=mawei[2];
  we=1;
  we=0;
 delay();

P0=duma[bai];
  dot=1;
  du=1;
  du=0;
  dot=0;
P0=mawei[3];
  we=1;
  we=0;
 delay();

if(key!=1&&key!=2)
 {
P0=duma[shi];
  du=1;
  du=0;
  P0=mawei[4];
  we=1;
  we=0;
 delay();

 P0=duma[ge];
  du=1;
  du=0;
  P0=mawei[5];
  we=1;
  we=0;
  delay();
 }
if(key==1||key==2)//
 {
P0=duma[10];
  du=1;
  du=0;
  P0=mawei[4];
  we=1;
  we=0;
 delay();

 P0=duma[11];
  du=1;
  du=0;
  P0=mawei[5];
  we=1;
  we=0;
 delay(); 
 }
 
  P0=0xff;
  we=1;
  we=0;
}
////////////////////////
passtime()
{
if(unit==100)
{
miao++;
unit=0;
led1=!led1;
led2=!led2;
}
if(miao==60)
{
fen++;
miao=0;
}
if(fen==60)
{
shi++;
fen=0;
}
if(shi==24)
{
shi=0;
}
}

//////////////////////////////////////
void InitTimer0(void)//10ms
{
    TMOD = 0x01;
    TH0 = 0x0DC;
    TL0 = 0x00;
    EA = 1;
    ET0 = 1;
    TR0 = 1;
    unit=0;
}
void Timer0Interrupt(void) interrupt 1
{
    TH0 = 0x0DC;
    TL0 = 0x00;
   unit++ ;//add your code here!
passtime();
}

void adjustment(void)

if(s1==0)
  {
  delay5();
  if(s1==0)
    {
   while(!s1);
    
    amiao=0;
    key++;
    led5=0;
    if(key==5)
      {
       key=0;
       TR0=1;
       led5=1;
      }
    } 
   }//////s1 count 
 if(s2==0)
     {
      delay5();
      if(s2==0)
        {
         while(!s2);
         if(key==1)//alram
          {
           ashi++;
           if(ashi==24)
             {
              ashi=0; 
             }
           }
           if(key==2)
          {
           afen++;
           if(afen==60)
             {
              afen=0; 
             }
           }//alram

         if(key==4)/////
          {
           miao=

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-05-15 16:50  DS1302时钟带可调闹钟显示\
     目录           0  2014-05-15 16:50  DS1302时钟带可调闹钟显示\clock--HL-1\
     文件       12057  2013-07-29 23:16  DS1302时钟带可调闹钟显示\clock--HL-1\study
     文件       11844  2013-07-29 23:16  DS1302时钟带可调闹钟显示\clock--HL-1\study.LST
     文件       21841  2013-07-29 23:16  DS1302时钟带可调闹钟显示\clock--HL-1\study.M51
     文件       14103  2013-07-29 23:16  DS1302时钟带可调闹钟显示\clock--HL-1\study.OBJ
     文件        1354  2014-04-16 10:40  DS1302时钟带可调闹钟显示\clock--HL-1\study.Opt
     文件        2084  2014-04-16 10:40  DS1302时钟带可调闹钟显示\clock--HL-1\study.Uv2
     文件        5267  2013-07-29 23:16  DS1302时钟带可调闹钟显示\clock--HL-1\study.c
     文件        2757  2013-07-29 23:16  DS1302时钟带可调闹钟显示\clock--HL-1\study.hex
     文件          42  2013-07-29 23:16  DS1302时钟带可调闹钟显示\clock--HL-1\study.lnp
     文件         227  2014-04-16 10:40  DS1302时钟带可调闹钟显示\clock--HL-1\study.plg
     文件        1260  2013-07-29 23:16  DS1302时钟带可调闹钟显示\clock--HL-1\study_Opt.Bak
     文件        1679  2013-07-29 23:16  DS1302时钟带可调闹钟显示\clock--HL-1\study_Uv2.Bak
     文件         156  2013-07-29 23:16  DS1302时钟带可调闹钟显示\程序按键功能说明.txt

评论

共有 条评论