APP下载

基于单片机控制的LCD显示万年历制作

2013-11-06黑龙江工业学院教务处黑龙江鸡西158100

长江大学学报(自科版) 2013年22期
关键词:计数器温度传感器按键

苏 畅 (黑龙江工业学院教务处,黑龙江 鸡西 158100)

基于单片机控制的LCD显示万年历制作

苏 畅 (黑龙江工业学院教务处,黑龙江 鸡西 158100)

利用单片机控制程序设计一个简易的LCD万年历。单片机选择能够在线编程的AT89S52,不但能在线编程还具有8KB的内部程序存储器和256B的数据存储器,其接口与指令系统完全与51系列单片机兼容,具有抗干扰能力强、操作简单等优点;万年历数据由最常用的DS1302提供,它是一种高性能、低功耗、带有片内RAM的实时万年历电路,可以分别对年、月、日、周、时、分、秒进行计时,还具有闰年调整功能;温度传感器则采用集成式的DS18B20,特点是采用独特的一线接口;数据掉电存储电路采用AT24C02,支持I2C总线数据传送协议I2C。

LCD万年历;AT89S52;DS1302;DS18B20;AT24C02

1 系统电路总体设计

万年历电路主要由6大模块构成:单片机控制电路,温度传感器电路、按键输入电路、万年历输出模块电路、显示电路、蜂鸣器提示电路。 当温度传感器接受到外面的信号,送入单片机,单片机将接受到的信号输出,让它在液晶上显示。 同时由单片机控制芯片读取DS1302万年历芯片数据在液晶屏上显示日期、时间等信息。当秒计数计满60时就向分进位,分计数器计满60分后向时计数器进位,小时计数器按“24翻1”规律计数。时、分、秒的计数结果经过数据处理可直接送显示器显示。当计时发生误差的时候可以用校时电路进行校正。时计数器计满24h后自动向日计数器进一,日计数器对大、小月和二月的判断应与当月相应的日期相一致,当日计数器计满时,向月计数器进位,月计数器计满12月向年计数器进位,当年计数器计满100时所以计数器清零。设计采用的是年、月、日和时、分、秒、星期显示。系统框图如图1所示。

图1 系统框图

1)单片机 单片机选择能够在线编程的AT89S52,不但能在线编程还具有8KB的内部程序存储器和256B的数据存储器,其接口与指令系统完全与51系列单片机兼容,具有抗干扰能力强、操作简单等优点。

2)万年历数据 万年历数据由最常用的DS1302提供,它是一种高性能、低功耗、带有片内RAM的实时万年历电路,可以分别对年、月、日、周、时、分、秒进行计时,还具有闰年调整功能,工作电压为2.5~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器,具有使用寿命长、精度高和低功耗等特点,同时具有掉电自动保存功能[1]。

3)温度传感器 采用集成式的DS18B20,特点是采用独特的一线接口,电压范围为3.0~5.5V ,无需备用电源,测量温度范围为-55~125℃,精度为±0.5℃。温度传感器可编程的分辨率为9~12位,温度转换为12位数字格式[2]。

4)数据掉电存储电路 采用AT24C02,支持I2C总线数据传送协议I2C,总线协议规定任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,由于A0、A1和A2可以组成000~111八种情况,即通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上,通过进行不同的配置进行选择器件。

5)液晶显示电路 LCD智能型显示模块则是一种低功耗、低价值、低损耗的显示器件,它不但可以显示各式各样的字符、汉子和图形,同时具有可编程能力,且与单片机接口方便,基于以上优点,LCD智能型显示模块获得了广泛的应用。LCD12864点阵液晶显示模块是由128*64个液晶显示点组成的一个128列*64行的阵列。每个显示点对应一位二进制数,1表示亮,0表示灭。存储这些点阵信息的RAM称为显示数据存储器,要显示某个图形或汉字就是将相应的点阵信息写入到相应的存储单元中。图形或汉字的点阵信息由自己设计,问题的关键就是显示点在液晶屏上的位置(行或列)与其在存储器中的地址之间的关系。每个存储单元存储8个液晶点的显示信息[3]。

6)按键输入及蜂鸣器提示电路 按键输入采用通用按键,利用单片机输入输出接口P1口中的P1.4、P1.5、P1.6、P1.7作为输入,采集按键输入值做出相应的交互变化。蜂鸣器电路也可以利用一个单片机的输出接口,控制蜂鸣器的声音。

2 系统硬件设计

在控制系统硬件电路设计中还要注意环境因素对系统的干扰情况,系统抗干扰的措施主要有以下几种:①电源干扰的抑制。直流电源滤波效果不好将引起电源波动,直接造成对单片机不稳定的影响,应该选用各种参数较好的电源以及隔离性能较好的设备来屏蔽电缆、高压泄放元件等,防止干扰信号的传送。②变压器干扰的抑制。可以使用一些隔离物来对变压器产生的干扰进行屏蔽,例如使用滤波器,就能防止设备本身的干扰传递给电源等,减少了电磁辐射和能量的消耗。③信号线之间相互的防干扰措施。在LED的设计中,应该充分考虑信号线引入的防干扰,尽可能让信号线之间保持一定的距离,从而将干扰的程度降到最低。设计硬件电路中主要利用万年历芯片DS1302、集成式温度传感器DS18B20、E2PROM存储芯片24C02以及普通按键输入电路,其中,DS1302时钟电路如图2所示,温度检测模块电路图如图3所示,按键输入电路如图4所示,24C02数据存储电路如图5所示。在进行LED时钟设计的时候,对于单片机的抗干扰措施要做好,才能确保程序的正常运行。

图2 时钟电路 图3 温度检测电路

图4 按键输入电路 图5 24C02数据存储电路

3 系统程序设计

图6 系统程序流程图

系统软件在51编译环境下,使用Keil4编程,主要将程序分为6个部分,依次为LCD12864各界面显示、时间温度显示、DS1302万年历模块、DS18B20温度采集模块、警报系统(包括闹钟的声响)、按键等来实现万年历功能。系统程序设计涉及到多个子程序,多个芯片的编程。首先必须对可编程芯片的控制指令多次调用。其次,芯片很多都有时钟输入端,需要晶振支持。对芯片的读写都需要在相应的触发沿到来时才能进行。程序设计中LCD12864和DS1302的数据读取及指令写入函数均已在各自的头文件中完成,在主程序中只须引用即可。由于在硬件电路方面上设计了时间调整按键,因此也要有对应的时间调整程序。系统程序流程图如图6所示。

4 结语

笔者设计了一种基于AT89S51单片机的万年历系统,该系统以AT89S51单片机作为主控核心,与时钟芯片DS1302、按键、LED显示等模块组成硬件系统。在硬件系统中设有独立按键和LED显示器,能显示丰富的信息,根据使用者的需要可以随时对时间进行校准、选择时间等。该万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景和教学实用前景。

[1]郭世维,邓飞. 单片机控制系统的抗干扰措施[J]. 烟台职业学院学报,2006,12(2):44-47.

[2] 成都 学友.AVR单片机开发工具的使用(一)[N]. 电子报,2001-04-15.

[3]梁新平. 单片机控制的逻辑无环流可逆调速系统设计[A]. Proceedings of 2010 International Conference on Broadcast Technology and Multimedia Communication(Volume 4)[C]. 2010.

[编辑] 洪云飞

TN873.93

A

1673-1409(2013)22-0077-03

2013-05-12

苏畅(1977-),女,硕士,讲师,现主要从事计算机硬件方面的教学与研究工作。

猜你喜欢

计数器温度传感器按键
采用虚拟计数器的电子式膜式燃气表
基于有限状态机的按键检测程序设计
温度传感器DS18B20在温度计设计中的应用
一种高性能CMOS温度传感器
按键消抖在单片机和FPGA实验教学中的应用
XTR105电流变送器在温度传感器中的应用
一种多方向导光按键结构设计
计数器竞争冒险及其处理的仿真分析
温度传感器在笔记本电脑散热系统中的应用
三值绝热多米诺可逆计数器设计