鸡雏恒温孵化器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
鸡雏恒温孵化器设计
目录
第1章绪论 (1)
1.1鸡雏恒温孵化器设计目的 (1)
1.2鸡雏恒温孵化器完成的功能 (1)
第2章总体方案设计 (2)
第3章硬件设计 (4)
3.1 温度采集电路 (4)
3.1.1 DS18B20简介 (4)
3.1.2 DS18B20接口电路 (7)
3.2单片机控制电路 (7)
3.2.1 单片机简介 (7)
3.2.2 时钟电路和复位电路 (8)
3.3显示电路 (10)
3.4 报警与控制电路 (11)
第4章软件设计 (12)
4.1主程序 (12)
4.2 温度采集子程序 (12)
4.3数据处理子程序 (16)
4.4 1602C显示子程序 (17)
4.5 输出驱动子程序 (19)
第5章安装调试与结果 (21)
5.1 安装调试 (21)
5.2 结果显示 (21)
第6章总结 (23)
致谢 (24)
参考文献 (25)
附录1原理图 (26)
附录2 PCB图 (27)
附录3 源程序 (28)
附录4 实物图 (42)
第1章绪论
1.1鸡雏恒温孵化器设计目的
本设计的内容是恒温控制系统,控制对象是温度。
温度控制在日常生活及工业领域应用相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制。
而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止发生意外。
针对此问题,本系统设计的目的是实现一种可连续高精度调温的温度控制系统,它应用广泛,功能强大,小巧美观,便于携带,是一款既实用又廉价的控制系统。
1.2鸡雏恒温孵化器完成的功能
本设计是对温度进行实时监测与控制,设计的温度控制系统实现了基本的温度控制功能:当温度低于设定下限温度时,系统自动启动加热继电器加温,使温度上升。
当温度上升到下限温度以上时,停止加温;当温度高于设定上限温度时,系统自动启动风扇降温,使温度下降。
当温度下降到上限温度以下时,停止降温。
温度在上下限温度之间时,执行机构不执行。
LCD液晶显示器即时显示温度,精确到小数点一位。
第2章总体方案设计
这次设计题目为基于单片机的鸡雏恒温孵化器的设计,温度控制设定范围为38-40°C,最小区分度为0.5°C,上、下限温度在程序中设置,实现控制可以升温也可以降温,实时显示当前温度值,另外还增加了一个蜂鸣器报警功能。
实现这种控制目的的方案有3个。
方案(一)热电偶温度自动控制系统。
(采用A/D转换器)
方案(二)模拟集成温度控制器AD590温度自动控制系统。
(采用V/F转换电路)
方案(三)数字温度传感器DS18B20温度自动控制系统
这三个方案都是采用单片机控制,液晶显示模块LCD显示。
这三个方案的比较部分为温度传感器部分和模/数转换部分。
方案(一)的系统框图如图2.1:
图 2.1 热电偶温度控制系统原理图
该部分温度检测部分采用热电偶,它需要冷端补偿电路与其配套,并且热电偶输出电压只有几毫伏,必须经过放大处理才能A/D转换,若采用8位A/D转换器,CADC0809则输入端需采用放大器,把几毫伏的电压信号放大到5伏左右。
由于热电偶属于非线性器件,因此每个温度值都必须通过分度表,查表才能获得,这给软件编程和数据处理增加了难度。
这种系统具有测量温度范围可以从零下一百度到上千摄氏度,而且很多热电偶精度非常高,这是这种测量系统的优点,但构成系统复杂,抗干扰能力不强。
方案(二)的框图如图2.2:
如果不使用A/D 转换器的话,可以选择V/F 转换电路代替A/D 转换器,因为V/F 变换与单片机的接口有输入(只有一根线)、接口电路简单、抗干扰性好、易采用光电隔离等优点,故采用V/F 转换电路来实现A/D 变换是行之有效的。
这一电路对温度变化的小信号有较好的精度,而且对输入温度信号有快速响应能力。
缺点是该电路比较复杂,需要用放大电路来将温度传感器采集到的信号进行放大,性能不够稳定。
该方案采用智能温度传感器DS18B20,它的最高分辨率为12位,可识别0.0625摄氏度的温度。
它具有直接输出数字信号和数据处理功能,并且它和单片机接口只需要一位I/O 口,因此由它构成的系统简单实用。
由于DS18B20按照工业设计要求设计,抗干扰性能强,但是温度测量范围从-67°C ——125°C ,比较有限。
因为我们只在常温下使用,经过综合比较,方案(三)是比较理想的,并且经济合理。
图2.2 模拟集成温度控制器温度自动控制系统原理图
图2.3 恒温孵化器系统原理
单片机
AT89C51 复位电路 LCD 报警电路 加热装置 降温装置 DS18B20
继电器控制部分
第3章 硬件设计
3.1 温度采集电路
3.1.1 DS18B20简介
1.一般说明
DS18B20是采用“1-wire”一线总线传输数据的集成温度传感器,信息经过单线接口送入DS18B20或从DS18B20送出,因此从中央处理器到DS18B20仅需连接一条线。
可采用外部电源供电,也可采用总线供电方式,此时,把VDD 连接在一起作为数字电源。
因为每一个DS18B20有唯一的系列号(silicon serial number ),因此多个DS18B20可以存在于同一条单线总线上,这允许在许多地方放置温度灵敏器件。
此特性的应用范围包括HV AC 环境控制,建筑物、设备或机械内的温度检测,以及过程监视和控制中的温度检测。
2.特性
(1)独特的单线接口,只需一个引脚即可通信
(2)多点(multidrop)能力使分布式温度检测应用得以简化
(3)不需要外部元器件
(4)可用数据线供电
(5)在1秒内(典型值)把温度变换为数字
(6)用户可定义的,非易失性的温度告警设置
(7)告警搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况)
3.引脚排列如图3.1。
DS18B20的引脚说明如表3.1:
表3.1 DS18B20的引脚说明 4.内部结构
DS18B20内部结构如图3.2所示,主要由4部分组成:64位ROM 、温度传感器、非挥发的温度报警触发器TH 和TL 、配置寄存器。
器件从单线的通信线 图3.1 DS18B20引脚排列 引 脚
符 号 说 明 1
GND 地 2 DQ
单线运用的数据输入/输出引脚漏极开路 3 VCC
可选VDD 引脚两种供电方式
取得其电源,
在信号线为高电平的时间周期内,把能量贮存在内部的电容器中,在单信号线为低电平的时间期内断开此电源,直到信号线变为高电平重新接上寄生(电容)电源为止。
作为另一种可供选择的方法,DS18B20也可用外部5V电源供电。
图3.2 DS18B20内部结构
与DS18B20 的通信经过一个单线接口。
在单线接口情况下,在ROM 操作未定建立之前不能使用存贮器和控制操作。
主机必须首先提供五种ROM 操作命令之一:(1)Read ROM(读ROM),(2)Match ROM(符合ROM),(3)Search ROM(搜索ROM), (4)Skip ROM(跳过ROM),或(5)Alarm Search(告警搜索)。
这些命令对每一器件的64 位激光ROM 部分进行操作。
如果在单线上有许多器件,那么可以挑选出一个特定的器件,并给总线上的主机指示存在多少器件及其类型。
在成功地执行了ROM 操作序列之后,可使用存贮器和控制操作,然后主机可以提供六种存贮器和控制操作命令之一。
一个控制操作命令指示DS18B20 完成温度测量。
该测量的结果将放入DS18B20 的高速暂存(便笺式)存贮器(Scratchpad memory)通过发出读暂存存储器内容的存储器操作命令可以读出此结果。
每一温度告警触发TH和TL 构成一个字节的EEPROM。
如果不对DS18B20 施加告警搜索命令,这些寄存器可用作通用用户存储器。
使用存储器操作命令可以写TH和TL。
对这些寄存器的读访问通过便笺存储器。
所有数据均以最低有效位在前的方式被读写。
DS18B20内部有一个64位的ROM区,其中前8位为该器件的序列号,接下来48是该器件的编号,每个器件都不一样,用于在一线总线上连接多传感器时进行对象识别,第8位是前56位的CRC校验码。
接下来是RAM区和EERAM 区。
RAM前五个字节分别为LSB、MSB、TH、TL和CONFIG值,分别表示温
度测量值的低位字节、高位字节、温度高温低温报警和使用传感器分辨率设置位。
EERAM分别用于TH和TL的数据保存。
每次上电时,数据会自动从EERAM 拷贝到TH和TL中。
fonfrg值的数据格式如表3.2:
表3.2 fonfrg数据格式
TM 0 R1 R0 1 1 1 1 1
低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。
在DS18B20出厂时该位被设置为0,用户不要去改动。
R1和
R0用来设置分辨率,如表3.3所示:(DS18B20出厂时被设置为12位)
表3.3分辨率设置表
R1 R0 分辨率温度最大转换时间
0 0 9位93.75ms
0 1 10位187.5ms
1 0 11位375ms
1 1 12位750ms
5.供电方式
DS18B20有两种供电方式,
第一种方法是寄生电源方式。
当发生温度变换时,在I/O口提供一强的上拉电阻,如图3.3所示。
图3.3 寄生电源供电方式
通过使用一个MOSFET把I/O线直接拉到电源可达到这一点。
当使用该方式时VDD引脚连接到地。
向DS18B20供电的另一种方法是通过使用连接到VDD 引脚的外部电源,如图3.4所示。
这种方法的优点是在I/O线上不要求强的上拉。
总线上主机不需向上连接便
在温度变换期间使线保持高电平。
这就允许在变换时间内其他数据在单线上传送。
此外,在单线总线上可以放置任何数目的DS18B20,而且如果它们都使用外部电源,那么通过发出跳过(Skip)ROM命令和接着发出(Convert)T命令,可以同时完成温度变换。
需要注意的是,只要外部电源处于工作状态,GND引脚不可悬空。
图3.4 外部电源供电方式
DS18B20具有测温系统简单、测温精度高、连接方便、占用处理器I/O端口少等优点, 应用方便灵活,在常温测量中有较大优势,与Lon Works 现场总线结合应用前景更加广阔,如在工业过程、空调系统、智能楼宇等领域的温度测量会有广泛的应用。
3.1.2 DS18B20接口电路
前面已经介绍过DS18B20有两种供电方式,寄生电源方式和通过使用连接到VDD 引脚的外部电源。
寄生电源方式需要接一个接近5K的上拉电阻。
通过比较,本设计采用外部电源供电方式。
3.2单片机控制电路
3.2.1 单片机简介
以大规模集成电路为主组成的微型计算机,简称为单片机,又称为嵌入式微控制器(Embedded microcontroller)。
它的诞生是计算机发展史上一个新的里程碑。
1.单片机的发展
单片机从诞生至今已经经历了4个发展阶段,分别是:
第一阶段(1974-1976年):单片机初级阶段。
因工艺限制,此阶段的单片机采用双片的形式而且功能比较简单。
例如仙童公司生产的F8单片机,只包括了8位CPU,64个字节的RAM,和两个并行口,需要加一块具有1KB ROM、定时器/计数器和两个并行口的3851芯片才能组成一台完整的计算机。
第二阶段(1976-1978年):低性能单片机阶段。
此阶段的单片机已成为一
台完整的计算机,但内部资源不够丰富,以Intel公司生产的MCS-48系列为代表,片内集成了8位CPU、8位定时器/计数器、RAM和ROM等,但无串行口,中断系统也比较简单,片内RAM和ROM容量较小且寻址范围不大于4KB。
第三阶段(1978-):高性能单片机阶段。
此阶段的单片机内部资源丰富,以Intel公司生产的MCS-51系列为代表,片内集成了8位CPU、16位定时器/计数器、串行I/O口、多级中断系统、RAM和ROM等,片内RAM和ROM容量加大,寻址范围可达64KB。
有的型号内部还带有A/D转换器。
第四阶段(1982-):8位单片机得巩固发展及16位、32位单片机推出阶段。
16位单片机以Intel公司生产得MCS-96系列为代表,在片内带有多通道A/D转换器和高速输入/输出(HSI/HSO)部件,中断处理和实时处理能力很强。
目前单片机的品种众多,其中性能优良的8位单片机在今后若干年内仍然将是工业检测、控制应用领域中的主角。
2.单片机的特点:
(1)小巧灵活、成本低、易于产品化。
能利用它方便地组装成各种智能式测控设备及各种智能仪器仪表,很容易满足仪器设备既智能又微型化的要求。
(2)可靠性高、适用的温度范围宽。
单片机芯片一般是按工业测控要求设计的,能适应各种恶劣的环境。
这一点是其他机种无法比拟的。
(3)易扩展、控制能力强。
通过单片机本身或扩展可以方便地构成各种规模地应用系统及多机和分布式计算机控制系统。
(4)指令系统相对简单,较易掌握,且指令中又较丰富地逻辑控制功能指令,能较方便地直接操作外部输入输出设备。
由于单片机具有功能强、体积小、可靠性好和价格便宜等独特优点,已成为传统工业技术改造和新产品更新换代的理想机种,具有广泛的发展前景。
单片机技术的应用,使得许多领域的技术水平和自动化程度大大提高,可以说,当今世界正面临着一场以单片机(微电脑)技术为标志的新技术革命。
3.2.2 时钟电路和复位电路
1.时钟产生电路
片内电路与片外器件就构成一个时钟产生电路,CPU的所有操作均在时钟脉冲同步下进行。
片内振荡器的振荡频率非常接近晶振频率,一般多在1.2MHz~24MHz之间选取。
C1、C2是反馈电容,其值在20pF~100pF之间选取,典型值
为30pF 。
本电路选用的电容为30pF ,晶振频率为12MHz 。
振荡周期=s μ121;
机器周期s S m μ1=
指令周期=s μ4~1。
XTAL1和XTAL2:片内振荡电路输入线,这两个端子用来外接石英晶体和
微调电容。
在石英晶体的两个管脚加交变电场时,它将会产生一定频率的机械变
形,而这种机械振动又会产生交变电场,上述物理现象称为压电效应。
一般情况下,无论是机械振动的振幅,还是交变电场的振幅都非常小。
但是,当交变电场的频率为某一特定值时,振幅骤然增大,产生共振,称之为压电振荡。
这一特定频率就是石英晶体的固有频率,也称谐振频率。
即用来连接8051片内OSC 的定时反馈回路,如图3.5所示。
石英晶振起振后要能在XTAL2线上输出一个3V 左右的正弦波,以便使MCS-51片内的OSC 电路按石英晶振相同频率自激振荡。
通常,OSC 的输出时钟频率fOSC 为0.5MHz-16MHz ,典型值为12MHz 或者11.0592MHz 。
电容C1和C2可以帮助起振,典型值为30pF ,调节它们可以达到微调fOSC 的目的。
2.单片机复位电路图3.6为单片机复位电路。
单片机在开机时都需要复位,
以便中央处理CPU 以及其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。
单片机的复位后是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST 引脚上出现24个时钟振荡脉冲(2个机器周期)以上的高电平,单片机便可实现初始化状态复位。
MCS-51单片机的RST 引脚是复位信号的输入端。
例如:若MCS-51单片机时钟频率为12MHz ,则复位脉冲宽度至少应该为2μs 。
图3.5时钟电路 图3.6复位电路
3.3显示电路
液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。
此次使用的是字符型液晶模块1602C,该模块是一种用5x7点阵图形来显示字符的液晶显示器,能够显示2行16个字符。
1602采用标准的16脚接口,其中:
第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
图3.7液晶显示接口电路
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15~16脚:空脚,也可以15脚接5V正电源16脚接地,控制LCD背景光。
3.4 报警与控制电路
该部分是单片机和外部报警与控制的接口部分,主要起报警、执行和电气隔离作用,其电路图如图3.8所示。
继电器采用SRD-D6VDC-SL-C 型,240AC 通断TA 的电流。
其直流线圈电阻95欧,三极管Q1采用KTC9012,输出电流IC 为150mA ,放大系数β为60至1000范围内,若取β为200则Ic 在5V 下为50mA 左右,则基极电流为0.25mA 。
只有P0口在高点位输出时才能达到这样大的电流值。
因此把这两个口分别用P0和P01代替。
由于P0口属于三态输出输入口,因此,必须接上拉电阻,其阻值大小可计算为:
(50.7)170.25V
K mA -=Ω
我们取10千欧的电阻让Q1在高电平时饱和导通,此时,基极电流为(50.6)0.4410V
mA
K -=Ω。
二极管D1主要起保护作用,在Q1关断时续流,以免电感
线圈断路时产生过压损坏三极管。
由于DS18B20自带了存储器,能够将设定的温度报警值自动存入 DS18B20 的 EEROM 中,永久保存,因此每次开机时系统都会自动从 DS18B20 的 EEROM 读出温度报警值.两个继电器中,K1接的是降温装置,K2接的是加热装置,当实际温度大于 TH 的设定值时,蜂鸣器响,表示超温,此时继电器K1吸合,接通降温装置进行降温;当实际温度处于 TL 与TH 的设定值之间时,继电器常闭。
总的原理图和PCB 图见附录1、附录2所示。
图3.8 继电器、报警与执行电路
第4章软件设计
4.1主程序
主程序完成系统初始化及各个程序之间的联系任务。
1.清数据存储区、各集成模块的初始化、确定中断优先权、开中断等。
2.完成系统初始化任务后,主程序执行中断等待程序。
主程序流程图如图4.1。
4.2 温度采集子程序
1.DS18B20的操作时序
对DS18B20软件的设计主要根据其操作时序和控制协议编写的。
其时序分为初始化操作时序,读操作时序,写操作时序,分别如图4.2、4.3和4.4所示。
2.DS18B20的温度转换关系
DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供以0.0625℃/LSB形式表达,其中S为符号位。
图4.1主程序
主程序流程图如图4.1的说明:首先是开始,然后清数据区,设定参数初值,再初始化LCD ,初始化DS18B20,接着置中断字,CPU 开中断,最后等待中断。
图4.3 读操作时序
图4.4写操作
表4.1 DS18B20的16位符号
图4.2 初始化操作时序
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
LS Byte 32
22
12
02
12-
22-
32-
42-
bit15 bit14 bit13 bit12 bit11 bit10
bit9
bit8
MS Byte S
S
S S
S
62 52 42
表4.1是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM 中,当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。
单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。
二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。
表4.2是DS18B20输出温度对应的二进制和十六进制数值,图4.5是控制温度转换子程序。
表4.2 温度对应值
由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作按协议进行。
DS18B20的一线工作协议流程是:
初始化—ROM操作——存储器操作指令——数据传输。
每进行一次操作都要遵守这一协议流程。
这一过程可以从GETWD子程序的框图4.6来表达。
它的过程可具体描述为主机的总线低电平持续时间480至900微秒然后释放总线,等60微秒后读总线是否为低,为低电平表示器件DS18B20反馈存在信号等待主机的下一步操作。
2.初始化子程序
流程图如图4.7所示。
该图中每一个具体操作除初始化外都是通过命令的方式实现的。
如表4.1所示。
读操作子程序是主机先发出低电平维持等待6ns 释放总线,再等待8ns 读入数据。
在写操作子程序则为使总线常产生一个由高到低的阶段,保持低电平16ns 方式向总线写数据等待40ns 以保持写过程持续60ns ,然后重复以上操作。
表4.3 命令的方式
图4.5温度转换子程序
图4.7 DS18B20初始化子程序
4.3数据处理子程序
数据处理部分使用的器件是MCS-51系列单片机AT89C51,它自带8K的FLASH程序存储器,它的核心处理单元为8位。
数据处理主要是对数字温度传感器采集温度数据,并进行逻辑判断,根据数据的具体情况输出到LCD显示和使继电器动作。
这部分包括三个方面的工作,主要由三个子程序来完成,分别为GETWD、DATA-PRO和ZTBJ。
从这个子程序读出的数据由两个字节组成,高字节为35H,低字节为34H,数据格式如表4.3所示。
处理过程如框图4.8所示。
首先,把高位字节不带进位位Cy左移四位,再与F0H相与,最后把低四位置零,高四位保持不变,将所得结果存储起来。
低位字节的处理是:先将该字节高低四位相互交换,存储该字节在R3中,然后将这个数据与0FH相与去除高四位,最后将这个低位字节与处理后的高位字节相或,将高低位字节最后处理为一个字节,除去最高位符号位,后七位就是要显示的数据,存储在36H中。
最后把R3中数据取出,带进位位左移一位,判断其进位标志位C是否为“1”,若为
“1”则把数字5存储在37H中,供LCD显示测量值小数部分。
否则把37H中置零。
到此,整个数据处理过程到此结束。
图4.8数据处理子程序
4.4 1602C显示子程序
液晶显示器采用目前使用的比较广泛的字符型液晶显示器1602C。
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B (41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
1602液晶模块内部的控制器共有11条控制指令,如表4.4所示它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:1为高电平、0为低电平)
指令1:清显示,指令码01H,光标复位到地址00H位置。
指令2:光标复位,光标返回到地址00H
指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移
指令4:显示开关控制。
D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无
光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁
指令5:光标或显示移位S/C:高电平时移动显示的文字低电平时移动光标指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符
表4.4控制指令
指令10:写数据
指令11:读数据液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,
表4.5是DM-1602的内部显示地址。
表4.5 DM-1602内部显示地址
初始化子程序的框图如图4.9所示。
在初始化子程序中,操作非常简单,主要是对LCD发出初始化控制命令,然后开显示器,写入数据,初始化过程就算完成。
图4.9 LCD初始化子程序
初始化子程序说明:首先开始,然后清屏并光标复位,单片机发写命令,再液晶显示应答。
如果回答否,再回到清屏并光标复位,开始以为是继电器坏了,经检查,原来是没有给控制加热和降温装置的继电器供电,后来接上电源后问题就得到了解决。
单片机发写命令,再液晶显示应答,如果回答是,再准备写入数据,最后执行显示命令。
4.5 输出驱动子程序
如图4.10。
由两个比较程序组成。
把测量值和设定值比较,低于最低设定值就加热高于最高设定值就制冷。
在最小设定值和最大设定值之间继电器不动作处于保持状态。