毕业设计基于单片机的环境温湿度检测系统.docx

上传人:小飞机 文档编号:1922507 上传时间:2022-12-26 格式:DOCX 页数:82 大小:2.04MB
返回 下载 相关 举报
毕业设计基于单片机的环境温湿度检测系统.docx_第1页
第1页 / 共82页
毕业设计基于单片机的环境温湿度检测系统.docx_第2页
第2页 / 共82页
毕业设计基于单片机的环境温湿度检测系统.docx_第3页
第3页 / 共82页
毕业设计基于单片机的环境温湿度检测系统.docx_第4页
第4页 / 共82页
毕业设计基于单片机的环境温湿度检测系统.docx_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《毕业设计基于单片机的环境温湿度检测系统.docx》由会员分享,可在线阅读,更多相关《毕业设计基于单片机的环境温湿度检测系统.docx(82页珍藏版)》请在三一办公上搜索。

1、河南理工大学万方科技学院本科毕业论文摘 要 环境温湿度检测系统是日常生活、工业生产和农业管理中广泛使用的一种设备。该设备具备以下主要功能:实时检测出环境中的温度和湿度参数值,并显示出来,根据设定的报警限予以报警指示,可以和上层控制器通信。 随着单片机的大规模应用,单片机在检测系统中也越来越多的被使用。本设计以AT89S52这款低功耗、高性能、在系统编程的8位单片机为系统控制处理核心,由单总线数字温湿度传感器DHT11、数码管显示屏、LED与蜂鸣器、通信串口和按键控制输入等五个部分组成,从而实现环境问世的监测系统的主要功能。后期的探索设计换用红外遥控控制和LCM为显示屏、外加时钟和存储芯片、增加

2、照度检测电路,极大地提升了系统的性能,使系统不仅可以检测并显示环境温度、湿度和照度变量,而且可以按照时间顺序存储适量的数据。 此外,系统有降压整流和稳压滤波电路,可用交流市电(220V)、各种安全直流电(524V)、太阳能电池等为系统供电,并且可以存储少量电能(900mAh),因此,系统有较宽的工作电压,可满足多种应用场合。本设计由Protel画出了电路原理图和PCB图,并由此完成了硬件的制作,使用C51语言对单片机进行编程控制,并模块化仿真,最后通过综合调试,符合预期的设计要求。关键词:AT89S52单片机 DHT11传感器 PCB设计 温湿度检测Abstract Environment t

3、emperature and humidity detection system is a kind of equipment which is widely used in daily life, industrial production and agricultural menagement.The equipment has following main function:detecting the temperature and humidityparameters in the environment real-time and display them,giving alarm

4、indication according to the set limits, and being able to contact with upper controller. With the SCM used large-scalely,the SCM is more and more used in detection system.This design,uses the 8-bit SCM named AT89S52,which has a lot of advantages such as low-power dissipation,high-performance and ISP

5、,and made up of five parts:single-wire digital temperature and humidity sensor,digitron display,LED andbuzzer, serial comunications and keys input,thus perform the function of environment temperature and humidity detection system.The exploration design in later stage,including infrared remote contro

6、l and LCM display,clock and memory chips,and illumination detection circuit,immensely promotes the property of the system,makes it not only detecte and display the temerature,humidity and illumination,but also store some data in order of time. In addition,with step-down rectifier and stabilivolt fil

7、ter circuit,the system can use utility power AC220V,different safety DC524V,solar battery to supply power,and store some electric energy about 900mAh,so that it has a wide power supply voltage and meets different application places. The design gives the circuit design schematics and PCB diagram with

8、 Protel, and completes the hardware part of the production, and uses C51 language system to accomplish the control program of SCM,and simulates every part successfully.Through the synthetical debugging,the design achieves the required designs.Key words:AT89S52 SCM,DHT11 sensor,serial communication,t

9、emperatureand humidity detection,PCB design II目 录 第一章 前 言11.1 设计的目的意义调查11.2 设计的市场现状分析21.3 设计的内容要求说明31.4 设计的实施方案构想4第二章 硬件的设计52.1 单片机的选用52.2 传感器的选用72.2.1 初期设计72.2.2 最佳方案82.2.3 电路设计92.3 数码管驱动电路设计102.3.1 数码管的选用102.3.2 驱动电路的设计102.4报警电路设计122.4.1 蜂鸣器驱动电路132.4.2 LED驱动电路132.5控制输入电路设计142.6 串口通信电路设计162.7 稳定电源电

10、路设计172.8 系统三大部分的PCB设计182.8.1 系统主体部分PCB设计192.8.2 串口通讯PCB设计202.8.3稳压电源部分PCB设计21第三章 程序的设计233.1 程序功能描述、单片机内部资源分配和程序流程图233.1.1 程序功能描述233.1.2 单片机内部资源分配两个定时器的分工233.1.3 程序的流程图243.2 编程语言和工具的选择以及程序文件的分配253.2.1 编程语言的选择253.2.2 编程工具的选择263.2.3 程序文件的分配263.3 传感器通信程序设计273.3.1 握手确认273.3.2 数据传送283.3.3 相关问题解决方案313.4 数码

11、管扫描程序设计323.5 报警及设置程序设计333.5.1 报警驱动333.5.2 报警值调整343.6 按键扫描程序设计343.7 串口发送数据程序设计363.7.1 波特率设置363.7.2 数据发送格式373.7.3 发送方式373.8 Keil 综合编译和结果分析、程序下载383.8.1 综合编译情况和结果分析383.8.2 生成HEX 文件下载至单片机中40第四章 系统后期探索优化设计简介414.1 换用红外控制和LCM 显示的探索414.1.1 红外控制414.1.2 LCM 显示444.2 增加实时时钟和存储芯片来记录数据的探索484.3 增加照度检测电路的探索50结束语54参考

12、文献56附录57附1 单片机驱动程序57附2 硬件制作元器件安装图、 布线图78ii第一章 前 言本章主要叙述了温湿度检测系统设计的一些基本情况,包括目的意义、市场现状、设计要求和实施方案等几个部分。 1.1 设计的目的意义调查现代社会,随着国家的经济不断发展,人们的生活水平逐渐提高,在衣食住行基本满足之后,追求一种健康长寿的生活方式已经成为时代的潮流。家庭居室,工作场所是人们每天较长时间生活的两个环境,而环境中的温度和湿度变化则和人们的生理、心理等身体健康状况息息相关。相关研究结果摘录如下;据生理学家研究,室内温度过高时,会影响人的体温调节功能,由于散热不良而引起体温升高、血管舒张、脉搏加快

13、、心率加速。冬季,如果室内温度经常保持在25度以上,人就会神疲力乏、头晕脑胀、思维迟钝、记忆力差。同时,由于室内外温差悬殊,人体难以适应,容易患伤风感冒。如果室内温度过低,则使人体代谢功能下降,脉搏、呼吸减慢,皮下血管收缩,皮肤过度紧张,呼吸道粘膜的抵抗力减弱,容易诱发呼吸道疾病。因此,科学家们把人对冷耐受”的下限温度和”冷耐热”的上限温度,分别定为11度和32度。然而,人的体感并不单纯受气温或气湿两种因素的影响,而是两者综合作用的结果。通过实验测定,最适宜的人的室内温湿度是:冬天温度为18至25度,湿度为30%至80%。夏天温度为23至28度,湿度为30%至60%。在此范围内感到舒适的人占9

14、5%以上。在装有空调的室内,室温为19至24度,湿度为40%至50%时,人会感到最舒适。如果考虑到温湿度对人思维活动的影响,最适宜的室内温度应是工作效率最高的值。温度应是18度,湿度应是40%至60%,此时,人的精神状态最好,思维最敏捷。因此,随时关注环境的温湿度变化而由此采取措施对人们的健康生活和高效工作有着重要的意义。除此之外,工业生产、农业管理和医疗护理等环境中的温湿度也是两项重要的检测控制参数,对安全生产、粮食丰收和病人康复等意义重大。部分要求数据如下:由此看来,研究设计环境温湿度检测系统十分有必要。1.2 设计的市场现状分析 纵观市场,温湿度检测技术已经比较成熟,已有的各种温湿度检测

15、产品,五花八门,犹如八仙过海,各显神通,如A2000家用温湿度报警表、YD-808A工业用温湿度显示器等产品。从功能上分析这些产品可以看出,一个比较完整的环境温湿度检测系统应该具备以下主要的四个功能: (1)实时检测出环境中的温度和湿度参数; (2)检测的参数值显示在显示设备上(如数码管,液晶显示器等); (3)根据环境要求,设定温度湿度报警的上下限值,并实时报警; (4)与上层监控设备通信(如PC),实现数据传输(双向或单向);因此,本设计也应该具备这些功能,并且对每一个部分进行优化设计,也可以扩展系统功能。除了功能上的分析之外,再看这些产品的造价和供电情况,有以下两个问题:(1)价格太高,

16、不符合普通消费者的消费水平,如A2000家用温湿度报警表,淘宝网上售价300左右;(2)供电都比较单一,规定在直流6V,9V,12V或交流220V等,除了购买产品主体之外,还需要一个特定的电源适配器;综上所述,本设计设计出的环境温湿度检测系统,除了具备市场上已有产品的功能之外,还应尽量降低制作价格,确保有较宽的工作电压。1.3 设计的内容要求说明根据上述市场调查情况和毕业设计任务书的要求,本设计的研究内容包括以下几个方面:1、基本要求(1)主要检测环境变化中的温度和适度参数;(2)温湿度参数显示在LED数码管屏幕上;(3)可以设置温湿度报警点,并能按照设置实时报警;2、控制要求(1)根据需求,

17、温湿度数据可以发送给上层监控设备,如普通电脑等;(2)可以按照时间顺序,以一定格式将温湿度数据导出保存,以便进行再分析处理;3、制作要求(1)造价低廉,工作可靠;(2)工作电压较宽,满足不同的供电测试条件;(3)做出产品样机,调试通过,可以正常工作;因此,本温湿度检测系统的设计应以这三方面的要求为依据,从而进行各个部分的详细设计。1.4 设计的实施方案构想基于单片机的环境温湿度检测系统实施方案构想如下:1、由温度和湿度传感器对环境中的温度和湿度变量进行采样;2、单片机和传感器通信,获得采样数据并暂存;3、单片机对数据进行预处理(如校验等),对有效数据再进行以下四种处理:(1) 驱动显示电路,把

18、数据显示在数码管上;(2) 扫描输入的控制信号,设定报警限值;(3) 根据设定的报警,驱动报警电路工作,予以报警指示;(4) 扫描输入的控制信号,根据需要发送数据给上层设备,在设备上进行数据再处理或保存;4、 在系统供电端有稳压滤波电路或电能存储器件,保证系统正常工作;5、 选用价格低廉的器件或设计电路,减少花费;6、 在以上方案都实施的情况下,对系统进行优化创新设计,强化功能; 因此,本系统的设计应按照这个思路进行具体设计,把每一步的构想转化为现实的设计。系统的结构图如下:第二章 硬件的设计根据绪论中的分析说明,可以明确温湿度检测系统的硬件电路分为电源稳压、传感器检测、数码管显示驱动、报警驱

19、动、输入控制、数据发送等六大部分,其中后五个部分都以单片机为核心,由单片机来进行控制处理,因此单片机的选用至关重要。2.1 单片机的选用 自从20世纪70年代,因特尔公司推出第一代单片机以来,单片机的发展如雨后春笋。各大电气商、半导体商根据不同的控制需求,尤其在嵌入式系统控制方面,以因特尔公司的51单片机的框架结构为基础,研发了各种各样的、功能强大的单片机。而今,我们已经进入了一个单片机可广泛选择的、百花齐放的时代。因此,选用一款价格低廉,性能优良的单片机已不再困难。在MCS-51单片机8051的基础上,ATMEL公司开发的AT89系列的单片机自问世以来,以其较低廉的价格和独特的程序存储器快速

20、闪存器为用户所亲莱,尤其是AT89S52这款单片机,它有以下几个特点:1、与MCS-51单片机产品兼容,完全可采用51指令系统用汇编或C51编程;2、8K字节在系统可编程FLASH存储器,并且有1000次擦写周期,这使得。调试程序和下载程序十分方便;3、全静态操作,工作频率范围为0Hz33MHz,频率范围宽,便于系统功耗控制;4、三级加密程序存储器,使程序和系统更加难以仿制,确保了产品的知识产权;5、32个可编程I/O口线,每个I/O都可以独立或联合使用,实现不同的数据操作,而且PI端口的高三位第二功能为ISP编程,实现在系统调试;6、三个16位定时器/计数器,其中定时器2也可以作为串口波特率

21、的产生;7、八个中断源,分为两个优先级,可软件设置;8、一个全双工通用异步接收发送数据借口,以便与外设进行串行数据通信;9、有低功耗空闲和掉电模式,掉点后可由中断唤醒,可设置掉电标识符;10、宽工作电压范围,VCC为2.75.5V,与TTL电平和CMOS电平兼容;总之,AT89系列单片机与MCS-51系列单片机相比,前者和后者有兼容性,但前者的性能价格比等指标更为优越。因此,选用AT89S52单片机可实现温湿度检测系统的功能,下图为该单片机的DIP40封装外观和引脚功能:图2-1 单片机的引脚图根据单片机的推荐外围电路,复位(10K电阻,10uf电容)、晶振(12MHZ,电容22pf)电路设计

22、如上图所示:图2-2 单片机复位电路图2-3 单片机晶振电路2.2 传感器的选用 2.2.1 初期设计本设计的初期构想是用一个温度传感器和一个湿度传感器来检测环境中的温度和湿度参数,其中温度传感器选用单总线数字温度传感器DS18B20,湿度传感器选用数字式湿度传感器SHT11,则检测部分功能框图如下:图2-4 传感器初期设计方案比较DS18B20和SHT11,这两个传感器的通信都比较复杂,具体过程为:主机发起通信、传感器确认通信、主机给传感器写命令字、传感器给主机发送检测数据,且SHT11还要求外部输入串行时钟信号。这种通信的复杂,不仅体现在硬件电路的设计上,而且体现在程序的设计上,并且串行通

23、信对时序要求比较严格,这样对单片机来说将是一个巨大的挑战,何况单片机还要进行其他的后续控制处理。除此之外,这两大传感器的价格都不菲,DS18B20在8元左右,而SHT11则在50元左右,这对支付能力也是一个巨大的考验。因此,这种方案不可取,必须寻求其他的传感器解决方案,从而简化硬件电路和程序设计,让单片机有更多的内外部资源来处理后续操作。2.2.2 最佳方案后期采用单总线数字温湿度传感器DHT11。这款传感器由广州奥松电子科技有限公司研发,与单片机的通信十分简洁方便,无需外接时钟信号,通信如下:图2-5 单总线数字温湿度传感器DHT11与单片机通信除此之外,它还有很多突出的优点:(1)温湿度传

24、感器的一体化结构能同时对相对湿度和温度进行测量,并以数字信号输出,从而减少用户对信号的预处理负担;(2)独特的单总线数据传输线协议使得读取传感器更加便捷,而且还有全部校准数据字节,编码方式为8位二进制数;(3)40位二进制数据输出,高位先出,格式为:湿度整数部分8位,小数部分8位;温度整数部分8位,小数部分8位,最后8位为校验字节,为前32位数据的和。(4)宽工作电压,几乎与AT89S52的电压相同,为35.5V,而且功耗较低,通信最大电流为2.5mA。其简要的性能参数如下表所示;表2-1 温湿度传感器DHT11性能参数从表中可以看出,它的测量范围较小,但对实验或民用已经足够了,如果要工业使用

25、的话,可选用该公司的同类工业级产品AM323,测量范围为-55.0+125.0度,测量范围为0.0100.0%RH,并且可以和DHT11完全互换。2.2.3 电路设计 按照说明书的要求,DHT11与单片机的连接距离小于20米时,需要在VCC和DATA引脚之间接一个5K左右的电阻,因此电路设计如下:图2-6 温湿度传感器DHT11与单片机连接电路 至此,传感器的硬件电路设计完成,另一部分的工作就是编程问题,在下一章节介绍。2.3 数码管驱动电路设计2.3.1 数码管的选用 由于温湿度传感器DHT11 测温范围为050,测湿范围为2090%RH,温度和湿度都是两位数据,因此可以用两个两位一体的数码

26、管来显示温湿度数据,共阴极或共阳极都可以,本设计中选用两个型号为FJS5202FH 型共阳极红色两位一体的数码管。2.3.2 驱动电路的设计 数码管驱动软件设计有两种方案,一种是静态驱动,即四位数码管的段选信号和位选信号,分别接入控制器的端口,需要84+4=36 个端口;另一种是动态驱动,段选信号线公用,而位选信号分开控制,需要8+4=12 个端口。考虑到单片机可用的I/O 引脚只有32 个,为不扩展引脚而外加芯片,因此采用动态驱动方式较合理。数码管驱动电路一般也有两种设计方案,一种是使用八D 锁存芯片74HC373或74LS373 锁存驱动,另一种是用三极管放大驱动。市场上74HC373 芯

27、片较74LS373 芯片价格便宜也为2 元左右一块,而三极管只有0.2 元左右,四个三极管共8 角钱,相对来说比较经济实惠,因此选用后一种方案。而相关器件电气参数为: (1)红色共阳极数码管(实际上是八个并联的红色LED)的电压范围1.52.0V,最大工作电流为20mA8=160mA; (2)单片机每个引脚灌电流(外部电流流入单片机)大约为24mA,拉电流(单片机电流流入外设)小于1mA。根据这两项参数,初步确定三极管选用90 系列PNP 型,用集电极接数码管位选引脚,基极用电阻限流后接单片机引脚予以位选控制。再考虑数码管电流的限定,符合要求的三极管只有8550 和9012,其简要参数见下表:

28、表2.2 可选三极管参数由表可以看出,8550的电流和功率都很大,既浪费资源又不利于降低系统功耗,因此选用9012较为合适。因此,这部分的电路设计如下:图2.7 数码管段选信号与单片机连接电路图2.8 数码管位选信号与单片机连接电路用单片机P0 端口作为数码管段选信号,P2 端口的高四位作为位选信号,四个电阻的粗略大小为:R=(VCC-VEB)/Ib=(5.5V-0.7V)/1mA=4.8K,可选用E24 系列的电阻4.7K 或5.1K。2.4报警电路设计本设计需要指示一种温湿度正常状态、一种数据发送状态和四种超限报警状态,即温度超下限,温度超上限,湿度超下限,湿度超上限,可采用简单的声(蜂鸣

29、器)光(LED)报警电路。LED 颜色和状态及蜂鸣器状态分配如下表所示:表2.3 报警指示状态分配注:“”表示LED 熄灭或蜂鸣器无声。2.4.1 蜂鸣器驱动电路根据蜂鸣器的参数:电压1.31.5V,电流2080mA,电阻68 知,可用选用集成放大芯片LM386 驱动,但更经济的是用一个三极管9012 或8550 驱动即可,电路如图所示:图2.9 蜂鸣器报警驱动电路2.4.2 LED驱动电路根据LED 的参数:电压1.52.5V,电流1020mA,则可用一电阻对电源进行下拉,限流分压后,LED 阴极接入单片机予以控制,电阻阻值大约为:R=(VCC-VLED)/I=(5.5V-2V)/10mA=

30、350,选用330 或360 的电阻即可,具体电路如下图所示:图2.10 报警LED驱动电路2.5控制输入电路设计本设计的控制输入部分为简单的三个按键,由于单片机默认状态下端口引脚为高电平,可以接上按键与地相连,单片机检测按键端口的电平情况来决定是否有按键按下和哪个按键被按下,抖动问题采用软件延时方式,减少硬件电路设计,电路如图所示:图2.11 控制输入按键连接电路经过上述对各个模块的分布设计,现在可给出系统主体部分的原理总图。图2.12 系统主体部分原理总图考虑到 PCB 设计单面板布线的可行性,单片机的外部资源(端口引脚)分配按下进行:传感器DHT11 数据线P11;蜂鸣器HXD 驱动三极

31、管基极P10;程序调试ISP 插座P15、P16、P17;按键KEY1、2、3P32、P33、P35;串口RXD、TXDP30、P31;数码管段选信号、位选信号P0、P23、P24、P25、P26;LED 绿、黄、红P22、P21、P20。2.6 串口通信电路设计单片机AT89S52 有一个全双工的UART 接口,即RXD(P3.0)和TXD (P3.1),因此可以用来和上层设备如PC 通信,但是由于PC 的串口使用RS232 电平通信协议,而单片机使用TTL 电平通信协议,这两种电平的特点见下表:表2.4 RS232和TTL电平标准比较比较两表,可以看出RS232 电平和TTL 电平并不兼容

32、,为使单片机和PC 通信,必须先转换电平,可采用新型集成芯片MAX232 实现数据发送转换和接收转换的双重功能,依据芯片手册上的推荐电路,经合理简化后设计的串口发送数据部分电路为:图2.13 通信串口电路其中J1 与单片机串口相连,J2 经针脚到插孔的RS232 数据线与电脑相连,即可实现电脑和单片机的全双工通信。2.7 稳定电源电路设计按照设计要求,系统供电要求多样化,除了交流220V 的市电是必用的外,还应该具备其他供电要求,如太阳能电池,各种安全直流电压源等,而且还应该有一定的蓄电能力。考虑到市电电压太高且为正弦变化,而太阳能电池输出电压不稳定等问题,必须要对市电进行降压,对变动的电压进

33、行稳压,而单片机系统的电压要求在5V 左右,因此,可考虑用集成稳压模块LM7805 进行终端稳压。LM7805 是三端正5V 电源稳压器件,输入电压为直流524V,输出电压为4.85.2V,最大允许电流为1.5A,有电流限制、热过载保护和短路保护功能,确保输出电压正常稳定。具体电路设计如下:图2.14 稳压电源电路该电路有四个电源插座,其中J1 为市电AC220V 供电输入,J2 为太阳能电池或其他输出直流为524V 的电压源的输入,J3 为充电输出接口,可为充电电池(1.2V4 只)恒流充电,J4 为系统供电+5V 电压输出端口,由此接到系统的电源端。当用市电供电时,先经过220V/12V

34、的变压器T1 把电压降低至有效值为12V的交流电,再用电桥BR1 进行全波整流为有效值12V(峰值大约为17.0V)的脉动电压,然后前置电容EC1 和C1 滤波,经LM7805 稳压并后置电容C2 滤波,输出大约为稳定的+5V 直流电,一部分为系统供电,另一部分为电池充电,通过调节电位器CR1 可调整充电电流,给不同的电池充电。 LED1 为电源指示灯。当用太阳能电池等输出为直流电的电源设备时,直接接入J2 端口,亦可为系统供电。使用这种设计,可以确保系统有较宽的工作电压,并且可以存储少量电能,从而达到在不同场合供电的目的。2.8 系统三大部分的PCB设计在Protel99 中新建设计文档,根

35、据以上分析,画出系统主体部分、串口通信部分和电源部分的原理图,并选择合适的封装外形,设计相应的PCB 图。三部分的PCB 图及设计时应注意的问题简要介绍如下:2.8.1 系统主体部分PCB设计图2.15 系统主体PCB图设计要求:(1)传感器的安装位置传感器必须安置在PCB 的边缘位置,不仅应确保没有发热吸湿的器件在其附近,而且传感器的感温感湿栅窗应朝向外部,否则可能会影响传感器对外部环境中温湿度的测量,如图2.15 左下角的插座J2 即为传感器的安装位置。(2)数码管的布线不仅数码管的引脚较多,与单片机的连线也较多,而且制作实验硬件使用的是单面板,只能在底面布线,因此,在布线的时候应该综合考

36、虑三方(单片机、数码管和单面实验板)的特点,选择合理的布线方案。为保证多在底面布线,本设计对数码管采用变码布线,即数码管aDp 段并没有和单片机P00P07 一一对应,而且位选信号线和部分段选信号线在顶面布线,详细情况如图2.15 所示,其中DG1 和DG2 为数码管。(3)电源开关、插头插座和按键的位置电源开关、插头插座和按键是经常使用的器件,为方便操作,需要安装在边缘位置,和其他元件的距离不应过小。如图2.15 中的SW1、J1、J3、KEY-R、KEY1KEY3 以及ISP1 等。(4)单片机的位置单片机是系统的核心,为了便于安装和更换,单片机的周围不应放置过多元件,留有余地。(5)布线

37、要求布线不应过密,特别是DIP 封装的元件,引脚之间禁止布线,否则可能导致连线短路或信号相互干扰。2.8.2 串口通讯PCB设计图2.16 串口通信部分PCB图设计要求:(1)芯片安装位置芯片U1 的凹槽朝向J2,便于和J2 连线。(2)电容封装选择由于电容C4 引脚间有布线,封装应选用中间可布一线的外形,或把引脚间距较小的间距拉大,确保可布一线。(3)J2 的焊盘尺寸J2 的两端的固定焊盘应适当加大,以增强焊接力。因为串口插头较大,而且会有频繁的插拔,若固定焊盘过小,可能出现松动。2.8.3稳压电源部分PCB设计图2.17 电源部分PCB图设计要求:(1)高压部分J1 为AC220V 的插头

38、,T1 为AC220V/12V 的变压器,这两个器件在设计时应考虑安全问题。J1 的引脚间距应加大,T1 的输入输出线应适当加粗,确保高压隔离和大电流散热良好。(2)稳压器件的位置当LM7805 工作电压高于5V 时,会有较大热量产生,因此在设计时应放在PCB 边缘通风散热良好的地方,并且散热片朝向外部。根据上述三部分的PCB 图,用万用板和相应元器件焊接制作实验硬件,依据设计用细裸导线布线,完成三部分硬件的制作。第三章 程序的设计本章依据已经设计好的的硬件,选用合适的语言给每一个模块设计驱动程序,最后综合编译,生成下载文件。程序文档由传感器通信、数码管动态扫描、LED和蜂鸣器报警、按键输入检

39、测和串口发送数据五个部分组成。3.1 程序功能描述、单片机内部资源分配和程序流程图3.1.1 程序功能描述程序设计的目的是控制单片机引脚的电平变化,从而控制相应外围电路按照要求工作,这些控制包括单总线温湿度传感器的数据获取、数码管的动态扫描显示、LED 和蜂鸣器的联合驱动报警、按键信号检测和串口数据发送,并且这些控制必须保持协调统一、可靠稳定地实现系统的要求功能。3.1.2 单片机内部资源分配两个定时器的分工数码管的显示在本系统中为关键部分,它的显示有连续性(扫描两位之间时间差不能过大,否则会断续显示)和暂留性(每一位显示的停留时间不能过短,否则亮度不高),因此采用默认中断优先级较高的定时器0

40、 进行中断动态扫描,扫描时间定为1 毫秒。报警LED 和蜂鸣器的状态变化也应该有实时性,否则会出现报警滞后的问题,因此用定时器1 进行中断报警扫描,蜂鸣器的响声用最简单的“滴滴”声响,采用频率为5Hz 的方波,而LED 的闪烁也同步进行,扫描时间定为100 微妙。此外,在串口发送数据期间,由于单片机本身要求,定时器1 用作波特率产生器。其他控制部分在主函数中进行或附加在定时器的中断服务中,但中断服务不能处理太多操作,否则程序执行效率很低。3.1.3 程序的流程图根据单片机的特点和系统各部分的运行时序,经过多次试验,最后确定系统高效稳定工作的执行顺序为:开始初始化并启动两个定时器扫描按键判断按键

41、值执行相应功能完毕返回至按键扫描,其中定时器0 中断服务扫描数码管每隔1 秒获取传感器数据,定时器1 中断服务报警判断(低温,高温,低湿,高湿),重复进行此过程,即可实现系统循环工作。详细流程图如下图所示:图 3-1 系统程序流程图3.2 编程语言和工具的选择以及程序文件的分配3.2.1 编程语言的选择从程序的流程图可以看出,系统的程序较为复杂,如果选用执行效率相对较高的汇编来书写,代码会很长,阅读不便,并且调试也很困难。为了提高程序的可读性和调试的便利性,选用C 语言来编写。C 语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可执行性好,而且C 语言既有高级语言的特点,也有

42、汇编语言的特点,能直接对单片机硬件进行操作,因此使用起来十分方便。当然,C 语言和MCS-51 单片机结合之后产生的C51 语言,与标准的C 语言还有一定的差别,编程的时候应该注意这些问题。除此之外,C51 的强大功能及其高效率的重要体现之一在于其丰富的可直接调用的库函数,这使得程序代码简单,结构清晰,易于调试和维护。特别是本征库的9 个函数,虽然少,但都非常有用,其头文件为intrins.h,主要功能为按位循环左移或右移,位测试等。3.2.2 编程工具的选择由于单片机种类繁多,各大公司都纷纷开发了自己的编程软件,而KEIL C51软件是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于

43、一体,支持汇编、PLM 语言和C 语言的程序设计,界面友好,易学易用。此外,Keil 还支持自动添加多款单片机的编译预处理文件,包含各类单片机的头文件,如51 单片机的头文件reg51.h。3.2.3 程序文件的分配经过上述分析,程序可用五个C 文件来存放五个功能独立的程序模块,另外有一个公共调用的延时函数文件和主函数文件,此外,各部分还有相应的调用头文件来进行连接,从而实现了程序和硬件对应,设计模块化,调试更为方便。具体文件分配如表:表 3.1 系统程序文件分配3.3 传感器通信程序设计由于DHT11 为单总线通信器件,为了确保单片机成功与其通信,编写的程序必须严格遵守它独特的通信协议。DH

44、T11 的通信由两部分组成握手确认和数据传送。3.3.1 握手确认先来看说明书中的时序图:图 3-2 传感器与单片机握手确认时序从图中可以看出,传感器和主机相互确认的过程为:未通信时,通信线保持高电平;通信开始后,主机先拉低电平至少18 毫秒,用以确保传感器可以检测到主机信号,之后主机再拉高电平2040 微妙等待传感器响应;传感器响应后,先拉低电平4050 微妙,予以通知主机,再拉高电平同样的时间之后就转入数据传输时序,握手通信也就结束。部分程序如下(DHT 为通信端口):/主机与DHT11 通信开始DHT=0;/主机先拉低总线电平/调用延时函数,延时18 毫秒DHT=1;/再拉高总线电平/调

45、用延时函数,延时40 微妙DHT=1;/拉高电平,设置总线为输入状态if(!DHT)/如果DHT11 输出低电平响应,就开始接收数据while(!DHT);/先等待DHT 响应的低电平结束4050 微秒while(DHT);/再等待DHT 响应的高电平结束4050 微妙/下面开始接收数据3.3.2 数据传送还是先来看说明书中的时序图。图 3-3 传感器发送数据0 时序图 3-4 传感器发送数据1 时序从图中可以看出,在数据传输时,单片机只要按照时序检测传感器输出的电平信号即可得到一位数据,具体要求为:无论数据是0 还是1,都以1214 微妙的低电平开始,之后,若数据是0,则传感器拉高电平并保持

46、2628 微妙;若数据是1,则传感器拉高电平并保持116118 微妙,如此连续进行,送出40位的数据。由于电平变化时间是以微妙计算,非常小,因此写程序时必须要严格精确的控制时间,这在设计时有两个探索过程。 (1)初期构想定时器精确计时法晶振为12MHz 时,定时器最小定时为1 微妙,先声明一个大小为40 的无符号字符型数组,用来存储定时器获得的40 个微妙数,单片机计时过程如下:图 3-5 定时器计时接收数据流程 那么这样就得到了40 个微秒时间数,再对这40 个时间数进行判断,得到数据0 或1,从而得到温湿度数据。 经过分析和试验发现,这样处理,单片机的数据量会比较大,而且定时器的启动和关闭、数组的操作会额外花费很多时间,这就导致虽然定时器计得很精确,但是总的来说,并不是很精确,而且传感器的输出也会有一定的误差,因此这种处理数据的方式不可取,必须寻求新的解决方案。 (2)合理方案超时修改判断法经过后期的不断实验分析,采用以下方案较为合理:图 3-6 超时修改数据流程 这种方案正是利用了数据0 和1 高电平的时间不同来判断数据,先认为是数据0 的时间(2628 微妙),延时30 微秒越过这个时间已经足够了,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号