基于单片机实现的电子日历.docx
- 文档编号:18316333
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:20
- 大小:206.08KB
基于单片机实现的电子日历.docx
《基于单片机实现的电子日历.docx》由会员分享,可在线阅读,更多相关《基于单片机实现的电子日历.docx(20页珍藏版)》请在冰点文库上搜索。
基于单片机实现的电子日历
单片机电子日历
摘要:
本文提出了一种基于AT89C51单片机为核心控制器的电子日历设计方案,该方案以AT89C51单片机为主控制器,与时钟芯片DS1302、按键输入、LED显示等电路模块组成硬件系统。
以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒和星期进行计时,还具有闰年补偿等多种功能。
电子日历采用MAX7219芯片作为LED显示驱动,可以支持更多数码管的稳定显示,采用直观的数字显示在LED显示器上,并设有独立的按键控制,可以根据使用者的需要随时对时钟进行校准和时间选择,同时具有备用电源,停电时可以实现对系统的持续供电。
此电子日历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
关键词:
单片机;DS1302;电子日历;MAX7219
第1章绪论
1.1课题背景及意义
随着微电子技术的高速发展,单片机在国民经济的个人领域得到了广泛的运用。
单片机以体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。
由于人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。
二十一世纪的今天,最具代表性的计时产品就是电子日历,它是近代世界钟表业界的第三次革命。
第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。
第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。
第三次革命就是单片机数码计时技术的应用(电子日历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!
因此,电子日历的出现带来了钟表计时业界跨跃性的进步。
我国生产的电子日历有很多种,总体上来说以研究多功能电子日历为主,使日历除了原有的显示时间,日期等基本功能外,还具有闹铃,报警等功能。
商家生产的电子万年历更从质量,价格,实用上考虑,不断的改进电子万年历的设计,使其更加的具有市场。
现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。
在一个单片机应用系统中,时钟有两方面的含义:
一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:
一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:
DS1302,DS12887,X1203等都可以满足高精度的要求。
电子日历既可广泛应用于家庭,也可应用于银行、邮电、宾馆、医院、学校、企业、商店等相关行业的大厅,以及单位会议室、门卫等场所。
因而,此设计具有相当重要的现实意义和实用价值。
1.2本文主要研究内容
本文设计一种基于单片机控制的电子日历控制系统,以AT89C51单片机为主控制器,与时钟芯片DS1302、按键输入、LED显示等电路模块组成硬件系统,可以对年、月、日、时、分、秒和星期进行计时,还具有闰年补偿等多种功能。
电子日历采用MAX7219芯片作为LED显示驱动,可以支持更多数码管的稳定显示,采用直观的数字显示在LED显示器上,并设有独立的按键控制,可以根据用户的需求随时对时钟进行校准和时间选择,同时具有备用电源,停电时可以实现对系统的持续供电。
全文共分为六章,各章节的安排如下:
第1章首先介绍了单片机的作用,以及利用单片机作为主控制器来设计电子日历的实际价值,并阐述了单片机电子日历的研究背景及意义,最后概况了本文的内容和结构。
第2章主要介绍了系统设计需要满足的一些基本功能要求,以及基于单片机的电子日历总体设计框图及相关分析。
第3章介绍了单片机电子日历系统的主要元器件选择,主要是作为主控制器的单片机AT89C51、时间产生芯片DS1302、时间日期显示的LED数码管以及为数码管驱动的芯片MAX7219。
第4章针对设计的电子日历系统,重点分析了系统的各个主要硬件模块电路,主要有系统的晶振电路、复位电路、显示电路、电源供电电路和按钮输入控制电路等相关模块电路。
第5章主要分析了系统的软件设计方案,主要有主控制流程图、时间产生流程图、按键控制流程图和仿真软件的相关应用等。
第6章总结了本文的主要工作。
第2章系统整体设计
2.1系统功能要求
电子日历是一套完整的时间显示系统,采用单片机等控制设计作为核心控制器,并能实时显示当前的日期,能够设置时间等操作,其具体功能要求如下:
1、能够显示年月日,时分秒、星期;
2、提供相关按键,可以对时间进行手动的设置和修改;
3、采用二十四小时制显示时间,并具有闰年补偿功能;
4、使用LED数码管显示当前时间日期;
5、具备基本的电路和时间复位功能;
6、有备用电源,可以实现断电后持续显示时间的功能。
2.2总体设计框图
图2-1系统总计设计框图
基于单片机的电子日历的总体设计框图如图2-1所示。
图中由几大模块组成,其中采用AT89C51单片机作为系统的控制主机,即为核心控制器,配有基本的晶振电路和复位电路,同时提供单片机的电源供电,当外部电源断电时,可以启动备用电源对系统进行供电,实现对电子日历的持续显示。
系统配有时间产生的时钟芯片DS1302,可以实现对对年、月、日、星期、时、分、秒进行计时,且具有闰年补偿功能。
时钟的显示通过MAX7219芯片对LED数码管进行驱动显示,可以支持多个数码管的同时显示,不仅可以节约单片机的控制端口,同时支持多个LED的同时稳定显示。
第3章主要元器件选择
3.1AT89C51芯片
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。
其主要特点如下:
●256字节内部RAM;
●电源控制模式;
●时钟可停止和恢复;
●空闲模式;
●掉电模式;
●6个中断源;
●4个中断优先级;
●4个8位I/O口;
●全双工增强型TUAR;
●3个16位定时/计数器:
T0、T1(标准80C51)和增加的T2(捕获和比较);
●全静态工作方式:
0~24MHz。
由于AT89C51单片机片内有4K字节的在线编程Flash存储器,可以擦写1000次,具有掉电模式,而且具有掉电状态下的中断恢复功能,对设计开发非常实用。
所以选用AT89C51单片机作为电子日历系统的控制主机。
3.2数码管LED
七段数码管一般由8个发光二极管组成,其中由7个细长的发光二极管组成数字显示,另外一个圆形的发光二极管显示小数点。
当发光二极管导通时,相应的一个点或一个笔画发光。
控制相应的二极管导通,就能显示出各种字符,尽管显示的字符形状有些失真,能显示的数符数量也有限,但其控制简单,使有也方便。
发光二极管的阳极连在一起的称为共阳极数码管,阴极连在一起的称为共阴极数码管,如图3-1所示。
(a)七段数码管引脚图
(b)共阴极(c)共阳极
图3-1七段数码管结构图
七段数码管每段的驱动电流和其他单个LED发光二极管一样,一般为5~10mA;正向电压随发光材料不同表现为1.8~2.5V不等。
七段数码管的显示方法可分为静态显示与动态显示,具体介绍如下:
1、静态显示
所谓静态显示,就是当显示某一字符时,相应段的发光二极管恒定地寻能可截止。
这种显示方法为每一们都需要有一个8位输出口控制。
对于51单片机,可以在并行口上扩展多片锁存74LS573作为静态显示器接口。
静态显示器的优点是显示稳定,在发光二极管导通电注一定的情况下显示器的亮度高,控制系统在运行过程中,仅仅在需要更新显示内容时,CPU才执行一次显示更新子程序,这样大大节省了CPU的时间,提高了CPU的工作效率;缺点是位数较多时,所需I/O口太多,硬件开销太大,因此常采用另一种显示方式——动态显示。
2、动态显示
所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。
虽然在同一时刻只有一位显示器在工作(点亮),但利用人眼的视觉暂留效应和发光二极管熄灭时的余辉效应,看到的却是多个字符“同时”显示。
显示器亮度既与点亮时的导通电流有关,也与点亮时间和间隔时间的比例有关。
调整电流和时间参烽,可实现亮度较高较稳定的显示。
若显示器的位数不大于8位,则控制显示器公共极电位只需一个8位I/O口(称为扫描口或字位口),控制各位LED显示器所显示的字形也需要一个8位口(称为数据口或字形口)。
动态显示器的优点是节省硬件资源,成本较低,但在控制系统运行过程中,要保证显示器正常显示,CPU必须每隔一段时间执行一次显示子程序,这占用了CPU的大量时间,降低了CPU工作效率,同时显示亮度较静态显示器低。
综合以上考虑,由于电子日历需要显示年月日时分秒等,需十多个数码管,并考虑到CPU工作效率与电源效率,本毕业设计采用动态的共阴极LED显示。
3.3DS1302芯片
DS1302是美国Dallas公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.5~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个318的用于临时存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。
DS1302的引脚如图3-2所示。
Vcc1为后备电源,Vcc2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1、X2为振荡电路,外接32.768Hz晶振。
图3-2DS1302管脚图
RST是复位、片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
RST接通控制逻辑,允许地址/命令序列送入移位寄存器;RST提供了终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中置RST为低电平,则会终止此次数据传送,并且I/O引脚变为高阻态。
上电运行时,在Vcc2.5V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
I/O为串行数据输入输出端(双向)。
SCLK为时钟输入端。
表3-1DS1302引脚功能表
引脚号
引脚名称
功能
1
VCC2
主电源
2,3
X1,X2
振荡源,外接32768HZ晶振
4
GND
地线
5
RST
复位/片选线
6
I/O
串行数据输入/输出端(双向)
7
SCLK
串行时钟输入端
8
VCC1
后备电源
3.4MAX7219芯片
MAX7219是美国MAXIM公司生产的串行输入/输出共阴极数码管显示驱动芯片,一片MAX7219可驱动8个7段(包括小数点共8段)数字LED、LED条线图形显示器、或64个分立的LED发光二级管。
该芯片具有10MHz传输率的三线串行接口可与任何微处理器相连,只需一个外接电阻即可设置所有LED的段电流。
它的操作很简单,MCU只需通过模拟SPI三线接口就可以将相关的指令写入MAX7219的内部指令和数据寄存器,同时它还允许用户选择多种译码方式和译码位。
此外它还支持多片7219串联方式,这样MCU就可以通过3根线(即串行数据线、串行时钟线和芯片选通线)控制更多的数码管显示。
MAX7219的外部引脚分配如图3-3所示,其引脚的各个功能如表3-2所示。
对于MAX7219,串行数据是以16位数据包的形式从DIN脚串行输入,在CLK的每一个上升沿一位一位地送入芯片内部16位移位寄存器,而不管DOUT脚的状态如何。
CS脚必须在第16个CLK上升沿出现的同时或之后,但在下一个CLK上升沿之前变为高电平,否则移入的数据将丢失。
操作者只需编程发送16位数据包,就能简单地操作LED的位选以及段选,设置和改变MAX7219的工作模式。
图3-3MAX7219引脚图
表3-2MAX7219引脚功能说明
引脚号
名称
功能说明
1
DIN
串行数据输入端。
在CLK的上升沿数据被锁入芯片内部16位移位寄存器
2,3,5~8,9,10
DIG0~DIG7
8位LED位选线,从共阴极LED中吸入电流
4,9
GND
地线(两个GND必须在一起)
12
CS
锁入输入的数据,在CS的上升沿最后的16位串行数据被输入
13
CLK
时钟输入,最高时钟频率为10MHz,在CLK的上升沿数据被锁入内部移位寄存器。
在CLK的下降沿,数据从DOUT脚被输出
14~17
20~23
SEGA~SEGG,DP
七段驱动和小数点驱动
18
ISET
该脚通过一个电阻与VCC相连,设置峰值段电流
19
VCC
电源电压,+5V
24
DOUT
串行数据输出,输入到DIN的数据在16.5个时钟周期后在DOUT脚发出,该脚用于与级联扩展
第4章硬件电路设计
4.1晶振电路
图4-1晶振电路
时钟电路是计算机的心脏,它控制着计算机的工作节奏。
MSC-51片内有一个反向放大器,XTAL1、XTAL2引脚分别为该反向放大器的输入端和输出端,该反向放大器片外晶体或陶瓷振荡器一起构成一个自激振荡器,产生的时钟送至单片机内部的各个部件。
单片机的时钟产生方法有内部时钟方式和外部时钟方式两种,大多数单片机应用系统采用内部时钟方式,如图4-1所示的晶振电路即外内部时钟方式。
单片机允许的振荡晶体可在1.2MHz~24MHz之间选择,一般选择11.0592MHz。
电容C1、C2的取值对振荡频率输出的稳定性、大小及振荡电路起振速度有少许影响。
C1、C2可在20pF~100pF之间选择,一般当外接晶体时典型取值为30pF。
外接陶瓷谐振器时典型取值为47pF,取60pF~70pF时振荡器有较高的频率稳定性,本文采用晶体连接,取C1=C2=30pF。
4.2复位电路
图4-2复位电路
在系统运行的过程中,有时可能对系统需要进行复位,为了避免对硬件系统经常加电和断电造成的损害,故应该设计复位电路。
单片机通常采用上电复位和上电按钮复位两种方式。
本文采用的是上电按钮复位电路,如图4-2所示。
这种电路的设计,在系统的运行过程中需要复位时,只需使开关闭合,在RST端就会出现一定时间的高电平信号,从而使单片机实现复位。
4.3显示电路
图4-3LED显示电路
本文采用的显示模块是用MAX7219芯片作为数码管的驱动器,一个MAX7219数码管可以驱动8个七段数码管,因为需要显示年、月、日、时、钟、秒、星期,用到16个数码管,所以需要用两个MAX7219芯片驱动所有的数码管。
图4-3为电子日历的显示电路图。
MAX7219只需通过三个端口DIN、CLK和CS与单片机AT89C51相连,就可以达到控制LED的输出。
MAX7219
(1)芯片DIN与控制主机的P0.0端口连接,CS与P0.1相连,CLK与P0.2相连,而MAX7219
(2)芯片的DIN与MAX7219
(1)芯片的DOUT相连,组成两块芯片的级联,到达同时显示的目的,CS与控制主机的P0.3端口相连,CLK与P0.4端口相连,这样就组成了单片机与MAX7219芯片的连接。
4.4电源电路
图4-4电源稳压电路
如图4-4所示电路为带有备用电源的并输出电压+5V、输出电流1.5A的电源稳压电路。
采用TL499A构成的升压稳压电源,输入端VlN2(3脚)外接四节l.5V的电池,输出端OUT(8脚)的输出电压VOUT=1.26V×[1+(R1+RPl)/R2],其中1.26V为TL499A内部的基准电压。
为获得较高的变换效率,要选用Q值高,内阻小,高频特性好的线圈L。
输入电压低于1.2V,电路也能工作,但输入变低时空载电流就会增加。
若输入电压超过10V,输出电压就会超过稳定区而上升,因此,输入VIN2端不能加10V以上电压。
其具体的工作原理:
在外部有电源的情况下,接220V交流电通过电源变压器T变换成13V左右的交流低压,再经过桥式整流电路D1~D4和滤波电容C4和C5的整流和滤波,在TL499A的VIN1(1脚)形成一个不十分稳定的直流电压,经过TL499A的升压和稳压作用,可以得到一个稳定的直流电源。
若VIN1为10V以上,就工作于线性稳压器状态;若输入电压VIN1低于l0V,就工作于开关稳压器状态,此时由电池通过TL499A的3脚供电,经升压变换后输出。
当外部电源断开,即停电时,电池作为后备电源,其工作原理与交流供电一样,这样可方便构成不间断电源。
线性稳压器与开关稳压器之间的转换在TL499A的内部自动进行,虽然输出电压有些变动,但只有2%左右,一般不受影响。
因此,采用如图4-4所示的电源稳压电路供电,可以得到精度高、稳定性好的直流输出电压,即可以保证电子日历系统得到稳定的电源,同时具有断电保护的作用,可为电子日历持续供电。
4.5按键控制电路
图4-5按键控制电路
为了对电子日历的时间自由的设定,故需要相应的按键来设定和调整时间,图4-5为单片机电子日历系统中的按键控制电路,主要由四个按键组成,分别是S1、S2、S3、S4。
S1与单片机AT89C51的P1.4端口连接,作为设置键,当按下S1后才能进入时间调整步骤,否则按下其他的按键均没有作用。
S2与控制主机的P1.5端口连接,担当移位的功能,当按下设置键后,可以通过按下移位键,来移动设定的时间,如不要调整年月日,只需要调整时钟秒,即可通过按S2键来进行快速的移位。
S3与主机的P1.6端口连接,具有加(+)的作用,即在设定调整时间时,可以通过按下S3键来对相应时间进行增加。
S4与P1.7端口连接,具有减(-)的作用,可以通过按下S4键来对相应时间进行减小。
最后所有经修改调整后的时间,需要按下S1按钮设置键后才能正式修改完成,并退出时间设定。
第5章软件电路设计
5.1主流程图
图5-1系统主流程图
图5-1为单片机电子日历的主流程图。
其具体的工作流程如下:
系统通电后,对系统进行复位初始化处理,然后控制主机AT89C51单片机从时钟芯片DS1302中读取时间,存储到单片机中,并显示到LED数码管上。
显示的时间如果与实际时间一样,则结束,如果不一样,则进行下一步操作。
系统一直扫描是否有键按下,当有按键S1按下后,系统进入时间设定模式,并对不准确的时间进行设定和调整,直到设定完成后,则将设定后的时间显示在LED数码管上。
5.2时间产生流程图
图5-2DS1302操作流程图
图5-2为电子日历的时间产生流程图,即DS1302操作流程图。
其具体的工作流程为:
系统通电后,开始初始化操作,使得DS1302不具备写保护的模式,同时当复位端产生一个高电平时,对DS1302进行写地址,并延迟一段时间,向该地址写数据,同时地址增加,如果数据写完没有写完,则继续对DS1302进行写地址操作,否则进行下一步操作,当给复位端一个高电平后,对DS1302写地址,同时延迟一段时间后,将该地址的数据读出来,同时地址增加,如果数据没有读完,则继续对DS1302进行写地址操作,否则即数据已经读完,则将读取出来的数据显示出来,并进行返回操作。
5.3按键控制流程图
图5-3按键控制流程图
图5-3为系统按键控制电路流程图。
其具体的工作流程如下:
系统一直扫描,当按键S1按下后,系统进入时间设定界面,否则系统没反应,即使按下其他的按键也没有反应。
按下S1后,开始进行时间设置,当显示的时间比实际的时间小时,按下按键S3,进行时间的加操作,当显示时间比实际时间大时,则按下按键S4,进行时间的减操作,如果显示的时间与实际的一样,则按下按键S2进行移位,对下一个时间进行设定,如果与实际时间不相同,则重复操作按键S3、S4,对时间进行加减操作,直到设定的时间也实际时间相同为止,如果完成了设定,则通过按键S1的操作对修改和设定的时间进行保存,最后退出时间设定。
第6章总结
本文设计了基于AT89C51单片机的电子日历,用DS1302芯片产生时间日期,利用MAX7219芯片驱动16个七段数码管LED显示,同时设有时间调整按键,用户可以对时间进行设定,配备带有备用电池的电源供电模块,实现电子日历的基本功能,具有实用简单,操作方便的优点,具体总结如下:
1、采用了AT89C51单片机作为电子日历的控制主机芯片,可以方便实现电子日历的控制要求,成本较低,控制效果好。
2、采用了动态式共阴极七段数码管LED显示,比液晶显示器LCD成本更低,而且时间显示效果更好。
3、采用了DS1302芯片产生时间序列,比直接采用单片机编程方法实现时间显示更简单,而且DS1302具有闰年识别功能。
4、对于LED的显示,采用了MAX7219芯片对其进行驱动,一个MAX7219可以驱动8个七段数码管LED显示,而只需与单片机的三个端口相连,更加节约了单片机的有限端口。
5、系统设置了四个按键来调整时间,且只有在按下S1设置键后才能对时间进行调整,否则按其他键都是无效的,可以防止时间的无效调整。
6、系统的供电电源采用了带有备用电池的供电电路,当有交流电时,自动采用外界的交流电供电,但当断电后,则自动启动备用电池供电,这样可以实现对系统的持续供电。
7、本文采用相关软件绘制了全文的电路图,实现了对系统总体的设计和构造,并形象的完成了对电路图的绘制。
参考文献
[1]杨恢先,黄辉先.单片机原理及应用[M].人民邮电出版社,2006.151-215。
[2]何宏.单片机原理与接口技术[M].北京:
国防工业出版社,2006.182-253。
[3]贡雪梅.日历电子钟的设计[J].西安航空技术高等专科学校学报,2004,22
(1):
20-23。
[4]张道德.单片机接口技术(C51版)[M].中国水利水电出版社,2007.94-120。
[5]杨西明,朱骐.单片机编程与应用入门[M].北京:
机械工业出版社,2004.21-186。
[6]铁勇,刘跃平,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 实现 电子 日历