• 大小: 1.15MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-28
  • 语言: C/C++
  • 标签:

资源简介

基于proteus和51单片机的数字电子时钟,里面包含了proteus的文件,电子时钟的c语言程序,原理图,还有相关的资料。

资源截图

代码片段和文件信息

#include   
sbit ksec=P1^1;
sbit kmin=P1^2;
sbit khour=P1^3;
sbit pkey=P1^0;
 unsigned char secshi=0secge=0minshi=0minge=0hourshi=0hourge=0;
 unsigned int num=0sec=0min=0hour=0;
 unsigned char code table[10]={
                 0x40
                 0x79
     0x24
         0x30
     0x19
     0x12
     0x02
     0x58
     0x00
     0x10};
 void delay(unsigned int);
 void keyscan();
 void display();
 void init(void)
 {
TMOD=0x01; //定时器0工作在方式1
    TH0=(65536-50000)/256; //定时50ms定时器0高8位初值
    TL0=(65536-50000)%256; //定时50ms定时器0低8位初值
    EA=1;
    ET0=1;//开启中断允许寄存器
    TR0=1;//使TR0置位,启动定时器定时器便开始计数 ,计数溢出时,自动进入中断服务程序
 }
void main()
 {
   init();
   while(1)
      {display();//调用显示函数
       keyscan();//键盘扫描程序
      }
 }
 
void delay(unsigned int z)
 {
  unsigned int xy;
  for(x=z;x>0;x--)
   for(y=110;y>0;y--);
 }//延时函数

//时钟设置子程序
void time0() interrupt 1
 {num++;//计数加1
 TH0=(65536-50000)/256;     //重装初值
 TL0=(65536-50000)%256;
 }

// LED显示程序
void display()
 {if(num==20)
   {num=0; 
    sec++;//如果num=20则一秒时间到,秒加1
    if(sec==60)
     {sec=0;
      min++;//如果sec=60则一分钟时间到,分加1
      if(min==60)
        {min=0;
         hour++;//如果min=60则一小时时间到,小时加1
         if(hour==24)
           {hour=0;
            min=0;
            sec=0;//到了23点59分59秒时候 最后归零
            }
         }
      }
   }
 secge=sec%10;//秒求余
 secshi=sec/10;//秒求模
 minge=min%10;//分求余
 minshi=min/10;//分求模
 hourge=hour%10;//小时求余
 hourshi=hour/10;//小时求模

 P3=0x80;   //OXFE是什么?位选?选中10000000,最后一位,秒?
 P2=table[secge];  //段选
 delay(4);

 P3=0x40;   //01000000,选中秒的第十位
 P2=table[secshi];
 delay(4);

P3=0x20;   //00100000,选中分的个位
P2=table[minge];
delay(4);

P3=0x10;   //00010000 选中分的十位
P2=table[minshi];
delay(4);

 P3=0x08; //00001000,选中小时的个位
 P2=table[hourge];
 delay(4);

 P3=0x04;//00000111 ,选中小时的十位
 P2=table[hourshi];
 delay(4);
}
// 按键控制子程序
void keyscan()
 {if(ksec==0)
   {delay(5);
    if(ksec==0)
      {sec++;
       if(sec>=60)
       sec=0;
       }
      while(!ksec);
}

  if(kmin==0)
    {delay(5);
     if(kmin==0)
       {min++;
        if(min>=60)
        min=0;
        }
  while(!kmin);

     }

  if(khour==0)
    {delay(5);
     if(khour==0)
       {hour++;
        if(hour>=60)
        hour=0;
        }
  while(!khour) ;

  if(pkey==0)
  {delay(5);
   if(pkey==0)
       {   while(!pkey);
       TR0=~TR0;
EA=~EA;
            ET0=~ET0;
num=0;
    
    }
while(!pkey);

  }
  }
 }











 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     111689  2010-05-29 17:38  电子数字时钟\51单片机的数码管动态显示技术.pdf

     文件      23040  2010-05-27 19:56  电子数字时钟\8位7段数码管字符.doc

     文件       9814  2010-05-28 22:41  电子数字时钟\hb-3.asm

     文件       1179  2010-05-28 22:41  电子数字时钟\hb-6.hex

     文件     113958  2010-05-29 18:21  电子数字时钟\Last Loaded try.DBK

     文件       5115  2009-06-26 06:38  电子数字时钟\STARTUP.A51

     文件      11665  2010-05-29 22:38  电子数字时钟\STARTUP.LST

     文件        749  2010-05-29 22:38  电子数字时钟\STARTUP.OBJ

     文件       6779  2010-05-29 22:38  电子数字时钟\try

     文件       2845  2010-05-29 22:38  电子数字时钟\try.c

     文件     113958  2010-05-29 22:26  电子数字时钟\try.DSN

     文件       2143  2010-05-29 22:38  电子数字时钟\try.hex

     文件         39  2010-05-29 22:38  电子数字时钟\try.lnp

     文件       6308  2010-05-29 22:38  电子数字时钟\try.LST

     文件      10294  2010-05-29 22:38  电子数字时钟\try.M51

     文件       7356  2010-05-29 22:38  电子数字时钟\try.OBJ

     文件       1056  2010-05-29 22:40  电子数字时钟\try.Opt

     文件        572  2010-05-29 22:40  电子数字时钟\try.plg

     文件        742  2010-06-01 08:41  电子数字时钟\try.PWI

     文件       2654  2010-05-29 10:46  电子数字时钟\try.txt

     文件       2128  2010-05-29 11:02  电子数字时钟\try.Uv2

     文件     124778  2010-05-28 22:48  电子数字时钟\try3.DSN

     文件       1062  2010-05-29 22:11  电子数字时钟\try_Opt.Bak

     文件       2124  2010-05-29 11:01  电子数字时钟\try_Uv2.Bak

     文件     368946  2010-05-28 15:05  电子数字时钟\单片机电子时钟系统的设计与仿真.pdf

     文件     878080  2010-05-28 15:01  电子数字时钟\基于AT89C51芯片制作的数字时钟.doc

     文件     266752  2010-05-28 15:21  电子数字时钟\基于单片机的数字钟.ppt

     文件    2080256  2010-05-28 15:25  电子数字时钟\基于单片机的电子数字钟毕业设计.doc

     目录          0  2010-06-01 08:41  电子数字时钟

----------- ---------  ---------- -----  ----

............此处省略2个文件信息

评论

共有 条评论

相关资源