基于AT89S52单片机的电子万年历系统设计
扫描二维码
随时随地手机看文章
摘要:为设计一款电路简洁、走时准确、功能齐全的家用电子万年历,利用AT89S52单片机进行可编程控制,结合外围温度传感器、液晶屏等,实现了万年历的时间日期准确显示,人性化的闹钟设置以及环境温度的实时显示。设计结构模块化管理.基于C语言编写,可移植性强,便于后期扩展,硬件成本低,适合家庭用户使用。
关键词:电子万年历;单片机编程;温度传感器;液晶显示
目前基于单片机控制技术的微电子技术得到空前的发展。广泛应用于各种控制领域、智能领域、仿真领域。控制领域里的定时计时控制、温度控制,在生产、生活等领域已经得到了广泛的应用。液晶显示模块在各种测量仪器、测量装置、显示仪表等日用电子产品中的应用越来越广泛,并且对器件的测量精度和显示精度的要求也越来越高,尤其是对时间的测量不但要求准确,而且需要读取数值更直观更方便。本文以AT89S52单片机为主控芯片,以DALLAS公司推出的实时时钟芯片DS1302为时钟控制芯片,以1602液晶显示模块为显示器,进行电子万年历系统的设计。本系统可同屏显示年、月、日、星期、温度以及闹钟设置等功能。
1 系统总体设计
本系统以STC89S52单片机为核心,结合时钟芯片DSl302,温度采集芯片DS18B20等外围器件,实现了万年历等一系列功能,并通过液晶屏和按键控制完成人机交互的功能。其系统总体设计框图如图1所示。
2 系统硬件设计
2.1 单片机最小系统
本系统设计中使用的单片机为AT89S52,其内部是8位的CPU,8 KB片内ROM以及256 B的可使用的片内RAM,32根并行I/O接口,两个16位的定时/计数器,五个中断源,两个中断优先级的内部结构。单片机的最小系统如图2所示,单片机的复位电路和晶振电路如图3所示。
2.2 时钟电路
其次还用到美国DALLAS公司推出的高性能、低功耗、带RAM的实时时钟电路DS1302,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5~5.5 V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302的驱动电路如图4所示。
2.3 温度传感器驱动电路
系统的温度传感器采用DS18B20单线数字式温度传感器。该温度传感器适用电压为3~5 V(与单片机5 V电源供电可以适用同一电源),可测温度范围为-55~+125 ℃(完全可以满足本系统),而且它只需单总线进行信息交互,即只需占用单片机的一个I/O口,而且基本不需要外部原件。温度传感器电路原理图如图5所示。
2.4 液晶显示驱动电路
本系统里用1602LCD显示模块来显示万年历的年月日、星期及时间信息,该液晶模块5 V电压驱动,带有背光,对比度可调;内建复位电路,有80 B显示数据存储器DDRAM,有160个5×7点阵的字型的字符发生器CGROM,8个可由用户自定义的5×7点阵的字型的字符发生器CGRAM;与外部CPU接口采用并行或者串行两种控制方式。
单片机控制液晶显示模块的接口方式主要有两种:直接访问方式和间接访问方式。直接访问方式是把液晶显示模块作为存储器或I/O设备直接连接到单片机总线上;而间接访问方式是把液晶显示模块作为终端与单片机的并行接口连接,而单片机通过对该并行接口的操作实现对液晶显示。一般在进行液晶显示模块的控制时,采用间接访问方式。如图6所示为液晶屏驱动电路。
3 系统软件设计
本系统选用适时性强与透明度高的C语言作为编程语言,系统软件的开发全部采用Keil μVision 3进行。系统程序的开发,采用了流行的模块化设计方法。在程序设计中,可根据系统功能,将整个软件系统划分为若干个功能相对独立易于解决的模块,每个模块是一个结构完整、相对独立的程序段,能完成某一规定的任务,实现某个具体的功能。
系统软件的设计,主要由如下程序模块组成:DS1302时钟控制,DS18B20温度采集、1602液晶显示驱动等。整个系统的主程序如图7所示。
时间调整:在正常走时状态下,按Set键进入时间调整界面,可以依次调节年、月、日、星期、时、分等信息,按Out键退出当前的调整状态,恢复正常走时。
闹钟调整:在正常走时状态下,连按Set键两次进入闹钟设置界面,可以依次调节闹钟小时、分、闹钟开启和闹钟关闭。当设置闹钟时间后,按Set键即可退出闹钟设定界面,闹钟设置完成。若不想使用闹钟,就按Out键则闹钟被关闭。
4 结语
本系统利用AT89S52单片机进行可编程控制,结合外围温度传感器、液晶屏等,通过DS1302的使用可以降低编写程序的复杂程度。Keil C编译软件实现单片机控制液晶显示模块的万年历设计,可以达到比较好的没计效果。系统硬件电路采用成熟的电路设计,元件选用成本较低的器件,电路稳定,扩干扰力强,性价比较高。软件开发用C语言,采用模块式结构,系统功能易于扩展。