基于aduc812单片机的温湿度检测仪_毕业设计(编辑修改稿)内容摘要:

0 0RD WR8910U 3 C7 4H C 0 0V C C 图 24 显示模块电路 电路中的 HS12864 是一种图形点阵液晶显示器 ,它主要由行驱动器 /列驱动器及 128 64全点阵液晶显示器组成。 可完成图形显示,也可以显示 8 4个 (16 16 点阵 )汉字。 主要技术参数和性能: (1).电源: VDD: +5V; 模块内自带 10V 负压,用于 LCD 的驱动电压。 (2).显示内容: 128(列 ) 64(行 )点 (3).全屏幕点阵 (4).七种指令 (5).与 CPU 接口采用 8 位数据总线并行输入输出和 8 条控制线 (6).占空比 1/64 (7).工作温度: 10℃~ +50℃,存储温度: 20℃~ +70℃ 在显示电路中,单片机的 RD、 WR、 端口通过由“与非门”构成的辅助电路与 HS12864 的 E 端口相连,来控制显示模块对单片机送来数据的操作;而 口控制显示器显示内容,即数据或指令;来自 , 的指令选择显示器左右半屏的信号。 河南科技大学本科毕业设计(论文) 11 2. 语音报警电路 1 2 3 4ABCD4321DCBAR 5 04 7KC 2 80 .1 uS P E A K E R 1S P E A K E RV C CQ7N P N _1R 1 410P 1. 0I N K 9 图 25 语音报警电路 报警电路主要由电源、放大器、滤波电路和扬声器组成。 当温湿度检测仪检测到的相对湿度超过用户设定的上下限时,单片机通过 口输出语音信号使报警电路发出警报。 语音报警电路如图 25。 3. 串行通信模块 1 2 3 4ABCD4321DCBAV C CC1 11 0 u F / 2 5 vC1 01 0 u F / 2 5 vC9 1 0 u F / 2 5 vC8 1 0 u F / 2 5 v162738495J1D B 912345687 109U3P r o 3 1B 3 .T M P _ 23 2 C _4 3P 3. 1 / T X DP 3. 0 / R X D 图 26 与 PC 通信电路 与 PC 通信电路 如图 26, 检测仪与 PC 机通信采用 RS232 串行接口。 RS232 是 PC 机与通信工业中应用最广泛的一种串行接口,它被定义为一种河南科技大学本科毕业设计(论文) 12 在低速率串行通讯中增加通 讯距离的单端标准。 RS232 采取不平衡传输方式,即所谓单端通讯。 由于其发送电平与接收电平的差仅为 2V 至 3V 左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15 米,最高速率为 20kb/s。 RS232 是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为 3~ 7kΩ,所以 RS232 适合本地设备之 间的通信。 RS232 是用正负电压来表示逻辑状态的 ,而 TTL 是用高低电平来表示逻辑状态的 ,因此 ,为了能够同 PC机接口或终端的 TTL器件连接 ,必须在 RS232与 TTL 电平之间进行电平转换 .这里利用 MAX232 完成电平转换工作。 MAX232芯片是 MAXIM 公司生产、包行两路接收器和驱动器的 IC 芯片,适用于各种EIA232C 和。 MAX232 芯片内部有一个电压变换器,可以把输入的 +5V 电源电压变换成为 RS232 所输出电平所需的电压。 所以,采用此芯片的串行通信系统只需单一的 +5V 电源就可以了。 河南科技大学本科毕业设计(论文) 13 第 3章 温 湿度检测仪 的软件设计 167。 主程序模块设计 主程序是控制和管理的核心,主要完成在系统上电后进行定时 和中断 开始显示开机界面有键按下吗。 温度检测吗。 温度检测温度显示湿度检测吗。 湿度检测湿度显示数据通信吗。 数据传输结束NOY E SY E SY E SY E SNONONO 图 31 主程序流程图 河南科技大学本科毕业设计(论文) 14 处理操作的初始化。 它的内容包括主程序的起始地址,中断服务程序的起始地址,有关内存单元及相关部件的初始化和一些子程序调用等等。 主程序设计框图如上 图 31。 主程序初始化的具体内容包括:时间中断的初始化、外部中断源的初始化、单片机 I/O 口初始化、串行通信中断的初始化、 RAM 初始化, LCD 初始化。 然后对温 度和湿度进行检测并将结果显示在 LCD 上。 167。 温湿度检测模块程序设计 167。 温度检测模块程序设计 该检测仪的温度检测部分使用的 AD590 是一种由所在环境温度决定的恒流输出器件,其输出特性为: I=Kt t 式中 I 为 AD590 输出电流信号,单位为 1uA 电流。 t 为绝对温度,单位为 K。 Kt为转换系数,单位为 1uA/K。 AD590 输出电流信号经电阻 R 转换为电压信号,其电压为: VR = Kt R t VR从 ADC 口输入到单片机中,进行 A/D 转换,成为数字量 VT。 温度检测模块程序 如图 32, 首先读取测量电路的温度电 压 VT,并将这一电压信号作为温度转换参数进行电压→温度转换,具体转换方法为:把经过 A/D 的所得的数字电压值 VT作如下计算 T = KT( VTV0) 式中 T 为需要测量的环境实际温度值,参数 V0为环境温度为 0℃时 A/D转换的数字量电压值,参数 KT为环境温度与 A/D 转换的数字量电压的转换系数: KT = 1/( Kt R15)。 它们均作为常量存储在单片机的片内数据 EEPROM 中。 由于 V0、 KT准确与否直接影响温度测量的精度,可通过以下方法进行校正: 用其它高精度的测温仪测量环境温度 T1,输入本仪表,单片机同时记 录下相应的 A/D 转换的数字量 V1。 当环境温度从 T1 变化到 T2时,重复以上过程,单片机同时记录下相应的 A/D 转换的数字量 V2。 为保证校准精度,环境温度应在 25℃左右变化,并且变化的范围尽可能大一些。 仪表的应用软件根据 KT=( T1T2) /( V1V2)和 V0=VT1T1/KT计算出 KT和 V0 的值,并存储在单片机河南科技大学本科毕业设计(论文) 15 的 EEPROM 数据存储器中,既完成该仪表的温度测量精度的校正。 仪表的应用软件系统配置有专用的服务子程序完成此项工作,仅 仅 需按仪表的 LCD 显示器的提示完成有关操作。 开始返回温度传感电路电压读取温度信号转换初始化温度数据存储温度显示测温结束吗。 Y E SNO 图 32 温度检测模块程序流程图 温度检测模块程序流程如图 32, 该模块程序最后将计算得到的温度值送入数据存储器,并调用 LCD 显示程序将环境温度显示出来,然后返回主程序继续下面的操作。 167。 湿度检测模块程序设计 1. 程序欲解决问题分析 湿度测量电路是由湿度传感器 THS11 和 NE555 构成的振荡电路组成。 湿度传感器 THS11 的电容值随温度的变化导致振荡器的振荡频率发生变化,所以可以通过测量振荡器输出频率,获得相对湿度值。 实验得出振荡电路的输出频率( f)与环境温度( T)的关系曲线, 如图河南科技大学本科毕业设计(论文) 16 33所示: 图 33 振荡频率 f 与温度 T 的关系曲线 由上图可知,在环境相对湿度不变的条件下,温度和振荡频率呈近似的线性关系,所以忽略非线性误差不影响测量的精度。 当环境中的相对湿度不同时, 相同温度条件下的振荡频率差异比较大,且这种差异是非线性的。 要准确地测量湿度,必须对振荡频率作温度补偿。 从图 33 可以看出,对于不同的环境湿度,振荡频率的温度补偿系数也是不同的。 研究表明,相对湿度为 X%RH 时振荡频率的温度补偿系数(Δ fRHX)与相对 湿度为 0%RH 时振荡频率的温度补偿系数(Δ f RH0)具有如下关系: Δ fRHX=Δ f RH0 (fRH/fRH0) 式中Δ f RH0的值为 297/65( Hz/℃); fRH0是温度为 0℃时相对湿度为 0%RH 的振荡频率,其值为 7588( Hz); fRHX 是温度为 0℃时相对湿度为 X%RH 的振荡频率。 实验得出相对湿度( RH)与湿度传感电路输出的振荡频率( f)在环境温度为 25℃时的关系曲线,如 图 34 所示 : 图 34 在 25℃时 相对湿度 RH与振荡率 f的关系曲线 河南科技大学本科毕业设计(论文) 17 表 31 给出了该关系曲线上的 10 个点的数据。 从图 3 可以看出,相对湿度在 20%RH— 80%RH 范围内线性度较好,两端的线性较差。 表 31 在 25℃环境温度时相对湿度( RH)与振荡频率( f)的关系 相对湿度(R H ) 0 10 20 30 40 50 60 70 80 90 100输出频率(f ) 7473 7344 7219 7092 6967 6840 6710 6575 6435 6291 6133 显然,振荡频率受环境湿度的影响比较大。 当相对湿度值升高时,振荡器输出频率会随之降低,而且它们之间的这种变化是非线性的。 如果我们将检测到频率直接送给显示器显示的话,得到的结果将与环境中的实际湿度值存在很大差别,无法达到性能指标中 所要求的测量精度和分辨力。 但是由上面的关系,可以采用软件的方法进行温度补偿和线性化处理,来实现高精度地测量相对湿度。 2. 程序设计方案 经过以上分析可知,湿度检测模块程序需要完成将来自传感电路的湿度频率 f 转换为相对湿度的工作。 由于振荡频率随环境相对湿度变化是非线性的,这给湿度转换带来了困难,因此需要对其进行线性化处理。 同时,相对湿度受环境温度的影响比较大。 不同温度条件下,在同一测量场合测得的湿度差异很大,所以还需要对测量频率作温度补偿。 具体方案 如 图 35。 在湿度检测模块程序的开始,首先读取经过 A/D 转换 的相对湿度的振荡频率 fo,并 把得到的相对湿度频率值存储于 ADuC812 的一个变量单元中。 然后读取温湿度检测仪测得的环境温度值 T,根据温度补偿系数计算出应该补偿的频率,补偿后的频率值为 f =fo+(25T) △ f RH0 (fRH/ f RH0) 线性化处理: 首先根据实验得出的相对湿度与振荡频率关系曲线,将测量范围内的湿度 RH 划分为 N 等份,每份为△ RH,每个湿度分隔点对应的频率值设为 fn。 然后把频率曲线上相邻的两点依次用直线相连,就得到一条新的湿度 频率曲线,它与实际曲线几乎重合在一起,所以可以使用 该曲线产生进行线性化处理。 河南科技大学本科毕业设计(论文) 18 开始读入振荡频率f测量环境温度T频率f温度补偿频率f T的线性化处理,计算出相对湿度值结束 图 35 湿度检测模块程序流程图 在线性化处理之前,需要在单片机的数据存储器里存储一个频率表,即由 fn组成的数据表格。 因为线性化处理的过程中需要将实测频率与 fn进行多次比较。 生成频率表之后就可以进行线性化处理了。 线性化处理程序子程序流程图如 36 所 示。 程序首先从存储器中读取温度补偿过的频率 f,把它赋给一个事先定义好的变量。 同时取出△ RH,定义计数量 n,分别存入不同变量。 接下来就要对比较次数 n 赋初值 (n=0),根据变 量 n 去 ADuC812 的 ROM 中的频率表中取出频率值 f0,然后将温度补偿过振荡频率 f 与从表中取得的表频率 f0 作减法运算,并检查相减结果是否大于 0。 如果差值大于 0,则说明测得频率超出检测仪的测量范围,转入报告出错子程序,告诉用户出错。 如果两者差值小于 0,则将 n 值加 1,继续拿 f 与 fn 作比较。 如果( ff1)的值大于 0,说明实测频率在湿度 频率曲线的第一段内,这时的环境湿度值:RH=△ RH (f f0)/( f1 f0)。 河南科技大学本科毕业设计(论文) 19 读取湿度的频率 f对记数次数 n 赋初值 0从数据表中 f 0从数据表中读取 fnn + 1取 △ RH 存入变量中存取 RH 并送显RH = RHn 1 + ( f fn 1 )/( fn fn 1 ) △ RHf fo 0 ?f fn 0 ?开始结束报告超出检测下限YYNN 图 36 线性化处理程序流程 图 这里需要说明的是, f 与 f0 的比较是非常必要的。 因为这一比较涉及到,检测仪报错功能,更重要的是接下来的频率比较必须以第一次比较为参考。 在设计之初,我们想跳过与 f0 的比较,这样程序也简单一点。 但是后来分析发现如果不进行这一比较会影响到仪表的正常工作。 当 f 落在 f1 之前时,检。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。