




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计-36-引言网络通信技术的发展,使监控系统广泛应用于工农业生产等领域,因此,粮情检测技术粮情检测属监控系统范畴,近年来,由于计算机技术、超大规模集成电路技术和的研究在软、硬件等方面都有了一定的进展。早期粮情监测主要采用温度计测量法,它是将温度计放入特制的插杆中,根据经验插在粮堆的多个测温点,管理人员定期拔出读数,确定粮温的高、低,决定是否倒粮。这种方法对储粮有一定的作用,但由于温度计精度、人工读数的人为因素等原因,温度检测不仅速度慢,而且精度低,抽样不彻底,局部粮温过高不易被及时发现,导致因局部粮食发霉变质引起大面积坏粮的情况时有发生。随着科技的发展,从1978年开始,采用电阻式温度传感器、采样器、模数转换器、报警器等组成的储粮监测系统出现,它可对各粮库的各个测温点进行巡回检测,检测速度、精度大大提高,降低了劳动强度,但由于电阻传感器的灵敏度低,致检测精度、系统可靠性还不够理想。至1990年,粮情检测系统有了很大的改善和提高,系统在布线上采用矩阵式布线技术,简化了数据采集部分的线路,在传感器方面应用了半导体、热电偶等器件;在线路传输上采用了串行传输方式,从而减少了传输线根数;采用单板机进行数据处理,并采用各种手段提高数据传输及检测速度,通过软硬件技术的结合,检测精度和可靠性较前有很大提高。但温度传感器的线性度差,系统的检测精度仍不理想,无法大面积推广。近年来,随着单片机功能的日益强大和计算机的广泛应用,粮情检测的准确性、稳定性要求越来越高。寻找最佳配置和最好的性价比成为粮情监测研究的热点国外在粮情监控技术上已达到了很成熟的地步,高科技数字式传感器广泛应用于粮情检测系统。这种传感器采用了半导体集成电路与微控制器最新技术,在一个管芯上集成了半导体温度检测芯片、数据信号转换芯片、计算机接口芯片,转换、温度补偿等功能。由于数字温度传感器直接传出数字量,从而解决了温度信号长距离传输问题及传输过程中因干扰和衰减而导致的精度降低等问题。目前,国内出现了丰富的数字传感器配套产品,如远程控制模块、中继器、接插器、分线器等,技术也比较成熟。数字传感技术、通信技术、计算机成为当今信息技术的的三大基础,计算机监控技术已成人们关注的热点。
1项目说明防潮、防霉、防腐、防爆是粮库日常工作的重要内容,是衡量粮库管理质量的重要指标。它直接影响到储备物资的寿命和工作可靠性。为保证日常工作的顺利进行,首要问题是加强仓库内温度的监测工作,因为温度的升高,就意味着粮库内的有氧呼吸的加强,就意味着马上就要发生腐烂霉变。因此我们需要一种造价低廉、使用方便且测量准确的温度测量仪。1.1设计目标设计一个基于51单片机的温度湿度报警器,实现运行参数设置和显示功能,通过485总线方式和上位机通信。设计要求:(1)掌握温度报警器的工作原理和设计方法;(2)掌握51系列单片机编程;(3)掌握485总线通信机理;(4)学会Protell99SE画图工具;1.2研究内容和研究方法(1)根据系统功能要求并且考虑系统的实用性和可操作性,进行系统的整体方案设计。该方案采用模块化设计方法,以方便系统调试和用户的使用。(2)系统硬件设计。主要内容包括芯片的选择、芯片的功能介绍、芯片外围电路的设计等。(3)系统软件设计。主要包括系统主程序,记数程序,采样子程序,读显示子程序,写显示RAM子程序,报警子程序。本设计以实用为出发点,力求设计原理简单,开发成本低,易于实现。器件选择上,也考虑到实际应用的具体情况。单片机控制可靠性高,温湿度传感器采集信号误差小,稳定度高,整个系统使用简单,经济,有很强实用性。1.3方案选择1.3.1单片机芯片的选择方案和论证方案一采用MSP430F449芯片作为硬件核心,采用FlashROM,内部具有4KBROM存储空间,能于1.8V-3.6V的超低压工作,适合手持设备。但是编程环境复杂,编程风格与MS-51相差很大。用MSP430编程较之MS-51繁琐,故不采用MSP430F449。方案二采用AT89C52,片内ROM全都采用FlashROM;能在4V-5.5V电压工作;同时也与MCS-51系列单片机完全兼容。该芯片内部存储器为8KBROM存储空间,同样具有89C51的功能。由于其与MS-51完全兼容,故编程简单。AT89C52的性能完全满足本设计对单片机的要求。所以选择采用AT89C52作为主控制系统。1.3.2显示模块的选择方案和论证方案一采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,但是显示字母不合适。而且采用动态扫描法与单片机连接时,占用的单片机时间多。所以不采用此种作为显示。方案二采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。方案三采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量字母,图形,显示多样,清晰可见,但是价格一般,需要的接口线较少,所以在此设计中采用LCD液晶显示屏作为显示。1.3.3温湿度传感器的选择方案和论证方案一分别采用温度传感器和湿度传感器分开采集温度和湿度,这种设计需要用到两个传感器分别采集数据而且还需要用到A/D转换电路,实际连接电路比较麻烦。方案二进而考虑到用温湿度继集成传感器,在单片机电路设计中,所以可以采用一只温湿度集成传感器SHT75,此传感器可以很容易直接读取被测温湿度值,内部进行转换,直接输出数字信号,可以满足设计要求。所以选择方案二。综上各方案所述,对此次作品的方案选定:采用AT89C52作为主控制系统;SHT75作为温湿度传感器;LCD1602显示屏作为显示。
2系统的整体设计2.1系统的组成根据系统总体功能,将其划分为以下几个功能模块:微处理器CPU、温湿度传感器、键盘、LCD显示,LED状态报警,蜂鸣器报警,整个系统的构成如图2.1所示。图2.1整体系统构成2.2系统工作流程AT89C52单片机是整个系统的核心,他来接收温湿度信号并控制协调各个模块使其能正常工作。SHT75温湿度传感器采集温湿度信号,将信号直接送至单片机进行运算,得到合适的温湿度。显示部分由液晶芯片LCD1602配合单片机完成。报警部分由按键控制设置,配合显示部分来设置温湿度的报警阈值,实际温湿度超过阈值是有蜂鸣器和LED灯共同报警。单片机通过RS485总线方式与上位机进行通讯,并实时显示温湿度值。因89C52内含8KB的EEPROM,不需外扩展存储器,可使系统整体结构简单。2.3系统的功能介绍本系统可对温湿度值进行实时检测,测温范围可为-40~+123.8℃,根据粮仓内实际温度变化情况,将测温范围设定为0-70。C。可测湿度测量范围是(0-100)%RH,这也足以满足对湿度的测量要求。所测温湿度值通过LCD1602显示芯片显示。整个系统测量精度高、稳定性好,性能上能够达到远距离测量温湿度的要求,适于安置在粮仓内进行检测。
3系统的硬件设计本章从器件选择、性能特点、电路分析等方面对硬件系统进行了讨论。3.1AT89C52单片机功能介绍3.11芯片简介AT9C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C52提供了高性价比的解决方案。主要性能参数如下。主要性能•与MCS-51单片机产品兼容•8K字节在系统可编程Flash存储器•1000次擦写周期•全静态操作:0Hz~33Hz•三级加密程序存储器•32个可编程I/O口线•三个16位定时器/计数器•八个中断源•全双工UART串行通道•低功耗空闲和掉电模式•掉电后中断可唤醒•看门狗定时器•双数据指针•掉电标识符图3.1AT89C52引脚图3.12AT89C52各引脚在设计中的应用引脚图如图3.1P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“l”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节。而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。本系统P0口用于与LCD1602进行数据传输。P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。本系统P2口用于进行报警系统的信号传输。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。本系统P3口用于接收SHT75传感器的温湿度信号,P3.2和P3.3用于键盘输入的外部中断,P3.2用于INT0(外部中断0),P3.3用于INT1(外部中断1)。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的l/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。3.13时钟振荡器AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图3.2。图3.2振荡电路3.2温湿度采集系统3.2.1集成温湿度传感器的选择SHT75(如图3.3)是盛世瑞恩温湿度传感器系列中插针型的传感器。传感器把传感元件和信号处理集成起来,输出全标定的数字信号。传感器采用专利的CMOSens®技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上,与14位的A/D转换器以及串行接口电路实现无缝连接。因此,该产品具有品质卓越、超快响应、抗干扰能力强、极高的性价比等优点。每个传感器芯片都在极为精确的湿度腔室中进行标定,校准系数以程序形式储存在OTP内存中,在标定的过程中使用。传感器在检测信号的处理过程中要调用这些校准系数。两线制的串行接口与内部的电压调整,使外围系统集成变得快速而简单。微小的体积、极低的功耗,使SHT75成为各类应用的首选。图3.3SHT75传感器3.2.2SHT75的性能特点(如图3.4)图3.4SHT75性能特点3.2.3温湿度测量电路电源引脚:SHT75的供电电压为2.4-5.5V,建议供电电压为3.3V。在电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。SHT75的串行接口,在传感器信号的读取及电源损耗方面,都做了优化处理;传感器不能按照IC协议编址,但是,如果IC总线上没有挂接别的元件,传感器可以连接到IC总线上,但单片机必须按照传感器的协议工作。图3.5为典型应用电路连接。图3.5电路连接图串行时钟输入(SCK):SCK用于微处理器与SHT75之间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小SCK频率。串行数据(DATA):DATA三态门用于数据的读取。DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。为避免信号冲突,微处理器应驱动DATA在低电平。需要一个外部的上拉电阻(例如:10kΩ)将信号提拉至高电平。上拉电阻通常已包含在微处理器的I/O电路中。3.2.4输出转换为物理量相对湿度:为了补偿湿度传感器的非线性以获取准确数据,请参阅图3.6,建议使用如下公式修正读数:RHlinear=c1+c2·SORH+c3·SORH2(%RH)图3.6相对湿度转换相对湿度对于温度依赖性的补偿:由于实际温度与测试参考温度25℃(~77℉)的显著不同,湿度信号需要温度补偿。温度校正粗略对应于0.12%RH/℃@50%RH,温度补偿系数请参阅图3.7。RHtrue=(T°C-25)•(t1+t2•SORH)+RHlinear图3.7温度补偿系数温度:由能隙材料PTAT(正比于绝对温度)研发的温度传感器具有极好的线性。可用如下公式将数字输出转换为温度值,温度转换系数请阅图3.8:图3.8温度转换系数露点:SHT75不能直接测量露点,但可由温度和湿度值计算。SHT75系列产品可以同时实现高质量的露点测量。对于温度范围为-40-50℃,如下的近似计算可得出高精度的露点值,系数请参阅图3.9:图3.9露点系数3.3显示电路1602液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在各类仪表和低功耗系统中得到广泛的应用。1602液晶为16字X2行的字符型液晶。该液晶与数码管相比有如下优点:1.位数多,可显示32位,32个数码管体积相当庞大了。2.显示内容丰富,可显示所有数字和大、小写字母。3.程序简单,如果用数码管动态显示,会占用很多时间来刷新显示,而1602自动完成此功能。图3.10为字符型LCD的引脚定义图3.11为液晶与单片机接法图3.10引脚定义图3.11液晶与单片机接法1602液晶模块内部的字符发生存储器(CGROM)已经存储了不同的点阵字符图形,这些字符有,阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,其中数字与字母同ASCII码兼容。其内部还有自定义字符(CGRAM),可用于存储自已定义的字符。1602模块的设定,读写,与光标控制都是通过指令来完成,共有11条指令,如表3.1:表3.1:指令RSRWD7D6D5D4D3D2D1D01清屏00000000012光标返回000000001*3输入模式00000001I/DS4显示控制0000001DCB5光标/字符移位000001S/CR/L**6功能00001DLNF**7置字符发生器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志和地址01BF计数器地址10写数据到指令7.8所设地址10要写的数据11从指令7.8所设的地址读数据11读出的数据3.4按键电路单片机应用系统中的按键或键盘都是以开关状态来设置控制功能或输入数据。为了方便设置温湿度报警阈值的修改,我一共涉及了5个按键。如图3.12当有按键按下时,信号变为低电平,系统做完与门运算后像单片机P3.2口输入低电平,这时系统执行外部中断。图3.12按键电路3.5超温报警本设计采用蜂鸣器报警方式,当采集到的温度经过修正后超过了系统设置的阈值时,则P3.0口输出低电平,U6是光耦,此处起电平匹配作用,3脚输入低电平,6脚即输出低电平,此时Q1即PNP三极管导通,蜂鸣器有电流流过即发声报警。连接方式如图3.13图3.13蜂鸣器连接方式3.6RS485远程通讯串口是一种接口标准,它规定了接口的电气标准,简单说只是物理层的一个标准。没有规定接口插件电缆以及使用的协议,所以只要我们使用的接口插件电缆符合串口标准就可以在实际中灵活使用,在串口接口标准上使用各种协议进行通讯及设备控制。RS-485总线,在要求通信距离为几十米到上千米时,广泛采用RS-485串行总线。RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS-485标准接口是单片机系统种常用的一种串行总线之一。与RS-232C比较,其性能有许多改进,细节如图3.14所示图3.14RS485改进RS-485接口可连接成半双工和全双工两种通信方式。常见的半双工通信芯片有MAX481、MAX483、MAX485、MAX487等,全双工通信芯片有MAX488、MAX489、MAX490、MAX491等。下面以MAX485为例来介绍RS-485串行接口的应用。MAX485的封装有DIP、SO和uMAX三种,其中DIP封装的管脚如图3.15所示。图3.15MAX封装管脚管脚的功能如下:
RO:接收器输出端。若A比B大200mV,RO为高;反之为低电平。
RE:接收器输出使能端。RE为低时,RO有效;为高时,RO呈高阻状态。
DE:驱动器输出使能端。若DE=1,驱动器输
出A和B有效;若DE=0,则它们呈高阻态。若
驱动器输出有效,器件作为线驱动器用,反之
作为线接收器用。
DI:驱动器输入端。DI=0,有A=0,B=1;
当DI=1,则A=1,B=0。
GND:接地。
A:同相接收器输入和同相驱动器输出。
B:反相接收器输入和反相驱动器输出。
VCC:电源端,一般接+5V。MAX485典型的工作电路如图3.16所示,其中平衡电阻Rp通常取100~300欧姆。MAX485的收发功能见图3.17。图3.16MAX485典型工作电路图3.17MAX收发功能89C52与MAX485的接口电路如图3.18所示。P1.7用来控制MAX485的接收或发送,其余操作同串口。图3.1889C52与MAX485的接口电路
4系统整体硬件电路系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警电路,按键电路,单片机主板电路,LED状态电路等,如图4.1所示。图4.1中有五个独立式按键可以分别调整温度计的上下限报警设置,并且切换显示。图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED灯闪烁。显示电路的液晶是使用的并行传输,这种显示最大的优点就是传输速度快,而且液晶显示比较清晰。系统还配置了利用RS485总线方式与上位机通讯的功能,上位机能够实时获得系统所收集的温湿度信息并实时显示。图4.1系统整体硬件电路
5系统软件算法分析系统程序主要包括主程序,读出温湿度子程序,,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。5.1主程序主程序的主要功能是负责温湿度的实时显示、读出并处理SHT75的测量的当前温湿度值,温湿度测量每1s进行一次。这样可以在一秒之内测量一次被测温湿度,其程序流程见图5.1所示。图5.1主程序流程图部分源程序:#include<AT89X52.h> //AT89C52单片机头文件#include<intrins.h> #include<SHT75.H> //SHT75操作头文件#include<lcd1602.h> //LCD1602操作头文件#include<ini_51int.h> //51中断初始化头文件////宏定义#defineHI 0x01#defineLOW 0x00#defineY 0XFF#defineN 0X00#defineTEMP_FLG 0X01#defineHUMI_FLG 0X02#defineDEW_FLG 0X03#defineNON_FLG 0X04//定义按键接口#defineSET ((P1&(1<<2))>>2) //p1.2,设置(切换)#defineTEN ((P1&(1<<3))>>3) //P1.3,×10#defineADD ((P1&(1<<4))>>4) //P1.4,增加#defineDEC ((P1&(1<<5))>>5) //P1.5,减少#defineOK ((P1&(1<<6))>>6) //P1.6,确认退出//变量定义signedintTEMP_value=0; //温度值signedintHUMI_value=0; //湿度值signedintDEW_value=0; //露点值signedinttemp_alarm_value=90; //预置温度上限报警值,大于此值报警,可通过键盘调节signedinthumi_alarm_value=90; //预置湿度上限报警值,大于此值报警,可通过键盘调节signedintdew_alarm_value=90; //预置露点上限报警值,大于此值报警,可通过键盘调节unsignedcharsetting_model=N; //是否进入设定状态的标志变量unsignedcharsetting_item_num=0; //设置内容序号,0-无,1-temp,2-humi,unsignedcharsetting_item=NON_FLG; //标记设定项目的变量unsignedchartimes=1; //增减倍率//定义输出信号接口sbitbuzzer_alarm =P3^0; //蜂鸣器 sbitworking_led =P3^3; //系统工作指示灯sbitsetting_led =P3^4; //设置状态指示灯sbitten_led =P3^5; //×10状态指示sbittemp_alarm_led =P3^6; //温度超限报警指示灯sbithumi_alarm_led =P3^7; //湿度超限报警指示灯sbitdew_alarm_led =P1^7; //露点超限报警指示灯unsignedintloop1_roll=0; //控制滚动显示速度unsignedintloop2_led=0; //控制状态指示灯闪烁快慢5.2读出温湿度子程序读出温湿度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温湿度数据的改写。其程序流程图如图5.2示部分源程序://函数名:display_temp()//功能:输出显示温度及限值信息//voiddisplay_temp(){ display_from(1); //设置显示起始位置,第一行 lcd_printchar("Temperature:"); //输出字符 display_from(18); //设置显示起始位置,第二行 display_full_num(TEMP_value); //输出温度数值 lcd_printchar("/"); display_full_num(temp_alarm_value); //输出设定的温度报警限值 lcd_printchar(""); lcd_wdata(0xdf); //° lcd_wdata(0x43); //C lcd_printchar("");}////函数名:display_humi()//功能:输出显示湿度及限值信息//voiddisplay_humi(){ display_from(1); //设置显示起始位置,第一行 lcd_printchar("Humidity:"); //输出字符 display_from(18); //设置显示起始位置,第二行 display_full_num(HUMI_value); //输出湿度数值 lcd_printchar("/"); display_full_num(humi_alarm_value); //输出设定的湿度报警数值 lcd_printchar("%");}////函数名:display_dew()//功能:输出显示露点及限值信息//voiddisplay_dew(){ display_from(1); //设置显示起始位置,第一行 lcd_printchar("DewPoint:"); //输出字符 display_from(18); //设置显示起始位置,第二行 display_full_num(DEW_value); //输出露点数值 lcd_printchar("/"); display_full_num(dew_alarm_value); //输出设定的露点报警数值 lcd_printchar(""); lcd_wdata(0xdf); //° lcd_wdata(0x43); //C lcd_printchar("");}图5.2读温湿度流程图5.3温湿度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如图5.3所示图5.3温湿度转换流程图5.4LED状态子程序系统设置了5个LED状态灯,分别用作工作指示、设置状态指示、x10状态指示、温度过超限报警指示、湿度超限报警指示和露点超限报警指示。voidled_control(){ //工作指示 working_led=0; //设置状态指示 if(setting_model==Y) { if(loop2_led<=2) //使LED闪烁 { setting_led=0; } else { setting_led=1; } } else { setting_led=1; } //×10状态指示 if(times==10) { ten_led=0; } else { ten_led=1; } //温度过高报警指示 if(TEMP_value>=temp_alarm_value) { if(loop2_led<=2) { temp_alarm_led=0; //led发光 } else { temp_alarm_led=1; //led熄灭 } } else { temp_alarm_led=1; } //湿度过高报警指示 if(HUMI_value>=humi_alarm_value) { if(loop2_led<=2) //使LED闪烁 { humi_alarm_led=0; } else { humi_alarm_led=1; } } else { humi_alarm_led=1; } //露点过高报警指示 if(DEW_value>=dew_alarm_value) { if(loop2_led<=2) //使LED闪烁 { dew_alarm_led=0; } else { dew_alarm_led=1; } } else { dew_alarm_led=1; } //发声报警 if((temp_alarm_led==0)||(humi_alarm_led==0)||(dew_alarm_led==0)) { if(loop2_led<=1) //使LED闪烁 { buzzer_alarm=0; } else { buzzer_alarm=1; } } else { buzzer_alarm=1; }}
5.5显示数据刷新子程序显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图5.5。图5.5显示刷新流程图voidmain(){ int_ini(); //外部中断初始化 lcd_init(); //lcd初始化 init_uart(); //串口初始化 while(1) { sht75_sample(); //采集一次温度湿度数据,并更新现有数据 display_1602(); //输出显示数据 led_control(); //监控温湿度数据,并及时输出报警等信息 loops(); }}
6实际仿真截图6.1SHT75传感器仿真截图如图6.1中,显示的为SHT75运行时的状态,当前检测到的温度为20℃,湿度为27%。图6.1SHT75运行时的状态6.2LCD1602液晶屏仿真截图下图中显示的为LCD1602运行时的状态,图6.2中显示的是当前检测到的温度为20℃。图6.2当前检测的温度图6.3中显示的为当前检测到的湿度为27%图6.3当前检测的湿度图6.4显示的为当前检测到的露点为图6.4当前检测的露点
6.3设置温湿度报警阈值界面仿真截图图6.5为设置温度阈值界面,当前阈值为90度,通过按键可更改为任意值。图6.5当前温度阈值图6.6为更改阈值到80度。图6.6更改后的阈值图6.7为设置湿度阈值界面,当前阈值为60%,通过按键可更改
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025安全员-B证(项目经理)考试题库
- 2024年外转子风机项目资金筹措计划书代可行性研究报告
- 2024年TC-22型氧化锌脱硫剂项目资金需求报告
- 数学-云南省三校2025届高三2月高考备考联考卷(六)试题和答案
- 2025年度文化事业单位正规劳务派遣合作协议书
- 2025年度专业化学品仓库库房租赁及安全管理协议
- 二零二五年度员工股权激励与公司可持续发展合同
- 2025年度房地产战略合作协议书:房地产项目绿色建筑设计与绿色施工技术合同
- 2025年度临时用工合同协议书:文化演出临时演出人员及技术人员协议
- 2025年度网络安全责任忠诚协议范本
- 2022年济南工程职业技术学院单招综合素质考试笔试试题及答案解析
- 员工调整薪酬面谈表
- 辅警报名登记表
- 初中数学竞赛试题汇编
- 外研版英语五年级下册第一单元全部试题
- 培养小学生课外阅读兴趣课题研究方案
- 部编版四年级语文下册课程纲要
- 【课件】第二单元第三节汉族民歌课件-2021-2022学年高中音乐人音版(2019)必修音乐鉴赏
- 高中人音版必修 音乐鉴赏20人民音乐家课件
- 华文出版社三年级下册书法教案
- GB_T 30789.3-2014 色漆和清漆 涂层老化的评价 缺陷的数量和大小以及外观均匀变化程度的标识 第3部分:生锈等级的评定
评论
0/150
提交评论