为“1”的点亮?为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来
说?显示字符就比较简单了?可以让控制器工作在文本方式?根据在LCD上开始显示的行
列号及每行的列数找出显示RAM对应的地址?设立光标?在此送上该字符对应的代码即可。 汉字的显示
汉字的显示一般采用图形的方式?事先从微机中提取要显示的汉字的点阵码?一般用字模提
取软件??每个汉字占32B?分左右两半?各占16B?左边为1、3、5??右边为2、4、6??
根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址?设立光标?
送上要显示的汉字的第一字节?光标位置加1?送第二个字节?换行按列对齐?送第三个字
节??直到32B显示完就可以LCD上得到一个完整汉字。 10?8?2 1602字符型LCD简介
字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD?目前常用16*1?
16*2?20*2和40*2行等的模块。下面以长沙太阳人电子有限公司的1602字符型液晶显示
器为例?介绍其用法。
引脚说明: VSS 电源地 D2数据 VDD电源正极 D3数据 VL液晶显示偏压 D4数据 RS数据命令选择 D5数据R/W读/写选择 D6数据 E使能信号 D7数据 D0数据 BLA背光源正极 D1数据 BLK背光源负极
3.2电路设计
3.2.1 开关复位与晶振电路
在单片机应用系统中,出单片机本身需要复位以外,外部扩展I/O接口电路也需要复位,因此需要一个包括上电和按钮复位在内的系统同步复位电路。单片机上的XTAL1和XTAL2用来外接石英晶体和微调电容,即用来连接单片机内OSC的定时反馈回路。笨设计中开关复位与晶振电路如图3-3所示,当按下按键开关S1时,系统复位一次。其中电容C1、C2为33pF,C3为10uF,电阻R2、R3阻值为10k,晶振频率为12MHz。
10
图3-3 系统复位与晶振电路
3.2.2 独立按键连接电路
按键包括两个独立按键S2和S3,一端与单片机的P1.3和P1.4口连接,另一端接地,当按下任一键时,P1口读取低电平有效。系统上电后,进入按键扫描子程序,以查询的方式确定各按键,完成温度初值的设定。其中按键S2为加按键,每按一次,系统对最初设定值加一,按键S3为减按键,每按下一次,系统对初定值进行减一计算。其连线图如图3-4所示。
11
图3-4 独立按键连接电路
3.2.3 LCD1602液晶显示电路
它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明: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的点阵字符,高电平时显示5x10的点阵字符 指令7:字符发生器RAM地址设置 指令8:DDRAM地址设置 指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 指令10:写数据 指令11:读数据
12
图3-5 LCD1602液晶显示电路
3.2.4 温度采集电路
DS18B20数字温度传感器通过其内部计数时钟周期的作用,实现了特有的温度测量功能。低温系数振荡器输出的时钟信号通过由高温度系数振荡器产生的门周期而被计数,计数器预先设置有与-55℃相应的一个基权值。如果计数器计数到0时,高温度系数振荡周期还未结束,则表示测量的温度值高于-55℃,被预置在-55℃的温度寄存器中的值就加1℃,然后这个过程不断反复,知道高温系数振荡周期结束为止。此时温度寄存器中的值即为被测温度值,这个值以16位二进制的形式存放在存储器中,通过主机发送存储器读命令可读出此温度值,读取时低位在前,高位在后,依次进行。由于温度振荡器的抛物线特性的影响,其内用的斜率累加器进行补偿。
DS18B20在使用时,一般都采用单片机来实现数据采集。只须将DS18B20信号线与单片机1位I/O线相连,且单片机的1位I/O线可挂多个DS18B20,就可
13
实现单点或多点温度检测。本设计中将DS18B20接在P1.7口实现温度的采集,其与单片机的连接如图3-6所示。
图3-6 温度采集电路
3.2.5 风扇电机驱动与调速电路
本设计中由单片机的I/O口输出PWM脉冲,通过一个达林顿反向驱动器ULN2803驱动12V的直流无刷电机以及实现风扇电机转速的调节。
按键控制设置温度,通过软件向单片机输入相应控制指令,由单片机通过P1.7口输出与转速相应的PWM脉冲,经过ULN2803驱动风扇直流电机控制电路,实现电机转速与启停的自动控制。当环境温度升高时,直流电机的转速会相应按照设定的等级有所提高;当环境温度下降时,电机的转速会相应的下降;当环境温度低于设置温度时,电机停止转动,而环境温度又高于预设温度时,电机重新启动。
电路图如图3-7所示,风扇电机的一端接12V电源,另一端ULN2803的OUT7引脚,ULN2803的IN7引脚与单片机的P3.1引脚相连,通过控制单片机的P3.1引脚输出PWM信号,由此控制风扇直流电机的速度与启停。
14