[page]
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接口采用并行或者串行两种控制方式。
[page]
单片机控制液晶显示模块的接口方式主要有两种:直接访问方式和间接访问方式。直接访问方式是把液晶显示模块作为存储器或I/O设备直接连接到单片机总线上;而间接访问方式是把液晶显示模块作为终端与单片机的并行接口连接,而单片机通过对该并行接口的操作实现对液晶显示。一般在进行液晶显示模块的控制时,采用间接访问方式。如图6所示为液晶屏驱动电路。
3 系统软件设计
本系统选用适时性强与透明度高的C语言作为编程语言,系统软件的开发全部采用Keil μVision 3进行。系统程序的开发,采用了流行的模块化设计方法。在程序设计中,可根据系统功能,将整个软件系统划分为若干个功能相对独立易于解决的模块,每个模块是一个结构完整、相对独立的程序段,能完成某一规定的任务,实现某个具体的功能。
系统软件的设计,主要由如下程序模块组成:DS1302时钟控制,DS18B20温度采集、1602液晶显示驱动等。整个系统的主程序如图7所示。
时间调整:在正常走时状态下,按Set键进入时间调整界面,可以依次调节年、月、日、星期、时、分等信息,按Out键退出当前的调整状态,恢复正常走时。
闹钟调整:在正常走时状态下,连按Set键两次进入闹钟设置界面,可以依次调节闹钟小时、分、闹钟开启和闹钟关闭。当设置闹钟时间后,按Set键即可退出闹钟设定界面,闹钟设置完成。若不想使用闹钟,就按Out键则闹钟被关闭。
4 结语
本系统利用AT89S52单片机进行可编程控制,结合外围温度传感器、液晶屏等,通过DS1302的使用可以降低编写程序的复杂程度。Keil C编译软件实现单片机控制液晶显示模块的万年历设计,可以达到比较好的没计效果。系统硬件电路采用成熟的电路设计,元件选用成本较低的器件,电路稳定,扩干扰力强,性价比较高。软件开发用C语言,采用模块式结构,系统功能易于扩展。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』