单片机的电子万年历的设计
二、方案设计 1
(一)系统功能 1
(二)系统框图 1
(三)主要单元电路的器件 2
三、硬件设计 5
(一)单片机最小系统 5
(二)键盘输入电路 6
(三)报警电路 7
(四)温度采集电路 7
(五)时钟电路 7
(六)液晶显示电路 8
四、软件设计 8
(一)主程序 8
(二)按键扫描子程序 10
(三)温度读取程序 11
(四)读取并显示日历和时间子程序 12
五、总结 14
致 谢 15
参考文献 16
附 录 17
附录1 源程序 17
附录2 原理图 40
一、引言
随着生活节奏的日益加快,人们的时间观也越来越重,同时对电子钟表、日历的需求也随之提高。因此,研究实用电子时钟及其扩展应用,有着非常现实的意义,具有很大的实用价值。
而电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。数字显示的日历钟已经越来越流行,特别是适合在家庭居室、办公室、大厅、会议室、车站和广场等使用,壁挂式LED数码管显示的日历钟逐渐受到人们的欢迎。LCD数字显示的日历钟显示清晰直观、走时准确、可以进行夜视,并且还可以扩展出多种功能。
二、方案设计 *51今日免费论文网|www.jxszl.com +Q: ^3^5`1^9`1^6^0`7^2#
(一)系统功能
设计基于单片机的万年历,用于时间及温度显示。具体功能如下:
1. 进行年、月、日、时、分、秒、星期、温度显示,温度显示范围为0.0℃-99.9℃ 。
2. 具有高低温报警及闹钟功能。
3. 高低温报警值可调,默认上限报警温度为32℃,默认下限报警温度为10℃。
4. 可进行闹钟的打开和关闭操作。
5. 闹钟时间可进行手动设置,到达闹钟时间时,蜂鸣器发出短暂滴滴的报警声。
6. 可进行时间及日期的手动调整。
7. LCM1602液晶屏显示。
8. 外部复位功能。
9. 设置按键输入。
(二)系统框图
时钟芯片DS1302将时间数值传动给单片机温度传感器 DS18B20 从设备环境的不同位置采集温度,单片机 AT89C51 获取时间及温度值,通过LCM1602液晶屏进行显示,通过键盘对年、月、日、时、分、秒、星期、闹钟、高低温报警值进行调整,到达设定好的闹钟及高低温报警值进行报警。系统框图如图1所示。
图1 系统工作框图
(三)主要单元电路的器件
1. 单片机AT89C51简介
AT89C51单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3, MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。如图所示。
① 内部结构
按功能分为8部分:CUP,程序存储器,数据存储器,时钟电路,串行口,并行I/O口,中断系统,定时/计数器。
② 引脚定义及功能
(1)电源及时钟引脚
Vcc:接+5V 电源
Vss:接地
XTAL1和XTAL2:时钟引脚,外接晶体引线端。当使用芯片内部时钟时,此两引脚端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
(2)控制引脚
RST/Vpq:RST是复位信号输入端,Vpd是备用电源输入端。当RST输入端保持2个机器周期以上高电平时,单片机完成复位初始化操作。
当主电源Vcc发生故障而突然下降到一定低电压或断电时,第2功能Vpd将为片内RAM提供电源以保护片内RAM中的信息不丢失。
ALE/PROG:地址锁存允许信号输入端。在存取外存储器时,用于锁存低8位地址信号。当单片机正常工作后,ALE端就周期性地以时钟振荡频率的1/6固定频率向外输出正脉冲信号。此引脚的第2功能PROG是对片内带有4K字节EPROM的8751固外程序时,作为编程脉冲输入端。
PSEN:程序存储器允许输出端。当片外程序存储器的读选通信号,低电平有效。CPU从外部程序存储器取指令时,PSEN信号会自动产生负脉冲,作为外部程序存储器的选通信号。
EA/Vpp:程序存储器地址允许输入端。当EA为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令;当EA为低电平时,CPU只执行片外程序存储器指令。
(3)I/O口引脚
P0.0~P0.7:P0口8位双向I/O口;
P1.0~P1.7:P1口8位准双向I/O口;
P2.0~P2.7:P2口8位准双向I/O口;
P3.0~P3.7:P3口8位准双向I/O口。
③ 片外总线结构
分为三部分:数据总线 Data Bus(DB),地址总线 Address Bus (AB),控制总线 Control Bus(CB)。
图2 AT89C51引脚图
2. DS1302的简介
① DS1302的结构及工作原理
DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
② 引脚功能及结构
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 进行操作。如果在传送过程中RST 置为低电平,则会终止此次数据传送,I/O 引脚变为高阻态。上电运行时,在Vcc≥2.5V 之前,RST 必须保持低电平。只有在SCLK 为低电平时,才能将RST 置为高电平。I/O 为串行数据输入输出端(双向),后面有详细说明。SCLK 始终是输入端。
原文链接:http://www.jxszl.com/dzxx/txgc/29583.html