最近闲着没时的时候又写了个基于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;
}
}
关键字:AT89C51 电子时钟
引用地址:
基于AT89C51的电子时钟
推荐阅读最新更新时间:2024-03-16 14:24
AT89C51数控多路直流稳压电源
当今社会人们极大的享受着电子设备带来的便利,但是任何电子设备都有一个共同的电路--电源电路,直流电源趋向多功能和数字化方向。直流稳压电源的供电电源大都是交流电源,当交流供电电源的电压或负载电阻变化时,稳压器的直流输出电压都会保持稳定。 直流稳压电源随着电子设备向高精度、高稳定性和高可靠性的方向发展,对电子设备的供电电源提出了高的要求。本文以单片机为核心,构成可同时控制6路正负输出,具有定点显示和巡回显示等功能的数控直流稳压电源。 1 系统的功能和特点
系统有6路电压输出,其中3路为正,3路为负。电压调节范围为0~35 V ,最大输出电流(A )分别为5,2和1,具有过流保护功能。数字显示有5位,其中1位显示路号,1位
[电源管理]
基于AT89C51单片机和放大器实现音频信号均幅控制放大电路的设计
引言 现在的学校,有许多已经采用计算机加网络多媒体系统来进行现场教学。此外,工程施工人员在施工现场进行对讲通话,驾驶人员在开动的坦克等自行火炮车辆上进行通话等,都避免不了讲话时嘈杂的背景噪声或无线干扰(包括网络射频干扰),因而声音有大有小。怎样才能使听到的广播声或耳机中说话的声音平稳清晰,本文给出了一种用SG270、LM4884电路配合AT89C51单片机来解决干扰问题的实现方案。 1 电路主要器件 1.1 SG270放大器 SG270电路为国产工业级(-40℃~+85℃)可控增益音频放大器,该芯片的1、2脚为正、反相信号输人端,A、B、C为压控输入端,增益控制电压范围为2.1~2.5 V,可通过输出反馈信号来即时进行自动增益
[单片机]
自制AT89C51编程器,at89c51 programmer
AT89C51是一款应用最为广泛的8051单片机,更重要的是他具有反复烧写(FLASH)的特性。一般情况下可重复烧写1000次,这样为初学者试验提供了一个廉价的平台。为了满足广大单片机爱好者动手的需要,本人利用半个月的时间,参考国外资料,实际设计制作成功一款简单的AT89C51/52/55单片机编程器。由于单片机编程时序不同,这一款编程器仅仅支持ATMEL公司的AT89C51, AT89C52, AT89C55芯片,不支持华邦或飞利浦兼容芯片。 对于很多像我这样一些不算太年轻的从80年代组装7管半导体收音机入门的电子爱好者来说,面对单片机似乎显得有点怯场,但是事实上我以为他甚至比组装一个收音机更简单: 以下是它的硬件电路图, 稍微
[单片机]
基于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; 要想完成电子时钟,我们先要显示一个数值, 这里
[单片机]
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++);
[单片机]
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: ;
[单片机]
用SG270/LM4884和AT89C51设计的音频信号均幅控制放大器
引言 现在的学校,有许多已经采用计算机加网络多媒体系统来进行现场教学。此外,工程施工人员在施工现场进行对讲通话,驾驶人员在开动的坦克等自行火炮车辆上进行通话等,都避免不了讲话时嘈杂的背景噪声或无线干扰(包括网络射频干扰),因而声音有大有小。怎样才能使听到的广播声或耳机中说话的声音平稳清晰?本文给出了一种用SG270、LM4884电路配合AT89C51单片机来解决干扰问题的实现方案。 1 电路主要器件 1.1 SG270放大器 SG270电路为国产工业级(-40℃~+85℃)可控增益音频放大器,该芯片的1、2脚为正、反相信号输人端,A、B、C为压控输入端,增益控制电压范围为2.1~2.5 V,可通过输出反馈信号来即时进行自动增益控制
[单片机]
基于AT89C51应用系统的串行通信设计
1 引 言 在红外成像技术的电力设备状态检测系统中,基于AT89C51单片机的应用系统,采用美国雷态公司的型号为3iLRL3的非接触式红外测温仪.该测温仪采用的是RS232C串行通信标准接口,该接口在很多通信设备中通用,目前与PC机的直接串行通信也是RS 232C接口。尽管RS232C性能指标并非很好,但还是有广泛的市场支持。串行通信技术在测控系统中占有很重要的地位,只用三根线.就可以方便的在2个数字设备之间进行信息的交换,实现全双工的传送数据,硬件成本低.而且通用性好。
2 串行通信的硬件设计
在所开发的系统中.红外测温仪将检测电力没备的工作和环境温度,通过RS 232C串口传给单片机,同时由单片机控制检测装置的在
[工业控制]