基于数码管的电子时钟设计

合集下载

基于单片机电子时钟的设计与实现

基于单片机电子时钟的设计与实现

基于单片机电子时钟的设计与实现一、设计目标设计一个基于单片机的电子时钟,能够准确显示时间并能够进行设置和调整。

二、硬件设计1.时钟部分:采用晶振芯片提供准确的时钟信号2.数码管显示部分:使用共阴数码管进行数字显示3.按键部分:设计几个按键用于设置和调整时间4.电源部分:采用直流电源供电三、软件设计1.功能设计a.时间设置功能:通过按键可以设置当前的时间,包括小时、分钟和秒钟。

b.时间调整功能:通过按键可以调整当前的时间,包括小时、分钟和秒钟。

c.时间显示功能:通过数码管可以实时显示当前的时间。

2.代码实现以C语言为例,以下是一个基于单片机的电子时钟的代码实现示例:```c#include <reg51.h>sbit DS18B20=P1^3; // 定义18B20数据线接口sbit beep=P2^3; // 定义蜂鸣器接口unsigned char hour,min,sec; // 定义小时、分钟、秒钟变量//函数声明void Delay_1ms(unsigned int count);bit Ds18b20Init(;unsigned char Ds18b20ReadByte(;void ReadTime(;void WriteTime(;void DisplayTime(;//主函数void mainP2=0x00;WriteTime(; // 写入时间while(1)ReadTime(; // 读取时间DisplayTime(; // 显示时间Delay_1ms(1000); // 延时1秒}//毫秒延时函数void Delay_1ms(unsigned int count) unsigned int i, j;for(i=0; i<count; i++)for(j=0; j<1275; j++);//18B20初始化函数bit Ds18b20Initbit presence;DS18B20=0;Delay_1ms(100); // 延时450us~1000us DS18B20=1;Delay_1ms(10); // 延时15us~60us presence=DS18B20;Delay_1ms(30); // 延时60us~240us return presence;//18B20读取字节函数unsigned char Ds18b20ReadByte unsigned char i, dat;for(i=0; i<8; i++)DS18B20=0;//主机发起读时序_nop_(; // 延时1us_nop_(; // 延时1us_nop_(; // 延时1usDS18B20=1;//主机释放总线_nop_(; // 延时1us_nop_(; // 延时1us_nop_(; // 延时1usdat,=(DS18B20<<i); // 读取数据位,存放在dat变量中Delay_1ms(3); // 读时序完成后等待48us再接收下一位}return dat;//读取时间函数void ReadTimeunsigned char temp;temp=0x00;while(temp!=0xaa)Ds18b20Init(; // 初始化温度传感器Delay_1ms(1);DS18B20=0xcc;Delay_1ms(1);DS18B20=0xbe;Delay_1ms(1);temp=Ds18b20ReadByte(; // 读取时间数组的标志位}for(temp=0; temp<7; temp++)//写入时间函数void WriteTimeunsigned char i,j;while(1)Ds18b20Init(;Delay_1ms(1);DS18B20=0xcc;Delay_1ms(1);DS18B20=0x4e;Delay_1ms(1);for(i=0; i<7; i++)DS18B20=0x55;Delay_1ms(1);DS18B20=0xaa;Delay_1ms(1);Ds18b20Init(;Delay_1ms(1);DS18B20=0xcc;Delay_1ms(1);DS18B20=0x48;Delay_1ms(1);j=Ds18b20ReadByte(; // 判断是否写入成功if(j==0x0a)break;}//显示时间函数void DisplayTimeP1=seg[hour/10]; // 显示十位小时P2=(P2&0xf0),0x08; // 点亮第一个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=seg[hour%10]; // 显示个位小时P2=(P2&0xf0),0x04; // 点亮第二个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=seg[min/10]; // 显示十位分钟P2=(P2&0xf0),0x02; // 点亮第三个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=seg[min%10]; // 显示个位分钟P2=(P2&0xf0),0x01; // 点亮第四个数码管Delay_1ms(5); // 延时一段时间P2=0x0f;//熄灭数码管P1=0x00;//空显示P2=0x00;//熄灭数码管```四、总结通过以上的硬件设计和软件实现,可以实现一个基于单片机的电子时钟。

毕业设计论文_单片机电子时钟的设计

毕业设计论文_单片机电子时钟的设计

毕业设计论文_单片机电子时钟的设计摘要:电子时钟作为一种常见的时间显示装置,在现代社会中应用广泛。

本文设计了一款基于单片机的电子时钟,使用DS1307实时时钟芯片来获取系统时间,并通过数码管进行显示。

设计过程中,通过对单片机的编程和电路的连接,实现了时间的显示与调节功能,具有较高的准确性和稳定性。

该设计方案简单、实用,可用于各种场合。

关键词:单片机;电子时钟;DS1307;数码管1.引言电子时钟是一种利用电子技术构造的显示时间的装置,具有时间准确、使用简单、显示清晰等特点,广泛应用于生活和工作中。

本文以单片机为核心,设计了一款实时准确的电子时钟,提高了时间的准确度和稳定性。

2.设计原理该设计的核心是通过单片机与DS1307实时时钟芯片的连接,使得单片机可以获取到准确的系统时间,并通过数码管进行显示。

DS1307芯片通过I2C总线与单片机连接,通过读取芯片中的时间寄存器,单片机可以获得当前的时间信息。

3.硬件设计本设计中使用了AT89S52单片机作为主控芯片,通过引脚与DS1307芯片相连。

单片机的P0口接到数码管的段选信号,P1口接到数码管的位选信号,通过控制这两个口的输出状态,可实现对数码管上显示的数字进行控制。

同时,为了使时钟可以正常运行,需外接一个晶振电路为单片机提供时钟信号。

4.软件设计通过对单片机的编程,实现了以下功能:(1)初始化DS1307芯片,设置初始时间;(2)每隔一秒读取一次DS1307芯片的时间寄存器,将时间信息保存到单片机的RAM中;(3)根据当前时间信息,在数码管上显示对应的小时和分钟。

5.调试与测试经过硬件的连接以及软件的编写,进行了调试与测试。

将初始时间设置为08:30,观察数码管上的显示是否正确,以及时间是否准确。

同时,通过手动调节DS1307芯片中的时间,检查单片机是否能正确获取时间,并进行显示。

6.总结与展望本文设计了一款基于单片机的电子时钟,通过单片机与DS1307芯片的连接和编程,实现了准确的时间显示功能。

基于FPGA的数字钟设计

基于FPGA的数字钟设计

数字钟的设计一、 设计要求设计一个数字钟,要求用数码管分别显示时、分、秒的计数,同时可以进行时间设置,并且要求在整点的时候能够实现报时功能。

二、 设计原理计数器在正常工作下是对1Hz的频率计数,在调整时间状态下是对调整的时间模块进行计数;控制按键来选择是正常计数还是调整时间,并决定是调整时还是分;时间显示的LED数码管采用动态扫描实现;在整点到达时,还具有整点报时功能。

三、 电路符号数字钟电路符号如下图所示。

CLK2为分频之前的信号,CLR为清零端,CCK 为校时允许端。

MC为分信号调整端,HC为时信号调整端。

HH[3..0]为时高位,HL[3..0]为时低位,MH[3..0]为分高位,ML[3..0]为分低位,SH[3..0]为秒高位,SL[3..0]为秒低位。

DOUT[6..0]是数码管驱动,SEG[5..0]是位选择信号,RING是整点报时信号。

四、 设计方法本设计的电子时钟包括:分频模块、计时模块、校时模块、动态扫描译码显示模块和整点报时模块。

下面通过各个模块的设计来了解电子时钟的构成:一、 分频模块程序附录:module clk2clk1s(clk,clk1s); input clk;output clk1s;reg clk1s;reg [3:0] cnt;always@(posedge clk)if(cnt==4'b1111)beginclk1s<=~clk1s;cnt<=0;endelsecnt<=cnt+1; endmodule波形仿真:二、 计时模块六十进制计数器六十进制计数器程序附录:六十进制计数器模块:module m60(clk,clr,qh,ql,cao);input clk,clr;output cao;output[3:0] qh,ql;reg [3:0] qh,ql;reg cao;always @(posedge clk or negedge clr) beginif(clr==0)beginqh<=4'h0;ql<=4'h0;cao<=0;endelse if(ql==9)beginql<=0;if(qh==5)beginqh<=0;cao<=1;endelse qh=qh+1;endelsebeginql<=ql+1;cao<=0;endendendmodule二十四进制计数器模块:module m24(clk,clr,qh,ql);input clk,clr;output[3:0] qh,ql;reg [3:0] qh,ql;always @(posedge clk or negedge clr) beginif(clr==0)beginqh<=4'h0;ql<=4'h0;endelse if(qh==2)beginql<=ql+1;if(ql==3)beginqh<=0;ql<=0;endendelse if(ql==9)beginqh<=qh+1;ql<=0;endelseql<=ql+1; end endmodule波形仿真:清零清零正常计时三、 校时模块四、 动态译码显示模块CCK 为0不支持校时,有进位信号时产生分(时)脉冲程序附录:1、位扫描信号(HH,HL,MH,ML,SH,SL逐位扫描,并输出)module sel(clk,hh,hl,mh,ml,sh,sl,out);input clk;input [3:0] hh,hl,mh,ml,sh,sl;output [3:0] out;reg [3:0] out;reg [3:0] ss=0;always @(posedge clk)beginif(ss<4'b0101)ss<=ss+1;elsess<=0;endalways @(posedge clk)begincase(ss)4'd0:out<=sl;4'd1:out<=sh;4'd2:out<=ml;4'd3:out<=mh;4'd4:out<=hl;4'd5:out<=hh;endendmodule仿真图:2、段扫描信号(选择数码管点亮哪一位)module seg(clk,seg);input clk;output [5:0] seg;reg [5:0] seg;reg [3:0] ss=0;always @(posedge clk)beginif(ss<4'b0101)ss<=ss+1;elsess<=0;endalways @(posedge clk)begincase(ss)4'd0:seg<=6'b111110;4'd1:seg<=6'b111101;4'd2:seg<=6'b111011;4'd3:seg<=6'b110111;4'd4:seg<=6'b101111;4'd5:seg<=6'b011111;default:seg<=6'b111111;endcaseend3、4—7译码module decode4_7(decodeout,indec); output[6:0] decodeout;input[3:0] indec;reg[6:0] decodeout;always @(indec)begincase(indec)4'd0:decodeout=7'b1111110;4'd1:decodeout=7'b0110000;4'd2:decodeout=7'b1101101;4'd3:decodeout=7'b1111001;4'd4:decodeout=7'b0110011;4'd5:decodeout=7'b1011011;4'd6:decodeout=7'b1011111;4'd7:decodeout=7'b1110000;4'd8:decodeout=7'b1111111;4'd9:decodeout=7'b1111011;default: decodeout=7'b0000000;endcaseendendmodule五、 整点报时模块六、 数字钟仿真图数字钟的设计注:动态扫描的时钟频率尽量要快。

基于单片机及时钟芯片DS1302的电子时钟设计

基于单片机及时钟芯片DS1302的电子时钟设计

基于单片机及时钟芯片DS1302的电子时钟设计一、概述二、电子时钟的基本原理电子时钟是一种以单片机为核心的智能电子产品,采用数字电路来显示时间。

电子时钟的核心部件是一个定时器,通过周期性的计数来确定时间,然后再将计数器的结果通过数码管等显示装置进行显示。

除此之外,电子时钟还需要一个能够准确计时的时钟芯片,如本文所使用的时钟芯片DS1302。

三、电子时钟的设计方法本文设计的电子时钟采用AT89C52单片机和时钟芯片DS1302,并通过外围的驱动电路和数码管来实现时间的显示。

该电子时钟具有以下特点:1.可进行24小时制和12小时制的切换:电子时钟可以通过按键实现24小时制和12小时制的切换,可按需选择。

2.自动夏令时判断:电子时钟可自动识别夏令时,并根据设定值进行切换,方便易用。

3.温度显示:电子时钟的DS1302时钟芯片自带温度探测器,可实现温度的实时显示。

本文所设计的电子时钟的硬件设计方案如下:1.主控芯片:采用AT89C52单片机2.显示装置:采用数码管进行时分秒的显示,共4位数码管。

3.时钟芯片:采用DS1302时钟芯片,保证时间的准确性。

5.电源:采用开关电源或锂电池供电。

锂电池供电时,电子时钟可实现断电后不重置的功能。

1.初始化:在电子时钟启动时,需要对各个模块进行初始化,如DS1302时钟芯片的读写口、数码管和按键都需要进行初始化。

2.频率切换:按下切换按键后,电子时钟的频率从24小时制切换到12小时制。

3.设定夏令时:按下设定按键后,可以进行夏令时设定。

设定值以秒为单位存储,在夏季过渡期改变时,只需修改设定值即可。

5.时间的显示:通过程序将DS1302时钟芯片中的时间读出并在数码管上显示,实现实时显示的功能。

五、总结本文设计的基于单片机及时钟芯片DS1302的电子时钟,可通过按键实现24小时制和12小时制的切换、自动夏令时判断、温度显示等多种功能,实现了电子时钟的多种要求和需求。

该设计方案具有简单实用、成本低廉、易于维护等优点,可广泛应用于各个领域。

基于51的电子闹钟设计报告(附原理图、PCB图、程序)

基于51的电子闹钟设计报告(附原理图、PCB图、程序)

基于51的电⼦闹钟设计报告(附原理图、PCB图、程序)成都信息⼯程学院第五届嵌⼊式创新技术⼤赛基于MCS51的智能电⼦闹钟设计报告姓名学院班级实物图⽬录1.电⼦时钟的设计原理和⽅法 (1)1.1设计原理 (1)1.2 硬件电路的设计 (1)1.2.1 STC89C51RC简介 (1)1.2.2 键盘电路的设计 (2)1.2.3蜂鸣器驱动电路 (3)1.2.4 数码管驱动电路 (3)1.2.5 电源电路 (4)1.3软件部分的设计 (4)1.3.1主程序部分的设计 (4)1.3.2中断计时器及时间进位 (5)1.3.3 闹钟⼦函数 (7)1.3.4 按键扫描 (8)1.3.5 时钟闹钟设置 (9)1.3.6 显⽰数字函数 (10)1.3.7 显⽰界⾯函数 (10)1.3.8 闹钟记录及读取 (11)2.硬件调试 (13)附录A:电路原理图 (15)附录B:电路PCB图 (16)附录C:源程序 (17)1.电⼦时钟的设计原理和⽅法1.1设计原理系统框图1.2硬件电路的设计1.2.1 STC89C51RC简介STC89C52R CSTC89C51RC是⼀种带8K闪烁可编程可擦除只读存储器(FPETOM-FlashProgrammabalandErasableReadOnlyMemory )的低电压、⾼性能CMOS8位微型处理器,即单⽚机芯⽚。

单⽚机的可擦除只读存储器可以反复擦除1000次,内部FLASH 擦写次数为100000次以上。

该芯⽚使⽤⾼密度⾮易失存储制造技术,与⼯业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU 和闪烁存储器集成在单个芯⽚中,使得STC89C51RC 成为了⼀种性价⽐极⾼的微型处理器芯⽚,在许多电路设计中都得到了应⽤。

STC89C51RC 单⽚机特点:⼯作电压:5.5V-3.4V ⼯作频率:0-40MHz ⽤户应⽤程序空间:8K ⽚上集成128*8RAMISP (在系统可编程)/IAP (在应⽤可编程),⽆需专⽤编程器/仿真器可通过串⼝(P3.0/P3.1)直接下载⽤户程序EEPROM 功能共3个16位定时器/计数器,其中定时0还可以当成2个8位定时器使⽤外部中断4路通⽤异步串⾏⼝(UART ),还可⽤定时器软件实现多个UART ⼯作温度范围:0-75℃引脚说明:VCC:供电电压 GND :接地P0:P0是⼀个8位漏级开路双向I/O ⼝,低8位地址复⽤总线端⼝。

LED数码管设计的可调式电子钟说明说

LED数码管设计的可调式电子钟说明说

LED数码管设计的可调式电子钟说明说可调式电子钟的设计理念是提供用户多样化的时间显示和闹钟设定选项,以满足用户不同的需求和喜好。

以下是对设计的详细说明:1.数码管显示:LED数码管采用7段共阳极连接方式,每个数码管由7个LED灯组成,通过控制各个LED灯的点亮与否,可以显示0-9的数字。

数码管的显示仿真效果要清晰、鲜明,确保用户可以轻松辨认时间。

2.时间调节功能:可调式电子钟具备时间调节的功能,用户可以通过按钮或旋钮调整时间。

其中旋钮可以实现小时和分钟的调节,而按钮可以实现小时和分钟的增加或减少。

设计时需考虑人机交互的便利性,确保时间调节操作简单明了。

3.闹钟设定:可调式电子钟还具备闹钟功能,用户可以设定一个或多个闹钟时间点。

用户可以通过按钮或旋钮设置闹钟的小时和分钟,还可以设定是否重复响铃。

闹铃可以通过声音、震动或LED灯闪烁等方式提醒用户。

为了避免误操作,设计时需要考虑设置闹钟的过程,确保用户能够轻松设置闹钟。

4.电源供应:可调式电子钟可采用外部电源或内置电池供电。

设计时需考虑到电源的稳定性和可靠性,确保时钟长时间准确运行。

当外部电源断开时,内置电池可以提供备用电源,防止时间设置的丢失。

5.背光功能:可调式电子钟还可以考虑添加背光功能,在光线不好的情况下,用户可以通过按下按钮或通过传感器自动点亮背光。

背光的亮度可以根据用户偏好进行调节。

6.美观设计:除了功能性,可调式电子钟的外观设计也很重要。

设计时可以考虑采用简约设计风格,以及时尚的外壳材料。

同时,数字显示的对齐和间距,以及按钮和旋钮的位置、大小都需要细致推敲,确保整体外观美观大方。

总之,可调式电子钟的设计需要满足用户对时间显示和闹钟功能的需求。

通过合理的控制功能,人性化的设计以及简洁好看的外观,可为用户提供一台方便、易用的电子钟。

74LS161电子时钟设计

74LS161电子时钟设计

74LS161电子时钟设计首先,我们需要生成一个稳定的时钟信号,用于驱动计数器的计数。

可以使用定时器芯片或者晶振电路来生成一个准确的时钟信号。

在本设计中,我们使用一个1Hz的晶振电路来生成时钟信号。

接下来,我们需要将计数器芯片74LS161与显示模块连接起来,以显示时间数据。

我们可以使用数码管作为显示模块,利用74LS161的输出线连接到数码管的显示线上。

74LS161的输出线共有四个,分别对应四位二进制数的四个位。

我们需要将四个输出线与四个数码管的显示线相连接,使得74LS161的输出可以被数码管显示出来。

然后,我们需要将计数器的计数范围设置为12小时制。

由于74LS161是一个四位计数器,可以表示的最大数为15(二进制1111),所以我们需要在12小时范围内进行循环计数。

为了实现这一功能,我们可以将计数器的CLR端口(清零端口)与一个12小时的比较器相连,当计数器达到12时,比较器输出高电平,将CLR端口拉低,实现清零操作。

此外,我们还可以添加时间数据的设置功能,以让用户可以自由设置时间。

可以使用按钮来控制时间的设置操作。

当用户按下设置按钮时,可以通过74LS161的LOAD端口来锁存时间数据。

在锁存状态下,用户可以通过增加或减少按钮来修改时间。

当用户完成设置后,再次按下设置按钮,锁存状态解除,时间数据开始更新。

最后,为了使电子时钟更加美观,我们可以添加LED背光灯。

可以使用74LS161的输出线来驱动LED灯,使得LED灯在时间数据显示时亮起,提高可视性。

在整个设计过程中,需要注意的是信号的稳定性和准确性。

时钟信号的稳定性将直接影响时间数据的准确性。

因此,在选择晶振电路或者定时器芯片时,需要选择稳定性好的产品,保证时钟信号的准确性。

另外,还需要注意电平的匹配,避免因电平不匹配而导致显示不正确的情况发生。

以上是一个基本的74LS161电子时钟设计,通过合理的连接和功能设置,可以实现准确显示和修改时间数据的功能。

电子设计自动化(EDA)_数字时钟程序模块(LED数码管显示)_实验报告

电子设计自动化(EDA)_数字时钟程序模块(LED数码管显示)_实验报告

电子设计自动化(EDA)—数字时钟LED数码管显示二、实验内容和实验目的1. 6个数码管动态扫描显示驱动2. 按键模式选择(时\分\秒)与闹钟(时\分)调整控制,3. 用硬件描述语言(或混合原理图)设计时、分、秒计数器模块、闹钟模块、按键控制状态机模块、动态扫描显示驱动模块、顶层模块。

要求使用实验箱左下角的6个动态数码管(DS6 A~DS1A)显示时、分、秒;要求模式按键和调整按键信号都取自经过防抖处理后的按键跳线插孔。

实验目的: 1)学会看硬件原理图, 2)掌握FPGA硬件开发的基本技能3)培养EDA综合分析、综合设计的能力三、实验步骤、实现方法(或设计思想)及实验结果主要设备: 1)PC机, 2)硬件实验箱, 3)Quartus II软件开发平台。

1.打开Quartus II , 连接实验箱上的相关硬件资源, 如下图1所示。

2.建立新文件, 选择文本类型或原理图类型。

3. 编写程序。

4.编译5. 仿真, 加载程序到芯片, 观察硬件输出结果(数码管显示)6.结果正确则完成。

若结果不正确, 则修改程序, 再编译, 直到正确。

模24计数器模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY count24 ISPORT(clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END count24;ARCHITECTURE arc OF count24 ISSIGNAL a,b:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk,en)BEGINhh<=a;hl<=b;IF(clk'EVENT AND clk='1') THENIF(en='1') THENIF(a="0010" AND b="0011") THENa<="0000";b<="0000";ELSE IF(b="1001") THENa<=a+'1';b<="0000";ELSE b<=b+'1';END IF;END IF;IF(a="0010" AND b="0010") THENcout<='1';ELSE cout<='0';END IF;END IF;END IF;END PROCESS;END arc;模60计数器模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY count60 ISPORT(clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END count60;ARCHITECTURE arc OF count60 ISSIGNAL a,b:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL sout:STD_LOGIC;BEGINPROCESS(clk)BEGINhh<=a; hl<=b;IF(clk'EVENT AND clk='1') THENIF(en='1') THENIF(a="0101" AND b="1001") THENa<="0000";b<="0000";ELSE IF(b="1001") THENa<=a+'1';b<="0000";ELSE b<=b+'1';END IF;END IF;END IF;END IF;END PROCESS;sout<='1' WHEN a="0101" AND b="1001" ELSE '0';cout<=sout AND en;END arc;4-7显示译码模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY segment4to7 ISPORT(s:IN STD_LOGIC_VECTOR(3 DOWNTO 0);a,b,c,d,e,f,g:OUT STD_LOGIC);END segment4to7;ARCHITECTURE arc OF segment4to7 IS SIGNAL y:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGINa<= y(6);b<= y(5);c<= y(4);d<= y(3);e<= y(2); f<= y(1);g<= y(0);PROCESS(s)BEGINCASE s ISWHEN "0000"=>y<="1111110"; WHEN "0001"=>y<="0110000"; WHEN "0010"=>y<="1101101"; WHEN "0011"=>y<="1111001"; WHEN "0100"=>y<="0110011"; WHEN "0101"=>y<="1011011"; WHEN "0110"=>y<="1011111"; WHEN "0111"=>y<="1110000"; WHEN "1000"=>y<="1111111"; WHEN "1001"=>y<="1111011"; WHEN OTHERS=>y<="0000000"; END CASE;END PROCESS;END arc;带闹钟控制模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mode_adjust_with_alarm ISPORT (adjust,mode,clk1hz: IN STD_LOGIC;clkh,enh,clkm,enm,clks,enha: OUT STD_LOGIC;clkh_a,clkm_a:OUT STD_LOGIC;mode_ss: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END mode_adjust_with_alarm;ARCHITECTURE arc OF mode_adjust_with_alarm ISTYPE mystate IS (s0,s1,s2,s3,s4,s5);SIGNAL c_state,next_state: mystate;BEGINPROCESS (c_state)BEGINCASE c_state ISWHEN s0=> next_state <= s1; clkh<=clk1hz; clkm<=clk1hz; clks<=clk1hz;enh<='0'; enm<='0'; enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="000";WHEN s1=> next_state <= s2; clkh<=adjust; clkm<= '0'; clks<='0';enh<='1'; enm<='0';enha<='0'; clkh_a<= '0';clkm_a<= '0'; mode_ss <="001";WHEN s2=> next_state <= s3; clkh<= '0'; clkm<=adjust; clks <= '0';enh<='0';enm<='1';enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="010";WHEN s3=> next_state <= s4; clkh<= '0'; clkm<= '0'; clks<=adjust;enh<='0'; enm<='0';enha<='0'; clkh_a<= '0'; clkm_a<= '0'; mode_ss <="011";WHEN s4=> next_state <= s5; clkh<= clk1hz; clkm<= clk1hz; clks<=clk1hz;enh<='0';enm<='0';enha<='1'; clkh_a<=adjust; clkm_a<= '0'; mode_ss <="100";WHEN s5=> next_state <= s0; clkh<= clk1hz; clkm<= clk1hz; clks<=clk1hz;enh<='0'; enm<='0'; enha<='0'; clkh_a<= '0'; clkm_a<=adjust; mode_ss <="101";END CASE;END PROCESS;PROCESS (mode)BEGINIF (mode'EVENT AND mode='1') THENc_state<=next_state ;END IF;END PROCESS;END arc;扫描模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY scan ISPORT(clk256hz:IN STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END scan;ARCHITECTURE arc OF scan ISTYPE mystate IS (s0, s1,s2,s3,s4,s5);SIGNAL c_state,next_state: mystate;BEGINPROCESS ( c_state )BEGINCASE c_state ISWHEN s0=> next_state <=s1; ss<="010";WHEN s1=> next_state <=s2; ss<="011";WHEN s2=> next_state <=s3; ss<="100";WHEN s3=> next_state <=s4; ss<="101";WHEN s4=> next_state <=s5; ss<="110";WHEN s5=> next_state <=s0; ss<="111";END CASE;END PROCESS;PROCESS (clk256hz)BEGINIF (clk256hz'EVENT AND clk256hz='1') THENc_state<=next_state ;END IF;END PROCESS;END arc;复用模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux ISPORT(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla:IN STD_LOGIC_VECTOR(3 DOWNTO 0);ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);alarm:OUT STD_LOGIC);END mux;ARCHITECTURE arc OF mux ISSIGNAL a,hhtmp,hltmp,mhtmp,mltmp,shtmp,sltmp:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(mode_ss)BEGINCASE mode_ss ISWHEN "000"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "001"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "010"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "011"=>hhtmp<=hh; hltmp<=hl; mhtmp<=mh; mltmp<=ml; shtmp<=sh; sltmp<=sl;WHEN "100"=> hhtmp<=hha; hltmp<=hla; mhtmp<=mha; mltmp<=mla; shtmp<=sh; sltmp<=sl;WHEN "101"=> hhtmp<=hha; hltmp<=hla; mhtmp<=mha; mltmp<=mla; shtmp<=sh; sltmp<=sl;WHEN OTHERS=>hhtmp<="0000";hltmp<="0000";mhtmp<="0000";mltmp<="0000";shtmp<="0000";sltmp<="0000"; END CASE;END PROCESS;PROCESS(ss)BEGINCASE ss ISWHEN "010"=> a <=hhtmp;WHEN "011"=> a <=hltmp;WHEN "100"=> a <=mhtmp;WHEN "101"=> a <=mltmp;WHEN "110"=> a <=shtmp;WHEN "111"=> a <=sltmp;WHEN OTHERS => a <="0000";END CASE;y<=a;END PROCESS;alarm<='1' WHEN ((hh=hha)AND(hl=hla)AND(mh=mha)AND(ml=mla)) ELSE '0';END arc;闪烁模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY blink_control ISPORT(ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);blink_en:OUT STD_LOGIC);END blink_control;ARCHITECTURE arc OF blink_control ISBEGINPROCESS (ss,mode_ss)BEGINIF(ss="010" AND mode_ss="001") THEN blink_en<='1';ELSIF(ss="011" AND mode_ss="001") THEN blink_en<='1';ELSIF(ss="100" AND mode_ss="010") THEN blink_en<='1';ELSIF(ss="101" AND mode_ss="010") THEN blink_en<='1';ELSIF(ss="110" AND mode_ss="011") THEN blink_en<='1';ELSIF(ss="111" AND mode_ss="011") THEN blink_en<='1';ELSIF(ss="010" AND mode_ss="100") THEN blink_en<='1';ELSIF(ss="011" AND mode_ss="100") THEN blink_en<='1';ELSIF(ss="100" AND mode_ss="101") THEN blink_en<='1';ELSIF(ss="101" AND mode_ss="101") THEN blink_en<='1';ELSE blink_en<='0';END IF;END PROCESS;END arc;Top文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY design3 ISPORT (mode,adjust,clk1hz,clk2hz,clk256hz,clk1khz:IN STD_LOGIC;alarm,a,b,c,d,e,f,g:OUT STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END design3;ARCHITECTURE arc OF design3 ISCOMPONENT mode_adjust_with_alarm PORT (adjust,mode,clk1hz: IN STD_LOGIC;clkh,enh,clkm,enm,clks,enha: OUT STD_LOGIC;clkh_a,clkm_a:OUT STD_LOGIC;mode_ss: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT;COMPONENT scan PORT (clk256hz:IN STD_LOGIC;ss:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT;COMPONENT segment4to7 PORT (s: IN STD_LOGIC_VECTOR(3 DOWNTO 0);a,b,c,d,e,f,g: OUT STD_LOGIC);END COMPONENT;COMPONENT mux PORT(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla:IN STD_LOGIC_VECTOR(3 DOWNTO 0);ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);alarm:OUT STD_LOGIC);END COMPONENT;COMPONENT blink_control PORT(ss,mode_ss:IN STD_LOGIC_VECTOR(2 DOWNTO 0);blink_en:OUT STD_LOGIC);END COMPONENT;COMPONENT count24 PORT (clk,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;COMPONENT count60 PORT (clk ,en:IN STD_LOGIC;cout:OUT STD_LOGIC;hh,hl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;SIGNALclkh,enh,clkm,enm,clks,clkh_a,clkm_a,coutm,couts,coutm_en,couts_en,cout,vcc,coutma_en,coutma,alarm1,bli nk_en,blink_tmp,enha: STD_LOGIC;SIGNAL mode_ss,ss1:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL hh,hl,mh,ml,sh,sl,hha,hla,mha,mla,y,i:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINvcc<='1';coutm_en <= enh OR coutm;couts_en <= enm OR couts;coutma_en<= enha OR coutma;blink_tmp<=blink_en and clk2hz;i(3)<=y(3) OR blink_tmp;i(2)<=y(2) OR blink_tmp;i(1)<=y(1) OR blink_tmp;i(0)<=y(0) OR blink_tmp;ss<=ss1;alarm<=alarm1 AND clk1khz;u1:mode_adjust_with_alarmPORT MAP( adjust,mode,clk1hz,clkh,enh,clkm,enm,clks,enha,clkh_a,clkm_a,mode_ss);u2:count24 PORT MAP(clkh,coutm_en,cout,hh,hl);u3:count60 PORT MAP(clkm,couts_en,coutm,mh,ml);u4:count60 PORT MAP(clks,vcc,couts,sh,sl);u5:count24 PORT MAP(clkh_a,coutma_en,cout,hha,hla);u6:count60 PORT MAP(clkm_a,vcc,coutma,mha,mla);u7:mux PORT MAP(hh,hl,mh,ml,sh,sl,hha,hla,mha,mla,ss1,mode_ss,y,alarm1);u8:scan PORT MAP(clk256hz,ss1);u9:blink_control PORT MAP(ss1,mode_ss,blink_en);u10:segment4to7 PORT MAP(i,a,b,c,d,e,f,g);END arc;实验结果:数字钟包括正常的时分秒计时, 实验箱左下角的6个动态数码管(DS6 A~DS1A)显示时、分、秒。

LED七段数码管数字钟

LED七段数码管数字钟

设 计 题 目: LED 七段数码管数字钟 学 院 名 称: 计算机科学与工程学院 专 业: 计算机科学与技术 班 级: 05计1 姓 名: 丁 琳 指导教师姓名: 白凤娥 指导教师职称: 教 授设 计 成 绩: 评 阅 教 师: 评 阅 日 期:2008年 12月 日微机原理与接口技术课程设计报告JIANGSU TEACHERS UNIVERCITY OF TECHNOLOGY目录一、设计任务书 (3)二、设计题目 (3)三、设计方案 (3)四、硬件原理 (4)1.七段数码管显示 (4)2.键盘扫描显示 (5)3.8253计数器和8259中断 (6)4.硬件连接 (6)五、程序流程图及程序清单 (7)1.七段数码管显示 (8)2. 键盘扫描显示 (9)3.定时器设计 (12)4.总程序设计 (15)六、调试过程及结果 (29)七、设计总结和体会 (30)八、参考文献 (30)一、设计任务书《微机原理及接口技术》是一门应用性、综合性、实践性较强的课程,没有实际的有针对性的设计环节,我们就不能很好的理解和掌握所学的技术知识,更缺乏解决实际问题的能力。

所以通过有针对性的课程设计,会使我们学会系统地综合运用所学的理论知识,提高我们在微机应用方面的开发与设计本领,系统的掌握微机硬软件设计方法。

通过课程设计实践,不仅要培养我们的实际动手能力,检验我们对本门课学习的情况,更要培养我们在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能用设计报告表达设计思想和结果的能力。

培养我们实事求是和严肃认真的工作态度。

通过设计过程,要求我们熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使我们得到微机开发应用方面的初步训练。

集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。

数码管时钟电路的设计

数码管时钟电路的设计

前言单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。

单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。

由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。

这次毕业设计通过对它的学习、应用,以AT89C205芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由直流电源供电,通过数码管能够准确显示。

.数字时钟是现代社会应用广泛的计时工具,在航天、电子等科研单位,工厂、医院、学校等企事业单位,各种体育赛事及至我们每个人的日常生活中都发挥着重要的作用。

本系统是基于AT89C2051单片机设计的一个具有六位LED显示的数字时实时钟,采用独立式按键进行时间调整,该系统同时具有硬件设计简单、工作稳定性高、价格低廉等优点。

目录摘要时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。

怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。

现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。

本文利用单片机实现数字时钟计时功能的主要内容,其中AT89C2051是核心元件同时采用数码管动态显示“时”,“分”,“秒”的现代计时装置。

与传统机械表相比,它具有走时精确,显示直观等特点。

它的计时周期为24小时,显满刻度为“23时59分59秒”,另外具有校时功能,断电后有记忆功能,恢复供电时可实现计时同步等特点。

数字电子时钟设计

数字电子时钟设计

数字电子时钟设计数字电子时钟是一种简单易用、精度高、使用方便的时钟仪器。

在现代化的生活中,数字电子时钟已经成为人们生活和工作中不可缺少的一部分。

本文将介绍数字电子时钟的设计及其原理。

1. 数字电子时钟的结构数字电子时钟一般由数字显示器、电源、时钟芯片、振荡电路和控制电路等几个部分组成。

数字显示器:数字电子时钟采用的是七段数码管作为显示器,显示出当前时刻的时间。

电源:数字电子时钟的电源一般采用直流电源,可以通过普通的插座或者电池供电。

时钟芯片:时钟芯片是数字电子时钟的核心部分,可以提供高精度的时钟信号,并且可以根据用户设置的时间来进行计时。

振荡电路:振荡电路是数字电子时钟的发挥器,用于产生一个稳定的高精度的时钟信号。

控制电路:控制电路主要用于对数字电子时钟进行各种设置,并且可以控制数字电子时钟的各种功能。

2. 数字电子时钟的操作原理数字电子时钟的操作原理是通过时钟芯片来实现的。

时钟芯片可以提供一个高精度的时钟信号,这个时钟信号可以被控制电路所接收,并且控制电路可以将这个信号转化为秒、分、时等时间单位。

随着科技的发展,数字电子时钟的精度越来越高,可以达到秒级甚至毫秒级的精度。

这些高精度的时钟芯片可以通过电子时钟所连接的振荡电路来产生非常稳定的时钟信号。

3. 数字电子时钟设计的技术要求数字电子时钟的设计需要考虑以下几个方面的技术要求:(1)高精度的时钟信号数字电子时钟的时钟信号需要具有高精度,通常要求时钟误差不超过几秒钟。

这就需要时钟芯片具有非常高的精度的时钟信号源,同时还需要连接高精度的振荡电路。

(2)显示效果清晰明了数字电子时钟的显示效果要求非常的清晰明了,这就需要采用高质量的七段数码管,并且数量要足够,以显示出完整的时间信息。

(3)快速响应、稳定性好由于数字电子时钟是人们生活和工作中不可缺少的一部分,因此数字电子时钟的响应速度和稳定性也非常的重要,需要在设计时特别注重。

4. 数字电子时钟的优点和缺点数字电子时钟有以下几个优点:(1)高精度稳定数字电子时钟可以提供高精度的时钟信号,并且可以保持这个时钟信号的稳定性,误差范围非常小。

基于DS1302和DS18B20设计的多功能电子实时时钟

基于DS1302和DS18B20设计的多功能电子实时时钟

基于DS1302和DS18B20设计的多功能电子实时时钟摘要随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。

尤其是单片机技术的应用产品已经走进了千家万户。

电子日历的出现给人们的生活带来的诸多方便。

本设计介绍了一种在数码管屏幕上显示当前日期时间和温度的51单片机控制系统。

首先描述系统硬件工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程,其次,详细阐述了程序的各个模块和实现过程。

本设计以数字集成电路技术为基础,单片机技术为核心。

本文编写的主导思想是软硬件相结合,以硬件为基础,来进行各功能模块的编写。

本系统以单片机的C语言进行软件设计,增加了程序的可读性和可移植性,为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。

系统通过8位数码管为载体显示数据,所以具有人性化的操作和美观的效果。

可以自动显示年月日、星期、温度等。

设计中处理器选取内核为C51的STC89C52单片机;数字温度传感器DS18B20,作为单片机外部信号源,实时显示温度;时钟芯片DS1302提供当前日期和时间数据;实时的日期和时间及温度数据在数码管上显示。

在显示部分,利用3/8译码芯片74HC138控制8位数码管的位选,利用串入并出的芯片74HC164来驱动8位数码管的段码,节省了主控芯片的I/O口。

这种实时时钟不仅具有一般时钟的显示时分秒功能,还能显示月日周,而且能显示当前的实时温度,另外仅使用三个按键调时,简单方便易于使用。

实践证明该系统稳定性高,显示数据准确。

关键词:89C52单片机,DS1302,DS18B20,电子时钟目录前言 (1)第一章方案选择 (2)§1.1 时钟方案 (2)§1.2 温度采集方案 (2)§1.3 显示方案 (3)第二章硬件部分设计 (4)§2.1硬件系统原理 (4)§2.2最小系统 (4)§2.3 显示部分 (5)§2.4 测温部分 (6)§2.5 时钟部分 (7)§2.6 按键部分 (8)第三章软件部分设计 (9)§3.1 系统各部分软件设计综述 (9)§3.2 DS1302时钟部分 (9)§3.3 测温部分 (10)§3.4 显示部分 (11)§3.5 按键部分 (11)§3.6 系统主要流程图 (13)第四章调试与分析 (15)§4.1 软件调试 (15)§4.2 硬件调试 (17)§4.3 发现的问题和分析及解决办法 (18)结束语 (19)参考文献 (20)致谢 (21)附录 (22)前言时间和温度是人类生活必不可少的重要元素也是一个永恒的话题,如果没有时间的概念,社会将不会有所发展和进步,如果没有温度人们将无法及时得知温情冷暖的变化。

基于单片机的电子时钟的设计与实现

基于单片机的电子时钟的设计与实现

基于单片机的电子时钟的设计与实现电子时钟是一种使用微处理器或单片机作为主控制器的数字时钟。

它不仅能够显示当前时间,还可以具备其他附加功能,如闹钟、日历、温度显示等。

一、设计目标设计一个基于单片机的电子时钟,实现以下功能:1.显示时间:小时、分钟和秒钟的显示,采用7段LED数码管来显示。

2.闹钟功能:设置闹钟时间,到达设定的时间时会发出提示音。

3.日历功能:显示日期、星期和月份。

4.温度显示:通过温度传感器获取当前环境温度,并显示在LED数码管上。

5.键盘输入和控制:通过外部键盘进行时间、日期、闹钟、温度等参数的设置和调整。

二、硬件设计1.单片机选择:选择一款适合的单片机作为主控制器,应具备足够的输入/输出引脚、中断和定时器等功能,如STC89C522.时钟电路:使用晶振为单片机提供稳定的时钟源。

3.7段LED数码管:选择合适的尺寸和颜色的数码管,用于显示小时、分钟和秒钟。

4.温度传感器:选择一款适合的温度传感器,如DS18B20,用于获取环境温度。

5.喇叭:用于发出闹钟提示音。

6.外部键盘:选择一款适合的键盘,用于设置和调整时间、日期、闹钟等参数。

三、软件设计1.初始化:设置单片机定时器、外部中断和其他必要的配置。

2.时间显示:通过定时器中断,更新时间,并将小时、分钟和秒钟分别显示在相应的LED数码管上。

3.闹钟功能:设置闹钟时间,定时器中断检测当前时间是否与闹钟时间一致,若一致则触发警报。

4.日历功能:使用定时器中断,更新日期、星期和月份,并将其显示在LED数码管上。

5.温度显示:通过定时器中断,读取温度传感器的数据,并将温度显示在LED数码管上。

6.键盘输入和控制:通过外部中断,读取键盘输入,并根据输入进行相应的操作,如设置时间、闹钟、日期等。

7.警报控制:根据设置的闹钟时间,触发警报功能,同时根据用户的设置进行控制。

四、测试与调试完成软件设计后,进行系统测试与调试,包括验证显示时间、日期、温度等功能的准确性,以及闹钟和警报功能的触发与控制。

基于单片机的智能电子时钟的设计及应用

基于单片机的智能电子时钟的设计及应用

基于单片机的智能电子时钟的设计及应用一、引言智能电子时钟是一种应用广泛的电子产品,它不仅能够准确显示时间,还具备了一系列智能化的功能,如闹钟、温湿度显示、定时开关等。

基于单片机的智能电子时钟设计是近年来电子技术领域中备受关注的研究方向。

本文将详细介绍基于单片机的智能电子时钟设计及其应用,并对其进行深入研究。

二、基于单片机的智能电子时钟设计原理1. 选取合适的单片机芯片在设计基于单片机的智能电子时钟之前,首先需要选取合适的单片机芯片。

常见选择包括51系列、AVR系列和ARM系列等。

根据具体需求和功能要求进行选择,并考虑到其性价比、易用性和扩展性。

2. 时钟模块设计在整个系统中,准确显示时间是最基本也是最关键的功能之一。

因此,需要设计一个稳定可靠且精度高的时钟模块。

常见选择包括RTC 芯片和GPS模块等。

3. 显示模块选择与驱动为了实现时间的直观显示,需要选择合适的显示模块。

常见选择包括LED数码管、LCD液晶显示屏和OLED显示屏等。

同时,还需要设计合适的驱动电路,以实现对显示模块的控制。

4. 功能模块设计除了基本的时间显示功能外,智能电子时钟还可以具备一系列智能化功能。

常见功能包括闹钟、温湿度显示、定时开关等。

这些功能需要通过相应的传感器和控制电路来实现。

三、基于单片机的智能电子时钟应用1. 家庭生活基于单片机的智能电子时钟在家庭生活中有着广泛应用。

它可以作为家庭闹钟,准确地唤醒人们起床;同时也可以作为温湿度监测器,在家中监测室内温湿度,并提供相应数据。

2. 办公场所在办公场所中,基于单片机的智能电子时钟可以作为时间提醒器,在工作时间结束时提醒人们休息;同时也可以作为定时开关,在指定时间自动打开或关闭相应设备。

3. 公共场所在公共场所中,基于单片机的智能电子时钟具备更多应用场景。

例如,在火车站、机场等候车室中,它可以作为候车时间显示器,为旅客提供准确的候车时间信息。

四、基于单片机的智能电子时钟设计案例以基于51系列单片机的智能电子时钟设计为例,具体设计方案如下:1. 硬件设计选用51系列单片机作为主控芯片,搭配RTC芯片作为时钟模块。

用数码管(8位)显示的数字时钟程序

用数码管(8位)显示的数字时钟程序

用数码管(8位)显示的数字时钟程序
一、程序概述
本程序使用单片机AT89S52,通过数码管(8位)显示当前时间,支持12小时制和24小时制切换,精度为秒。

二、程序实现
程序首先定义了数码管的连接方式和每个数字的位图数据,然后定义了时间变量和函数,包括:
1.初始化函数:设置数码管端口和时钟计数器的计数方式。

2.读时钟函数:读取时钟计数器及寄存器,返回当前时间的小时、分钟和秒数。

3.显示函数:将当前时间转化为8个数码管显示的位图数据,用数字和符号映射表将数字和符号的位图数据与数码管连接方式对应起来,输出到数码管上。

在主函数中,程序初始化后循环执行读时钟函数和显示函数,实现时钟的实时显示。

三、程序特点
1.采用8位数码管显示,时间更加直观。

2.支持12小时制和24小时制切换,适用于不同场景。

3.实现精度为秒的实时显示,更加准确。

四、程序优化
1.增加闹钟功能,提醒用户打卡或者起床。

2.加入温度传感器模块,实现显示温度的功能。

3.优化显示效果,增加字体和颜色等选项。

五、程序应用
本程序可应用于家庭、办公室、学校等场合,用于显示时间,提醒用户合理安排时间和时间管理,也可作为DIY电子制作的教学和实验材料,提高学生的动手实践能力和电子信息技术水平。

十五位数码管电子钟万年历设计 c编写

十五位数码管电子钟万年历设计    c编写

十五位数码管电子钟万年历设计c编写后带原理设计图供参考(本人已验证可正常工作)我们以一个实际的时钟电路来说明定时器的软件编程方法,时钟就是我们最为常见的显示时、分、秒为单位的计时工具,它是典型的应用代表。

时钟的最小计时单位是秒,但使用单片机定时器来进行计时,若使用 6.0MHz的晶振,即使按工作方式1工作,最大的计时时间也只能到131ms,所以我们可把每个定时时间取125ms,这样定时器溢出8次(125ms╳8=1000ms)就得到最小的计时单位秒。

而要实现8次计数用软件方法实现是轻而易举的。

我们使用定时器1,以工作方式1工作,定时器进行125ms定时。

采用中断方法进行溢出次数的累计,当计满8次即得到1秒的计时。

一个时钟的计时累加,要实现分、时的进位,要用到多种进制,秒、分、时中的进位是十进制,秒向分进位和分想时进位却是六十进制,而每天又有十二小时制或二十四小时制,它们分别又是十二进制和二十四进制。

从秒到分和从分到小时可以通过软件累加和数值比较方法实现。

在单片机的内部RAM中,需要设置显示缓冲区,显示的时、分、秒值是从显示缓冲区中取出的,在RAM中设置四个单元作为显示缓冲区,分别是7AH、7BH、7CH。

为使电路和原理叙述方便,我们这里不显示秒值,秒的进位我们通过闪烁分值实现。

这样我们一共有四位LED分别显示时和分值。

同时时钟都需要校准的。

在程序中还需设置显示码表,要显示的数值通过查表指令将显示用的真正码值送到LED上。

我们用单片机AT89C2051的PP3.4和P3.5两个I/O口外接微动开关来实现时和分的校正,每按一次小时或分值加1,连续按下数值累计下去,实现时钟的校准。

在电路中我们还设置了一个蜂鸣器,用作简单报时用,如可设早上7:30分起床,中午1点30分再有起床报时,每次响时1分钟,响1秒,停2秒的方式,而不是连续响铃。

这个程序我们采用12小时制,为此,要在程序中设置相应的标志,以利于主程序识别。

51单片机数码管时钟电路的设计

51单片机数码管时钟电路的设计
模式设置模块(CONFIG):通过判断设置模式(MODE),执行相应的设置。如时、分、秒的增1以及闹铃开关的变换。
另外,主循环还负责扫描键盘,检测相应键是否被按下,若MODE键被按下则在特定单元中登记该功能,并启动定时器1,然后返回继续执行显示功能。在定时器1中断时,被登记的功能正式执行。期间用时约10ms,用以消除机械抖动。
MOV A, cmode
INC A
CJNE A, #07H, enmode
MOV A, #00H
enmode:
MOV cmode, A
ANL A, #04H
JZ notalapage
MOV npage, #02H
ACALL preala;时钟调整页准备
notalapage:
MOV A, cmode
MOVC A, @A + DPTR
MOV m, #00H
MOV A, h ;h
INC A
DA A
MOV h, A
CJNE A, #24H, incn
MOV h, #00H
incn:
SETB bPalse
JNB bAlaOn, alarmoff
ACALL checkala ;check alarm when alarm is ON
alarmoff:
CJNE A, #60H, notset
MOV s, #00H
SJMP notset
setae:
CPL bAlaOn ;闹钟开关
SJMP notseta
setah:
MOV A, ah ;闹钟时设置
INC A
DA A
MOV ah, A
CJNE A, #24H, notseta

基于单片机的电子时钟6位LED数码管显示

基于单片机的电子时钟6位LED数码管显示

数码管显示电子时钟设计一.功能要求1.数字电子时钟最主要是LED数码管显示功能,以24小时为一个周期,显示时间时、分、秒。

2.具有校时功能,可以对时、进行单独校对,使其校正到标准时间。

二.方案论证1.数字时钟方案数字时钟是本设计的最主要的部分。

根据需要,可利用两种方案实现。

方案一:本方案采用Dallas公司的专用时钟芯片DS12887A。

该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。

为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。

当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。

而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。

方案二:本方案完全用软件实现数字时钟。

原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。

利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。

该方案具有硬件电路简单的特点。

但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。

而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。

基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。

2.数码管显示方案方案一:静态显示。

所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。

该方式每一位都需要一个8 位输出口控制。

静态显示时较小的电流能获得较高的亮度,且字符不闪烁。

但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。

方案二:动态显示。

所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。

基于51单片机的简易电子钟设计

基于51单片机的简易电子钟设计

m a j o ri t v o f e l e c t r o n i C t e c h n o l o g y e n t h u s i a s t S c a n r e f e r t o a n d m a k e t h e i r o w n .
电子钟 显示时间是用数码 管实 现的, 本设计选用的数码管是 6位数码管, 以分别实现对“ 时” 、 “ 分” 、 “ 秒” 进 行数字显示 , 它们 之
间的间隔用数码管上 的小数点来分割 , 采用 7 4 H C 5 7 3 锁 存器来驱动六位 8段数 码管 ,并利用石英晶振产生时钟脉冲, 并利用 单片机 内部的定时器计数, 通过程序和外 围电路控制数码管进行动态显示 。 本 文提供一种简单且廉价的设计方 案, 广大的电子
Ke y wo r d s: e 1 e c t r o n i C C 1 o c k: d i g i t a l c o n t r o l :S T C 8 9 C 5 1 M C U
0引言
电子钟 是当前市面上 十分普及 的计时装置 , 它成本 低廉 , 计
时准确, 而 且 由于 其 显示 装 置 可 以 发光 , 因此夜间也清晰可见, 它 的性 价 比 是 比较 高 的 , 现 在 人们 尤 其 是 在青 年 人 群 中 , 使 用 电子 计
M e n g Y u j i a
( C o l l e g e o f m e c h a n i c a l a n d e l e c t r i c a l e n g i n e e r i n g N o r t h e a s t F o r e s t r y U n i v e r s i t y ,H e i l o n g j i a n g H a r b i n , 1 5 0 0 4 0 )
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2012~ 2013 学年第2 学期《单片机原理及应用》课程设计报告题目:基于数码管的电子时钟设计专业:自动化班级:电气工程系2013年5月1日1、任务书摘要随着人类科技文明的发展,人们对于时钟的要求在不断地提高。

时钟已不仅仅被看成一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。

本设计主要基于单片机技术原理,设计制作出一个电子时钟系统。

6位LED 数码管显示,使用按键扫描进行时间校准。

这种实现方法的优点是电路简单,性能可靠,实时性好,时间精确,操作简单,编程容易。

最后将设计的时钟系统在Protues仿真软件上进行仿真验证所设计的时钟系统稳定可靠。

关键词: AT89C51单片机;电子时钟;数码管;按键扫描基于数码管的电子时钟设计目录摘要........................................................................................ 错误!未定义书签。

第一章绪论................................................................................ 错误!未定义书签。

1.1 单片机的应用和特点............................................................ 错误!未定义书签。

1.2 单片机的发展趋势......................................................... 错误!未定义书签。

1.3 电子时钟简介及其基本特点......................................... 错误!未定义书签。

第二章控制系统的硬件设计...................................................... 错误!未定义书签。

2.1 总方案设计..................................................................... 错误!未定义书签。

2.2 单片机芯片的选择......................................................... 错误!未定义书签。

2.2.1 AT89C51的功能概述......................................... 错误!未定义书签。

2.2.2 AT89C51引脚功能说明..................................... 错误!未定义书签。

2.3 单片机系统电路设计..................................................... 错误!未定义书签。

2.4 按键电路设计................................................................. 错误!未定义书签。

2.5 蜂鸣器电路设计............................................................. 错误!未定义书签。

2.6 LED数码管显示电路...................................................... 错误!未定义书签。

第三章控制系统的软件设计...................................................... 错误!未定义书签。

第四章系统仿真.......................................................................... 错误!未定义书签。

第五章总结与体会...................................................................... 错误!未定义书签。

参考文献........................................................................................ 错误!未定义书签。

附录................................................................................................ 错误!未定义书签。

附录二元件清单........................................................................ 错误!未定义书签。

插图清单图2-1 电子时钟设计框图 (3)图2-2 AT89C51引脚说明 (4)图2-3 单片机系统电路 (6)图2-4 按键设计电路 (7)图2-5 蜂鸣器设计电路 (7)图2-6 LED数码管 (8)图2-7 显示电路设计 (9)图2-8 总体设计电路 (9)图3-1 主程序框图 (10)图3-2显示子程序框图 (11)图4-1 整点报时仿真 (12)图4-2调时仿真 (12)表格清单表2-1 数码管字型与字段关系表 (8)第一章绪论1.1 单片机的应用和特点20世纪末,单片机技术获得了飞速的发展,渗透到我们生活的每个领域,几乎很难找到那个领域没有单片机的踪迹。

导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种IC卡,民用豪华轿车的安全控制系统,录像机、摄像机、全自动洗衣机的控制等等,这些都离不开单片机的控制还有医疗器械、功能仪表都需要单片机。

可见,单片机关系到我们生活的方方面面。

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分为如下几个范畴:智能仪器、工业控制,家用电器、网络和通信、设备领域、模块系统以及汽车电子。

随着单片机的广泛应用,在其在推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使得现代电子产品性能进一步提高。

单片机有以下特点:1. 单片机的存储器ROM和RAM是严格区分的。

ROM称为程序存储器,只存放程序、固定常数及数据表格。

RAM则为数据存储器,用作工作区及存放用户数据[1]2. 采用面向控制的指令系统。

为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力;3. 单片机的I/O口通常是多功能的。

由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令来设置或机器状态来区分;4. 单片机的外部扩展能力很强。

在内部的各种功能部件不能满足应用的需求时,均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。

1.2 单片机的发展趋势目前,单片机正朝着高性能和多品种方向发展趋势是进一步向着CMOS化、低功耗、小体积,大容量、高性能、低价格和外围电路内装化等几个方面发展。

单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。

在以前,是必须由模拟或是数字电路实现的大部分功能的,而现在已经能用单片机通过软件的方法来实现了。

这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。

1.3 电子时钟简介及其基本特点随着社会经济的急速发展,给人们的生活带来巨大压力的同时迫使人们加快自己工作、生活的步伐,使时间对于人们来说总是那么宝贵,工作的忙碌性和繁杂性容易是人忘记当前时间。

忘记了要做的事情,当事情不是很重要的时候这种遗忘无伤大雅。

但是,一旦是重要的事情,一时的耽误可能酿成大祸。

1957年,Ventura发明了世界上第一只电子表,从而奠定了电子时钟的基础,电子时钟也飞速的发展起来。

现代的电子时钟的基于单片机的一种计时工具采用延时程序产生一定的时间中断,用于一秒定义,通过计数方式进行六十秒分钟进一,满六十分小时进一,满二十四小时清零,从而达到计时的功能,是人们日常生活不可缺少的工具。

现在高精度的计时工具大多数采用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此,走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LCD显示器或数码管代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。

第二章控制系统的硬件设计2.1 总方案设计根据课设的要求,我们设计了如图2-1所示的整体框图,包括外部震荡电路模块、复位电路模块、按键电路模块、蜂鸣器电路模块(起整点报时的功能)、单片机芯片以及显示模块。

其中单片机芯片是核心模块,与外部晶振电路和复位电路组成单片机系统电路。

图2-1 电子时钟电路设计框图2.2 单片机芯片的选择经过多种单片机性能的分析及现有实验设备的限制,在本设计中单片机芯片采用了AT89C51单片机芯片。

AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

2.2.1 AT89C51的功能概述AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。

掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

2.2.2 AT89C51引脚功能说明引脚排列如图2-2所示。

相关文档
最新文档