资源描述
江苏技术师范学院毕业设计说明书(论文)
前言
温度和湿度的检测和控制是许多行业的重要工作之一,不论是货品仓库、生产车间,都需要有规定的温度和湿度,然而温度和湿度却是最不易保障的指标,针对这一情况,研制可靠且实用的温度和湿度检测与控制系统就显得非常重要。温湿度的检测与控制是工业生产过程中比较典型的应用之一[1],随着传感器在生产和生活中的更加广泛的应用。在生产中,温湿度的高低对产品的质量影响很大。由于温湿度的检测控制不当,可能使我们导致无法估计的经济损失。为保证日常工作的顺利进行,首要问题是加强生产车间内温度与湿度的监测工作,但传统的方法过于粗糙,通过人工进行检测,对不符合温度和湿度要求的库房进行通风、去湿和降温等工作。这种人工测试方法费时费力、效率低,且测试的温度及湿度误差大,随机性大。由于温湿度传感器及其控制系统是20世纪90年代才兴起的行业,因此设计出一款精度高、稳定性好、成本低的温湿度检测控制系统具有一定的市场前景。此研究项目采用具有高精度,防干扰等优点的传感器,结合单片机嵌入式系统技术,设计完成的系统具有易携带、低功耗等特点,从而克服了传统温湿度检测系统需要复杂的校准过程和精度较低的缺点。
本设计所介绍温湿度检测仪与传统的温湿度计相比具有读数方便,测温湿范围广,测温湿准确,其输出温湿度度采用LED数码管显示,该设计控制器使用单片机,数字温湿度传感器DS18B20,DHT11,用LED数码管,实现温湿度度显示,能准确达到要求。
本次论文只要有四章,其中第一章主要介绍了本次设计的主要内容;第二章主要是介绍了主要的元器件以及硬件设计及其内容;第三章主要介绍了软件流程的过程;第四章主要软硬件的调试。
第1章 绪论
1.1设计任务
设计一个基于单片机的测温湿度控制系统,用单片机作为主控芯片,通过温湿度传感器监控对温湿度进行实时性控制,通过设置警戒温度,利用单片机控制,当温湿度高于设定温湿度基准值时启动报警,以达到控制的目的。
设计的功能如下:
(1)实现LED数码管显示;
(2)能通过按键选择工作模式和基准值的设定。
设计技术指标如下:
(1)显示三位温度三位湿度;
(2)温度采集精度为±0.5℃,湿度采集精度为±5%。
1.2原理描述
本设计主要由电源模块、温湿度采集模块、按键模块、报警模块、单片机控制模块以及数据显示模块几部分组成。如下图1-1所示:
单片机控制模块
数据显示模块
电源模块
报警模块
温湿度度采集模块
按键模块
图1-1 系统总体结构框图
1.2.1总体方案的设计
用温温度传感器DS18B20,DHT11主要实现检测温度、湿度的检测,将温度湿度[2]信号通过传感器进行信号的采集并转换成数字信号,再运用单片机进行数据的分析和处理,为显示和报警电路提供信号。设定模块主要为设定温湿度报警的阈值,其流程图1-1所示:
1.2.2 系统原理
温湿度采集模块使用的是DS18B20,DHT11数字温湿度传感器,它使用单总线方式,接口简单,而且无需另外校准,完全能够满足日常环境温湿度的检测要求。
数据处理模块使用的是AT89S51单片机,其完成温湿度数据的采集、运算和逻辑控制的功能。
其余模块主要由按键、LED和蜂鸣器构成。其中按键用于用户设定温湿度阈值,LED用于数据显示,蜂鸣器用于提示用户。按照系统的设计功能所要求的,温湿度监控系统原理图如下图1-2所示:
温湿度传感器
单片机
LED温湿度显示
按键模块
蜂鸣器
图1-2 温湿度监控系统原理图
单片机作为主控制器,主要负责处理由温湿度传感器送来数据,并把处理好的数据送向显示器模块,温湿度传感器主要用来采集周围的环境参数,并把所采集到得数据送向单片机,按键电路主要是用来完成单片机的复位操作和温湿度初始值的设定。蜂鸣器电路就是用三极管来实现的,用来判断周围的温度或者湿度是否超出设定数值,显示电路主要用来显示当前的温湿度。
1.3整体方案的论证
1.3.1温湿度检测电路
方案一:选用DS18B20温度传感器和HS1101湿度传感器。DS18B20是一线式数字温度传感器,具有独特的单线式接口方式,测量范围在-55℃~125℃,-10℃~85℃,误差为0.5℃。最高精度可达0.0625℃。HS1101是电容式湿度传感器,可测相对湿度范围在0%~100%RH,误差为2%RH。
方案二:选用DHT11作为温湿度检测模块。DHT11是一款数字输出的复合传感器,包含一个电阻式感湿元件和NTC式温度检测元件,可测20~90%RH湿度,误差5%RH,0~50℃,误差2℃。
由于HS1101所构成的测湿度电路对电阻的精度要求高并电路繁琐,而DHT11温度精度达不到要求,所以取两者方案优点用DS18B20测温度和DHT11测湿度来完成本设计。
1.3.2利用单片机实现控制系统
当今,单片机的技术已经非常成熟了,它集成度高、功能强、存储量大、速度快、抗干扰性强和指令丰富等的优点,使它的应用遍及各个领域。本文设计的系统就是单片机应用于温湿度控制的一个例子,其优点如下:
(1)片内存储容量越来越大;
(2)抗干扰性好,可靠性高;
(3)芯片引线齐全,容易扩展;
(4)运行速度高,控制功能强。
(5) 单片机内部的数据信息保存时间很长,有的芯片可以达到100年以上。
本系统是一种高精度、测控速度快、测控温度范围广的应用性比较强的基于单片机的温度测控系统。由于本系统对单片机的资源要求不高,故选用了廉价的51单片机AT89S51,大大提高了本系统的性价比。
1.4本章小结
本章详细介绍了本次设计的主要任务,以及对于所要实现的内容加以分析。
第2章 温湿度检测仪的硬件设计
单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能,硬件实现上采用模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一起,这种设计方法可以降低系统设计的复杂性,本系统主要硬件设计包括电源模块、温湿度采集模块、按键模块、报警模块、单片机控制模块以及数据显示模块。
2.1器件的介绍
2.1.1温湿度传感器
温度传感器DS18B20
DS18B20温度传感器[3]是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,它是单线数字温度传感器,即“一线器件”,其具有独特的优点:
(1)采用单总线的接口方式与微处理器连接
仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
(2)测量温度范围宽
测量精度高DS18B20的测量范围为-55℃ ~+ 125℃ ;在 -10~+85℃ 范围内,精度为±0.5℃ 。
(3)在使用中不需要任何外围元件
(4)持多点组网功能
多个 DS18B20 可以并联在惟一的单线上,实现多点测温。
(5)供电方式灵活
DS18B20 可以通过内部寄生电路从数据线上获取电源。因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。
(6) 测量参数可配置
DS18B20 的测量分辨率可通过程序设定 9~12 位。
(7) 负压特性电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
(8) 掉电保护功能
DS18B20 内部含有 EEPROM ,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。
DS18B20 具有体积更小、适用电压更宽、更经济、可选更小的封装方式,更宽的电压适用范围,适合于构建自己的经济的测温系统。
DS18B20外部结构如图2-1所示
图2-1 DS18B20引脚图
1.GND为电源地;
2.DQ为数字信号输入/输出端;
3.VDD为外接供电电源输入端;
DS18B20的使用注意
DS18B20 虽然具有测温系统简单[4]、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:
1. DS18B20 从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的,不然会出现转换错误的现象。
2. 在实际使用中发现,应使电源电压保持在5V 左右,若电源电压过低,会使所测得的温度精度降低。
3. 较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。
4. 在DS18B20的有关资料中均未提及单总线上所挂DS18B20 数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此,当单总线上所挂DS18B20 超过8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。
5. 在DS18B20测温程序设计中,向DS18B20 发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20 接触不好或断线,当程序读该DS18B20 时,将没有返回信号,程序进入死循环,这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。
湿度传感器DHT11
DHT11为温湿度传感器[5],由于DHT11测量的温度精度不符合本设计,本设计只采用DHT11测量湿度部分,把DHT11当做湿度传感器运用。
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的温湿度传感和数字模块采集技术,具有很高的稳定性和可靠性,DHT11传感器内含一个NTC测温和一个电阻式感湿元件,并与一个8位的高性能单片机相连接,在精确的湿度校验室中DHT11传感器进行过校准,以程序的形式校准系数储存在0TP内存中,检测信号的时候,在处理过程中传感器内部要调用这些校准系数,采用单线制的串行接口,使系统集成可以有较低的功耗,而且更加简单快速,信号传输距离超过20米,作为一个数字温湿度传感器DHT11具有响应快速、抗干扰强、性价比高等优点。
典型的应用电路如图2-2所示:
图2-2 典型的应用电路
DHT11实物图如图2-3所示:
图2-3 DHT11实物图
DHT11引脚说明如表2-1所示
表2-1 DHT11引脚说明
pin
名称
注释
1
VDD
供电3-5.5V
2
DATA
串行数据,单总线
3
NC
空脚,悬空
4
GND
接地,电源负极
封装信息如图2-4:
如图2-4 DHT11的封装信息
2.1.2单片机
AT89S51[6]是美国ATMEL公司生产的低功耗、高性能CMOS 的8位单片机,片内含4K的可编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚,它集Flash程序存储器既可在线编程(ISP),也可用传统方法进行编程及通用8位微处理器于单片机芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制的领域。引脚图如下图2-5所示:
图2-5 AT89S51引脚图
8051单片机的引脚[7]
1.主电源引脚
VCC(40脚):接+5V电源正端
GND(20脚):接+5V电源地端
一般VCC和GND间应接高频去耦电容和低频滤波电容。
2.外接晶体或外部振荡器引脚
XTAL1(19脚):接外部晶振的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器OSC。当采用外部振荡器时,此引脚应接地。
XTAL2(18脚):接外部晶振的另一个引脚。在片内接至反相放大器的输出端和内部时钟电路的输入端。当采用外部振荡器时,此脚接外部振荡器的输出端。
控制信号线
RST/VPD(9脚):复位信号输入端,复位/掉电时内部RAM的备用电源输入端
ALE/(30脚):地址锁存允许/编程脉冲输入。用ALE锁存从P0口输出的低8位地址;在对片内EPROM编程时,编程脉冲由此输入。
(29脚):外部程序存储器读选通信号,低电平有效。
/VPP(31脚):访问外部存储器允许/编程电压输入。EA为高电平时,访问内部存储器;低电平时,访问外部存储器。对片内EPROM编程时,此脚接21V编程电压。
3.多功能I/O口引脚
8051单片机设有4个双向I/O口(P0、P1、P2、P3),每一组I/O口线都可以独立地用作输入或输出口,其中:
P0口(32~39脚)——双向口(三态),可作为输入/输出口,可驱动8个LSTTL门电路。实际应用中常作为分时使用的地址/数据总线口,对外部程序或数据存储器寻址时低8位地址与数据总线分时使用P0口:先送低8位地址信号到P0口,由地址锁存信号ALE的下降沿将地址信号锁存到地址锁存器后,再作为数据总线的口线对数据进行输入或输出。
P1口(1~8脚)——准双向口(三态),可驱动4个LSTTL门电路。用作输入线时,口锁存器必须由单片机先写入“1”,每一位都可编程为输入或输出线。
P2口(21~28)——准双向口(三态),可驱动4个LSTTL门电路。可作为输入/输出口,实际应用中一般作为地址总线的高8位,与P0口一起组成16位地址总线,用于对外部存储器的接口电路进行寻址。
P3口(10~17脚)——准双向口(三态),可驱动4个LSTTL门电路。双功能口,作为第一功能使用时,与P1口一样;作为第二功能使用时,每一位都有特定用途,其特殊用途如表2-2所示:
表2-2 第二功能
端口引脚
第二功能
注 释
P3.0
RXD
串行口数据接收端
P3.1
TXD
串行口数据发送端
P3.2
外中断请求0
P3.3
外中断请求1
P3.4
T0
定时/计数器0外部计数信号输入
P3.5
T1
定时/计数器1外部计数信号输入
P3.6
外部RAM写选通信号输出
P3.7
外部RAM读选通信号输出
优越性
AT89S51提供以下的功能标准[8]:4K字节闪烁存储器,128字节随机存取数据存储器,2个16位定时/计数器,32个I/O口, 1个串行通信口,1个5向量两级中断结构,另外,AT89S51还可以进行0HZ的静态逻辑操作,并支持两种软件的节电模式,闲散方式停止中央处理器的工作,可允许随机存取数据存储器、定时/计数器、串行通信口及中断系统继续工作。掉电方式保存随机存取数据存储器中的内容,但震荡器停止工作并禁止其它所有部件的工作直到下一个复位,在AT89C51上新增加的功能使AT89S51性能有了较大提升,它的价格甚至更低,它的工作频率可达33MHz,比AT89C51的工作频率更高,ISP在线编程功能的优越性在于它不必要将芯片从工作状态下分离,特别是在改写存储器内的程序,这是一个相当方便简单的功能,它不需要像AT89C51那样外接看门狗计时器单元电路,由于它内部具有双工UART串行通道内部集成看门狗计时器,它具有全新的加密算法,大大加强的程序的保密性,有效的保护知识产权不被侵犯,它向下完全兼容51全部字系列产品。
2.1.3 LED
LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的 字样了。如:显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。管脚图如图2-6所示:
图2-6 LED的管脚图及共阴共阳内部内部电路
2.1.4三端稳压管
稳压电路是用三端稳压芯片构成的,本设计选用的是三端稳压集成电路lm7805是 +5V稳压芯片。
电子产品中,常见的三端稳压集成电路有正电压输出的lm78 ×× 系列和负电压输出的lm79××系列。顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。它的样子象是普通的三极管,TO- 220 的标准封装,也有lm9013样子的TO-92封装。本设计采用的是TO-220封装的。管脚图如图2-7所示:
LM78xx LM79xx
图2-7 三端稳压管
2.1.5蜂鸣器
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
1压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。
2电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。
本设计采用压电式蜂鸣器,如图2-8所示
图2-8 蜂鸣器
2.2主要模块的电路
2.2.1单片机最小系统
单片机的最小系统[9]是指使单片机能运行程序、正常工作的最简单电路系统,是保证单片正常启动、开始工作的必须电路,缺一不可。单片机最小系统一般由单片机、程序存储器、时钟电路和复位电路组成。对于8051单片机,由于片内有程序存储器,所以其最小系统除了单片机本身外,只需外接时钟电路与复位电路即可。
复位及复位电路
8051单片机的复位
复位是使CPU和系统中其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。8051单片机在RST输入端(9脚)出现高电平时实现系统的复位和初始化。在振荡器运行的情况下,要实现复位操作,必须使RST端的高电平至少保持两个机器周期(24个振荡周期)。CPU在第二个机器周期内执行复位操作,以后每一个机器周期重复一次,直到RST降为低电平。复位期间不产生ALE及/PSEN信号。复位的内部操作使SP为07H,各端口(P0~P3)都为0FFH,特殊功能寄存器都为0,但不影响RAM的状态。当复位结束(RST变为低电平)后,CPU从0000H开始执行程序。
值得注意的是:8051单片机通电后并不运行ROM里的程序,只有正常复位后,才能开始工作。
复位电路
单片机的复位分为上电自动复位、按键手动复位两种和看门狗强制复位三种等。上电复位通常利用电容的充放电来实现,按键复位则可分为按键脉冲复位和按键电平复位两种,看门狗复位则通过外接看门狗电路或软件看门狗程序实现。常见的上电复位和按键复位电路如图2-9所示。
(a) 上电复位 (b) 按键脉冲复位 (c)按键电平复位
图2-9 复位电路
图中,(a)为最简单的单片机复位电路。当系统上电时,由于电容C两端的电压不会瞬间改变,所以8051的第9脚复位端会得到短暂的高电平,随后,电容通过电阻R进行充电,经过一段时间后,RST端变为低电平。当电容的充放电时间常数RC足够大,能保证在RST端得到超过两个机器周期的高电平时,单片机完成复位操作,开始正常运行ROM里的程序[10]。
(b)为按键脉冲复位电路。当系统上电时,单片机并不复位,不能运行ROM里的程序,只有当系统上电后,按一下复位按键(图中未画出),反相器输出超过两个机器周期的高电平,才能完成系统复位。
(c)为包括上电复位功能的按键电平复位电路,是最常见的单片机复位电路之一。当系统上电时,单片机的RST端得到两个以上机器周期的高电平,随后电容C经电阻R充电,变为低电平,完成单片机的上最复位。在单片机的运行过程中,如果由于外界干扰等因素的影响,使单片机的程序跑飞,则可以通过按下按键K,使单片机完成复位操作。当按下K键时,电容两端短路,RST接到电源VCC变为高电平,同时电容迅速放电,使电容的两个极板电位一致。释放按键K后,电容C通过电阻R充电,经过两个以上机器周期的时间后,RST端变为低电平,完成单片机的复位。
本系统采用的是上电复位,充电之后,RST被拉至高电平,单片机进入工作状态。
时钟电路
时钟电路[11]用于产生单片机的基本时钟信号。8051的时钟信号可由内部振荡器产生,也可由外部电路直接提供。内部振荡器的输入和输出脚分别为XTAL1和XATL2,由XTAL2给单片机内部电路提供时钟信号。当时钟信号由外部电路提供时,外部时钟引入XTAL2,而XTAL1脚接地。两种时钟信号的连接电路如图2-10所示。
图2-10 时钟电路
AT89S51中有一个用于构成内部正当其的放大器,引脚XTAL1和XTAL2分别是放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器构成自激振荡器,他们与电容C1,C2接在放大器的反馈电路中构成并联震荡电路,虽然电容没有一个严格的要求,但是电容的大小会轻微影响振荡频率的高低、温度稳定性以及振荡器工作的稳定性。
本系统采用晶振电路[12]。单片机系统都有晶振,在单片机系统中晶振的作用非常大,全称叫做晶体振荡器,它结合单片机内部电路产生所需时钟频率,单片机晶振提供的时钟频率越高,那么单片机的运行速度就会越快,单片机的一切指令执行都是建立在单片机晶振所提供的时钟频率。在通常的工作条件下,普通的晶振频率的绝对精度可以达到百万分之五十,高级晶振精度更高,有些晶振还可以由外加的电压在一定范围内调整频率,称为压榨振荡器,在共振的状态下晶振用一种能把电能和机械能相互转化的晶体工作,以提供稳定,精确的单频振荡。
单片机晶振的作用是为系统提供及本周的时钟信号,通常一个系统共用一个晶振,以便于各部分保持同步,有些通讯系统的基频和射频使用不同的晶振,而是通过电子调整频率的方法保持同步。晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率,可以用于同一个晶振项链的不同锁相环来提供的。单片机AT89S51的晶振电路采用无源晶振,微调电容取22pf。图2-11即为晶振电路。
图2-11晶振电路
2.2.2报警模块
微型计算机控制系统中[13],为了安全起见,对于一些重要的参数或系统,都设定有紧急状态报警系统,以便于提醒操作人员注意,或者采取紧急措施,本设计采用把计算机采集的数据进行数据处理、标度变换、数字滤波之后,与该参数上下限与给定值进行比较,如果高于上限值则进行报警,否则就作为采样的正常值,进行显示。
本设计采用峰鸣音报警电路。如图2-12所示。蜂鸣器额定电流≤30mA,而对于AT89S51单片机,P3口的灌电流为15mA,由此可见,仅靠单片机的P3口电流是不能驱动蜂鸣器的,必须使用晶体管放大电路,为了使单片机的功率更小,所以使用PNP型晶体管,当外部环境的温度或者湿度超过预设值的时候,基级变为低电平,蜂鸣器导通鸣叫。
图2-12报警模块
2.2.3数据显示模块
显示器常用作单片机最简单的输出设备,用以显示单片机的运行结果和运行状态等。常用的显示器主要有LED和LCD,它们都具有耗电少、成本低、线路简单、寿命长等优点,广泛应用于单片机显示数字量的场合。设计中采用LED显示器。
对LED管的显示可分为静态和动态两种。本设计采用动态显示,其优点为: 1. 能降低显示器的功耗。 2. 能大大减少显示器的外部接线,给安装调试带来方便。
LED动态显示原理:由于各个数码管的段选线并联,段选码的输出对各个数码管都是相同。因此同一时刻如果各个数码管的位选线都处于选通状态的话,四位LED将显示相同字符。若要各位LED显示出与本位相应的显示字符,就必须采用扫描显示方式。即在某一时刻只让某一位的位选线处于选通状态而其它各位的位选线处于关闭状态.同时段选线上输出相应位要显示字符的代码这样同一时刻四位LED中只有选通的那一位显示出字符,而其它位则是熄灭的。此循环下去就可以使各位数码管显示出将要显示的字符。显然,这些字符是在不同时刻出现的,而且同一时刻只有一位显示其它各位熄灭,但由于各位数码管的通断时间是非常短的,且人眼有视觉暂留现象,只要每位显示间隔足够短则可造成多位同时亮的假象达到显示的目的。
为了显示相应的字符,必须将该字符转换成相应的段选码。这种转换也称为译码。译码可以采用硬件的方法,也可以采用软件的方法。设计中采用软件的方法进行译码。
在总体电路中,显示电路是设计的主要部分[14],通过单片机的P0口,控制四位七段数码管的段码,而数码管的位码由P2.0、P2.2、P2.4、P2.6四个端口来分别控制显示数字的小数位、个位、十位、百位和符号位。在位码控制端通过单片机P2口输出的高低电平来选通数码管的显示位。
数据显示模块选用LED数码管显示,电路图如图2-13所示:
图2-13 数据显示模块
2.2.4温湿度采集模块
DS18B20电源供电方式
DS18B20可以采用外部电源供电和寄生电源供电两种模式。外部电源供电模式是将DS18B20的GND直接接地,DQ与单总线相连作为信号线,VDD与外部电源正极相连。如图2-14所示
图 2-14 温度采集模块
DHT11是数字型温湿度传感器,可直接以数字方式传输所采集的当前环境温湿度,DHT11采用的是单总线通信,因此只需将单片机的 与DHT11的通信接口连接就可以实现数据的采集和传送,相对于其他电路来说比较简单。如图2-15所示:
图2-15湿度采集模块
2.2.5按键模块
键盘是标准的输入设备,实现键盘有两种方案:一是采用现有的一些芯片实现键盘扫描,如8279、CII451、IMC9768等,二是用软件实现键盘扫描。使用现成的芯片可以节省CPL的开销,但增加了成本,而用软件实现具有较强的灵活性,也只需要很少的CPL开销,可以节省开发成本。本文便使用软件实现键盘的扫描。
常见的键盘可分为独立按键式键盘和行列扫描式键盘[15]。独立按键式键盘应用在需要少量按键的情况,按键和单片机的I/O口线直接连接。而行列扫描式键盘用在按键需求较多的情形下,考虑到面向大多数人群,需操作简,所以采用独立按键式键盘。
本次设计采用的是4个独立式键盘来控制对基准值的调整S1,S2,S3,S4,分别为加,减,切换,确定四个功能,如图2-17所示:
图2-17 按键模块
2.2.6电源模块
用lm78/lm79系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。该系列集成稳压IC型号中的lm78或lm79后面的数字代表该三端集成稳压电路的输出电压,如lm7806表示输出电压为正6V,lm7909表示输出电压为负9V。
本设计采用lm7805为电路提供正5V电压,如图2-18所示:
图 2-18 电源模块
2.3主控制电路和测温湿控制电路
本次硬件的核心就是AT89S51,其他的外围电路都是围绕它所设计的。数字温湿度传感器DS18B20,DHT11的DQ,DATA口分别连接单片机AT89S51的P2.1,P3.7口。显示电路就是把LED和单片机的P0口分别相连,当温度或湿度高于预设值的时候蜂鸣器蜂鸣报警,增加单片机的输出能力,增加单片机的输出电流,故使用电阻排来完成。
2.4本章小结
本章节主要介绍了硬件设计的元器件及其各部分电路的主要设计方法,并且详细的给出了各个模块(电源模块、温湿度采集模块、按键模块、报警模块、单片机控制模块以及数据显示模块)的电路设计。
第3章 温湿度检测仪的软件设计
软件是整个控制系统设计的另一个重要环节,灵活性很强,可以根据系统的要求和功能而变化。在硬件结构一定的情况下,只要改变相应的软件就能实现一些不同的功能,单片机的智能性都是由软件实现。
在本系统中,软件结构采用模块化设计,各功能程序分别编写和调试。各模块调试成功后,再将所有模块连接起来,构成系统的软件。这样的设计有利于程序代码的优化,而且便于编程、调试和维护。
3.1系统软件设计的原则
应用系统中的应用软件是根据系统功能要求设计的,应可靠实现系统的各种功能在本系统中,软件设计要求做到以下几点:
(1)软件结构清晰、简捷、流程合理。
(2)并功能程序实现模块化,子程序化。这样,既便于调试,连接,又便于移植,修改。
(3)程序存储区,数据存储区要合理规划,既能节约内存容量,又使操作方便。
(4)运行状态实现标志化管理。这个功能程序运行状态,运行结果以及运行要求都要设置状态标志以便查询,程序的转移、运行、控制都可通过状态标志条件来控制。
(5)经过调试修改后程序应进行规范化,出去修改的痕迹,以便于交流和借鉴,也为以后的软件模块化、标准化打下基础。
(6)实现全面软件抗干扰设计。软件抗干扰是单片机应用系统提高可靠性的有利措施。
3.2系统流程图
在主程序中,当系统上电完成,定义寄存器等初始化操作后,首先判断按键是否有按下,并判断按键标志位,根据按键标志位显示温湿度上限,实时显示温湿度及进行报警程序。
根据温湿度监控系统功能,系统软件流程图如图3-1所示;
开始
初始化
温湿度采集子程序
温湿度处理子程序
读取成功
温湿度数据是否超限
报警
是
显示温湿度
按键设置子程序
图3-1系统软件流程图
3.3按键设置流程图
虽然把按键子程序直接放在了主程序中,但是作为控制模块,按键程序仍然是比较重要的模块。按键设置过程中,流程如下图3-2所示:
按键是否按下
减少
开始
增加
切换
确定
S1
S2
S3
S4
图3-2 按键设置流程图
3.4温湿度采集流程图
温湿度子程序流程如下图3-3,3-4所示:
开始
初始化
从18B20读字节
向18B20写字节
读取温度
图3-3 DS18B20温度采集流程图
开始
定义数据端口,数据端口
启动传输函数,连接复位函数
读写函数
测量湿度函数
读取湿度
图3-4 DHT11 湿度采集流程图
3.5编程思想
本次设计主要是能够实时显示出当前确切的温湿度,并且在高于预设值的时候能够发出蜂鸣。一旦接通电源,蜂鸣器报警。在程序设计中,分别定义温湿度参数,根据数据转换过来的数值,判断是否超过了预设值。
3.6本章小结
本章节主要介绍了本次设计软件部分的流程图和主体编程思想。
第4章 系统软硬件调试
4.1 硬件调试
硬件调试主要是针对电源模块、温湿度信号采集处理模块和单片机控制显示部分的调试。主要分为两部分:上电前的调试和上电调试。
4.1.1 上电前的调试
在上电前,必须确保电路中不存在短路或断路情况,这一工作是整个调试的第一步,也是非常重要的一个步骤。因为本设计用到多个电源,应该确保每个电源都连接正确。在这部分调试中主要使用的工具是万用表,用来检测电路中是否存在断路或者短路情况等。
通过万用表的检测,没有发现短路或断路的地方,且电源电路连接正确,则电路基本正常,可以进行下一步的调试。
4.1.2 上电调试
在确保硬件电路正常,无异常情况下方可上电调试,上电调试的目的是检测电路是否接错,同时还要检测原理是否正确。
(1)电源模块的调试
电源模块先不连接主电路,接上220V电源后用万用表检测输出电压,测得±5V电压正确时才能接入主电路供电。
(2)单片机显示及按键电路的调试
编写一个直接显示的简单程序,用按键控制显示值,若显示正常且按键也有效,则说明电路正确。
4.2 软件调试
在对硬件调试后再对软件进行调试,因为先对硬件检查没有问题的的情况下在对软件进行调试。
软件调试是通过对用户程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。程序运行后编辑,查看程序是否有逻辑的错误,然后画出相应的电路图,导入程序对其进行系统的仿真。
本系统调试采用了ISIS Professional,和 Keil 软件,ISIS Professional主要用于系统的仿真,Keil用于程序的检错,两者结合,节省很多时间方便实用。
软件的调试是一个模块一个模块地进行的,在每个模块调通的基础上,进行最后的联调,即对主程序进行调试。
软件调试是直接在计算机上进行的,用的是keil4软件。
程序编写出来后要进行编译,一般都会出现一些小问题,而导致编译出错,这就需要进行纠正。Keil自带出错提示,可以根据错误信息进行改正,当然这只是语法错误才会发现,语法完全正确后编译结果如图4-1所示:
图4-1 keil编译图
对于非语法错误,keil是不能发现的,这里就用到proteus仿真软件了将单片机部分的电路搭建起来。将软件编译后生成的HEX文件载入到proteus中,就可以仿真,测试软件是否完全正确。
4.3 整机联调
各部分均测试完成后就可以进行整机连调了,先将所有电路搭建起来。然后下载程序,利用软件进行下载,其界面如图4-2所示:
图4-2 程序下载界面
4.4本章小结
本章节介绍了在软硬件调试中如何调试并达到本设计的基本要求。
结 论
大学的学习中,毕业设计是一个很重要的环节,是我们步入社会参与社会实践的很好锻炼,从最初的选题,开题构思,绘图,编程,仿真直到完成设计,这中间,查找资料,老师指导,同学交流,编写程序,直至仿真调试,以及
展开阅读全文