基于 51 单片机的电子万年日历Word格式文档下载.docx
《基于 51 单片机的电子万年日历Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于 51 单片机的电子万年日历Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
SingleChipMicrocomputerAT89C51ElectronicperpetualcalendarDS1302
3
目录
第一章绪论......................................................5
1.1设计研究的背景.............................................5
1.2设计研究目的与意义..........................................5
1.3设计解决的主要内容..........................................5
第二章总体设计...................................................6
2.1方案的构建与确定............................................6
2.2原件的选用分类.............................................6
2.3系统框图设计...............................................6
第三章系统硬件的设计............................................8
3.1单片机最小系统.............................................8
3.1.151单片机...............................................8
3.1.2复位及时钟震荡电路......................................8
3.2DS1302模块..................................................9
3.2.1DS1302时钟芯片........................................9
3.1.2时钟模块电路...........................................10
3.3液晶显示模块..............................................11
3.4闹钟提醒模块..............................................11
3.5矩阵键盘电路..............................................12
4
第四章系统的软件设计...........................................13
4.1主程序....................................................13
4.2闹钟提醒程序..............................................14
第五章系统仿真及调试...........................................15
5.1日历显示模式仿真调试......................................15
5.2时间调整模式仿真调试......................................16
结论............................................................17
致谢............................................................18
参考文献........................................................19
附录I原理图...................................................20
附录II主程序代码..............................................21
5
第一章绪论
1.1设计研究的背景随着科技的快速发展,人类不断研究,不断创新纪录,从工业化到电子信息化时代,
从日晷到纸质日历,再到现在的电子日历,从一般只能算时间到它可以对年、月、日、时、
分、秒进行计时。
我们所用的DS1302的使用误差低,使用时间寿命长。
并且能直观的显示你所需要的信息,还具有时间自动校准等功能。
使用AT89C51单片机作为核心,廉价且可靠。
此万年历具备读取简易、显示明了直观、功能百般、电路简单清晰、成本低等诸多优点,吻合电子仪器仪表的发展趋势,具有广阔的市场前景。
1.2设计研究目的与意义随着时代的变化,人们放弃了那些繁琐复杂的推算时间的方法,并且研究了先进的方法。
在这高速运行的社会中,单片机扮演着重要的角色。
人们走到哪里都需要关注一下时间,并且在重要场合,如:
军区、学校、企业、机关。
所以说电子万年日历的开发是国家之所需,也同时是社会之所需。
有需求量就有供给量,这促使着电子万年日历在社会市场拥有着广阔的前景。
1.3设计解决的主要内容本设计解决的单片机电子万年日历控制技术,只要包括以下方面:
(1)选择单片机为核心部分,应选用方便、廉价、无污染、低功耗、抗断电的器件。
(2)根据单片机的类型选用合适的周围配件。
(3)在硬件设计时,电路尽量简洁实用,制作方便。
(4)根据硬件电路图,完成焊接。
(5)根据硬件电路,写出合适的AT89C51
程序。
(6)经过编程、编译、调试,把程序下载到单片机上运行,并实现本设计的功能。
(7)在硬件和软件设计方面,主要考虑了提高人机界面友好、操作方便等因素。
(8)软件设计必须有一个好的想法,要实现程序简单,易于调试。
6
第二章总体设计
2.1方案的构建与确定系统的功能往往决定了系统采用的结构,在性能,成本,功耗等多方面的考虑决定选用AT89C51RD+单片机为核心控制模块,并用LCD3229字符型液晶液晶作为显示模块,时钟模块选用专用时钟芯片DS1302,并具有掉电工作的功能;
语音模块以另一个AT89C4051单片机作为闹钟处理芯片;
系统将具有年月日,时分秒,星期的时间信息显示,并能通过按键调整时间,另外还能以月查看的方式显示当前月份的日历表。
2.2原件的选用分类单片机:
AT89C51RD+,AT89C451
传感器:
DS1302
显示器:
LCD3229图形液晶电源:
5v线性直流稳压电源四输入与门:
74LS21
分立元器件:
电阻,电容,按键,纽扣电池,晶振,三极管,有源蜂鸣器
2.3系统框图设计图2.1系统框图
AT89C51RD+
单机核心处理模块
LCD3229
液晶显示模块时钟及复位模块
DS1302时钟模块
AT89C4051整点音乐闹钟提醒模块
液晶显示模块时钟及复位模块按键矩阵模块
DS1302时钟模块南京信息职业技术学院毕业设计
7
系统总体设计框图如图2.1所示,AT89c51rd+单片机作为核心处理模块,负责时间及日历表的显示,通过对ds1302的时间读取获得当前时间信息,并驱动LCD2339液晶显示时间信息;
同时处理获得的时间原始数据,计算出当天是星期几,绘制日历表,通过矩阵键盘的的控制,可以调整时间;
选择是主页“菜单”显示还是日历表的显示。
当获得整点信息时,通过核心模块的串口给4051发送播放音乐的命令,接着4051播放提示音乐,
放完后等待下次整点来临。
8
第三章系统硬件的设计
3.1单片机最小系统
3.1.151单片机
51单片机兼容英特尔8031
单片机的单芯片。
该系列单片机的鼻祖是Intel的8031单片机,随后跟着Flashrom技术的发展,8031单片机获得了长足的起色,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它普遍应用于产业测控系统当中。
很多公司都推出了51系列兼容型,未来很长一段时间会占据很大的市场。
51单片机是基础入门的一个单片机,仍然是使用中最广泛的一种。
请注意,52系列的微控制器一般没有自我编程能力。
主要芯片类型如下:
:
(1)MCS-51系列单片机
(2)AT89C51单片机
AT89C51单片机的主要特征如下:
与MCS-51产品指令系统完全兼容
寿命:
1000写/擦循环
数据能保留10年
4V~5.5V的工作电压范围
全静态工作模式:
0~33MHz
三级程序存储器锁
128×
8字节内部RAM
32可编程I/O口线
两个16位定时/计数器
5个中断源
可编程串行通道
低功耗空闲置和掉电模式
片内振荡器和时钟电路
3.1.2复位及时钟震荡电路图3.1复位电路南京信息职业技术学院毕业设计
9
图3.2晶振电路
3.2DS1302模块
3.2.1
DS1302时钟芯片如今流行的串行时钟电路非常多,如DS1302、DS1307、PCF8485等。
该电路接口简单,价格低,使用方便,广泛应用。
本文介绍的实时时钟电路DS1302是DALLAS公司的一种具备涓细电流充电能力的电路,主要特点是选用串行数据传输,可为掉电保护电源提供可编程的充电功能,而且可以能够关闭充电功能。
采用普通32.768kHz晶振。
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~
5.5V。
三线接口和中央处理器用于同步通信,和突发模式可用于发送多个字节的时钟信号或内存数据在一个时间。
DS1302在内部有一个31×
8的用于临时性寄存数据的RAM寄存器。
DS1302是DS1202的升级产物,与DS1202兼容,但增添了主电源/背面电源双电源引脚,
同时供应了对后背电源进行涓细电流充电的能力。
DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。
在关闭主电源的情况下,
它可以保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于
Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和
X2是振荡源,外接32.768kHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;
其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
I/O为串行数据输入输出端(双向),后面有详细说明。
SCLK始终是输入端。
DS1302的控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;
位5至南京信息职业技术学院毕业设计
10
位1
指示操作单元的地址;
最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1902,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出
DS1302的数据,读出数据时从低位0位到高位7。
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD
码形式,其日历、时间寄存器及其控制字见表1。
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM
相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。
DS1302与RAM相关的寄存器分为两类:
一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;
另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
DS1302
与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。
DS1902与89C2051
的连接图,其中,时钟的显示用LED。
DS1302与CPU的连接,实际上,在调试程序时可以不加电容器,只加一个32.768kHz
的晶振即可。
只是选择晶振时,不同的晶振,误差也较大。
另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。
只要占用CPU一个口线即可。
LED还可以换成LCD,
还可以使用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LCM101,
内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有3-4线串行接口,可与任何单片机、IC接口。
功耗低,显示状态时电流为2μA(典型值),省电模式时小于1μA,工作电压为2.4V~3.3V,显示清晰。
3.1.2
时钟模块电路图3.1DS1302时钟电路
DS1302时钟芯片的应用电路如图3.1所示,晶振的频率的32.768kHz,并附带3v纽扣电池,系统断电情况下依然工作。
保证VCC1>
VCC2至少0.2v情况下,系统不断电情况下自南京信息职业技术学院毕业设计
11
动使用电源供电,掉电情况下自动选择电池供电,保证电源的稳定性故加了两个滤波电容,控制引脚直接接到51的P3口。
3.3液晶显示模块图3.2液晶模块的电路液晶显示模块如图3.2所示,液晶选用LCD3229字符图形液晶,像素为240*128,完全满足需要显示的信息,液晶的数据口接到51的P0口,故上拉电阻为10k,控制引脚接到51单片机的P2口。
3.4闹钟提醒模块图3.3音乐闹钟模块闹钟提醒模块如图3.3所示,核心模块选用89c4051,4k的flash完全满足设计要求,接收89c51rd+的整点播放命令,即可播放音乐,播放结束后等待下次整点的来临;
喇南京信息职业技术学院毕业设计
12
叭选用有源蜂鸣器。
3.5矩阵键盘电路图3.4键盘矩阵电路键盘矩阵电路如图3.4所示,该按键为4x4矩阵键盘,按键的读取状态通过中断来读取,这样可以保证单片机的系统的高效率,而改变以往的顺序扫描模式,减少不该浪费的时间从而大大提高系统的可靠性,并且中断具有相应快的特点,让键盘扫描更迅速。
13
第四章系统的软件设计
4.1主程序
NYYYYYYNN
主函数液晶初始化
DS1302初始化主菜单显示初始化打开外部中断1
获取原始时间信息计算当前是星期几并显示时间信息是否有按键如果为日历表显示模式如果为左键如果为右键如果为确定键如果为时间调整模式返回通过一定的算法计算出当前月份的日历表,
并显示通过上,下按键调整时间,左右键选择调整的项目选择时间调整模式选择日历表显示模式南京信息职业技术学院毕业设计
14
4.2闹钟提醒程序
YYN
开始串口初始化,等待中断是否为整点
AT89C51rd+通过串口给4051发送播送音乐命令
4051结束等待,是否为整点播放命令开始中断来临播放音乐一首执行后面程序等待南京信息职业技术学院毕业设计
15
第五章系统仿真及调试
5.1日历显示模式仿真调试图5.1主菜单时间显示图5.2日历表显示南京信息职业技术学院毕业设计
16
5.2时间调整模式仿真调试图5.3时间调整模式如图5.3所示,为时间调整模式,时间显示正常,模式转换也正常。
但也存在许多问题,比如我们可以看到时间调整模式没有标明当前调整的是时间的那个数据,这是不太人性化的,同时该程序的设计时候,只考虑到左右键的模式切换问题,而没有考虑如何进入时间调整模式,而当进入时间调整模式时候,左键功能无法用,只能通过右键选择调整时间的哪个数据。
并且时间的调整是通过上/下键来一步一步调,而无法通过数字按键直接调整,这是很不科学的,还要改进的地方是时间调整的按键当按下时间超过预定时间时,
它应该是自动加时或减时的。
另外一个重大的设计漏洞是软件的设计结构不合理,语法不够严谨,算法不够逻辑性,
比如在计算当前的星期几的时候,由于51单片机的内存不太够,因此定义的起始日期是从2000年开始,故之前的年份就不能显示,这违背了万年历的初衷。
另外没有农历的算法,这也是一个很大的缺憾。
总之还有许多需要改进的地方,BUG要慢慢调,算法要逐步合理,但时间显示基本正常,也算达到任务的要求。
17
结论本课题从理论到实际应用,用AT89C51单片机与ds1302时钟芯片,LCD3229液晶显示模块等一些电路的组合,成功的设计出了一个电子万年历。
并且所设计的电子万年历设计也按起初要求的能够在PROTEUS中进行仿真,并且可以很精确的显示年历。
可以说该电子万年历具有很高的实用价值。
软件设计中,使用keil软件中输入的优越性和程序的调试,所以我可以写软件时很容易发现软件错误,现在已经能够使用keil程序的设计调试。
对于PROTEUS这款软件,
也能熟练掌握电路设计仿真。
因为没有怎么接触过这2款软件,再加上毕业设计的时间是有限的,对于自己的连接调试程序,没能掌握,但以后有机会学习更多的。
18
致谢
感谢指导老师和同学们帮助,在他们的帮助和指导意见下,作品和论文顺利完成了。
设计从题目和最后完成,用我的汗水凝结,它让我懂得了如何设计自己的一个有用的电子作品,结合自己所学的知识,理解课文中的内容,受益匪浅。
在完成这门课程的过程中,我想向我的家庭教师和我的老师和学生表示衷心的感谢。
19
参考文献
[1]赵长德.微型计算机原理与接口技术[M].北京:
机械工业出版社,1999:
98-350.
[2]苏平.单片机的原理与接口技术[M].北京:
电子工业出版社,2006:
1-113.
[3]王忠民.微型计算机原理[M].西安:
西安科技大学出版社,2003:
15-55.
[4]胡戴明.计算机组成原理[M].北京:
经济科学出版社,2005:
43-56.
[5]纪宗南.单片机外围器件使用手册[M].北京:
北京航空航天大学出版社,622-655.
[6]周雪.模拟电子技术[M]西安:
西安电子科技大学出版社,2005:
81-95.
[7]左金生.电子与模拟电子技术[M].北京:
电子工业出版社,2004:
105-131.
[8]尹勇.单片机开发环境μVision2的开发指南[M].北京:
北京航空航天大学出版社,
2004:
173-199.
[9]张斌武.单片机系统Proteus设计与仿真[M].北京:
电子工业出版社,2005:
52-89.
20
附录I原理图南京信息职业技术学院毕业设计
21
附录II主程序代码
/==========================================
*程序:
基于51的lcd3229液晶显示模块及应用
*设计者:
沈悦翰
*时间:
2016/3