1.任务描述
本项目是设计一个万年历,具体要求如下:
(1)能够用液晶显示年、月、日、星期、时、分、秒。
(2)能借助按键实现日期、星期和时间的调整。
2.任务分析
按照要求完成万年历设计任务,需要解决以下几个问题:①单片机的选型;②单片机与液晶显示模块接口的构建;③单片机与按键接口的构建;④系统标准定时时间的实现方法。
单片机的选型同前面项目。万年历日期、时间和星期的显示采用字符型液晶显示器实现,在此选用LCD1602液晶显示模块。在单片机与按键接口电路的构建中,由于本项目只需要7个按键用于万年历的调整,且单片机的I/O线充裕,因此采用独立按键。系统的标准定时用专门的典型时钟芯片DS1302实现。
3.任务实施
(1)总体设计。
图9-16 万年历的系统结构图
根据任务分析,万年历设计可采用AT89S51单片机控制,需要11个I/O口控制液晶显示器LCD1602。在设计中需要引入7个独立按键电路,需要7个I/O口。系统工作时的时间、日期和星期由专用芯片DS1302产生,需要单片机提供3个I/O口连接该时钟芯片。系统结构图如图9-16所示。
(2)硬件设计。
实现该任务的硬件电路中包含的主要元器件为:AT89S51 1片、DS1302 1片、LCD1602模块1个、按键7个、电阻和电容等若干。单片机的P0口接LCD1602的数据端,P1.0~P1.2依次连接LCD1602的控制端RS、RW、E。DS1302的三个控制端则分别接至单片机的P1.5~P1.7。用于调节万年历的按键接至P3.0~P3.6口。万年历的原理图如图9-17所示。
图9-17 万年历原理图(www.xing528.com)
(3)软件设计
①软件流程。
万年历的软件流程图如图9-18所示。软件采用模块化设计方法,模块说明如下:变量缓冲区定义模块、主程序模块、按键扫描模块、按键任务处理模块、缓冲区设置模块、液晶显示模块、DS1302时钟产生模块、软件延时模块等。
图9-18 万年历软件流程图
②源程序如下:
(4)虚拟仿真。
万年历的Proteus仿真硬件电路图如图9-19所示。
图9-19 万年历仿真图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。