基于AT89C51的电子时钟

发布者:beta12最新更新时间:2015-07-13 来源: 51hei关键字:AT89C51  电子时钟 手机看文章 扫描二维码
随时随地手机看文章
最近闲着没时的时候又写了个基于AT89C51单片机的电子时钟,采用6位12小时制显示,运用了6个共阳数码管。具体功能如下:上午第一个数码管显示A,下午显示P,第四个数码管显示分隔符“-”,并且一秒闪烁一次。按键SW0调节分钟,SW1调节小时。下面是C程序和硬件电路图:
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit MG=P1^0;
sbit MS=P1^1;
sbit MM=P1^2;
sbit HG=P1^3;
sbit HS=P1^4;
sbit SD=P1^5;
bit shan;
code uchar NUM[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar sec,min,hour;
uchar hour1;
void delay(uint a)
{
 while(a--);
 }
 void init0 ()
 {
  TMOD=0x01;
  TL0=0xb0;
  TH0=0x3c;
  TR0=1;
  EA=1;
  ET0=1;
  }
void display_time()
{
 P0=NUM[min%10];
 MG=1;
 delay(300);
 P1=0x00;
 P0=NUM[min/10];
 MS=1;
 delay(300);
 P1=0x00;
  P0=0xbf;
  MM=shan;
  delay(300);
  P1=0x00;
 
   if(hour>12)
   {
    hour1=hour-12;
 }
 else
 {
 hour1=hour;
  }
   P0=NUM[hour1%10];
   HG=1;
   delay(300);
   P1=0x00;
   P0=NUM[hour1/10];
   HS=1;
   delay(300);
   P1=0x00;
   if(hour>=12)
 {
  P0=0x8c;
     SD=1;
     delay(300) ;
     P1=0x00;
 }
    else
  {
   P0=0x88;
   SD=1;
   delay(300);
   P1=0x00;
   }
}
void FT()
{
 while(P3==0xfe)
   display_time();
   sec=0;
   min++;
   if(min==60)
   min=0;
}
void ST()
{
  while(P3==0xfd)
    display_time();
   hour++;
   if(hour==24)
   hour=0;
}
 main()
{
  init0();
  hour=1;
  while(1)
  {
   display_time(); 
   if(P3==0xfe) FT();
  if(P3==0xfd) ST();
  }
 }[page]
void zhongduan() interrupt 1
{
  
  uchar a;
  TL0=0xb0;
  TH0=0x3c;
  a++;
  if(a==20)
  {
   a=0;
   shan=!shan;
   sec++;
  }
   if(sec==60)
  {
   sec=0;
   min++;
  }
 if(min==60)
 {
   min=0;
    hour++;
  }
 if(hour==24)
 {
  hour=0;
  }


 

  全部程序和硬件都是本人自己设计和实验通过,源码下载地址:http://www.51hei.com/f/dscdf.rar ,大家有兴趣可以自己按照这个图纸和程序做个,以后本人还会在这个基础上加入日期和闹钟功能!
关键字:AT89C51  电子时钟 引用地址:基于AT89C51的电子时钟

上一篇:用STC12C2052AD单片机制作的0-99V数字电压表
下一篇:自制高精度控制电热水瓶

推荐阅读最新更新时间:2024-03-16 14:24

AT89C51数控多路直流稳压电源
当今社会人们极大的享受着电子设备带来的便利,但是任何电子设备都有一个共同的电路--电源电路,直流电源趋向多功能和数字化方向。直流稳压电源的供电电源大都是交流电源,当交流供电电源的电压或负载电阻变化时,稳压器的直流输出电压都会保持稳定。 直流稳压电源随着电子设备向高精度、高稳定性和高可靠性的方向发展,对电子设备的供电电源提出了高的要求。本文以单片机为核心,构成可同时控制6路正负输出,具有定点显示和巡回显示等功能的数控直流稳压电源。    1 系统的功能和特点   系统有6路电压输出,其中3路为正,3路为负。电压调节范围为0~35 V ,最大输出电流(A )分别为5,2和1,具有过流保护功能。数字显示有5位,其中1位显示路号,1位
[电源管理]
<font color='red'>AT89C51</font>数控多路直流稳压电源
基于AT89C51单片机和放大器实现音频信号均幅控制放大电路的设计
引言 现在的学校,有许多已经采用计算机加网络多媒体系统来进行现场教学。此外,工程施工人员在施工现场进行对讲通话,驾驶人员在开动的坦克等自行火炮车辆上进行通话等,都避免不了讲话时嘈杂的背景噪声或无线干扰(包括网络射频干扰),因而声音有大有小。怎样才能使听到的广播声或耳机中说话的声音平稳清晰,本文给出了一种用SG270、LM4884电路配合AT89C51单片机来解决干扰问题的实现方案。 1 电路主要器件 1.1 SG270放大器 SG270电路为国产工业级(-40℃~+85℃)可控增益音频放大器,该芯片的1、2脚为正、反相信号输人端,A、B、C为压控输入端,增益控制电压范围为2.1~2.5 V,可通过输出反馈信号来即时进行自动增益
[单片机]
基于<font color='red'>AT89C51</font>单片机和放大器实现音频信号均幅控制放大电路的设计
自制AT89C51编程器,at89c51 programmer
AT89C51是一款应用最为广泛的8051单片机,更重要的是他具有反复烧写(FLASH)的特性。一般情况下可重复烧写1000次,这样为初学者试验提供了一个廉价的平台。为了满足广大单片机爱好者动手的需要,本人利用半个月的时间,参考国外资料,实际设计制作成功一款简单的AT89C51/52/55单片机编程器。由于单片机编程时序不同,这一款编程器仅仅支持ATMEL公司的AT89C51, AT89C52, AT89C55芯片,不支持华邦或飞利浦兼容芯片。 对于很多像我这样一些不算太年轻的从80年代组装7管半导体收音机入门的电子爱好者来说,面对单片机似乎显得有点怯场,但是事实上我以为他甚至比组装一个收音机更简单: 以下是它的硬件电路图, 稍微
[单片机]
自制<font color='red'>AT89C51</font>编程器,<font color='red'>at89c51</font> programmer
基于51单片机的电子时钟(数码管显示)
此次对于数码管进行一个简单的应用,同时可以设计一个电子小时钟,增加趣味性。 首先我们先进行原理图的讲解,这里我们直接使用的开发板,其原理连接图如下: 其中D(0~1)是连接在单片机的P0口上的。 从图中,我们可以看到,第一个74HC573是来控制8个数码管的位选的,就是说我要选种哪个数码管,这里的WE是低电平有效,比如说我想选中最后一个数码管,那么这里我就要将0x7f送到相应的I/O口。第二个74HC573是来控制数码管显示什么的这里0~9的16进制码如下: 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; 要想完成电子时钟,我们先要显示一个数值, 这里
[单片机]
基于51单片机的<font color='red'>电子时钟</font>(数码管显示)
MSP430和AT89C51单片机4x4键盘C程序
本程序在一位上显示按键,如果多位显示主程序需要修高为多位显示。本程序软件包括去抖功能,没有注释说明。 #include reg51.h #define uchar unsigned char #define uint unsigned int uint key,i; uchar temp,temp1,ms,buff; uchar tab ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80, 0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; void delay(ms) { while(ms--) { for(i=0;i 120;i++);
[单片机]
MSP430和<font color='red'>AT89C51</font>单片机4x4键盘C程序
STM32电子时钟1602显示仿真加程序
#include stm32f4xx.h #include delay.h #include seg.h #include timer.h unsigned int nian = 2020; char yue = 7; char ri = 16; char shi = 9; char fen = 31; char miao = 30; u8 bs=0;//存储时间的变量 u8 date ={0,0,0,0,0,0,0,0};//数据 u16 address ={0x0101,0x0102,0x0104,0x0108,0x0110,0x0120,0x0140,0x0180};//位码 char wendu = Date: ;
[单片机]
STM32<font color='red'>电子时钟</font>1602显示仿真加程序
用SG270/LM4884和AT89C51设计的音频信号均幅控制放大器
引言 现在的学校,有许多已经采用计算机加网络多媒体系统来进行现场教学。此外,工程施工人员在施工现场进行对讲通话,驾驶人员在开动的坦克等自行火炮车辆上进行通话等,都避免不了讲话时嘈杂的背景噪声或无线干扰(包括网络射频干扰),因而声音有大有小。怎样才能使听到的广播声或耳机中说话的声音平稳清晰?本文给出了一种用SG270、LM4884电路配合AT89C51单片机来解决干扰问题的实现方案。 1 电路主要器件 1.1 SG270放大器 SG270电路为国产工业级(-40℃~+85℃)可控增益音频放大器,该芯片的1、2脚为正、反相信号输人端,A、B、C为压控输入端,增益控制电压范围为2.1~2.5 V,可通过输出反馈信号来即时进行自动增益控制
[单片机]
用SG270/LM4884和<font color='red'>AT89C51</font>设计的音频信号均幅控制放大器
基于AT89C51应用系统的串行通信设计
1 引 言 在红外成像技术的电力设备状态检测系统中,基于AT89C51单片机的应用系统,采用美国雷态公司的型号为3iLRL3的非接触式红外测温仪.该测温仪采用的是RS232C串行通信标准接口,该接口在很多通信设备中通用,目前与PC机的直接串行通信也是RS 232C接口。尽管RS232C性能指标并非很好,但还是有广泛的市场支持。串行通信技术在测控系统中占有很重要的地位,只用三根线.就可以方便的在2个数字设备之间进行信息的交换,实现全双工的传送数据,硬件成本低.而且通用性好。 2 串行通信的硬件设计 在所开发的系统中.红外测温仪将检测电力没备的工作和环境温度,通过RS 232C串口传给单片机,同时由单片机控制检测装置的在
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved