基于单片机的智能温室大棚温度控制系统设计与仿真(4)

2019-08-31 12:35

卜纪清:基于单片机的智能温室大棚温度控制系统设计与仿真

据总线和单片机的一个I/O口连接。具体结构如图2.4所示。

图2.4传感器结构图

(2)DS18B20特性

①九位温度读数,测温范围为-55~+125℃,最大精度为0.0625℃;

②全数字温度转换及输出,不需要A/D转换,只通过一条数据线即可实现通信,无需任何外围硬件;

③先进的单总线数据通信,每个DS18B20器件上都有独一无二的序列号,所以一条数据线上可以挂接很多该传感器;

(3)DS18B20由三个主要数字器件组成: ①64bit闪速ROM; ②温度传感器;

③非易失性温度报警触发器TH和TL。

(4)DS18B20的测温原理:DS18B20测量温度时使用特有的温度测量技术,其测量电路框图如图2.5所示。

12

卜纪清:基于单片机的智能温室大棚温度控制系统设计与仿真

斜率累加器 预置 比较 预置 加1 =0 温度寄存器 LSB 设置清除 低温度系数振荡器 计数器 高温度系数振荡器 计数器 停止 =0 图2.5 测量电路

内部计数器对一个受温度影响的振荡器的脉冲计数,低温时振荡器的脉冲可以通过门电路,而当到达某一设置高温时振荡器的脉冲无法通过门电路。计数器设置为-55℃时的值,如果计数器到达0之前,门电路未关闭,则温度寄存器的值将增加,这表示当前温度高于-55℃。同时,计数器复位在当前温度值上,电路对振荡器的温度系数进行补偿,计数器重新开始计数直到回零。如果门电路仍然未关闭,则重复以上过程。

DS18B20测温时,计数门打开,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在 -55 ℃ 所对应的一个基数值。减法计数器1对低温度系数晶振而产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置值将重新被装入,减法计数器1重新开始对低温度系数晶振所产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。

斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,所测出的温度通过I/O口则传送到液晶上显示出当前的温度。当温度发生变化时,则对应的测量温度同样也在液晶上显示出来[11]。

13

卜纪清:基于单片机的智能温室大棚温度控制系统设计与仿真

本设计用DS18B20的外部电源供电方式在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论可以挂接任意多个DS18B20传感器,组成多点测温系统。注意:在外部供电的方式下,DS18B20的GND引脚不能悬空,否则不能转换温度,读取的温度总是85℃。温度传感器测得农田内的即时温度,上传到单片机内,在单片机内通过数据转化上传到LCD1602液晶显示器上显示具体的数据。LCD1602显示如图2.6:

图2.6 LCD1601显示

2.3输出通道

2.3.1多功能农田温度自动环境监测系统显示电路设计

LCD1602已很普遍了,市面上字符液晶绝大数是基于HD44780液晶芯片的,控制

原理是完全相同的,因此HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。字符型LCD通常有14条引脚线或16条引脚线,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,定义如下表2.3所示:

表2.3 字符型LCD的引脚定义

引脚号 1 2 3 4 5

引脚名 Vss Vcc Vee RS R/W

电平 0/1 0/1

输入/输出

输入 输入

14

作用 电源地 电源(+5V) 对比度调整电压 0—输入指令;1—输入数据 0=向LCD写入指令或数据。

卜纪清:基于单片机的智能温室大棚温度控制系统设计与仿真

1=从LCD读取信息。

6

E

1,1→0

输入

使能信号,1时读取信息, 1→0(下降沿)执行指令。

7 8 9 10 11 12 13 14 15 16

DB0 DB1 DB2 DB3 DB4 DB5 Db6 DB7 A K

0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 +Vcc 接地

输入/输出 输入输出 输入/输出 输入/输出 输入/输出 输入/输出 输入/输出 输入/输出

数据总线line0(最低位)

数据总线line1 数据总线line2 数据总线line3 数据总线line4 数据总线line5 数据总线line6 数据总线line7 LCD背光电源正极 LCD背光电源负极

其中,HD44780内置了DDRAM、CGROM、CGRAM。

DDRAM就是显示数据RAM用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下表2.4所示:

表2.4地址和屏幕的对应关系

DDRAM地

显示位置 第一行 第二行

1 00H 40H

2 01H 41H

3 02H 42H

4 03H 43H

5 04H 44H

6 05H 45H

7 06H 46H

…… …… ……

40 27H 67H

也就是说想要在LCD1602屏幕的第一行第一列显示一个“A”字,就要向DDRAM的00H地址写入“A”字的代码就行了。但具体的写入是要按以LCD模块的指令格式来进行的,那么一行可有40个地址呀?是的,在LCD1602中我们就用前16个就行了。第二行也一样用前16个地址。对应如下图2.8所示:

图2.8

刚才我说了想要在LCD1602屏幕的第一行第一列显示一个“A”字,就要向DDRAM的00H地址写入“A”字的代码41H就行了,可41H这一个字节的代码如何才能让LCD模块

15

卜纪清:基于单片机的智能温室大棚温度控制系统设计与仿真

在屏幕的阵点上显示“A”字呢?同样,在LCD模块上也固化了字模存储器,这就是CGROM和CGRAM,HD44780内置了192个常用字符的字模,存于字符产生器CGROM,另外还有8个允许用户自定义的字符产生RAM称为CGRAM。下图6说明了CGROM、CGRAM

与字符的对应关系如下图2.9所示:

图2.9 CGROM、CGRAM与字符的对应关系

从上图可以看出,“A”字的对应上面高位代码为0100,对应左边低位代码为000l,合起来就是01000001,也就是41H可见它的代码与我们PC中的字符代码是基本一致的。

字符代码0x00-0x0F为用户自定义的字符图形RAM,(对于5×8点阵的字符,可以存放8组,5×10点阵的字符,存放4组,)就是CGRAM了。

0x20—0x7F为标准的ASII码,0xA0—0xFF为日文字符和希腊文字符,其余字符码(0x10一0x1F及0x80一0x9F)没有定义。

那么如何对DDRAM的内容和地址进行具体操作?下面先说说HD44780的指令集及其设置说明,请浏览该指令集,并找出对DDRAM的内容和地址进行操作的指令[12-13]。 共11条指令: 清屏指令如表2.5:

表2.5

执行

功能 清屏

RS 0

R/W 0

DB7 0

DB6 0

指令码 DB5 DB4 0

0

DB3 0

DB2 0

DB1 0

DB0 1

执行

时间,ms 1.64

功能:

(1)清除液晶显示器,即将DDRAM的内容全部填入“空白”的ASCII;

16


基于单片机的智能温室大棚温度控制系统设计与仿真(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《爆破安全规程》(GB6722-2011)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: