您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 24多路温湿度巡检仪
第7章多路温湿度巡检仪通过本项目的学习,`学习者能掌握STC单片机的操作指令和编程下载方法,掌握AHT11温湿度测量模块(广州奥松公司)的检测使用方法;掌握A/D转换芯片TLC1543的编程方法以及数码管显示以及驱动等硬件知识。7.1任务描述7.2电路设计7.3程序设计7.1任务描述该项目的设计目标是用单片机STC、温湿传感器AHT11、A/D转换器TLC1543和数码管构成一个能同时显示多个被测温度及湿度的测量仪器。任务要求是用单片机设计一个多点温度测控系统,如图7.1所示。该系统中温度测量元件可采用各种具有温度-电压转换的元件;而电压模拟量转换至数字量的芯片可采用多路转换芯片ADCTLC1543。图7.1系统原理框图转换后的数据送给单片机,然后由单片机对数据处理后传送到LED数码管进行显示。图7.2为仿真图,其中声音报警采用灯光报警来替代,读者可参考下面的电气原理图自己来设计声音报警。GNDGNDABCDEFGDPABCDEFDPEOCADDRIN1KEY1S7S6S4S3S2S1LED3GLED1VOICELED4LED2CLKCSKEY2KEY3KEY4KEY1SDOINT0TXDRXDVOICEb7b6b5b4b3b2b1SDOADDRCSCLKEOCIN2KEY2KEY3KEY4INT0KEY2KEY3KEY4KEY1S5s7b7b0b6b5b4b3b2b1s6S5S4S3S2S1IN2IN1XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C5232184U2:ALM35856784U2:BLM358C410uFC50.1uFC70.22uFAIN12AIN23AIN34AIN45AIN56AIN67AIN78AIN89AIN911AIN1012REF+14REF-13AIN01SDO16ADDR17CS15EOC19CLK18U3TLC1543R15.1KR210KR34.99KR42KR54.99KR64.99KC80.22uFC90.1uFR74.7KR85.1KR95.1KR1010KR114.99KR124.99KX111.0592MHZC1122nFC1222nFR1310K234567891RP14.7KD02D13D24D35D46D57D68D79Q019Q118Q217Q316Q415Q514Q613Q712LE11OE1U474HC573L1B82412A1332K000D1LED-BLUE12456U5:A74HC2091012138U5:B74HC20R1(1)R1(1)V=1.53A02B018A13B117A24B216A35B315A46B414A57B513A68B612A79B711CE19AB/BA1U674LS245U2:B(V+)C110uC20.1uC34.7uIN2V=3.12563IN1V=2.18788RV150k图7.2多路温湿度巡检仪仿真图(1)微处理模块在本设计中采用STC微控器STC89C51。STC89C51是深圳宏晶公司生产的基于51单片机内核的第六代加密单片机。它兼容Atmel89c51单片机的管脚,在此基础上具有性能稳定、驱动能力更强、功耗更低、价格更低、烧录程序更方便的特点;使用keilC编程软件编写代码,使用方便,并且支持汇编;使用stc-isp-v4.80软件烧录程序,可实现在线下载,不需要额外的编程器。STC单片机最小系统的构成如图7.3所示。在该模块中,所有I/O口均接上拉电阻,目的是为了增强系统的稳定性和驱动能力,同时要注意电源模块以及去耦电容的使用。7.2电路设计图7.3STC单片机最小系统图(2)传感器模块在本设计中采用ATH11传感器模块。ATH11的引脚共有4根线,分别为红线、黄线、黑线和白线,如图7.4所示。其中红线和黑线为电源线,分别接电源的正负极,黄线输出的是湿度的电压,而白线输出的是温度的电压信号。其连接方式可以参见表7.1。图7.4ATH11传感器模块的引脚表7.1ATH11传感器引脚电气连接表由于其温度采集原理是使用热敏电阻,温度越高其电阻越小,故为了转换成电压信号,建议按照下面如图7.5所示接线,根据电工知识其输出电压与电阻的关系为:V=10/(R+2)。图7.5ATH11传感器接线实例(3)信号放大模块图7.6信号放大模块电路(4)A/D转换模块在A/D转换模块中使用ADCTLC1543,其内部结构如图7.7所示。TLC1543由通道选择器、地址输入寄存器、采样及保持、10位模数转换器、并串转换器、数据输出寄存器、控制逻辑和I/O计数等部分组成。通道选择器根据地址输入寄存器存放的模拟输入通道地址选择一个输入通道或者从内部的3个自测试电压中任意选择一个,并将选中的信号送到采样保持电路中。然后在10位模数转换器中将采样的模拟量转换成数字量,存放到数据输出寄存器中,转换结束时输出端EOC变为高电平以指示转换完成。数字量再经过并串转换器转换成串行数据,经TLC1543的DOUT端输出到微处理器中。在工作温度范围内转换时间为10μs。最大线性误差为±1/1024。TLC1543的引脚如图7.8所示,与MCS51单片机的接口如图7.9所示。图7.7ADCTLC1543的内部结构图图7.8TLC1543的引线排列图图7.9TLC1543与MCS51单片机的连接在本设计中的A/D模块设计如图7.10所示。此模块中,通道0-3为上级放大器输出信号。芯片的14腿REF(基准电压)经过电感和电容滤波后得到稳定5V。使得转换信号误差更小,信号更稳定。图7.10A/D转换模块电路图(5)显示模块如图7.11所示。此模块中,位选信号经过三极管驱动。段选信号经过74LS245驱动,采用动态显示方式,显示所采集到得温度和湿度的数值。图7.11显示模块(6)通信模块(下载烧录口)模块图7.12下载模块电路7.3软件设计在本项目中,主要的软件编程是把温湿度传感器采集到的信号通过A/D转换后的数值送到单片机中,并能够在数码管上进行动态显示,所以TLC1543的数据采集程序是重点程序,其次,采集到的电压信号通过查表或者简单的线性插值方法的计算也非常重要。由以上分析可以设计出本项目的主程序流程图(图7.13)和采集数据函数流程图(图7.14)。图7.13主程序流程图图7.14采集数据函数流程图(1)采样函数程序设计TLC1543采样函数floatread1543(ucharport)//从TLC1543读取采样值,形参port是采样的通道号{floatad;//得到的电压值uintad1;//临时存储变量uchari,al=0,ah=0;//赋初值EOC=1;//转换结束cs=1;//片选clk=0;//接时钟引脚,初值为低电平cs=0;//片选,低电平有效port=4;//获得4位通道号for(i=0;i4;i++)//把通道号打入1543{addr=(bit)(port&0x80);//获得通道号最高位clk=1;//时钟置高电平delay(10);//小延时clk=0;//时钟置低电平port=1;//准备通道号的下一位}for(i=0;i6;i++)//填充6个CLOCK{clk=1;//产生时序信号clk=0;//产生时序信号}cs=1;//片选为1,等待AD转换_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();while(!EOC);//等待转换结束cs=0;//等待AD转换_nop_();_nop_();_nop_();_nop_();//转换结束for(i=0;i2;i++)//取D9,D8{dout=1;//单片机输入口先置高电平,为输入数据做准备clk=1;//时序拉高ah=1;//高8位变量向左移1位,为下面输入数据做好准备if(dout==1)ah|=0x01;//把数据送给ahclk=0;//时序拉低}for(i=0;i8;i++)//取D7--D0{dout=1;//单片机输入口先置高电平,为输入数据做准备clk=1;//时序拉高al=1;//低8位变量向左移1位,为下面输入数据做好准备if(dout==1)al|=0x01;//把数据送给alclk=0;//时序拉低}cs=1;//片选拉高,10位数据移送结束ad1=ah;//把高2位数据送给变量ad1ad1=8;//变换到高8位ad1|=al;//得到AD值ad=(float)((float)5*(float)ad1/(float)1024);//把数字量转换成实际的电压数值,实际电压=(基准电压/位数)*转换数值,//可以参照A/D转换知识等自己推导一下return(ad);//返回实际的电压数值}(2)温湿度转换函数程序设计TLC1543测得的电压数值是数字量的,所以必须先把数字量转换成0-5V的电压值,然后再通过计算或者是查表获得相应的温度或湿度数值。在计算温度时,可以参考表7.2,采用查表法,根据其电压数值范围,采用线性插值法计算具体的温度。在计算湿度时,根据表7.3,可以看出湿度和电压之间存在简单的线性关系,可以直接通过公式进行计算。表7.2热敏电阻特性对照表表7.3AHT11型温湿度检测模块电气参数表相对湿度(%RH)2030405060708090输出电压(V)0.60.91.21.51.82.12.42.7参考程序如下:floatchange_temperature(floatres)//查表,求温度{floathigh,low,datum;//上下限,基准温度if(res27.215&&res=28.469){high=28.469;low=27.215;datum=0;}//线性插值法进行计算if(res26.023&&res=27.215){high=27.215;low=26.023;datum=1;}if(res24.891&&res=26.023){high=26.023;low=24.891;datum=2;}if(res23.814&&res=24.891){high=24.891;low=23.814;datum=3;}if(res22.791&&res=23.814){high=23.814;low=22.791;datum=4;}if(res21.817&&res=22.791){high=22.791;low=21.817;datum=5;}if(res20.891&&res=21.817){high=21.817;low=20.891;datum=6;}if(res20.009&&res=20.891){high=20.891;low=20.009;datum
本文标题:24多路温湿度巡检仪
链接地址:https://www.777doc.com/doc-2342997 .html