毕业设计基于单片机的环境温湿度检测系统_第1页
毕业设计基于单片机的环境温湿度检测系统_第2页
毕业设计基于单片机的环境温湿度检测系统_第3页
毕业设计基于单片机的环境温湿度检测系统_第4页
毕业设计基于单片机的环境温湿度检测系统_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.:.;摘 要 环境温湿度检测系统是日常生活、工业消费和农业管理中广泛运用的一种设备。该设备具备以下主要功能:实时检测出环境中的温度和湿度参数值,并显示出来,根据设定的报警限予以报警指示,可以和上层控制器通讯。 随着单片机的大规模运用,单片机在检测系统中也越来越多的被运用。本设计以ATS这款低功耗、高性能、在系统编程的位单片机为系统控制处置中心,由单总线数字温湿度传感器DHT、数码管显示屏、LED与蜂鸣器、通讯串口和按键控制输入等五个部分组成,从而实现环境问世的监测系统的主要功能。后期的探求设计换用红外遥控控制和LCM为显示屏、外加时钟和存储芯片、添加照度检测电路,极大地提升了系统的性能,使系

2、统不仅可以检测并显示环境温度、湿度和照度变量,而且可以按照时间顺序存储适量的数据。 此外,系统有降压整流和稳压滤波电路,可用交流市电V、各种平安直流电V、太阳能电池等为系统供电,并且可以存储少量电能mAh,因此,系统有较宽的任务电压,可满足多种运用场所。本设计由Protel画出了电路原理图和PCB图,并由此完成了硬件的制造,运用C言语对单片机进展编程控制,并模块化仿真,最后经过综合调试,符合预期的设计要求。关键词:ATS单片机 DHT传感器 PCB设计 温湿度检测Abstract Environment temperature and humidity detection system is

3、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 indication according to the set limits, and

4、being able to contact with upper controller. With the SCM used large-scalely,the SCM is more and more used in detection system.that design,uses the -bit SCM named ATS,which has a lot of advantages such as low-power dissipation,high-performance and ISP,and made up of five parts:single-wire digital te

5、mperature 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 control and LCM display,clock and memory chips,and illu

6、mination 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 filter circuit,the system can use utility power ACV,

7、different safety DCV,solar battery to supply power,and store some electric energy about mAh,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 Protel, and completes the hardware part of the production

8、, and uses C 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:ATS SCM,DHT sensor,serial communication,temperatureand humidity detection,PCB design PAGE ii目 录 TOC o - h z

9、 u HYPERLINK l _Toc 第一章 前 言 PAGEREF _Toc h HYPERLINK l _Toc . 设计的目的意义调查 PAGEREF _Toc h HYPERLINK l _Toc . 设计的市场现状分析 PAGEREF _Toc h HYPERLINK l _Toc . 设计的内容要求阐明 PAGEREF _Toc h HYPERLINK l _Toc . 设计的实施方案想象 PAGEREF _Toc h HYPERLINK l _Toc 第二章 硬件的设计 PAGEREF _Toc h HYPERLINK l _Toc . 单片机的选用 PAGEREF _Toc

10、h HYPERLINK l _Toc . 传感器的选用 PAGEREF _Toc h HYPERLINK l _Toc . 初期设计 PAGEREF _Toc h HYPERLINK l _Toc . 最正确方案 PAGEREF _Toc h HYPERLINK l _Toc . 电路设计 PAGEREF _Toc h HYPERLINK l _Toc . 数码管驱动电路设计 PAGEREF _Toc h HYPERLINK l _Toc . 数码管的选用 PAGEREF _Toc h HYPERLINK l _Toc . 驱动电路的设计 PAGEREF _Toc h HYPERLINK l

11、_Toc .报警电路设计 PAGEREF _Toc h HYPERLINK l _Toc . 蜂鸣器驱动电路 PAGEREF _Toc h HYPERLINK l _Toc . LED驱动电路 PAGEREF _Toc h HYPERLINK l _Toc .控制输入电路设计 PAGEREF _Toc h HYPERLINK l _Toc . 串口通讯电路设计 PAGEREF _Toc h HYPERLINK l _Toc . 稳定电源电路设计 PAGEREF _Toc h HYPERLINK l _Toc . 系统三大部分的PCB设计 PAGEREF _Toc h HYPERLINK l _

12、Toc . 系统主体部分PCB设计 PAGEREF _Toc h HYPERLINK l _Toc . 串口通讯PCB设计 PAGEREF _Toc h HYPERLINK l _Toc .稳压电源部分PCB设计 PAGEREF _Toc h HYPERLINK l _Toc 第三章 程序的设计 PAGEREF _Toc h HYPERLINK l _Toc . 程序功能描画、单片机内部资源分配和程序流程图 PAGEREF _Toc h HYPERLINK l _Toc . 程序功能描画 PAGEREF _Toc h HYPERLINK l _Toc . 单片机内部资源分配两个定时器的分工 P

13、AGEREF _Toc h HYPERLINK l _Toc . 程序的流程图 PAGEREF _Toc h HYPERLINK l _Toc . 编程言语和工具的选择以及程序文件的分配 PAGEREF _Toc h HYPERLINK l _Toc . 编程言语的选择 PAGEREF _Toc h HYPERLINK l _Toc . 编程工具的选择 PAGEREF _Toc h HYPERLINK l _Toc . 程序文件的分配 PAGEREF _Toc h HYPERLINK l _Toc . 传感器通讯程序设计 PAGEREF _Toc h HYPERLINK l _Toc . 握手

14、确认 PAGEREF _Toc h HYPERLINK l _Toc . 数据传送 PAGEREF _Toc h HYPERLINK l _Toc . 相关问题处理方案 PAGEREF _Toc h HYPERLINK l _Toc . 数码管扫描程序设计 PAGEREF _Toc h HYPERLINK l _Toc . 报警及设置程序设计 PAGEREF _Toc h HYPERLINK l _Toc . 报警驱动 PAGEREF _Toc h HYPERLINK l _Toc . 报警值调整 PAGEREF _Toc h HYPERLINK l _Toc . 按键扫描程序设计 PAGER

15、EF _Toc h HYPERLINK l _Toc . 串口发送数据程序设计 PAGEREF _Toc h HYPERLINK l _Toc . 波特率设置 PAGEREF _Toc h HYPERLINK l _Toc . 数据发送格式 PAGEREF _Toc h HYPERLINK l _Toc . 发送方式 PAGEREF _Toc h HYPERLINK l _Toc . Keil 综合编译和结果分析、程序下载 PAGEREF _Toc h HYPERLINK l _Toc . 综合编译情况和结果分析 PAGEREF _Toc h HYPERLINK l _Toc . 生成HEX

16、文件下载至单片机中 PAGEREF _Toc h HYPERLINK l _Toc 第四章 系统后期探求优化设计简介 PAGEREF _Toc h HYPERLINK l _Toc . 换用红外控制和LCM 显示的探求 PAGEREF _Toc h HYPERLINK l _Toc . 红外控制 PAGEREF _Toc h HYPERLINK l _Toc . LCM 显示 PAGEREF _Toc h HYPERLINK l _Toc . 添加实时时钟和存储芯片来记录数据的探求 PAGEREF _Toc h HYPERLINK l _Toc . 添加照度检测电路的探求 PAGEREF _T

17、oc h HYPERLINK l _Toc 终了语 PAGEREF _Toc h HYPERLINK l _Toc 参考文献 PAGEREF _Toc h HYPERLINK l _Toc 附录 PAGEREF _Toc h HYPERLINK l _Toc 附 单片机驱动程序 PAGEREF _Toc h HYPERLINK l _Toc 附 硬件制造元器件安装图、 布线图 PAGEREF _Toc h PAGE 77第一章 前 言本章主要表达了温湿度检测系统设计的一些根本情况,包括目的意义、市场现状、设计要求和实施方案等几个部分。 . 设计的目的意义调查现代社会,随着国家的经济不断开展,人

18、们的生活程度逐渐提高,在衣食住行根本满足之后,追求一种安康长寿的生活方式曾经成为时代的潮流。家庭居室,任务场所是人们每天较长时间生活的两个环境,而环境中的温度和湿度变化那么和人们的生理、心思等身体安康情况息息相关。相关研讨结果摘录如下;据生理学家研讨,室内温度过高时,会影响人的体温调理功能,由于散热不良而引起体温升高、血管舒张、脉搏加快、心率加速。冬季,假设室内温度经常坚持在度以上,人就会神疲力乏、头晕脑胀、思想愚钝、记忆力差。同时,由于室内外温差悬殊,人体难以顺应,容易患伤风感冒。假设室内温度过低,那么使人体代谢功能下降,脉搏、呼吸减慢,皮下血管收缩,皮肤过度紧张,呼吸道粘膜的抵抗力减弱,容

19、易诱发呼吸道疾病。因此,科学家们把人对冷耐受的下限温度和冷耐热的上限温度,分别定为度和度。然而,人的体感并不单纯受气温或气湿两种要素的影响,而是两者综协作用的结果。经过实验测定,最适宜的人的室内温湿度是:冬天温度为至度,湿度为%至%。夏天温度为至度,湿度为%至%。在此范围内感到温馨的人占%以上。在装有空调的室内,室温为至度,湿度为%至%时,人会感到最温馨。假设思索到温湿度对人思想活动的影响,最适宜的室内温度应是任务效率最高的值。温度应是度,湿度应是%至%,此时,人的精神形状最好,思想最矫捷。因此,随时关注环境的温湿度变化而由此采取措施对人们的安康生活和高效任务有着重要的意义。除此之外,工业消费

20、、农业管理和医疗护理等环境中的温湿度也是两项重要的检测控制参数,对平安消费、粮食丰收和病人康复等意义艰苦。部分要求数据如下:由此看来,研讨设计环境温湿度检测系统非常有必要。. 设计的市场现状分析 纵观市场,温湿度检测技术曾经比较成熟,已有的各种温湿度检测产品,五花八门,犹如八仙过海,各显神通,如A家用温湿度报警表、YD-A工业用温湿度显示器等产品。从功能上分析这些产品可以看出,一个比较完好的环境温湿度检测系统应该具备以下主要的四个功能: 实时检测出环境中的温度和湿度参数; 检测的参数值显示在显示设备上如数码管,液晶显示器等; 根据环境要求,设定温度湿度报警的上下限值,并实时报警; 与上层监控设

21、备通讯如PC,实现数据传输双向或单向;因此,本设计也应该具备这些功能,并且对每一个部分进展优化设计,也可以扩展系统功能。除了功能上的分析之外,再看这些产品的造价和供电情况,有以下两个问题:价钱太高,不符合普通消费者的消费程度,如A家用温湿度报警表,淘宝网上售价左右;供电都比较单一,规定在直流V,V,V或交流V等,除了购买产品主体之外,还需求一个特定的电源适配器;综上所述,本设计设计出的环境温湿度检测系统,除了具备市场上已有产品的功能之外,还应尽量降低制造价钱,确保有较宽的任务电压。. 设计的内容要求阐明根据上述市场调查情况和毕业设计义务书的要求,本设计的研讨内容包括以下几个方面:、根本要求主要

22、检测环境变化中的温度和适度参数;温湿度参数显示在LED数码管屏幕上;可以设置温湿度报警点,并能按照设置实时报警;、控制要求根据需求,温湿度数据可以发送给上层监控设备,如普通电脑等;可以按照时间顺序,以一定格式将温湿度数据导出保管,以便进展再分析处置;、制造要求造价低廉,任务可靠;任务电压较宽,满足不同的供电测试条件;做出产品样机,调试经过,可以正常任务;因此,本温湿度检测系统的设计应以这三方面的要求为根据,从而进展各个部分的详细设计。. 设计的实施方案想象基于单片机的环境温湿度检测系统实施方案想象如下:、由温度和湿度传感器对环境中的温度和湿度变量进展采样;、单片机和传感器通讯,获得采样数据并暂

23、存;、单片机对数据进展预处置如校验等,对有效数据再进展以下四种处置:驱动显示电路,把数据显示在数码管上;扫描输入的控制信号,设定报警限值;根据设定的报警,驱动报警电路任务,予以报警指示;扫描输入的控制信号,根据需求发送数据给上层设备,在设备上进展数据再处置或保管;在系统供电端有稳压滤波电路或电能存储器件,保证系统正常任务;选用价钱低廉的器件或设计电路,减少破费;在以上方案都实施的情况下,对系统进展优化创新设计,强化功能; 因此,本系统的设计应按照这个思绪进展详细设计,把每一步的想象转化为现实的设计。系统的构造图如下:第二章 硬件的设计根据绪论中的分析阐明,可以明确温湿度检测系统的硬件电路分为电

24、源稳压、传感器检测、数码管显示驱动、报警驱动、输入控制、数据发送等六大部分,其中后五个部分都以单片机为中心,由单片机来进展控制处置,因此单片机的选用至关重要。. 单片机的选用 自从世纪年代,因特尔公司推出第一代单片机以来,单片机的开展如雨后春笋。各大电气商、半导体商根据不同的控制需求,尤其在嵌入式系统控制方面,以因特尔公司的单片机的框架构造为根底,研发了各种各样的、功能强大的单片机。而今,他们曾经进入了一个单片机可广泛选择的、百花齐放的时代。因此,选用一款价钱低廉,性能优良的单片机已不再困难。在MCS-单片机的根底上,ATMEL公司开发的AT系列的单片机自问世以来,以其较低廉的价钱和独特的程序

25、存储器快速闪存器为用户所亲莱,尤其是ATS这款单片机,它有以下几个特点:、与MCS-单片机产品兼容,完全可采用指令系统用汇编或C编程;、K字节在系统可编程FLASH存储器,并且有次擦写周期,这使得。调试程序和下载程序非常方便;、全静态操作,任务频率范围为HzMHz,频率范围宽,便于系统功耗控制;、三级加密程序存储器,使程序和系统更加难以仿制,确保了产品的知识产权;、个可编程I/O口线,每个I/O都可以独立或结合运用,实现不同的数据操作,而且PI端口的高三位第二功能为ISP编程,实如今系统调试;、三个位定时器/计数器,其中定时器也可以作为串口波特率的产生;、八个中断源,分为两个优先级,可软件设置

26、;、一个全双工通用异步接纳发送数据借口,以便与外设进展串行数据通讯;、有低功耗空闲和掉电方式,掉点后可由中断唤醒,可设置掉电标识符;、宽任务电压范围,VCC为.V,与TTL电平和CMOS电平兼容;总之,AT系列单片机与MCS-系列单片机相比,前者和后者有兼容性,但前者的性能价钱比等目的更为优越。因此,选用ATS单片机可实现温湿度检测系统的功能,以下图为该单片机的DIP封装外观和引脚功能:图- 单片机的引脚图根据单片机的引荐外围电路,复位K电阻,uf电容、晶振MHZ,电容pf电路设计如上图所示:图- 单片机复位电路图- 单片机晶振电路. 传感器的选用 . 初期设计本设计的初期想象是用一个温度传感

27、器和一个湿度传感器来检测环境中的温度和湿度参数,其中温度传感器选用单总线数字温度传感器DSB,湿度传感器选用数字式湿度传感器SHT,那么检测部分功能框图如下:图- 传感器初期设计方案比较DSB和SHT,这两个传感器的通讯都比较复杂,详细过程为:主机发起通讯、传感器确认通讯、主机给传感器写命令字、传感器给主机发送检测数据,且SHT还要求外部输入串行时钟信号。这种通讯的复杂,不仅表达在硬件电路的设计上,而且表达在程序的设计上,并且串行通讯对时序要求比较严厉,这样对单片机来说将是一个宏大的挑战,何况单片机还要进展其他的后续控制处置。除此之外,这两大传感器的价钱都不菲,DSB在元左右,而SHT那么在元

28、左右,这对支付才干也是一个宏大的考验。因此,这种方案不可取,必需寻求其他的传感器处理方案,从而简化硬件电路和程序设计,让单片机有更多的内外部资源来处置后续操作。. 最正确方案后期采用单总线数字温湿度传感器DHT。这款传感器由广州奥松电子科技研发,与单片机的通讯非常简约方便,无需外接时钟信号,通讯如下:图- 单总线数字温湿度传感器DHT与单片机通讯除此之外,它还有很多突出的优点:温湿度传感器的一体化构造能同时对相对湿度和温度进展丈量,并以数字信号输出,从而减少用户对信号的预处置负担;独特的单总线数据传输线协议使得读取传感器更加便利,而且还有全部校准数据字节,编码方式为位二进制数;位二进制数据输出

29、,高位先出,格式为:湿度整数部分位,小数部分位;温度整数部分位,小数部分位,最后位为校验字节,为前位数据的和。宽任务电压,几乎与ATS的电压一样,为.V,而且功耗较低,通讯最大电流为.mA。其简要的性能参数如下表所示;表- 温湿度传感器DHT性能参数从表中可以看出,它的丈量范围较小,但对实验或民用曾经足够了,假设要工业运用的话,可选用该公司的同类工业级产品AM,丈量范围为-.+.度,丈量范围为.%RH,并且可以和DHT完全互换。. 电路设计 按照阐明书的要求,DHT与单片机的衔接间隔 小于米时,需求在VCC和DATA引脚之间接一个K左右的电阻,因此电路设计如下:图- 温湿度传感器DHT与单片机

30、衔接电路 至此,传感器的硬件电路设计完成,另一部分的任务就是编程问题,在下一章节引见。. 数码管驱动电路设计. 数码管的选用 由于温湿度传感器DHT 测温范围为,测湿范围为%RH,温度和湿度都是两位数据,因此可以用两个两位一体的数码管来显示温湿度数据,共阴极或共阳极都可以,本设计中选用两个型号为FJSFH 型共阳极红色两位一体的数码管。. 驱动电路的设计 数码管驱动软件设计有两种方案,一种是静态驱动,即四位数码管的段选信号和位选信号,分别接入控制器的端口,需求+= 个端口;另一种是动态驱动,段选信号线公用,而位选信号分开控制,需求+= 个端口。思索到单片机可用的I/O 引脚只需 个,为不扩展引

31、脚而外加芯片,因此采用动态驱动方式较合理。数码管驱动电路普通也有两种设计方案,一种是运用八D 锁存芯片HC或LS 锁存驱动,另一种是用三极管放大驱动。市场上HC 芯片较LS 芯片价钱廉价也为 元左右一块,而三极管只需. 元左右,四个三极管共 角钱,相对来说比较经济实惠,因此选用后一种方案。而相关器件电气参数为: 红色共阳极数码管实践上是八个并联的红色LED的电压范围.V,最大任务电流为mA=mA; 单片机每个引脚灌电流外部电流流入单片机大约为mA,拉电流单片机电流流入外设小于mA。根据这两项参数,初步确定三极管选用 系列PNP 型,用集电极接数码管位选引脚,基极用电阻限流后接单片机引脚予以位选

32、控制。再思索数码管电流的限定,符合要求的三极管只需 和,其简要参数见下表:表. 可选三极管参数由表可以看出,的电流和功率都很大,既浪费资源又不利于降低系统功耗,因此选用较为适宜。因此,这部分的电路设计如下:图. 数码管段选信号与单片机衔接电路图. 数码管位选信号与单片机衔接电路用单片机P 端口作为数码管段选信号,P 端口的高四位作为位选信号,四个电阻的粗略大小为:R=(VCC-VEB)/Ib=.V-.V/mA=.K,可选用E 系列的电阻.K 或.K。.报警电路设计本设计需求指示一种温湿度正常形状、一种数据发送形状和四种超限报警形状,即温度超下限,温度超上限,湿度超下限,湿度超上限,可采用简单的

33、声蜂鸣器光LED报警电路。LED 颜色和形状及蜂鸣器形状分配如下表所示:表. 报警指示形状分配注:“表示LED 熄灭或蜂鸣器无声。. 蜂鸣器驱动电路根据蜂鸣器的参数:电压.V,电流mA,电阻 知,可用选用集成放大芯片LM 驱动,但更经济的是用一个三极管 或 驱动即可,电路如下图:图. 蜂鸣器报警驱动电路. LED驱动电路根据LED 的参数:电压.V,电流mA,那么可用一电阻对电源进展下拉,限流分压后,LED 阴极接入单片机予以控制,电阻阻值大约为:R=(VCC-VLED)/I=(.V-V)/mA=,选用 或 的电阻即可,详细电路如以下图所示:图. 报警LED驱动电路.控制输入电路设计本设计的控

34、制输入部分为简单的三个按键,由于单片机默许形状下端口引脚为高电平,可以接上按键与地相连,单片机检测按键端口的电平情况来决议能否有按键按下和哪个按键被按下,抖动问题采用软件延时方式,减少硬件电路设计,电路如下图:图. 控制输入按键衔接电路经过上述对各个模块的分布设计,如今可给出系统主体部分的原理总图。图. 系统主体部分原理总图思索到 PCB 设计单面板布线的可行性,单片机的外部资源端口引脚分配按下进展:传感器DHT 数据线P;蜂鸣器HXD 驱动三极管基极P;程序调试ISP 插座P、P、P;按键KEY、P、P、P;串口RXD、TXDP、P;数码管段选信号、位选信号P、P、P、P、P;LED 绿、黄

35、、红P、P、P。. 串口通讯电路设计单片机ATS 有一个全双工的UART 接口,即RXD(P.)和TXD (P.),因此可以用来和上层设备如PC 通讯,但是由于PC 的串口运用RS 电平通讯协议,而单片机运用TTL 电平通讯协议,这两种电平的特点见下表:表. RS和TTL电平规范比较比较两表,可以看出RS 电平和TTL 电平并不兼容,为使单片机和PC 通讯,必需先转换电平,可采用新型集成芯片MAX 实现数据发送转换和接纳转换的双重功能,根据芯片手册上的引荐电路,经合理简化后设计的串口发送数据部分电路为:图. 通讯串口电路其中J 与单片机串口相连,J 经针脚到插孔的RS 数据线与电脑相连,即可实

36、现电脑和单片机的全双工通讯。. 稳定电源电路设计按照设计要求,系统供电要求多样化,除了交流V 的市电是必用的外,还应该具备其他供电要求,如太阳能电池,各种平安直流电压源等,而且还应该有一定的蓄电才干。思索到市电电压太高且为正弦变化,而太阳能电池输出电压不稳定等问题,必需求对市电进展降压,对变动的电压进展稳压,而单片机系统的电压要求在V 左右,因此,可思索用集成稳压模块LM 进展终端稳压。LM 是三端正V 电源稳压器件,输入电压为直流V,输出电压为.V,最大允许电流为.A,有电流限制、热过载维护和短路维护功能,确保输出电压正常稳定。详细电路设计如下:图. 稳压电源电路该电路有四个电源插座,其中J

37、 为市电ACV 供电输入,J 为太阳能电池或其他输出直流为V 的电压源的输入,J 为充电输出接口,可为充电电池.V 只恒流充电,J 为系统供电+V 电压输出端口,由此接到系统的电源端。当用市电供电时,先经过V/V 的变压器T 把电压降低至有效值为V的交流电,再用电桥BR 进展全波整流为有效值V峰值大约为.V的脉动电压,然后前置电容EC 和C 滤波,经LM 稳压并后置电容C 滤波,输出大约为稳定的+V 直流电,一部分为系统供电,另一部分为电池充电,经过调理电位器CR 可调整充电电流,给不同的电池充电。 LED 为电源指示灯。当用太阳能电池等输出为直流电的电源设备时,直接接入J 端口,亦可为系统供

38、电。运用这种设计,可以确保系统有较宽的任务电压,并且可以存储少量电能,从而到达在不同场所供电的目的。. 系统三大部分的PCB设计在Protel 中新建立计文档,根据以上分析,画出系统主体部分、串口通讯部分和电源部分的原理图,并选择适宜的封装外形,设计相应的PCB 图。三部分的PCB 图及设计时应留意的问题简要引见如下:. 系统主体部分PCB设计图. 系统主体PCB图设计要求:传感器的安装位置传感器必需安顿在PCB 的边缘位置,不仅应确保没有发热吸湿的器件在其附近,而且传感器的感温感湿栅窗应朝向外部,否那么能够会影响传感器对外部环境中温湿度的丈量,如图. 左下角的插座J 即为传感器的安装位置。数

39、码管的布线不仅数码管的引脚较多,与单片机的连线也较多,而且制造实验硬件运用的是单面板,只能在底面布线,因此,在布线的时候应该综合思索三方单片机、数码管和单面实验板的特点,选择合理的布线方案。为保证多在底面布线,本设计对数码管采用变码布线,即数码管aDp 段并没有和单片机PP 一一对应,而且位选信号线和部分段选信号线在顶面布线,详细情况如图. 所示,其中DG 和DG 为数码管。电源开关、插头插座和按键的位置电源开关、插头插座和按键是经常运用的器件,为方便操作,需求安装在边缘位置,和其他元件的间隔 不应过小。如图. 中的SW、J、J、KEY-R、KEYKEY 以及ISP 等。单片机的位置单片机是系

40、统的中心,为了便于安装和改换,单片机的周围不应放置过多元件,留有余地。布线要求布线不应过密,特别是DIP 封装的元件,引脚之间制止布线,否那么能够导致连线短路或信号相互关扰。. 串口通讯PCB设计图. 串口通讯部分PCB图设计要求:芯片安装位置芯片U 的凹槽朝向J,便于和J 连线。电容封装选择由于电容C 引脚间有布线,封装应选用中间可布一线的外形,或把引脚间距较小的间距拉大,确保可布一线。J 的焊盘尺寸J 的两端的固定焊盘应适当加大,以加强焊接力。由于串口插头较大,而且会有频繁的插拔,假设固定焊盘过小,能够出现松动。.稳压电源部分PCB设计图. 电源部分PCB图设计要求:高压部分J 为ACV

41、的插头,T 为ACV/V 的变压器,这两个器件在设计时应思索平安问题。J 的引脚间距应加大,T 的输入输出线应适当加粗,确保高压隔离和大电流散热良好。稳压器件的位置当LM 任务电压高于V 时,会有较大热量产生,因此在设计时应放在PCB 边缘通风散热良好的地方,并且散热片朝向外部。根据上述三部分的PCB 图,用万用板和相应元器件焊接制造实验硬件,根据设计用细裸导线布线,完成三部分硬件的制造。第三章 程序的设计本章根据曾经设计好的的硬件,选用适宜的言语给每一个模块设计驱动程序,最后综合编译,生成下载文件。程序文档由传感器通讯、数码管动态扫描、LED和蜂鸣器报警、按键输入检测和串口发送数据五个部分组

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

43、和蜂鸣器的形状变化也应该有实时性,否那么会出现报警滞后的问题,因此用定时器 进展中断报警扫描,蜂鸣器的响声用最简单的“滴滴声响,采用频率为Hz 的方波,而LED 的闪烁也同步进展,扫描时间定为 微妙。此外,在串口发送数据期间,由于单片机本身要求,定时器 用作波特率产生器。其他控制部分在主函数中进展或附加在定时器的中断效力中,但中断效力不能处置太多操作,否那么程序执行效率很低。. 程序的流程图根据单片机的特点和系统各部分的运转时序,经过多次实验,最后确定系统高效稳定任务的执行顺序为:开场初始化并启动两个定时器扫描按键判别按键值执行相应功能终了前往至按键扫描,其中定时器 中断效力扫描数码管每隔 秒

44、获取传感器数据,定时器 中断效力报警判别低温,高温,低湿,高湿,反复进展此过程,即可实现系统循环任务。详细流程图如以下图所示:图 - 系统程序流程图. 编程言语和工具的选择以及程序文件的分配. 编程言语的选择从程序的流程图可以看出,系统的程序较为复杂,假设选用执行效率相对较高的汇编来书写,代码会很长,阅读不便,并且调试也很困难。为了提高程序的可读性和调试的便利性,选用C 言语来编写。C 言语功能丰富,表达才干强,运用灵敏方便,运用面广,目的程序效率高,可执行性好,而且C 言语既有高级言语的特点,也有汇编言语的特点,能直接对单片机硬件进展操作,因此运用起来非常方便。当然,C 言语和MCS- 单片

45、机结合之后产生的C 言语,与规范的C 言语还有一定的差别,编程的时候应该留意这些问题。除此之外,C 的强大功能及其高效率的重要表达之一在于其丰富的可直接调用的库函数,这使得程序代码简单,构造明晰,易于调试和维护。特别是本征库的 个函数,虽然少,但都非常有用,其头文件为intrins.h,主要功能为按位循环左移或右移,位测试等。. 编程工具的选择由于单片机种类繁多,各大公司都纷纷开发了本人的编程软件,而KEIL C软件是众多单片机运用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编、PLM 言语和C 言语的程序设计,界面友好,易学易用。此外,Keil 还支持自动添加多款单片机的编译预处置

46、文件,包含各类单片机的头文件,如 单片机的头文件reg.h。. 程序文件的分配经过上述分析,程序可用五个C 文件来存放五个功能独立的程序模块,另外有一个公共调用的延时函数文件和主函数文件,此外,各部分还有相应的调用头文件来进展衔接,从而实现了程序和硬件对应,设计模块化,调试更为方便。详细文件分配如表:表 . 系统程序文件分配. 传感器通讯程序设计由于DHT 为单总线通讯器件,为了确保单片机胜利与其通讯,编写的程序必需严厉遵守它独特的通讯协议。DHT 的通讯由两部分组成握手确认和数据传送。. 握手确认先来看阐明书中的时序图:图 - 传感器与单片机握手确认时序从图中可以看出,传感器和主机相互确认的

47、过程为:未通讯时,通讯线坚持高电平;通讯开场后,主机先拉低电平至少 毫秒,用以确保传感器可以检测到主机信号,之后主机再拉高电平 微妙等待传感器呼应;传感器呼应后,先拉低电平 微妙,予以通知主机,再拉高电平同样的时间之后就转入数据传输时序,握手通讯也就终了。部分程序如下DHT 为通讯端口:/主机与DHT 通讯开场DHT=;/主机先拉低总线电平/调用延时函数,延时 毫秒DHT=;/再拉高总线电平/调用延时函数,延时 微妙DHT=;/拉高电平,设置总线为输入形状if(!DHT)/假设DHT 输出低电平呼应,就开场接纳数据while(!DHT);/先等待DHT 呼应的低电平终了 微秒while(DHT

48、);/再等待DHT 呼应的高电平终了 微妙/下面开场接纳数据. 数据传送还是先来看阐明书中的时序图。图 - 传感器发送数据 时序图 - 传感器发送数据 时序从图中可以看出,在数据传输时,单片机只需按照时序检测传感器输出的电平信号即可得到一位数据,详细要求为:无论数据是 还是,都以 微妙的低电平开场,之后,假设数据是,那么传感器拉高电平并坚持 微妙;假设数据是,那么传感器拉高电平并坚持 微妙,如此延续进展,送出位的数据。由于电平变化时间是以微妙计算,非常小,因此写程序时必需求严厉准确的控制时间,这在设计时有两个探求过程。 初期想象定时器准确计时法晶振为MHz 时,定时器最小定时为 微妙,先声明一

49、个大小为 的无符号字符型数组,用来存储定时器获得的 个微妙数,单片机计时过程如下:图 - 定时器计时接纳数据流程 那么这样就得到了 个微秒时间数,再对这 个时间数进展判别,得到数据 或,从而得到温湿度数据。 经过分析和实验发现,这样处置,单片机的数据量会比较大,而且定时器的启动和封锁、数组的操作会额外破费很多时间,这就导致虽然定时器计得很准确,但是总的来说,并不是很准确,而且传感器的输出也会有一定的误差,因此这种处置数据的方式不可取,必需寻求新的处理方案。 合理方案超时修正判别法经过后期的不断实验分析,采用以下方案较为合理:图 - 超时修正数据流程 这种方案正是利用了数据 和 高电平的时间不同

50、来判别数据,先以为是数据 的时间 微妙,延时 微秒越过这个时间曾经足够了,再检测数据线能否依然为高电平,假设是高电平就修正数据为,并且等待数据 剩下的高电平终了,分字节接纳,因此程序简要如下: while(!DHT);/先出现低电平约- 微秒,等待终了 /延时 微秒,越过数据 的高电平常间 微秒 Temp_Data=x;/先断定数据为 if(DHT)Temp_Data=x; /假设数据 高电平超时,那么修正为数据 while(DHT);/等待数据 剩下的高电平常间终了,大约-= 微秒/以下为接纳数据处置程序. 相关问题处理方案 准确延时函数 毫秒延时: / 一次for 循环大约 个机器周期,加

51、上while 判别和函数调用、前往,大约共+= us=ms void Delay_ms(unsigned int ms ) unsigned char Temp; while(ms-) for(Temp=;Temp;Temp+); 微秒延时: /nop 一次 个机器周期,加上函数调用和前往各 个周期,共+=us void Delay_us() _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 采样传感器数据的时序安排 前期设计时,定义了两个温湿度全局变量,中断运用这两个变量来显示数据;而主函数那么采样传感器,修正这两个全局变量,这种看似

52、没有问题的设计,在实验时却一直得到的是乱码数据。结合相关资料和分析实验结果后发现,这种设计的问题就在于中断和主函数能够同时访问了这两个变量,并且主函数在修正全局变量时能够被中断打断,导致温度或湿度数据只修正了几位,就被迫送入数码管显示,显示的当然也就是乱码了。 数据的修正和显示应服从程序执行的时序,即先修正数据再显示或先显示再修正数据。思索到传感器通讯并不复杂,且最坏情况也为 毫秒左右,因此可在中断扫描数码管之前或之后,定时s 来读取传感器,这样安排程序位置后,经调试,系统显示数据正常。. 数码管扫描程序设计 根据硬件电路的设计,数码管采用动态扫描方式驱动,而动态扫描方式较多,在这里选用swi

53、tch-case 构造完成。 在设计硬件时,为了方便在单面板上布线,共阳极数码管采用了变码编码方式,即数码管的aDp 段和单片机的PP 并不对应,实践安排为:表 . 数码管段选信号线安排因此, 个数字和报警设定显示符号的编码定义为下表方式:表. 数码管显示符号编码 注:编码为十六进制,其中“和“代表温度和湿度,“L和“H代表低和高,如数码管前两位显示“L时,代表正在进展低温报警值设定。 当数码管显示实时温湿度数据时,前两位显示温度,后两位显示湿度;当数码管处于报警设定时,前两位显示当前设定的内容,后两位显示设定的值,如H、,表示当前设定的为湿度上限,值为%RH。以下为显示实时温湿度数据的部分程

54、序: switch(Seg_Order) case :Bit=;P=SegTemperature /;break;/显示温度高位 case :Bit=;P=SegTemperature %;break;/显示温度低位 case :Bit=;P=SegHumidity /;break;/显示湿度高位 case :Bit=;P=SegHumidity %;break;/显示湿度低位 显示终了后修正Seg_Order 的程序为: Seg_Order+; Seg_Order&=x;/超越四位后就前往第一位,从而显示下一位数码管。. 报警及设置程序设计报警程序包括两个部分,一为报警驱动信号,另为报警值调

55、整。. 报警驱动 这部分的程序较为简单,主要是作温湿度超限的简单判别并为蜂鸣器和LED引脚送出电平信号即可 如,蜂鸣器闪烁报警时信号为Buzzer=Buzzer;红色LED 熄灭为LED_R=。. 报警值调整 程序设计思绪为,进入某个限值设定形状时,先修正数码管显示形状全局变量,使其显示调整结果;再进入一个死循环,在循环中扫描按键,根据不同的按键执行相应操作:终了本次调整、调整值加一或调整值减一,流程如图。图 - 报警值调整流程 如此进展四次,设定四个报警点,最后再把四个子函数放入一个主调函数中,即可实现一次完好的报警调整操作。. 按键扫描程序设计由于系统只需三个按键,个数少,可采用if-el

56、se 构造逐个扫描,采用经济型的延时去抖动法,为了保证按键可靠被按下,实验阐明,按键短按一次总的时间大约为 毫秒,因此按键按下抖动时间、按下时间和按键释放抖动时间的延时共 毫秒为宜,而键KEY 为多功能键,有长按和短按之分,详细安排如下:表. 按键与键值分配注:多功能键 KEY 可靠短按总时间定为 毫秒,只需超越此值即以为 是长按,照旧采用超时检测法程序简要如下。 if(Key=)/先扫描号按键 Delay_ms();/延时毫秒越过短按时长 if(Key) While(!Key);/等待按键释放 Delay_ms();/长按释放去抖 return Key_M;/前往键值 else return

57、 Key_R else /剩下程序为扫描,号键 . 串口发送数据程序设计由于串口发送数据时,需求用定时器发生波特率,而且用较高的波特率发送数据时,定时器也不能正常任务,因此在发送数据时,两个定时器的中断效力函数都被制止访问,因此需求封锁数码管,封锁喇叭,而且还要重新初始化定时器为产生波特率,前往时再初始化为之前形状,恢复显示与报警。因此,串口数据发送有三个问题:波特率设置,发送格式,发送方式。. 波特率设置为保证单片机和PC之间通讯的实时性,再思索定时器的本身可以设置的大小,采用BR=bps的波特率比较适宜。定时器采用自动重装方式,初值计算为:由此对单片机的串口相关内部资源设定如下:TMOD=

58、x;/定时器 任务于方式,八位自动重装计数SCON=x;/设置串口任务于方式, 位为一帧的异步串行通讯方式PCON=x;/波特率不加倍TH=xf;/为定时器 写入计数初值TL=xf;TR=; /启动定时器,开场产生波特率. 数据发送格式在发送数据之前,先发送数据格式为“NUM T() H(%RH),即数据编号、温度数据、湿度数据;再开场只发送数据,格式如“ 。为使发送的数据可以在PC 端的接纳软件“串口调试助手上清楚明了地显示,需求对发送的数据进展转码,由十六进制码转换为ASCII 码,比如,为使大小为 的温度正常显示,需求进展如下转换:String=Temperature/+x;/转化为H

59、的ASCII 码,对应显示为“String=Temperature%+x;. 发送方式由于传感器采样时间规定为至少s,发送数据的间隔应大于s,为使数据可靠转换完成和胜利发送,定为每 秒钟发送一次,即用定时方式发送。此外,为表征数据胜利发送,在每次数据发送完成之后,单片机为黄色LED 送出一个脉冲信号,闪灯一次。串口发送数据部分程序为:/按照阐明书,只需向串口缓冲器SBUF 送入数据,就启动一次数据发送SBUF=Temp_Data;/等待发送完成,即标志位TI 为while(!TI);/清零标志位,为下一帧发送做预备TI=;除了这些操作之外,在每次发送数据之前先扫描按键,确定能否停顿发送。最后,

60、需求阐明的是,主函数的任务很简单扫描按键,选择进入报警设定形状或数据发送形状。. Keil 综合编译和结果分析、程序下载. 综合编译情况和结果分析在KEIL 中新建工程,如以下图所示,写入各部分的代码后,综合编译。修正错误和消除警告后,得到如下内容:图- KEIL C 工程建立与编译编译详细结果为:Build target Target assembling STARTUP.A.compiling Mpiling Dpiling Read_DHTpiling Key_Spiling Set_Apiling Digitron_Spiling Send_Function.c.linking.* W

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论