1.3课题解决的主要内容
本次的研究课题是“基于单片机的电子万年历”,是一种以单片机技术为核心的计时系统,主要研究内容如下:
(1)元器件的选择:考虑到器件的实用性、易用性、存储空间、功率损耗低、是否抗断电等因素,选择了PIC16F877A单片机、DS18B20的温度传感器等器件。
(2)硬件电路的设计:选用的单片机为核心进行外围电路和接口电路的设计。经过考虑后,采用简单实用的电路结构,顺利地完成了系统硬件电路的设计。
(3)软件程序的设计:在硬件电路的基础上,完成了PIC16F877A单片机及其外围电路的控制程序的编写。因为一开始软件设计时就先完善了设计思路,确定一个完备的方案,所以程序的编写也较为顺利,同时确保了软件程序的简洁性及可读性。
(4)系统优化:在进行硬件电路和软件程序设计时,充分考虑了人机界面的友好性,操作便利性等因素,并对电路和程序进行优化。
(5)系统仿真:对设计好的软件程序进行编程、编译、调试后,成功地在PROTEUS上进行仿真,并实现了本设计所要求的功能。
2 设计要求与方案论证
2.1功能要求
(1) 具备对年、月、日、星期、时、分、秒进行计时的功能
(2)显示、时间与阴阳历能够自动关联等功能;
(3) 可以通过按键设置及校准年、月、日及星期;
(4) 具有温度计功能;
(5)液晶显示屏显示年、月、周、日、时、分、秒、环境温度
2.2 系统方案论证与设计
2.2.1单片机的方案选择和论证
方案A:
采用51系列中经典的AT89C51单片机,功耗低、兼容性好,内部有4KB ROM 存储空间,能在2.0V—5.5V的电压下工作,是一款性价比非常高的单片机。但AT89C51单片机不支持ISP在线编程技术,需要拔插芯片后才能对程序进行烧入,这会对单片机造成损害,缩短其使用寿命[16]。
方案B:
采用PIC中最经典的PIC16F877A,端口多,功能全,其单片机资源也很丰富,特别是它有8K的ROM,能够提供较大的存储空间。其片内具有高性能RSIC CPU;能在2.0V—5.5V的电压下工作;与AT89C51相比,PIC16F877A支持在线编程可擦除技术,因此它重新进行程序烧入时无需对芯片进行拔插,性能更加稳定,使用寿命更长。
综上考虑,决定选用PIC16F877A单片机。
2.2.2测温模块的方案选择和论证
方案A:
采用基于热敏电阻的温度传感器,利用电阻串联分压的原方法来测量温度,其原理为,利用热敏阻值随温度改变而变化的特性,使两个串联电阻的电压变化,并对分压值进行采集和A/D转换。此方案需要搭建A/D转换电路,硬件电路较为复杂,制作成本高,软件的编写和调试也更为复杂。且热敏电阻的感温特性曲线并非真正线性曲线,易造成较大的误差。
方案B:
采用基于DS18B20的温度传感器,DS18B20测量精度高、测量范围也较广,它采用数字式传感技术且传输线路简单,只需要一条数据线与单片机连接便可进行数据传输,无需使用A/D转换模块。相对热敏电阻传感器,其系统电路更为简单,成本也更低廉。
综上考虑,决定选用DS18B20温度传感器。
2.2.3显示模块的方案选择和论证
方案A:
采用基于点阵式数码管的数据显示方式,点阵式数码管非常适合用于文字显示,它是由8行8列的发光二极管连接组成,也因此线路连接较为繁琐且成本较高 。
方案B:
采用基于LED动态扫描的数据显示方式,LED数码管成本低, 非常合适用于显示数字,但不适合显示文字,不能直观地读取时间。