基于RA8806控制器的温湿度控制系统设计
扫描二维码
随时随地手机看文章
摘要:使用RA8806控制器的JXD320240AF液晶显示模块具有显示数据量大,显示位置及大小易于控制,与控制器连接简单等特点,非常适合使用在小型自动化控制领域。本文以冷库温湿度控制系统设计为例,介绍RA8806控制器的功能,与单片机的接口以及该系统软件的设计思想与流程,并且进行现场测试。测试结果表明,使用RA8806控制器构成的显示部分,硬件电路紧凑、显示画面丰富、软件设计灵活,具有较高的应用价值。
目前以单片机为控制器的各类控制系统中,显示部分的设计是其中非常重要的一部分。常用的显示元件有LED数码管、1602、12864等,但这些元件显示的信息量非常有限,1位LED数码管只能显示1位数字,而且不能是汉字,连续多位LED数码管只能适用于很少量的数字显示。1602是一款16×2的点阵图形液晶显示模块,上下两行,每行可以显示16个字符,总共可以显示32个字符。12864是一款带中文字库的点阵图形液晶显示模块,可以显示8×4行 16×16点阵的汉字,最多显示32个汉字,对于需要显示较多信息量的控制系
统,这些显示元件就显得不很适合。文中介绍一种基于RA8806控制器的JXD320240AF液晶显示模块的冷库温湿度控制系统的设计。
该系统主要用于实现冷库温湿度的多点测量和控制,其主要功能为使用AM2301数字温湿度一体传感器测量冷库4个点的温湿度,测量数据进入AT89S52 单片机,经单片机进行数据处理后,使用RA8806控制器的JXD320240AF液晶显示屏显示测量的温湿度以及所设定的温湿度上下限,同时显示通过时钟芯片DS1302传送过来的日期和时间。另外,在测量的温湿度进入单片机后,单片机还要将测量的温湿度与所设定的温湿度进行比较,以确定温湿度是否超限,如果超限,单片机将控制相关的元件进行声光报警,并驱动继电器,控制相关的加热、加湿设备工作,系统的温湿度上下限和日期时间可以通过按钮来设置。本系统的重点在于对使用RA8806控制器的JXD320240AF液晶显示屏的控制和操作,使数据能够正常的按照设定要求显示。
1 RA8806控制器简介
RA8806是一个文字与绘图模式相结合的点矩阵液晶显示控制器,内建双图层显示内存,一般模式最大支持320×240点双图层混和显示,扩展模式支持 640×240点或320×480点单图层显示,支持4/8-bits的6800/8080 MPU接口和4/8-bitsLCD驱动接口,内建聪颖的8×8或4×8可调节长按键功能键盘扫瞄电路,支持水平和垂直区域卷动,内建简体/繁体中文 (GB/BIG5)和ASCII字体的ROM,支持90度、180度、270度文字旋转显示功能,支持1倍到4倍字型放大(垂直和水平),内建 512Byte字型创造内存(CGRAM),其中半型字为8×16点,全型字为16×16点,支持文字对齐功能,支持4灰阶显示(灰阶模式),支持粗体字和行与行问距设定功能,内建脉波宽度调变(PWM)提供LCD对比或背光的调节。
2 系统硬件设计
2.1 系统总体框图
本系统用于实现冷库温湿度的多点采集与控制,其相关温湿度数据和日期时间数据通过RA8806控制的JXD320240AF液晶屏实时显示,按照模块划分,可分为数据显示单元、多路温湿度检测单元、时钟单元、键盘输入单元、电源单元、驱动控制单元、超限报警单元。系统总体框图如图1所示。
2.2 单元设计
1)数据显示单元
数据显示单元选用RA8806控制的JXD320240AF带中文字库的点阵图形液晶显示屏,主要用于显示多路温湿度,日期,时间以及所设定的温湿度上下限等数据,其共有22根引脚,引脚功能如表1所示。
该显示屏除去电源和地之外的其他引脚与单片机直接相连,其中8位数据线与P1口连接,其他控制信号与P2口的相应位连接,接口电路如图2所示。
2)多路温湿度检测单元
多路温湿度检测单元选用4个AM2301数字温湿度一体传感器,该传感器具有极高的可靠性和稳定性,响应速度快,抗干扰能力强,其采用单总线进行温湿度数据的传输,在开发各类温湿度控制系统时,所需要占用的硬件资源较少,其4个传感器分别接到单片机的P3.4、P3.5、P3.6、P3.7端,系统依次将 4路数据读入单片机,AM2301一般在距离小于20 m时需接5K左右的上拉电阻,Vcc和GND管脚连接高电平和地。
3)时钟单元
时钟单元部分选用DS1302时钟芯片,其具有自动计时、掉电保护、闰年补偿等多种功能,采用串行通信方式与单片机连接,其SCLK端接到单片机的P3.0,I/O端接到P3.1,RST接到P3.2,电路如图3所示。
4)其他单元
键盘输入单元主要实现温湿度上下限和日期时间的设定,其采用4个独立按键,分别接到单片机的P3.3,P0.1,P0.2,P0. 3端,其名称分别为设置、增加、减小、确认,功能分别为循环选择设定值,设定值加1,设定值减1,退出设置功能。
超限报警单元选择声光报警的形式,声音选择具有一定功率的蜂鸣器,亮灯选择4个发光二极管,分别代表温度低于下限,温度高于上限,湿度低于下限,湿度高于上限,当某一项超限时,相应的发光二极管被点亮。
3 系统软件设计
本系统在Keil4下,使用C语言开发,按照模块化设计的思想进行设计,主要包括数据显示模块、多路温湿度检测模块、时钟模块、键盘输入模块、超限报警与驱动模块。多路温湿度检测模块主要实现读取4路AM2301温湿度传感器传送的温湿度信号,将其转换成RA8806控制的LCD便于显示的格式,由于 AM2301是单总线数据传送,其读取时序时的控制是特别需要注意的问题。时钟模块主要是从时钟芯片DS1302读取年、月、日、时、分、星期,并将其转换成便于显示的格式。键盘输入模块由4个独立按键组成,用于设置温湿度的上下线,设置日期和时间,并将设置后的日期和时间重新写入DS1302,该部分通过外部中断的方式来实现,当按下确认按钮后,触发外部中断1,进入中断处理程序。超限报警与驱动模块用于判断温湿度是否超过设定温湿度的上下线,若超过,声光报警并驱动相应的继电器。其中数据显示模块是选用RA8806控制的JXD320240AF屏,将需要显示的温湿度数据、温湿度上下线数据,日期时间数据等采用适当的大小显示在适当的地方,这里主要介绍数据显示模块的设计思想及组成部分,主程序和中断程序的流程图。数据显示模块主要由以下函数组成:
主程序流程图如图4所示,中断程序流程图如图5所示。
4 测试
在系统设计完成后,对该系统从工作的稳定性、精度、响应速度等方面进行了较长时间的测试。在初始测试时,系统连续运行1个小时以后,出现数据反白显示,显示异常字符等情况,再连续运行2个小时,出现蓝屏,数据不能显示等情况,经过对软件和硬件电路板的测试,发现问题出现在电路板的设计方面,电路板上的导线设计过细,焊点不够牢靠。通过对电路板重新设计制作,以上问题得到解决。
连续运行10天后,RA8806芯片发热量非常大,以至于显示屏部分区域泛红,再连续运行,泛红区域不断扩大。通过分析,一方面当时的系统测试是在夏天,室内温度就在30度左右,连续运行造成芯片发热量巨大;另一方面,电路板与显示屏之间的距离过小,使芯片产生的热量不能快速散发出去。于是对硬件进行了重新设计,给芯片增加散热装置,再进行测试。
经过一个月的运行,该系统没有出现任何问题,数据显示正常,设置按钮、增加按钮、减少按钮、确认按钮都能够正常工作。温度测量值与实际温湿度的误差范围在 -0.2~+0.2℃范围内,相对湿度的最大误差为±2%RH,能够满足控制系统的要求。报警正常,没有误报现象,温湿度超过上下线的报警响应时间为 0.5 s,执行器工作正常,启动外部加热、加湿等设备的工作时间不超过3 s。时间和日期能够正常显示,没有误差,显示测试图如图6所示。
5 结束语
使用RA8806控制器的JXD320240AF带中文字库的点阵图形液晶屏与同类LCD比较,具有显示数据量大、显示范围广、字体大小可调、可显示图形等诸多特点,其与单片机的连接非常方便,软件系统设计方便、灵活,特别适用于有较多数据显示需要的各类控制系统中,具有较高的工程应用价值。