温湿度控制单片机课程设计.docx
- 文档编号:24457811
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:37
- 大小:580.32KB
温湿度控制单片机课程设计.docx
《温湿度控制单片机课程设计.docx》由会员分享,可在线阅读,更多相关《温湿度控制单片机课程设计.docx(37页珍藏版)》请在冰豆网上搜索。
温湿度控制单片机课程设计
本科生课程设计
课程名称:
单片机课程实训
题目:
温湿度控制
专业班级:
学生姓名:
学生学号:
日期:
2014年6月
指导教师:
一、课程设计目的、任务和内容要求:
通过该课程设计使学生进一步了解和加深智能化仪器设计的一般原则;熟练掌握智能化仪器与装置的软、硬件设计方法;掌握仪器的软件调试及软硬件联合统调方法与技能。
掌握仪器的接口技术和程控方法;熟练掌握仪表总线的工作原理、设计步骤、编程及调试;掌握C设计软件的编程与调试方法;掌握网络化仪器设计编程与调试方法。
本课程设计的任务就是设计一个温度与湿度控制系统。
鼓励学生在熟悉基本原理的前提下,与实际应用相联系,提出自己的方案,完善设计。
具体设计任务如下:
1.熟悉DHT11温度与湿度传感器的工作原理;
2.写出温度与湿度控制系统的设计方案;
3.用硬件加以实现;
4.写课程设计报告。
设计要求:
1.温度测量范围:
0-50摄氏度;
2.温度测量精度:
±2摄氏度;
3.湿度测量范围:
20%-90%RH;
4.湿度测量精度:
±5%RH;
5.显示当前测量到的温度与湿度的值;
6.设置温度上下限,湿度上下限。
二、进度安排:
第1~3天:
查找资料,熟悉DHT11传感器的工作原理,给出总体设计方案;
第4~6天:
各模块的详细设计;
第7~12天:
硬件连线,调试;
第13~14天:
写课程设计报告。
三、主要参考文献:
[1]丁元杰.《单片微机的原理与应用》.机械工业出版社
[2]童诗白,华成英,模拟电子技术基础,高等教育出版社
指导教师签字:
年月日
目录
目录1
摘要2
Abstract2
1绪论3
1.1设计目的3
1.2设计背景3
2设计方案简述4
2.1方案设计4
2.2方案设计4
3设计部分5
3.1硬件设计5
3.1.1MCS08QG8芯片………………………………………………………………………………………….错误!
未定义书签。
3.1.2液晶显示模块电路设计6
3.1.3蜂鸣器模块电路设计…………………………………………………………………………….9
3.1.4DHT11温度湿度传感器电路设计9
3.2软件设计12
3.2.1系统软件设计说明12
3.2.2编程语言的选择13
3.2.3主程序流程图13
3.2.3系统的软硬件的调试15
4设计结果及分析16
5总结17
参考文献18
附录119
附录220
摘要
以MC9S08QG8单片机为核心,并通过DHT11温湿度传感器的工作原理,实现了对当前环境中温度与湿度的测量,并且通过设置好的温度与湿度的上限、下限的值对当前环境下的温度和湿度实施监控,超过预警值则实施自动报警。
该系统由温度传感器模块、湿度传感模块和液晶显示模块组成,应用温湿度传感器的工作原理对当前环境实施监控,定时采集数据传送给单片机,单片机根据温湿度传感器采集到的数据进行处理,再将接收的数据显示到12864液晶显示屏上,若是超过预期设置的上限和下限,采用二极管模拟报警,由于制作和组合上的精细,使得本设计显得智能化、实用化。
关键词:
单片机(MC9S08QG8);温度传感;湿度传感;12864液晶显示
Abstract
ThedesignMC9S08QG8microcontrollercore,andthroughDHT11temperatureandhumiditysensorworkstoachieveinthecurrentenvironment,temperatureandhumiditymeasurements,andagoodtemperatureandhumiditybysettingtheupperlimit,lowerlimitvalueofthetemperatureonthecurrentenvironmentimplementationofmonitoringandhumidity,morethanthevalueofimplementinganearlywarningalarm.Thesystemconsistsoftemperaturesensormodule,humiditysensingmoduleandliquidcrystaldisplaymodule,theapplicationoftemperatureandhumiditysensorworksbymonitoringtheimplementationofthecurrentenvironment,regularlycollecteddatatothemicrocontroller,microcontrollerbasedtemperatureandhumiditysensorforprocessingthedatacollected,andthenwillreceivethedatatotheLCDscreenonthe12864,ifmorethanexpectedtosettheupperandlowerlimits,theuseofdiodeanalogalarm,duetoacombinationofproductionandfine,makingthedesignisintelligent,practical.
Keywords:
singlechip(MC9S08QG8);temperaturesensor;humiditysensor;12864LCD
1绪论
1.1设计目的
近年来,我国的设施农业得到了较大发展,温室大棚钟植技术已突破了传统的农作物种植受地域自然环境等诸多因素的限制,对农业生产有重大意义。
但目前我国温室大棚的温湿度测量和设备的操作大多还是由人工来完成,当温室较大时,操作人员的劳动强度很大本温湿度控制系统是以单片机控制为核心,以瑞士生产的SHT11单片集成温湿度传感器作为温湿度检测元件,初步实现了温室大棚的自动化管理,大大降低了工人的劳动强度。
1.2设计背景
系统的一大特点是用户可以通过下位机中的键盘输入温湿度的上下限值和预置值,也可以通过上位机对温湿度的上下限值和预置值进行输入,从而实现上位机对大棚内作物生长的远程控制。
系统下位机设在种植植物的大棚内,下位机中的温湿度传感器可以将环境中的温湿度非电量参数转化成电量信号,再将这些信号进行处理后送至下位机中的单片机,单片机读取数据后将数据送到缓冲区内,通过LED数码管进行实时显示。
同时与原先内部设定的参数值进行比较处理;单片机可以根据比较的结果对执行机构发出相应的信号,并通过继电器的控制对相应的设备如喷水器、吹风机、加热器、降温泵等进行操作,调节大棚内温湿度状态。
用户直接通过键盘对温湿度的上下限值和预置值进行设置后,如果环境的实时参数超越上下限值,系统自动启动执行机构调节大棚内湿度和温度状态,直到温湿度状态处于上下限值以内为止。
如果有预置初值且与当前状态不相等时,系统也会启动执行机构动态调节温湿度状态,直到所处的平衡状态与预置值相等为止。
2设计方案简述
2.1方案设计
温湿度的测量模块
经过温湿度传感器DHT11采集数据,再通过QG8单片机对其内部数字进行分析后,将其数值送到12864液晶模块上进行显示,本系统可以设定温度范围0~50摄氏度,最小区分度为一度,设定湿度范围为20%-90%RH,最小区分度为1%RH。
其优点在于DHT11
1.湿温度传感器的一体化结构能相对的同时对相对湿度和温度进行测量。
2.数字信号输出,从而减少用户信号的预处理负担。
3.单总线结构输出有效的节省用户控制器的I/O口资源。
并且,不需要额外电器元件。
4.独特的单总数据传输线协议使得读取传感器的数据更加便捷。
5.全部校准。
编码方式为8位二进制数。
6.40bit二进制数据输出。
其中湿度整数部分占1Byte,小数部分1Byte;温度整数部分1Byte,小数部分1Byte。
其中,湿度为高16位。
最后1Byte为校验和。
7.卓越的长期稳定性,超低功耗。
8.4引脚安装,超小尺寸。
9.各型号管脚完全可以互换。
2.2方案设计
根据设计要求确定了系统的总体方案,整个系统由单片机、温湿度传感器、显示模块、报警器、温湿度调节系统组成。
用户预先输入温湿度报警值到程序中,该值作为系统阈值。
温湿度传感器监测值传输给单片机,当单片机比较监测到的数值超出所设定阈值时,驱动蜂鸣器报警,并为温湿度调节系统提供控制信号,实现自动控制。
图2-1DHT11电路连接图
单片机发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,如果没有接收到单片机发送来的信号,DHT11不会主动进行温度采集,采集数据后转换到低速模式。
湿度测量范围1%~99%;最小进步为1%;
3设计部分
3.1硬件设计
单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能。
硬件实现上采用模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一起。
这种设计方法可以降低系统设计的复杂性。
系统电路原理图如图2所示。
本系统主要硬件设计包括电源电路、复位电路、LCD显示电路以及温湿度传感器电路。
3.1.1.MCS08QG8芯片
图3-1MC9S08QG8的16管脚分配
Freescale08系列发展简史及S08系列MCU命名规则
目前,Freescale的08系列单片机主要有HC08、HCS08和RS08三种类型。
1999年,HC08面世--高性能8位单片机。
2004年,HCS08诞生--资源丰富,功耗低,性价比很高。
2006年,RS08涌现--内核体积比传统的内核小30%,带有精简指令集,满足用户对体积更小、更加经济高效的解决方案的需求
FreescaleS08系列MCU的型号庞大,但同一系列的CPU是相同的,也就是说具有相同的指令系统,多种型号只是为了适用于不同的场合。
为了方便实际应用时选型,需要了解FreescaleMCU的命名方法,其基本命名规则如下
хххххххххххх
①②③④⑤⑥⑦
①产品状态MC—FullyQualified(合格)
PC—ProductEngineering(测试品)
②存储器类型标志8—片内带EPPROM9--片内带FlashEPPROM
③芯片内核08—HC08S08RS08
④子系列型号标志AWQGGBDZJM
⑤存储器大小8—8KB32—32KB60—60KB
⑥工作温度范围标志“无”--0℃--70℃C---40℃--85℃
⑦封装标志P—DIPSD--SSOP
AT89S52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为该反向放大器的输入端和输出端。
这个反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。
外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。
对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性。
如果使用石英晶体,电容应该使用30pF。
还可以使用外部时钟。
这种情况下,外部时钟脉冲接XTAL1端,即内部时钟发生器的输入端,XTAL2应悬空。
由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大低电平持续时间应符合产品技术条件的要求。
3.1.2液晶显示模块电路设计
这部分设计液晶屏显示,包括显示温度、显示湿度以及设置温湿度上下限值。
LCD12864内部提供128×2字节的字符显示RAM缓冲区(DDRAM)。
字符显示是通过将字符显示编码写入该字符显示RAM实现的。
根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。
三种不同字符/字型的选择编码范围为:
0000~0006H(其代码分别是0000、0002、0004、0006共4个)显示自定义字型,02H~7FH显示半宽ASCII码字符,A1A0H~F7FFH显示8192种GB2312中文字库字形。
字符显示RAM在液晶模块中的地址80H~9FH。
字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表3所示。
表3:
80H
81H
82H
83H
84H
85H
86H
87H
90H
91H
92H
93H
94H
95H
96H
97H
88H
89H
8AH
8BH
8CH
8DH
8EH
8FH
98H
99H
9AH
9BH
9CH
9DH
9EH
9FH
LCD通过RS、R/W、E构成的时序图实现数据的读与写,时序图如图5-4、图5-5所示。
图3-2MPU写资料到ST7920(8位数据线模式)
图3-3MPU从ST7920读资料(8位数据线模式)
模块控制芯片提供两套控制命令,基本指令和扩充指令如下表4、表5:
指令表4:
(RE=0:
基本指令)
指
指令码
功能
令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
清除
显示
0
0
0
0
0
0
0
0
0
1
将DDRAM填满"20H",并且设定DDRAM的地址计数器(AC)到"00H"
地址
归位
0
0
0
0
0
0
0
0
1
X
设定DDRAM的地址计数器(AC)到"00H",并且将游标移到开头原点位置;这个指令不改变DDRAM的内容
显示状态开/关
0
0
0
0
0
0
1
D
C
B
D=1:
整体显示ON
C=1:
游标ON
B=1:
游标位置反白允许
进入点
设定
0
0
0
0
0
0
0
1
I/D
S
指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位
游标或显示移位控制
0
0
0
0
0
1
S/C
R/L
X
X
设定游标的移动与显示的移位控制位;这个指令不改变DDRAM的内容
功能
设定
0
0
0
0
1
DL
X
RE
X
X
DL=0/1:
4/8位数据
RE=1:
扩充指令操作
RE=0:
基本指令操作
设定CGRAM
地址
0
0
0
1
AC5
AC4
AC3
AC2
AC1
AC0
设定CGRAM地址
设定DDRAM
地址
0
0
1
0
AC5
AC4
AC3
AC2
AC1
AC0
设定DDRAM地址(显示位址)
第一行:
80H-87H
第二行:
90H-97H
读取忙标志和地址
0
1
BF
AC6
AC5
AC4
AC3
AC2
AC1
AC0
读取忙标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值
写数据到RAM
1
0
数据
将数据D7——D0写入到内部的RAM(DDRAM/CGRAM/IRAM/GRAM)
读出RAM的值
1
1
数据
从内部RAM读取数据D7——D0
(DDRAM/CGRAM/IRAM/GRAM)
指令表5:
(RE=1:
扩充指令)
指
指令码
功能
令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
待命
模式
0
0
0
0
0
0
0
0
0
1
进入待命模式,执行其他指令都棵终止
待命模式
卷动地址开关开启
0
0
0
0
0
0
0
0
1
SR
SR=1:
允许输入垂直卷动地址
SR=0:
允许输入IRAM和CGRAM地址
反白
选择
0
0
0
0
0
0
0
1
R1
R0
选择2行中的任一行作反白显示,并可决定反白与否。
初始值R1R0=00,第一次设定为反白显示,再次设定变回正常
睡眠
模式
0
0
0
0
0
0
1
SL
X
X
SL=0:
进入睡眠模式
SL=1:
脱离睡眠模式
扩充
功能
设定
0
0
0
0
1
CL
X
RE
G
0
CL=0/1:
4/8位数据
RE=1:
扩充指令操作
RE=0:
基本指令操作
G=1/0:
绘图开关
设定绘图RAM
地址
0
0
1
0
AC6
0
AC5
0
AC4
AC3
AC3
AC2
AC2
AC1
AC1
AC0
AC0
设定绘图RAM
先设定垂直(列)地址AC6AC5…AC0
再设定水平(行)地址AC3AC2AC1AC0
将以上16位地址连续写入即可
备注:
当IC1在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取BF标志时,BF需为零,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。
3.1.3蜂鸣器模块电路
1.蜂鸣器的作用蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
2.蜂鸣器的分类蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
3.蜂鸣器的电路图形符号蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。
(如右图为蜂鸣器实物图)
图3-4蜂鸣器
压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。
有的压电式蜂鸣器外壳上还装有发光二极管。
多谐振荡器由晶体管或集成电路构成。
当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。
压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。
在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。
图3-5蜂鸣器部分电路
3.1.4DHT11温度湿度传感器电路设计
图3-6DHT11电路连接图图3-7DHT11实物图
1、电源引脚
DHT11的供电电压为3-5.5V。
传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。
电源引脚(VCC,GND)之间可增加一个电容,用以去耦滤波。
2、串行接口(单线双向)
DATA用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:
一次完整的数据传输为40bit,高位先出。
数据格式:
8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。
用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。
图3-8DHT11内部通讯过程
总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。
DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。
图3-9DHT11数据准备传送过程
总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。
图3-10数字0信号表示方法.
图3-11数字1信号表示方法.
3.2软件设计
3.2.1系统软件设计说明
进行测量控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个测量对象的实际需要设计应用程序。
因此,软件设计在微机测量控制系统设计中占重要地位。
对于本系统,软件设计更为重要。
在单片机测量控制系统中,大体上可分为数据处理、过程控制两个基本类型。
数据处理包括:
数据的采集、数字滤波、标度变换等。
过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便达到测量控制目的。
本软件设计主要是对距离进行测量、显示。
因此,整个软件可分为按照硬件电路对单片机位定义;温湿度设置子程序;温湿度接收子程序;显示子程序;延时子程序等。
3.2.2编程语言的选择
本设计是硬件电路和软件编程相结合的设计方案,选择合适的编程语言是一个重要的环节。
在单片机的应用系统程序设计时,常用的是汇编语言和C语言。
汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。
其主要优点是占用资源少、程序执行效率高,而且执行速度快。
但是不同的CPU,其汇编语言可能有所差异,即依赖于计算机硬件,程序可读性和可移植性比较差。
C语言是编译型程序设计语言,兼顾高级语言的特点,并具备汇编语言的功能。
C语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计技术。
此外,C语言程序具有完善的模块程序结构。
C语言执行效率没有汇编语言高,但语言简洁,使用方便,灵活,运算丰富,表达化类型多样化,数据结构类型丰富,具有结构化的控制语句,程序设计自由度大,有很好的可重用性,可移植性等特点。
基于C语言的众多优点本设计选择此语言来编程。
3.2.3主程序流程图
软件分为两部分,主程序和中断服务程序。
主程序完成初始化工作、温湿度数据接收处理控制。
外部中断服务子程序主要完成时间值的读取、距离
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温湿度 控制 单片机 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)