3.2.3显示电路设计
①温度显示工作原理:
LCD1602可以采用两种方式与单片机连接,一种是采用8位数据总线D0—D7,和RS、R/W、EN三个控制端口;另一种是只用D4-D7作为四位数据分两次传送。本实验将使用并采用八位数据方式来控制1602显示,如图3-13所示:
图3-13 AT89C51与LCD1602接口电路图
进行LCD设计主要是LCD的控制/驱动和外界的接口设计。控制主要是通过接口与外界通信、管理内/外显示RAM,控制驱动器,分配显示数据;驱动主要是根据控制器要求,驱动LCD进行显示。控制器还常含有内部ASCII字符库,或可外扩的大容量汉字库。
AT89C51的P3.7与LCD1602的使能端E相连,P3.6与读写选择端R/W相连,P3.5与RS相连,当使能端使能时,再通过命令选择端来控制读数据,写数据,写命令。控制P2端口与LCD1602A的数据端口相连,传输数据。
②LCD1602的性能参数
LCD1602A的管脚排列如图3-14、,它共有16个脚,各引脚功能如下: VSS: 电源地 VDD:电源正极
VL:液晶显示偏压信号,对比度调整端, 接地时最高,接正电源最低,可接10K 电位器调整
RS: 寄存器选择,高电平选择数据寄存器
低电平选择指令寄存器 图3-14 LCD1602A的管脚 R/W 读/写选择端,高电平读操作,低电平写操作
- 21 -
E使能信号,当E端由高电平跳变成低电平时,液晶模块执行命令 BLA背光源正极图 BLK背光源负极 D0~D7数据端口
芯片的主要技术参数及应用配置:
显示容量: 芯片工作电压: 工作电流: 模块最佳工作电压: 字符尺寸: 16×2个字符 4.5~5.5V 2.0mA(5.0V) 5.0V 2.95×4.35(WXH)mm
表3-15LCD1602A主要技术参数
表指令码 1 0 0 0 功能 设置16*2显示,5*7点阵, 8位数据接口 LC0 0 1 1 D 1602A显示模式
指令码 功能 D=1开显示 D=0 关显示 B C=1 显示光标C=0 不显示光标 B=1 光标闪烁B=0 光标不闪烁 N=1 当读/写一个字符后,地址指针加1,且光标加1; N=0 当读/写一个字符后,地址指针减1,0 0 0 0 1 D C 0 0 0 0 0 1 N S 且光标减1; S=1 当写一个字符,整屏显示左移(N=1)或者右移(N=0),以得到光标不移动而整屏移动的效果; S=0 当写一个字符,整屏显示不移动。
表3-17 LCD1602A显示开/关及光标设置
编号 1 2
符号 VSS VDD - 22 -
引脚说明 电源地 电源正极 3 4 5 6 7 8 9 10 11 12 13 14 15 16 VL RS R/W E D0 D1 D2 D3 D4 D5 D6 D7 BLA BLK 液晶显示偏压信号, 数据/命令选择端(H/L) 读/写选择端(H/L) 使能信号 Data I/O Data I/O Data I/O Data I/O Data I/O Data I/O Data I/O Data I/O 背光源正 背光源负 表3-18 LCD1602A接口信号说明
③LCD1602的显示与控制命令
1602液晶模块内部的字符发生内存(CGROM)已经存储了160个不同的点阵字符图形,如下图所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
1602液晶模块内部的控制器共有11条控制指令,如表2所示,它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)
指令1:清显示,指令码01H,光标复位到地址00H位置; 指令2:光标复位,光标返回到地址00H;
指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效;
指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有游标,低电平表示无游标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁;
指令5:光标或显示移位元S/C:高电平时移动显示的文字,低电平时移动光标;
指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F:低电平时显示5x7的点阵字符,高
- 23 -
电平时显示5x10的点阵字符;
指令7:字符发生器RAM地址设置; 指令8:DDRAM地址设置;
指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙;
指令10:写数据; 指令11:读数据;
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。 3.2.4 报警电路设计
电路板上的550(Q1)三极管驱动一个无源蜂鸣器,构成一个简单的音响电路,该电路利用单片机的一个引脚作为驱动来源,经Q1驱动后发声,这一引脚是P1.1脚。由于采用了无源蜂鸣器,所以P1.1输出低电平时,蜂鸣器不会发声,需要输出一个脉冲信号蜂鸣器才会发声,脉冲信号的频率决定了蜂鸣器发出的声音的音调的高低。电路如图3-19所示:
3-19 报警电路
第4章 系统软件设计
4.1 软件设计总体思路及主程序流程图
本系统采用C语言编写,主程序主要由四部分构成,系统通电后首先初始化系统,依次完成温度采集、温度处理、数据显示、键盘处理等四项功能。温度采集部分主要完成4个温度测试点的温度数据采集任务;温度处理部分主要是将采
- 24 -
集到的温度数据与用户设定的各点上下限温度值进行比较处理,并判断是否超出设定的上下限值,如果超出则蜂鸣器报警;数据显示部分主要实现温度数据的显示,显示方式根据设计要求支持1到4个温度测试点的轮流循环显示和固定显示两种方式;键盘处理部分主要实现用户对系统参数的设置,结合显示部分,实现用户与系统之间的人机接口。系统软件主流程如图4-1所示:
4.2 测温模块流程图 开始 系统初始化 温度采集 温度处理 数据显示 键盘处理
4-1 系统软件总流程图
- 25 -
图