




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河南科技大学本科毕业设计(论文)基于ADuC812单片机的温湿度检测仪摘 要环境中的温湿度指标是两个重要的物理参数,在许多领域对温湿度测量要求高的场合,都需要精确测量温湿度。针对这一情况,设计一种可靠、实用的检测仪器显得非常重要。矚慫润厲钐瘗睞枥庑赖。基于ADuC812单片机的湿度检测仪可以实时、准确的测量环境中的温度和相对湿度,并能通过键盘输入设置湿度上下限的值以及进行语音报警,其附有的通信接口可方便地实现与计算机的实时通信。 聞創沟燴鐺險爱氇谴净。在整个设计过程中,我们综合参考了国内外同类产品的设计方法,结合用户的实际需求,经研究之后,硬件部分的设计采用了以带有A/D转换器的ADuC812单片机为核心控制器件,以高灵敏度AD590电流输出型二端式集成温度传感器为温度数据获取元件和湿度传感器THS11采集环境中的相对湿度,模拟输入接口接入键盘实现人机交换功能,并用LCD作为显示设备的硬件设计方案。此外,在通信方面使用RS-232串行数据接口与计算机进行数据传输。软件部分则采用采用模块化的方法将其分成几个部分,然后逐模块设计程序,用汇编语言来实现,最终使各部分结合起来协调工作。残骛楼諍锩瀨濟溆塹籟。该温湿度检测仪的设计,能够完成的温湿度检测,实现主要的温湿度检测功能。关键词:ADuC812单片机,传感器,LCD,温湿度MEASURING INSTRUMENT FOR HUMIDITY BASEED ON ADuC812 MICROCONTROLLER酽锕极額閉镇桧猪訣锥。ABSTRACTThe temperature and relative humidity of environmental condition are two important physical parameters, in industry department as well as the laboratory and so on the petrification, metallurgy, electric power, drugs manufacture, cement requests the high situation to the temperature and relative humidity survey, it appears very important to develop a reliable and practical instrument that can examine the relative humidity of environment.彈贸摄尔霁毙攬砖卤庑。Based on the ADuC812 microcontroller humidity instrument be able to accurate examine environment temperature and the relative humidity on real-time, and user can set the humidity examinants range, so it will give a when the real humidity beyond the limiting. It attaches the correspondence connection may conveniently the realization and the computer real-time communication. 謀荞抟箧飆鐸怼类蒋薔。In the whole design process, we have synthesized referred to the domestic and foreign similar products design method, the union users demand, as well as high Xingjian compared to and so on target, after research, used take included A/D the switch the ADuC812 microcontroller as the core control component, take the high sensitivity warm sensor AD590 as the data gain part and take the humidity sensor THS11 as the data gain part, and took the graphic display device with LCD the hardware design proposal. In addition, has used the RS-232 serial data connection in the serial communication aspect. But software partial uses modular the design method, causes various segments the function even more to be clear about, the readability is stronger.厦礴恳蹒骈時盡继價骚。The temperature and humidity detector circuit design , to complete a captial temperature and humidity testing , achieving basic functions of temperature and humidity testing . 茕桢广鳓鯡选块网羈泪。KEY WORDS:ADuC812 microcontroller , Sensor, LCD, Temperature and humidity鹅娅尽損鹌惨歷茏鴛賴。5目录前言1籟丛妈羥为贍偾蛏练淨。第1章 温湿度检测仪总体技术方案2預頌圣鉉儐歲龈讶骅籴。1.1 温湿度检测仪的主要性能指标及其工作原理2渗釤呛俨匀谔鱉调硯錦。1.1.1 性能指标2铙誅卧泻噦圣骋贶頂廡。1.1.2 温湿度检测仪的工作原理2擁締凤袜备訊顎轮烂蔷。1.2 温湿度检测仪的硬件设计总体结构方案3贓熱俣阃歲匱阊邺镓騷。1.3 温湿度检测仪应用软件系统的设计方案4坛摶乡囂忏蒌鍥铃氈淚。第2章 温湿度检测仪的硬件电路设计6蜡變黲癟報伥铉锚鈰赘。2.1 温湿度检测仪ADuC812单片机电路的设计6買鲷鴯譖昙膚遙闫撷凄。2.2 温湿度检测仪的硬件电路设计7綾镝鯛駕櫬鹕踪韦辚糴。2.2.1 温度检测电路8驅踬髏彦浃绥譎饴憂锦。2.2.2 湿度检测电路8猫虿驢绘燈鮒诛髅貺庑。2.2.3 其它模块电路设计9锹籁饗迳琐筆襖鸥娅薔。第3章 温湿度检测仪的软件设计13構氽頑黉碩饨荠龈话骛。3.1 主程序模块设计13輒峄陽檉簖疖網儂號泶。3.2 温湿度检测模块程序设计14尧侧閆繭絳闕绚勵蜆贅。3.2.1 温度检测模块程序设计14识饒鎂錕缢灩筧嚌俨淒。3.2.2 湿度检测模块程序设计15凍鈹鋨劳臘锴痫婦胫籴。3.3 键盘扫描和LCD显示模块程序设计20恥諤銪灭萦欢煬鞏鹜錦。3.3.1 键盘扫描20鯊腎鑰诎褳鉀沩懼統庫。3.3.2 LCD显示部分程序设计23硕癘鄴颃诌攆檸攜驤蔹。结论28阌擻輳嬪諫迁择楨秘騖。参考文献29氬嚕躑竄贸恳彈瀘颔澩。致谢31釷鹆資贏車贖孙滅獅赘。附录32怂阐譜鯪迳導嘯畫長凉。 前言日常生活中,档案馆、图书馆、精密仪器室、超净车间对等对环境温湿度都有严格的要求所以温湿度集散控制技术是最常见的应用技术。随着科技的进步,检测仪表也向着智能化、小型化、低功耗的方向发展。在这个发展过程中,单片机发挥了重要的作用,本文介绍的湿度检测仪就是以单片机作为核心控制器设计的。它具有体积小、操作简单、性能稳定、测量精度高和抗干扰能力强等优点,可广泛应用于需要对温湿度进行测控的领域中。谚辞調担鈧谄动禪泻類。本设计首先根据实际生产生活的需要提出温湿度检测仪的功能要求,然后由这些要求具体设计出了硬件原理图,再采用模块化的方法将其分成几个部分,然后逐模块设计程序,最使各部分结合起来协调工作。它是利用单片机的在控制方面的突出优点,并综合运用现代检测技术、微控制技术、数据处理和通信技术以及LCD显示技术而设计的。可以实时、准确的测量环境中的温度和相对湿度,通过键盘输入设置相对湿度上下限及进行报警,并且可以和PC机进行通信,作为温湿度记录仪使用。嘰觐詿缧铴嗫偽純铪锩。论文的第一章介绍了温湿度检测仪的主要性能指标及其工作原理,主要介绍了温湿度检测仪的硬件设计总体方案和温湿度检测仪的应用软件系统的设计方案;第二章主要介绍了温湿度检测仪的硬件电路设计,重点介绍了温度检测电路和湿度检测电路;第三章主要介绍了基于ADuC812单片机的湿度检测仪的软件设计,软件设计部分采用模块化设计,重点介绍了湿度检测模块程序设计中对湿度的频率的线性化处理和温度补偿。熒绐譏钲鏌觶鷹緇機库。第1章 温湿度检测仪总体技术方案温湿度作为两项项环境参数,在很多方面都起着重要的作用。本文中的基于ADuC812单片机的湿度检测仪就是针对这一需求而设计的。它综合运用了现代检测技术、数据处理和通信技术以及LCD显示技术,可以实时、准确的测量环境中的温度和相对湿度和设置相对湿度上下限及进行报警,并且可以和PC机进行通信,作为温湿度记录仪使用。在此设计过程中,我们综合分析了不同用户在不同场合的不同需求,并且借鉴了国内外同类仪表设计的经验,经研究之后,采用了以含有A/D转换器的ADuC812单片机为核心控制器件,以高灵敏度温度传感器和湿度传感器为数据获取元件的方案。它的设计过程主要包含硬件设计和软件设计两大过程.以下是该温湿度检测仪设计的大概过程。鶼渍螻偉阅劍鲰腎邏蘞。1.1 温湿度检测仪的主要性能指标及其工作原理1.1.1 性能指标1. 相对湿度测量精度: 3RH,分辨力 0.1RH;2. 温度测量精度: 1,分辨力 0.1;3. 可有用户自行校准仪表的测量精度,无需硬件调整;4. 可直接与微机串行口连接,作环境相对湿度与温度的高精度记录仪使用;5. LCD显示;6. 用户可编程设定相对温度与湿度上、下限报警值,并可进行语音报警;7. 用户可编程设定手动或定时自动打印相对湿度与温度的测量结果;8. 可手动或自动记录测量的相对湿度与温度的结果;9. 电源:DC9V10%;10.工作环境温度60 ,工作环境湿度90%;1.1.2 温湿度检测仪的工作原理加载有相应程序的ADuC812单片机定时采集温度测量电路电压信号和相对湿度测量电路输出的频率信号,并对湿度的频率进行线性化处理和温度补偿,从而获得温度和相对湿度数据,分别将这些数据存储于数据存储器中, 然后送LCD显示屏显示。可通过键盘电路来设置相对湿度的上下限,当检测到的环境湿度超过限制设定值时,单片机控制报警电路发出语音警报。当仪表收到PC机发送的传送指令时,就把当前一段时间的测量数据打包传送给PC机。纣忧蔣氳頑莶驅藥悯骛。1.2 温湿度检测仪的硬件设计总体结构方案硬件部分是检测仪的重要部分,设计的好坏直接影响到整机的性能。该检测仪采用ADuC812单片机为核心,整个硬件系统分为以下几个部件,具体如图1-1所示:颖刍莖蛺饽亿顿裊赔泷。图1-1 硬件电路框图温度检测电路由半导体集成传感器AD590和电阻构成,AD590输出电流通过电阻进入模拟地,产生相应的电阻电压。电阻的电压输入到ADuC812单片机中,经ADC转换为数字量,有应用软件处理得到环境温度。濫驂膽閉驟羥闈詔寢賻。相对湿度测量电路由NE555构成的振荡电路组成,湿度传感器THS11的电容随环境相对湿度的变化而变化,从而导致振荡器的振荡频率变化,ADuC812单片机通过测量振荡器输出的振荡频率,经过软件处理后,获得相对湿度值。銚銻縵哜鳗鸿锓謎諏涼。键盘输入电路与LCD显示电路实现人机对话的功能。RS232接口电路与PC机的串行口联接,实现通信功能。挤貼綬电麥结鈺贖哓类。1.3 温湿度检测仪应用软件系统的设计方案该仪表的系统程序设计采用模块化的程序设计方法,其结构见图1-2:图1-2 软件设计模块图检测仪的应用软件系统包括:主程序模块、温度检测模块、相对湿度检测模块、键盘和显示模块以及串行通信模块。赔荊紳谘侖驟辽輩袜錈。主程序的内容包括:主程序的起始地址,中断服务程序的起始地址,有关内存单元及相关部件的初始化和一些子程序。塤礙籟馐决穩賽釙冊庫。温度检测模块主要是完成测温电路所得电压与实际温度的转换,和对温度数据的存储、显示;相对湿度检测模块除了要实现对湿度数据的存储 、显示外,还要对湿度信号进行温度补偿和线性化处理。裊樣祕廬廂颤谚鍘羋蔺。键盘、显示模块完成检测仪控制和数据显示功能;通信模块包括初始化、发送及接收部分,可实现检测仪与PC机通信的功能。仓嫗盤紲嘱珑詁鍬齊驁。第2章 温湿度检测仪的硬件电路设计此系统采用了以含有A/D转换器的ADuC812单片机为核心控制器件,以高灵敏度传感器为获取元件,用LCD作为显示设备,并含有语音报警电路的方案。这个系统主要由ADuC812单片机、温度测量电路、相对湿度测量电路、语音报警电路、键盘输入电路与LCD显示电路。绽萬璉轆娛閬蛏鬮绾瀧。2.1 温湿度检测仪ADuC812单片机电路的设计该检测仪的设计是以ADuC812单片机为核心部件,ADuC812单片机是美国AD公司推出的与MCS51单片机兼容的ADuC812单片机,它包含了高性能的8路12位ADC、2路12位DAC、80C52MCU内核、8KB EEPROM程序存储器、640B EEPROM数据存储器和温度传感器等片内资源。ADuC812单片机的引脚排列如图2-1。骁顾燁鶚巯瀆蕪領鲡赙。利用ADuC812单片机的输入接口P1.7定时采集温度测量电路电压信号和输入/输出接口P3.5采集相对湿度测量电路输出的频率信号,并对湿度的频率进行线性化处理和补偿,从而获得温度和相对湿度数据,分别将这些数据存储于数据存储器中, 然后再通过P3.6和P3.7接口把芯片处理的数据送入显示模块电路,并可以用LCD显示屏显示出来。当温湿度检测仪检测到的相对湿度超过用户设定的上下限时,单片机通过P1.0口输出语音信号到报警电路。单片机通过模拟输入口ADC0ADC7连接键盘,用户可以通过键盘输入实现人机交换。ADuC812单片机的P3.0、P3.1端口与PC机相连实现串行通信,采用RS-232C串行接口。瑣钋濺暧惲锟缟馭篩凉。ADuC812单片机的时钟电路采用的是内部的时钟电路,利用单片机内部的振荡电路,并在XLAT1和XLAT2两引脚间外接石英晶体和电容构成的并联谐振电路,使内部振荡器产生自激振荡。石英晶体XT1频率是11.059M,C1和C2是33pf。鎦诗涇艳损楼紲鯗餳類。图2-1 ADuC812单片机的引脚排列图ADuC812单片机的复位电路采用的开关复位电路,开关SW1未按下是上电复位电路,上电复位电路在上电的瞬间,由于电容上的电压不能突变,电容处于充电(导通)状态,故RST脚的电压与VCC相同。随着电容的充电,RST脚上的电压才慢慢下降。选择合理的充电常数,就能保证在开关按下时是RST端有两个机器周期以上的高电平从而使ADuC812内部复位。SW1按下时是按键手动复位电路,RST端通过R1与VCC电源接通,提供足够的时间的复位电平,使单片机复位。栉缏歐锄棗鈕种鵑瑶锬。基于ADuC812单片机的温湿度检测仪的原理图见附录。2.2 温湿度检测仪的硬件电路设计该温湿度检测仪的硬件系统由以下部分组成:电源部分、相对湿度测量电路、温度测量电路、键盘扫描电路、LCD显示电路、语音报警电路、与PC机通信的RS232转换电路和存储器扩展部分,各部分设计如下。辔烨棟剛殓攬瑤丽阄应。2.2.1 温度检测电路温度检测电路主要由AD590传感器、电阻和放大器组成,具体电路图如图1-2所示。AD590是一种电流输出型二端式集成温度传感器,其主要技术参数:测温范围55+150;工作电压+4V+30V;精度0.5;灵敏度1A/,温度每变化1,其输出电流变化1A;输出零点为热力学温标零点。即273时AD590的输出电流为0A,0时输出约为273A。峴扬斕滾澗辐滠兴渙藺。温度检测电路如图2-2所示:图2-2 温度检测电路工作过程:因为流过AD590的电流与热力学温度成正比,电流经电阻R15转换为电压信号,所以电阻R15上的电压也将随环境中温度的变化而变化。电阻上的电压信号经放大器放大后输入到ADuC812单片机带有A/D转换器的端口P1.7,由单片机应用软件处理为环境中的实际温度数据。詩叁撻訥烬忧毀厉鋨骜。2.2.2 湿度检测电路相对湿度测量电路如图2-3所示,它由NE555构成的振荡器组成,湿度传感器THS11的电容随环境相对湿度的变化而变化,从而导致振荡器的振荡频率变化。湿度检测电路通过湿度传感器THS11采集环境中的相对湿度。THS11是一种电容式湿度传感器,它的电容值随环境湿度的变化而变化,它具有测量范围广(0100%)RH;适用性好,可在(40100)温度下工作;精度高(2%);响应速度快(5s),恢复时间短(10s);长期稳定好(年漂移量仅为1.5%RH)并且具有极好的线性输出等特性。则鯤愜韋瘓賈晖园栋泷。图2-3 湿度检测电路湿度检测电路的工作过程为:环境相对湿度的变化导致湿度传感器THS11的电容变化,从而引起振荡器的输出频率的变化。单片机通过测量该频率的变化,经应用软件的温度补偿和线性化处理可获得环境相对湿度值。该测量电路的测量精度为 3RH,分辨力 0.1RH,使得相对湿度传感器THS11的测量范围大,长期稳定性好,响应时间短,温度系数低,线性度较好,体积小。不足之处是相对湿度传感器THS11及其它元件的离散性导致了调试困难,需进一步研究解决。胀鏝彈奥秘孫戶孪钇賻。2.2.3 其它模块电路设计键盘输入电路与LCD显示电路实现人机对话的功能。RS232C接口电路与PC机的串行口联接,实现通信功能。打印输出接口电路与打印机连接,实现打印功能。 鳃躋峽祷紉诵帮废掃減。以下重点简单介绍LCD显示电路、语音报警电路、串行通信模块1. LCD显示电路LCD显示电路用于实现中文窗口菜单和测量结果显示功能,可通过键盘扫描电路完成参数输入、菜单选择等操作。因此,键盘扫描电路和LCD显示电路可视为人机对话接口。显示模块电路如图2-4所示。稟虛嬪赈维哜妝扩踴粜。图2-4 显示模块电路电路中的HS12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及12864全点阵液晶显示器组成。可完成图形显示,也可以显示84个(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、P1.2端口通过由“与非门”构成的辅助电路与HS12864的E端口相连,来控制显示模块对单片机送来数据的操作;而P0.1口控制显示器显示内容,即数据或指令;来自P0.2,P0.3的指令选择显示器左右半屏的信号。沩氣嘮戇苌鑿鑿槠谔應。2. 语音报警电路图 2-5 语音报警电路报警电路主要由电源、放大器、滤波电路和扬声器组成。当温湿度检测仪检测到的相对湿度超过用户设定的上下限时,单片机通过P1.0口输出语音信号使报警电路发出警报。语音报警电路如图2-5。钡嵐縣緱虜荣产涛團蔺。3. 串行通信模块图 2-6 与PC通信电路与PC通信电路如图2-6,检测仪与PC机通信采用RS-232串行接口。RS-232是PC机与通信工业中应用最广泛的一种串行接口,它被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯。由于其发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为37k,所以RS-232适合本地设备之间的通信。懨俠劑鈍触乐鹇烬觶騮。RS-232是用正负电压来表示逻辑状态的,而TTL是用高低电平来表示逻辑状态的,因此,为了能够同PC机接口或终端的TTL器件连接,必须在RS-232与TTL电平之间进行电平转换.这里利用MAX232完成电平转换工作。 MAX232芯片是MAXIM公司生产、包行两路接收器和驱动器的IC芯片,适用于各种EIA-232C和V.28/V.24的通信接口。MAX232芯片内部有一个电压变换器,可以把输入的+5V电源电压变换成为RS-232所输出电平所需的电压。所以,采用此芯片的串行通信系统只需单一的+5V电源就可以了。謾饱兗争詣繚鮐癞别瀘。12河南科技大学本科毕业设计(论文)第3章 温湿度检测仪的软件设计3.1 主程序模块设计主程序是控制和管理的核心,主要完成在系统上电后进行定时和中断图3-1 主程序流程图处理操作的初始化。它的内容包括主程序的起始地址,中断服务程序的起始地址,有关内存单元及相关部件的初始化和一些子程序调用等等。主程序设计框图如上图3-1。呙铉們欤谦鸪饺竞荡赚。主程序初始化的具体内容包括:时间中断的初始化、外部中断源的初始化、单片机I/O口初始化、串行通信中断的初始化、RAM初始化,LCD初始化。然后对温度和湿度进行检测并将结果显示在LCD上。莹谐龌蕲賞组靄绉嚴减。3.2 温湿度检测模块程序设计3.2.1 温度检测模块程序设计该检测仪的温度检测部分使用的AD590是一种由所在环境温度决定的恒流输出器件,其输出特性为:I=Ktt式中I为AD590输出电流信号,单位为1uA电流。t为绝对温度,单位为K。Kt为转换系数,单位为1uA/K。麸肃鹏镟轿騍镣缚縟糶。AD590输出电流信号经电阻R转换为电压信号,其电压为:VR = KtRtVR从ADC口输入到单片机中,进行A/D转换,成为数字量VT。温度检测模块程序如图3-2,首先读取测量电路的温度电压VT,并将这一电压信号作为温度转换参数进行电压温度转换,具体转换方法为:把经过A/D的所得的数字电压值VT作如下计算納畴鳗吶鄖禎銣腻鰲锬。T = KT(VT-V0)式中T为需要测量的环境实际温度值,参数 V0为环境温度为0时A/D转换的数字量电压值,参数KT为环境温度与A/D转换的数字量电压的转换系数:KT = 1/( KtR15)。它们均作为常量存储在单片机的片内数据EEPROM中。由于V0、KT准确与否直接影响温度测量的精度,可通过以下方法进行校正:風撵鲔貓铁频钙蓟纠庙。用其它高精度的测温仪测量环境温度T1,输入本仪表,单片机同时记录下相应的A/D转换的数字量V1。当环境温度从T1变化到T2时,重复以上过程,单片机同时记录下相应的A/D转换的数字量V2。为保证校准精度,环境温度应在25左右变化,并且变化的范围尽可能大一些。仪表的应用软件根据KT=(T1-T2)/(V1-V2)和V0=VT1-T1/KT计算出KT和V0 的值,并存储在单片机的EEPROM数据存储器中,既完成该仪表的温度测量精度的校正。仪表的应用软件系统配置有专用的服务子程序完成此项工作,仅仅需按仪表的LCD显示器的提示完成有关操作。灭嗳骇諗鋅猎輛觏馊藹。图3-2温度检测模块程序流程图温度检测模块程序流程如图3-2,该模块程序最后将计算得到的温度值送入数据存储器,并调用LCD显示程序将环境温度显示出来,然后返回主程序继续下面的操作。铹鸝饷飾镡閌赀诨癱骝。3.2.2 湿度检测模块程序设计1. 程序欲解决问题分析湿度测量电路是由湿度传感器THS11和NE555构成的振荡电路组成。湿度传感器THS11的电容值随温度的变化导致振荡器的振荡频率发生变化,所以可以通过测量振荡器输出频率,获得相对湿度值。攙閿频嵘陣澇諗谴隴泸。实验得出振荡电路的输出频率(f)与环境温度(T)的关系曲线,如图3-3所示:图3-3 振荡频率f与温度T的关系曲线由上图可知,在环境相对湿度不变的条件下,温度和振荡频率呈近似的线性关系,所以忽略非线性误差不影响测量的精度。趕輾雏纨颗锊讨跃满賺。当环境中的相对湿度不同时,相同温度条件下的振荡频率差异比较大,且这种差异是非线性的。要准确地测量湿度,必须对振荡频率作温度补偿。夹覡闾辁駁档驀迁锬減。从图3-3可以看出,对于不同的环境湿度,振荡频率的温度补偿系数也是不同的。研究表明,相对湿度为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时的关系曲线,如图3-4所示:緦徑铫膾龋轿级镗挢廟。图3-4 在25时相对湿度RH与振荡率f的关系曲线表3-1给出了该关系曲线上的10个点的数据。从图3可以看出,相对湿度在20%RH80%RH范围内线性度较好,两端的线性较差。騅憑钶銘侥张礫阵轸蔼。表3-1 在25环境温度时相对湿度(RH)与振荡频率(f)的关系显然,振荡频率受环境湿度的影响比较大。当相对湿度值升高时,振荡器输出频率会随之降低,而且它们之间的这种变化是非线性的。如果我们将检测到频率直接送给显示器显示的话,得到的结果将与环境中的实际湿度值存在很大差别,无法达到性能指标中所要求的测量精度和分辨力。但是由上面的关系,可以采用软件的方法进行温度补偿和线性化处理,来实现高精度地测量相对湿度。疠骐錾农剎貯狱颢幗騮。2. 程序设计方案经过以上分析可知,湿度检测模块程序需要完成将来自传感电路的湿度频率f转换为相对湿度的工作。由于振荡频率随环境相对湿度变化是非线性的,这给湿度转换带来了困难,因此需要对其进行线性化处理。同时,相对湿度受环境温度的影响比较大。不同温度条件下,在同一测量场合测得的湿度差异很大,所以还需要对测量频率作温度补偿。具体方案如图3-5。镞锊过润启婭澗骆讕瀘。在湿度检测模块程序的开始,首先读取经过A/D转换的相对湿度的振荡频率fo,并把得到的相对湿度频率值存储于ADuC812的一个变量单元中。榿贰轲誊壟该槛鲻垲赛。然后读取温湿度检测仪测得的环境温度值T,根据温度补偿系数计算出应该补偿的频率,补偿后的频率值为f =fo+(25-T)f RH0(fRH/ f RH0)线性化处理: 首先根据实验得出的相对湿度与振荡频率关系曲线,将测量范围内的湿度RH划分为N等份,每份为RH,每个湿度分隔点对应的频率值设为fn。然后把频率曲线上相邻的两点依次用直线相连,就得到一条新的湿度-频率曲线,它与实际曲线几乎重合在一起,所以可以使用该曲线产生进行线性化处理。邁茑赚陉宾呗擷鹪讼凑。图3-5 湿度检测模块程序流程图在线性化处理之前,需要在单片机的数据存储器里存储一个频率表,即由fn组成的数据表格。因为线性化处理的过程中需要将实测频率与fn进行多次比较。嵝硖贪塒廩袞悯倉華糲。生成频率表之后就可以进行线性化处理了。线性化处理程序子程序流程图如3-6所示。程序首先从存储器中读取温度补偿过的频率f,把它赋给一个事先定义好的变量。同时取出RH,定义计数量n,分别存入不同变量。该栎谖碼戆沖巋鳧薩锭。接下来就要对比较次数n赋初值(n=0),根据变量n去ADuC812的ROM中的频率表中取出频率值f0,然后将温度补偿过振荡频率f与从表中取得的表频率f0作减法运算,并检查相减结果是否大于0。如果差值大于0,则说明测得频率超出检测仪的测量范围,转入报告出错子程序,告诉用户出错。如果两者差值小于0,则将n 值加1,继续拿f与fn作比较。如果(f-f1)的值大于0,说明实测频率在湿度-频率曲线的第一段内,这时的环境湿度值:RH=RH (f- f0)/( f1- f0)。劇妆诨貰攖苹埘呂仑庙。图3-6线性化处理程序流程图这里需要说明的是,f与f0的比较是非常必要的。因为这一比较涉及到,检测仪报错功能,更重要的是接下来的频率比较必须以第一次比较为参考。在设计之初,我们想跳过与f0的比较,这样程序也简单一点。但是后来分析发现如果不进行这一比较会影响到仪表的正常工作。当f落在f1之前时,检测仪会由于没有合适比较对象而出错。臠龍讹驄桠业變墊罗蘄。如果前面比较的结果值还是小于零,说明该振荡频率f不在该段,就把比较次数f加1后,从表中再次取值,继续进行的比较,直至比较结果大于零。可利用下式计算出环境的相对湿度:鰻順褛悦漚縫冁屜鸭骞。RH=RHn-1+RH然后把结果存到单片机的存储单元中,以供数据显示程序处理。 3.3 键盘扫描和LCD显示模块程序设计3.3.1 键盘扫描图3-7 键盘扫描子程序流程图该检测仪采用28矩阵式键盘,关于它的具体硬件组成电路这里就不多做介绍,在检测有无键按下方面主要用的是定时扫描方式,该方式是利用单片机内部定时器产生定时中断,即在初始化程序中对定时器/计数器进行编程,键盘扫描子程序流程图如图3-7所示。穑釓虚绺滟鳗絲懷紓泺。该子程序在时间中断服程序中被调用,定时扫描键盘,该程序首先判断有无键盘闭合,没有键盘闭合时置延时定时器位初值然后返回,有键盘闭合时延时定时器时间减少1,如果延时时间没到时返回,如果到了就逐行逐列的扫描键盘判断闭合键的键号,然后保存并给出对应键号的键值,之后置延时定时器位初值。隶誆荧鉴獫纲鴣攣駘賽。延时定时器的延迟时间等于初值乘上时间判断间隔时间,通过确定延时定时器的延迟时间达到去除键盘抖动的对正常的影响,一般延时时间在30ms50ms之间,在实验中确定具体的延迟时间。浹繢腻叢着駕骠構砀湊。键盘扫描去抖动的具体工作程序如下:Scan Key:;延时50ms去抖动 MOV P0, #00H SETB P2.4 ; OutPortCol1 SETB P2.5 ; OutPortCol2 MOV A, P2 ANL A, #00110000B ;与 XRL A, #00110000B ;异或 JZ No Key ;等于0 没有键按下;FindKeyNum=0 INC FindKeyNum MOV A, #DelayValue1; DelayValue1=9, T (5ms) X10鈀燭罚櫝箋礱颼畢韫粝。 CLR C SUBB A, FindKeyNum JNC ScanKeyEnd ;不等于0 程序结束没有键按 MOV A, #DelayValue1+1 CLR C SUBB A, FindKeyNum JC No Key ; StartScanKey Get Key: MOV LocalValue2, #00H MOV A, #07FHGetKey1: SETB P2.4 ; OutPortCol1 SETB P2.5 ; OutPortCol2 MOV LocalValue1, A MOV P0, A; MOV A, P2 ANL A, #00110000B ;与 XRL A, #00110000B ;异或 JNZ GetKey2 MOV A, LocalValue1 RR A INC LocalValue2 JB ACC.7, GetKey1 LJMP No KeyGetKey2:MOV A, P2 ANL A, #00110000B ;与 XRL A, #00110000B ;异或 JB ACC.2, GetKey3 MOV A, #08H ADD A, LocalValue2 MOV LocalValue2, AGetKey3: MOV KeyColRowBuf, LocalValue2GetKeyValue: MOV DPTR, #KeyValue MOV A, KeyColRowBufGetKeyValue1: MOVC A, A+DPTR MOV KeyValueBuf1, A ;用于控制键 MOV KeyValueBuf2, A ;用于显示 LJMP ScanKeyEndNo Key: MOV FindKeyNum, #00HScanKeyEnd: RET3.3.2 LCD显示部分程序设计1. LCD显示器应用程序设计总体方案(1).汉字点阵数据提取LCD显示器应用程序设计的基本目标是实现中文显示界面。我们选用HS12864-1型图形点阵液晶显示模块:该LCD模块为不自带字库的12864点阵液晶显示器。可通过已由的常用子程序来添加汉字、字符的点阵数据表,供LCD在中文界面下显示汉字或字符。惬執缉蘿绅颀阳灣熗鍵。(2).LCD底层应用程序设计。添加点阵数据表之后,就可以开始设计LCD应用程序。在LCD显示器应用程序设计中,需要解决的一个重要问题就是消除显示屏的闪烁感。HS12864-1 型LCD显示模块只提供了一块显示数据寄存器DDRAM,并且与显示屏点阵是一一对应的。如果直接在DDRAM处理显示数据的,会因为同时进行处理和显示,而导致显示屏闪烁。通过LCD模块提供的显示开关指令DISPLAY ON/OFF 在数据处理之前关掉显示,待数据处理完后开显示,可以使显示屏闪烁得到一定控制。但是如果数据处理时间过长,超过人眼可辨别的最短时间20ms,显示屏就会因为反复开关显示而产生闪烁感。因此我们在片外数据存储器中开辟一个或多个与DDRAM大小一样的缓冲区,用于存放正在处理的显示数据,待数据处理完后,再将数据传送至LCD显示数据RAM。 贞廈给鏌綞牵鎮獵鎦龐。通过以上分析,我们采用如下的LCD显示器应用程序设计总体方案:首先,添加汉字、字符点阵数据表。然后,编写LCD显示驱动程序。将指定Buf区中处理好的显示数据送LCD指定区显示。根据具体要求编写相应显示数据处理子程序。整个显示过程为:先将显示数据在片外数据存储器开辟的缓冲区中进行处理,待处理完后调用LCD驱动显示。最后,在LCD底层程序完成的基础上,设计人机交互界面,实现用户在菜单方式下进行交互。嚌鲭级厨胀鑲铟礦毁蕲。2. LCD适用字模信息提取程序的设计经研究,我们采用在单片机产品中经常用到的1616点阵的汉字库作为提取字模的母字库。 LCD在文本显示状态下,一屏最多显示4行8个汉字。在1616点阵汉字字库中,采用的是以行为主的存放结构,即一行上连续的8个点阵信息放在一个字节内,且左边的点对应字节的高位。每个汉字的字模信息占32个字节。薊镔竖牍熒浹醬籬铃騫。汉字母库编码采用:计算机汉字字符代码中最常用一个是汉字编码字符集的基本集-GB2312。GB2312包括了汉字字符基本集,共收录汉字、图形符号等共7445个,依据其位置,分为94个区,每区共94位。其中第16区55区安排3755个常用汉字,依汉语拼音顺序排列。通过汉字的内码我们可以计算出与其点阵信息在字库中的偏移量。齡践砚语蜗铸转絹攤濼。在生成点阵数据表的相应汉字中,采用自定义的编码。因为温湿度记录仪中只用到了少量汉字,所以我们决定采用ASCII代码中的 80HOFFH特殊字符代码区,用做生成点阵表的汉字编码,共可表示128个汉字。前20H7FH为常用字符的ASCII代码。绅薮疮颧訝标販繯轅赛。由图形显示数据寄存器DDRAM地址和显示位置的对应关系可知:直接将提取的点阵数据送显,汉字不能正确显示。因此我们必须将提取的字模数据进行相应的转换,才能在LCD上正确显示。转换后的点阵信息格式如表3-2所示。饪箩狞屬诺釙诬苧径凛。表3-2 16点阵字模转换后排列格式d0d7第0字节12 341415d0d716171819203031 将转换后的点阵数据,按汇编语言中,定义存储单元伪指令“DB”的格式写入创建的文本文件中,就得到我们所需要生成的汉字点阵信息表。烴毙潜籬賢擔視蠶贲粵。3. LCD显示驱动程序的设计所谓LCD驱动,即是通过连续的写显示数据(WRITE DISPLAY DATE)命令操作,将片外显示数据处理缓冲区内的数据,顺序写入相应的DDRAM单元。鋝岂涛軌跃轮莳講嫗键。图3-8 LCD显示驱动源程序及流程图HS12864-1 型LCD显示模块,在硬件上通过左右半屏的片选信号引脚CS1/CS2,将LCD的显示数据DDRAM分为了左右两个半屏。在显示数据的处理和送显上,需要不断设置引脚CS1/CS2的信号,达到对指定DDRAM单元的控制和处理。这样对LCD模块控制极为不便。撷伪氢鱧轍幂聹諛詼庞。我们欲通过软件处理,使得LCD写显示数据操作结构化,整体化。将LCD显存DDRAM化分为8页,每页8行128列,128个数据存储单元。由软件驱动LCD显示屏上07页的任意页显示:顺序读出指定Buf区内图形或汉字的点阵数据,依次将显示数据写入指定页的128个数据存储单元。踪飯梦掺钓貞绫賁发蘄。温湿度记录仪使用ADuC812单片机作为CPU,对其底层编写程序,我们选用了汇编语言作为编程语言,选用8051仿真器作为编程环境,以便程序的跟踪调试。婭鑠机职銦夾簣軒蚀骞。软件将LCD显存DDRAM化分为8页,每页128个数据存储单元。通过R2控制写入左半屏或右半屏。先写显示数据到左半屏的64个单元;后通过R2自减1,控制写显示数据到右半屏的64个单元。一页写满后,如果没到写页次数,LCDPageX自加1,继续写下一页。譽諶掺铒锭试监鄺儕泻。其流程图如图3-8所示。4. LCD人机交互界面相关程序人机交互程序设计的重点在于窗口界面的显示、滚屏、光标的管理及参数的显示、修改和保存。现在我们只设计了窗口界面的显示部分,和菜单、对话框的简单控制切换。俦聹执償閏号燴鈿膽賾。人机交互界面的显示主要包括菜单的显示、对话框的显示和提示信息显示。1. 提 示 信 息2. 对 话 框3. 菜 单 选 项图3-9窗口版面对应的通过前面对程序设计原理的分析,我们把窗口中具体条目(提示信息、菜单、对话框、参数等)显示涉及到的子程序进行封装处理,从而使得整个应用软件系统的设计简单明了。以菜单显示为例:我们把菜单编码对应汉字点阵数据的处理程序和显示驱动程序封装,调用时只需给出要送LCD显示的菜单序列号,则所菜单内容即可完成在指定位置(菜单区)的显示。缜電怅淺靓蠐浅錒鵬凜。对话框中参数的输入显示原理与菜单、对话框控制相同,都是通过读键,判断键值,功能处理来实现。28结论该检测仪适用于需要对温湿度实时检测的多种场合。由于采用了测量范围广、精度高、响应速度快的电容式湿度传感器来进行湿度采样,使用温度补偿、线性化处理的方法提高检测精度,因此该检测仪基本上达到技术指标中对相对湿度测量精度和分辨力的要求。骥擯帜褸饜兗椏長绛粤。该检测仪在湿度的线性化上用的时间可能会稍长一些。但是ADuC812单片机工作频率较高,并且只有环境湿度较高时才会出现处理时间延长现象,因此并不影响检测仪的实时检测指标。癱噴导閽骋艳捣靨骢鍵。在这次设计中我们也遇到不少问题,也正是对这些问题的逐步解决该检测仪顺利设计完成。我们的设计主要面临着
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钢材公司的合同范本
- 委托转租门面合同范本
- 2017租房协议合同范本
- 青少年读本出版合同
- 新租赁厂房合同范本
- 入户空间租房合同范本
- 公路承包开挖合同范本
- 混合型肠易激综合征护理查房
- 成套电器销售合同范本
- 2008租赁合同范本
- 英汉互译单词练习打印纸
- 四川JS-004竣工验收报告
- 花卉栽植施工方案
- 水工闸门课件
- 水泥生产企业生产安全事故综合应急预案
- 全自动血液细胞分析仪产品技术要求深圳迈瑞
- 找对英语学习方法的第一本书
- 安徽涵丰科技有限公司年产6000吨磷酸酯阻燃剂DOPO、4800吨磷酸酯阻燃剂DOPO衍生品、12000吨副产品盐酸、38000吨聚合氯化铝、20000吨固化剂项目环境影响报告书
- 《诺丁山》经典台词
- 对铁路机车乘务员规章培训的探讨与实践
- 临床医学实验室 仪器设备一览表格模板
评论
0/150
提交评论