利用单片机制作简单万年历
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
国家职业资格全国统一鉴定
(国家职业资格二级)
家用电子产品维修工
论文题目:利用单片机制作简单万年历编号:13
利用单片机制作简单万年历
摘要:随着时代科技的发展,从摆钟到电子时钟,时代在进步,科技在不断地创新,本文设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。在硬件设计方面,该电路采用AT89C52单片机作为核心,功耗小,计时模块采用DS1302d时钟电路,它的特点是寿命长,误差小,在显示方面,采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见;在软件设计方面,应用c语言编写程序,它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能。在设计同时对单片机的理论基础和外围扩展知识进行了很好的实现。
关键词:AT89C52 DS1302 LCD1602
目录
1、前言 (4)
2、方案设计 (4)
2.21 主控模块设计 (5)
2.22 时钟电路模块设计 (6)
2.23 按键电路模块设计 (6)
2.24 显示模块设计 (7)
2.31 主程序设计 (7)
2.32 LCD1602显示软件设计 (8)
2.33 按键程序设计 (9)
2.34 DS1302时钟程序模块设计 (9)
3、测试与结果分析 (10)
4、软件仿真 (10)
5、结束语 (11)
参考文献 (13)
1、前言
据了解,目前市场上的电子万年历并不是采用51单片机作为主控制器的,基于单片机的万年历一般是学生和单片机爱好者在进行设计,谈不上占有市场。也许就是这样,研究单片机万年历的人不在少数,并且都在努力。努力不是单方面的,单片机的功能也应该要提高,STC89C52单片机就是这样的例子,其功能虽然没有大幅度提高,但使用起来更方便了。我相信,在不久的将来肯定会有功能更强大成本更低的单片机出现,给我们的设计带来更多的便利。
本设计采用的是AT89S52单片机,该单片机采用的MCU51内核,因此具有很好的兼容性,内部带有8KB的ROM,能够存储大量的程序,最突出特点是具有ISP 在系统烧写功能,使得烧写程序更加方便。
计时芯片采用DALLAS公司的涓细充电时钟芯片DS1302,该芯片通过简单的串行通信与单片机进行通信,时钟/日历电路能够实时提供年、月、日、时分、秒信息,采用双电源供电,当外部电源掉电时能够利用后备电池准确计时。总体来说,本设计成本消耗不高,功能设计也比较简单实现。
2、方案设计
2.1 总体设计思路
本设计包括硬件和软件设计两个部分。模块划分为主控模块、时钟电路模块、显示模块等子模块。软件方面可划分为:液晶显示程序、时钟调节程序、按键控制程序等管理软件组成。用户终端对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能。它们之间的构成框图系统设计框图如图1所示。
图1 系统设计框图
2.2 系统的硬件模块设计
2.21 主控模块设计
AT89S52单片机为40引脚双列直插芯片,有四个I/O 口P0,P1,P2,P3, MCS-51单片机共有4个8位的I/O 口(P0、P1、P2、P3),每一条I/O 线都能独立地作输出或输入。
单片机的最小系统如图2所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。
图2 单片机最小系统
89c51
主控模块 按键模块
显示模块 时钟模块
2.22 时钟电路模块设计
DS1302的引脚排列如图3所示,其中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进行操作。如果在传送过程中RSTS 置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电动行时,在Vcc 大于等于2.5V之前,RST必须保持低电平。中有在SCLK 为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。SCLK始终是输入端。
图3 时钟电路
2.23按键电路模块设计
键盘是一种最常用的输入设备,它是一组按键的集合,从功能上可分为数字键和功能键两种,作用是输入数据与命令,查询和控制系统的工作状态,实现简单的人机对话。本文用到键盘的软件方法:是指编制一段时间大于100ms的延时程序,在第一次检测到有键按下时,执行这段延时子程序使键的前沿抖动消失后
再检测该键状态,如果该键仍保持闭合状态电平,则确认为该键已稳定按下,否则无键按下,从而消除了抖动的影响。同理,在检测到按键释放后,也同样要延迟一段时间,以消除后沿抖动,然后转入对该按键的处理。如图4所示。
图4 按键电路
2.24显示模块设计
液晶显示原理是将液晶置于两片导电玻璃之间,靠两个电极间电场的驱动,引起液晶分子扭曲向列的电场效应,以控制光源透射或遮蔽功能,在电源关开之间产生明暗而将影像显示出来,若加上彩色滤光片,则可显示彩色影像。LCD1602电路如下图5所示。
图5 液晶电路图
2.3 系统的软件模块设计
2.31主程序设计
本程序设计与平时编写程序步骤相同,不过需要添加DS1302、LCD1602的头