温湿度传感器课程设计
温湿度传感器专业课程设计方案报告

温湿度传感器专业课程设计方案报告
设计目标:
本课程设计旨在使学生了解温湿度传感器的原理、应用和制作过程,培养学生的实践能力和创新意识,使其能够设计和制作出实际应用的温湿度传感器。
设计内容:
1. 温湿度传感器的原理和分类:介绍温湿度传感器的基本原理和常见的分类,包括电阻式、电容式、半导体式等。
2. 温湿度传感器的应用:介绍温湿度传感器在实际应用中的广泛应用,包括气象、农业、环境监测等领域。
3. 温湿度传感器的制作:学生通过实验和实践操作,学习温湿度传感器的制作过程,包括选择传感元件、设计电路和调试等。
4. 温湿度传感器的性能测试:学生通过实验测试,了解温
湿度传感器的性能指标,如准确度、灵敏度、响应时间等。
5. 温湿度传感器的应用案例分析:学生通过分析实际案例,了解温湿度传感器在不同应用场景中的设计和优化方法。
6. 温湿度传感器的未来发展:介绍温湿度传感器的未来发
展趋势,包括新材料、新工艺和新技术的应用。
设计方法:
本课程设计采用理论教学和实践操作相结合的方法,通过
教师讲解、案例分析、实验演示和学生实践等方式进行教学。
评价方法:
本课程设计采用多种评价方法,包括实验报告、作业、考核和课堂参与等,综合评价学生的理论知识和实践能力。
教学资源:
本课程设计所需教学资源包括实验设备、教材、教具和实验材料等。
预期成果:
通过本课程设计的学习,学生能够掌握温湿度传感器的基本原理和分类,了解其应用领域和制作过程,具备设计和制作温湿度传感器的能力,并能够分析和优化传感器的性能。
温湿度传感器_课程设计

等级: 湖南工程学院课程设计课程名称单片机原理与应用课题名称环境温、湿度检测系统设计专业自动化班级1191学号20姓名指导教师李晓秀王迎旭2013年12月12日湖南工程学院课程设计任务书课程名称单片机原理与应用课题环境温、湿度检测系统设计专业班级自动化学生姓名学号2011指导老师李晓秀审批任务书下达日期2013年12月1日任务完成日期2013年12月13日主要设计条件设计内容与设计要求设计内容:本课题要求以单片机为核心,采用温湿度传感器DHT11设计一个对环境温度湿度的检测系统,要求用按键控制系统选择分别对温度或湿度的测试、复位、清除功能,用四位LED数码管显示实时温度和温度。
设计要求:1)确定系统设计方案;2)进行系统的硬件设计;3)完成必要元器件选择;4)系统软件设计及调试;5)系统联调及操作说明6)按规范要求写设计说明书精彩文档1、PC机及单片机调试软件;2、开发板1块;3、系统设计、调试所需的元器件说明书格式1.课程设计任务书2.目录3.总体方案确定4.各单元硬件电路设计及计算方法5.软件设计与说明(包括流程图)6.调试结果与必要的调试说明7.总结8、参考文献9、附录附录A系统原理图附录B程序清单10、课程设计成绩评分表。
进度安排设计时间分为二周第一周星期一、上午:布置课题任务,课题介绍及讲课。
下午:借阅有关资料,总体方案讨论。
星期二、确定总体方案,学习与设计相关内容。
星期三、各部分方案设计,各部分设计。
星期四、设计及调试。
星期五、设计及调试。
星期六、设计及调试。
第二周星期一:设计及调试。
星期二:设计及调试。
星期三:调试、写说明书。
星期四--星期五上午:写说明书、完成电子版并打印成稿。
星期五下午:答辩。
参考文献[1]王迎旭等.单片机原理及及应用[M]机械工业出版社.2012年[2]康华光等.模拟电子技术第五版[M]高等教育出版社2011年[3]杜树春等.单片机C语言[M]北京航空航天大学出版社目录第1章概述......................................................................................... ....6...1.1设计任务与要求................................................................................7..1.2设计方案...........................................................................................7...第2章硬件设计...................................................................................7...2.1时钟电路和复位电路........................................................................8..2.2温湿度测量电路设计........................................................................8..2.3按键电路..........................................................................................1..0.第3章软件设计.................................................................................1..1.3.1主函数设计......................................................................................1..1.3.2按键查询..........................................................................................1..2.3.3实时监控与测试流程图..................................................................1..3第4章硬件调试与结果分析.........................................................1..54.1调试过程..........................................................................................1..5.4.2硬件调试.........................................................................................1..6.第5章总结.......................................................................................... .1..8.参考文献.......................................................................................... .........1..9.附录一:系统仿真图...........................................................................2..0附录二:源程序....................................................................................2..1.电气与信息工程系课程设计评分表..............................................2.9第1章概述精彩文档1.1设计任务与要求本课题以单片机为核心,用智能集成温温度传感器DHT11主要实现检测温度、湿度的检测,将温度湿度信号通过传感器进行信号的采集并转换成数字信号,再运用单片机进行数据的分析和处理,在数码管上显示当前温湿度。
温湿度传感器课程设计单元电路设计

温湿度传感器课程设计单元电路设计温湿度传感器是一种用于测量环境中温度和湿度的传感器。
在课程设计中,我们将设计一个基于电路的温湿度传感器。
在本课程设计中,我们将使用DHT11传感器模块来测量温度和湿度。
DHT11是一款低成本、易于使用的数字温湿度传感器,具有4个引脚的封装。
它通过一根单线串行数据线与主控设备通信,提供可靠的温度和湿度测量。
为了设计一个可靠的温湿度传感器电路,我们将使用以下元件和组件:1. DHT11传感器模块:用于测量温度和湿度,提供数值输出。
2. Arduino开发板:作为主控设备,用于接收传感器的数据并进行处理。
3.聚合器:用于整合传感器和主控设备之间的连接,并提供电源。
4.面包板:用于连接电子元件,方便原型搭建和调试。
5.连接线:用于连接各个元件。
该电路的设计可以分为以下几个步骤:1.连接DHT11传感器模块:将DHT11传感器模块插入面包板,并使用连接线将其与聚合器相连。
连接线的一端插入DHT11传感器模块的引脚孔中,另一端插入聚合器的相应引脚孔中。
确保连接的稳固和可靠。
2.连接Arduino开发板:使用连接线将Arduino开发板与聚合器相连。
将连接线的一端插入Arduino开发板的引脚孔中,将另一端插入聚合器的相应引脚孔中。
确保连接的稳固和可靠。
3.供电和调试:将电源线插入聚合器的电源接口中,并将另一端插入电源插座中。
通过调试电路,确保传感器模块和Arduino开发板的连接正常。
4.编程:使用Arduino编程软件,编写代码以读取DHT11传感器模块的数据。
代码将包括初始化传感器模块、读取温度和湿度数据、将数据传输至主控设备等功能。
5.测试和验证:完成上述步骤后,进行电路的测试和验证。
将传感器放置在不同的环境中,记录传感器读取到的温度和湿度数据,与实际情况进行对比,验证传感器的准确性和稳定性。
总结:通过本次课程设计,我们实现了基于电路的温湿度传感器的设计。
该设计利用DHT11传感器模块和Arduino开发板,实现了对环境温度和湿度的测量,同时通过编程将数据传输到主控设备。
DHT22课程设计

DHT22课程设计一、课程目标知识目标:1. 学生能理解DHT22温湿度传感器的原理与结构;2. 学生能掌握DHT22传感器与微控制器(如Arduino)的连接方法;3. 学生能掌握读取DHT22传感器数据并进行简单处理的方法。
技能目标:1. 学生能运用DHT22传感器进行环境温湿度的实时监测;2. 学生能通过编程实现DHT22传感器数据的读取和处理;3. 学生能运用所学的知识解决实际生活中的温湿度监测问题。
情感态度价值观目标:1. 学生培养对物联网技术的兴趣,激发探究科学技术的热情;2. 学生通过实践活动,培养团队合作意识,增强问题解决能力;3. 学生认识到温湿度监测在生活中的重要性,提高环保意识。
课程性质:本课程为信息技术课程,结合物理知识与编程技能,注重实践操作。
学生特点:六年级学生具备一定的物理知识和编程基础,对新鲜事物充满好奇心。
教学要求:课程要求学生动手实践,注重培养学生的实际操作能力和创新思维。
通过本课程的学习,学生能够将理论知识应用于实际情境,解决实际问题。
教学过程中,将目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 理论知识:- 介绍DHT22温湿度传感器的原理与结构;- 讲解温湿度监测在生活中的应用及重要性;- 概述传感器与微控制器(Arduino)的连接方式。
2. 实践操作:- 演示DHT22传感器与Arduino的连接方法;- 教授如何使用编程环境(如Arduino IDE)读取DHT22传感器数据;- 指导学生进行数据处理,实现温湿度实时监测。
3. 教学大纲:- 第一课时:介绍DHT22传感器原理、结构及应用场景;- 第二课时:讲解DHT22传感器与Arduino的连接方法;- 第三课时:学习编程读取DHT22传感器数据并进行处理;- 第四课时:实践活动,学生分组进行温湿度监测项目设计。
4. 教材章节:- 第六章:传感器及其应用;- 第七章:微控制器编程与物联网应用。
(完整word版)基于SHT11温湿度传感器课程设计

课程设计报告书课程名称:《传感器原理及应用》课程设计题目:基于SHT11温湿度传感器的湿度计设计系(院):电子工程学院测控系学期:2013-2014-1专业班级:测控111姓名:学号:1 设计目的(1)能较全面地巩固和应用“传感器及检测技术”课程中所学的基本理论和基本方法,并初步掌握小型数字系统设计的基本方法。
(2)通过《传感器及检测技术》课程设计,掌握传感器及检测系统设计的方法和设计原则及相应的硬件调试的方法。
进一步理解传感器及检测系统的设计和应用。
(3)培养独立思考、独立准备资料、独立设计规定功能的数字系统的能力。
(4)培养书写综合设计报告的能力。
2 本题目的具体设计要求(1)本实验设计的温湿度计能完成多种环境中的温度、湿度测量;(2)根据系统要求,选择合适的传感器,本实验所选用传感器为SHT11温湿度传感器;(3)设计传感器测量电路;(4)选择单片机的品种、型号,设计单片机的外围测量电路;(5)计算有关的电路参数,有条件的情况下,根据实验室现有设备进行实验数据的测取,明确测量电路输出与被测非电量的关系;(6)画出系统电路图;3 本系统的总体实现原理、方案设计3.1 国内外发展现状及文献综述:温湿度的测量在仓储管理、生产制造、气象观测、科学研究以及日常生活中被广泛应用,传统的模拟式湿度传感器一般都要设计信号调理电路并需要经过复杂的校准和标定过程,因此测量精度难以保证,且在线性度、重复性、互换性、一致性等方面往往不尽人意。
SHT11是瑞士Sensirion公司推出的基于COMSensTM 技术的新型温湿度传感器。
该传感器将CMOS芯片技术与传感器技术结合起来,从而发挥出它们强大的优势互补作用。
3.2 本系统的实现原理、总体方案设计采用湿度和温度测量,即用一个温湿度传感器SHT11实现。
温湿度传感器SHT11将湿度测量、温度测量、信号变换、A/D转换等功能集合到一个芯片上,该芯片包含一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件,这个两个敏感元件分别将湿度和温度转换成电信号,该信号首先进入微弱信号放大器进行信号放大,然后进入一个14位的A/D转换器,最后经过二线串行数字接口输出数字信号,采用数码管显示所测湿度。
ARM温湿度传感器课程设计

目录目录 (1)第一章概述 (2)1.1 设计题目 (2)1.2 设计目的 (2)1.3 设计器材 (2)1.4 任务分析 (2)第二章设计原理 (3)2.1 嵌入式操作系统的概述 (3)2.2设计原理 (3)第三章系统设计 (5)3.1 系统需求分析 (5)3.2 硬件设计 (5)3.3 软件设计 (6)第四章详细设计 (8)4.1主函数 (8)4.3湿度的转化实现代码 (9)4.4TFT屏幕显示设置 (9)4.5 下载运行 (9)总结 (10)致谢 (11)第一章概述1.1 设计题目在LPC2103开发板上,实现设定温度以及控制功能。
1.2 设计目的1、本次课程设计的主要目的是实现温度的控制功能,锻炼学生的动手能力以及注重课外实践的培养,使得理论与实践相结合;2、了解并掌握掌握相关专业课程知识和设计能力;3、初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技术;4、提高综合运用所学的理论知识和方法独立分析和解决问题的能力;5、加深对专业课的理解,强化学生的逻辑思维能力和动手能力,巩固良好的编程习惯,掌握工程软件设计的基本方法,为将来工作的学习打下坚实基础。
1.3 设计器材本课程设计需要的硬件要求和软件配置具体要求如下:硬件要求:一台PC机、LPC2103开发板一块;软件配置:KEIL软件、J-Flash ARM,串口助手;1.4 任务分析有许多客观需求促进了ARM处理器的设计改进。
首先,便携式的嵌入式系统往往需要电池供电,为降低功耗,ARM处理器已经被特殊设计成较小的核,从而延长了电池的使用时间。
高的代码密度是嵌入式系统的又一个重要需求。
由于成本问题和物理尺寸的限制,嵌入式系统的存储器是很有限的。
所以,高的代码密度对于那些只限于在板存储器的应用是非常有帮助的。
另外,嵌入式系统通常都是价格敏感的,因此,一般都使用速度不高,成本较低的存储器。
ARM内核不是一个纯粹的RISC体系架构,这是为了使他能够更好的适应其主要应用领域——嵌入式系统。
通信工程设计与监理《温湿度传感器实验教案》

知识点温湿度传感器实验一教学目标掌握温湿度传感器的实验步骤及实验现象。
二教学重点、难点重点掌握温湿度传感器的实验步骤。
三教学过程设计1 实验目的〔1〕学习红外热释电传感器的工作原理;〔2〕掌握传感器的编程与操作方法;〔3〕通过串口输出显示出采集的数据;2 实验器材〔1〕传感器底板两个〔2〕仿真器一个〔3〕USB〔B型口〕线两根〔4〕温湿度传感器模块一个〔5〕软件: IAR集成环境3 实验步骤〔1〕编写温湿度传感器程序。
〔2〕将温湿度传感器模块与仿真器连接,仿真器用USB连接线与电脑连接。
〔3〕选择CoodinatorEB下载到开发板A;作为协调器。
〔4〕选择EndDeviceEB下载到开发版B;作为终端设备,在终端设备上接温湿度传感器模块。
〔5〕将传感器底板与USB线连接到电脑上,查看端口号。
〔6〕给两块开发板上电,翻开串口调试助手,设置端口号,波特率11520214 实验现象全速执行程序,翻开串口助手,观察温湿度传感器上传数值的变化。
四小结由于温度与湿度不管是从物理量本身还是在实际人们的生活中都有着密切的关系,所以温湿度一体的就会相应产生。
是指能将温度量和湿度量转换成容易被测量处理的电信号的设备或装置。
市场上的温湿度传感器一般是测量量和相对量。
五练习题1 温湿度传感器只是传感器其中的一种而已,只是把空气中的温湿度通过一定检测装置,测量到温湿度后,按一定的规律变换成〔A〕信号或其他所需形式的信息输出,用以满足用户需求。
A电信号B物理信号C化学信号D数字信号2 在做实验时,翻开开发板应先翻开协调器 ,再翻开〔终端〕。
3 传感器中直接感受被测量的局部是〔B〕。
调理电路。
温湿度传感器专业课程设计方案报告

温湿度传感器专业课程设计方案报告1. 课程设计目标:本课程旨在培养学生对温湿度传感器的理论知识和实际应用能力,使其能够设计、制造和应用温湿度传感器,满足不同领域的温湿度监测需求。
2. 课程设计内容:a. 温湿度传感器基础知识:-温湿度传感器的原理和分类;-温湿度传感器的特性和性能指标;-温湿度传感器的工作原理和信号处理方法。
b. 温湿度传感器设计与制造:-温湿度传感器的设计流程和方法;-温湿度传感器的材料选择和加工工艺;-温湿度传感器的封装和连接技术。
c. 温湿度传感器应用案例:-温湿度传感器在气象领域的应用;-温湿度传感器在农业领域的应用;-温湿度传感器在工业领域的应用。
d. 温湿度传感器测试与校准:-温湿度传感器的测试方法和设备;-温湿度传感器的校准原理和方法;-温湿度传感器的误差分析和修正。
3. 课程设计教学方法:a. 理论讲授:通过课堂讲解,介绍温湿度传感器的基本原理和应用知识。
b. 实验实践:组织学生进行温湿度传感器的设计、制造和测试实验,培养其实际操作能力。
c. 项目实践:组织学生参与温湿度传感器应用项目,提高其解决实际问题的能力。
d. 论文写作:要求学生撰写一份关于温湿度传感器设计与应用的论文,培养其科研和写作能力。
4. 课程设计评估方式:a. 实验报告评估:对学生的实验报告进行评估,考察其实验设计和数据分析能力。
b. 项目报告评估:对学生的项目报告进行评估,考察其项目管理和解决问题的能力。
c. 论文评估:对学生的论文进行评估,考察其科研和写作能力。
d. 课堂表现评估:对学生的课堂参与和表现进行评估,考察其学习态度和团队合作能力。
以上仅为一份温湿度传感器专业课程设计方案报告的范例,具体的课程设计方案应根据实际情况进行制定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南工程学院课程设计课程名称单片机原理与应用课题名称环境温、湿度检测系统设计专业自动化班级1191学号20姓名指导教师李晓秀王迎旭2013 年12 月12 日湖南工程学院课程设计任务书课程名称单片机原理与应用课题环境温、湿度检测系统设计专业班级自动化学生姓名学号2011指导老师李晓秀审批任务书下达日期2013 年12 月 1 日任务完成日期2013 年12 月13 日目录第1章概述 (6)1.1设计任务与要求 (7)1.2设计方案 (7)第2章硬件设计 (7)2.1时钟电路和复位电路 (8)2.2温湿度测量电路设计 (8)2.3按键电路 (10)第3章软件设计 (11)3.1主函数设计 (11)3.2按键查询 (12)3.3 实时监控与测试流程图 (13)第4章硬件调试与结果分析 (15)4.1调试过程 (15)4.2硬件调试 (16)第5章总结 (18)参考文献 (19)附录一:系统仿真图 (20)附录二:源程序 (21)电气与信息工程系课程设计评分表 (29)第1章概述1.1设计任务与要求本课题以单片机为核心,用智能集成温温度传感器DHT11主要实现检测温度、湿度的检测,将温度湿度信号通过传感器进行信号的采集并转换成数字信号,再运用单片机进行数据的分析和处理,在数码管上显示当前温湿度。
要求用按键控制系统选择分别对温度或湿度的测试、复位、清除功能,完成硬件调试。
1.2设计方案本课题的温湿度测试,通过单片机STC-89C51连接温湿度模块、显示模块将温度、湿度同时显示。
单片机发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,如果没有接收到单片机发送来的信号,DHT11不会主动进行温度采集,采集数据后转换到低速模式。
系统设计框图如图1.1所示。
图1.1 程序设计框图第2章硬件设计2.1时钟电路和复位电路MCS-51单片机内部有一个用于构成振荡器的高增益反放大器,引脚XTAL1和XTAL2分别是反相放大器的输入端和输出端。
通常,经由片外晶体振荡器或陶瓷谐振器与两个匹配电容一起构成一个自激振荡电路。
本课题由片外晶体振荡器与两个匹配电容一起构成了一个内部时钟振荡电路,为单片机提供时钟源。
本设计复位电路采用按键复位,当开关断开时,与上电自动复位电路相同;当开关闭合时,电容通过并联的电阻迅速放电,然后,RC电路充电,能够保证RST端能够维持一段时间的高电平。
如图2.1所示。
图2.1 时钟及复位电路2.2温湿度测量电路设计DHT11的供电电压为3-5.5V,传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。
电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。
数据用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分。
如图2.2所示,本电路上拉电阻为5K,数据端接P1.7(接受温湿度数据)。
图2.2 温湿度测量电路2.3显示电路本电路由四位一体共阳极数码管显示,采用9015三极管做位驱动。
根据发光二极管物理连接的不同,七段数码管可以分为共阴极和共阳极两种结构。
其中P0端口为段选,P2.0~P2.3为位选,如图2.3所示。
图2.3 显示电路2.4按键电路单片机设计中按键可分为独立式按键和矩阵式按键,本系统由于按键较少,故采用四个独立按键,上拉电阻为1K。
其中,四个按键功能分别是显示温度、显示湿度、实时监控显示温湿度、测试温湿度。
如图2.4。
图2.4 按键电路第3章软件设计本软件设计主要是对距离进行测量、显示。
因此,整个软件可分为按照硬件电路对单片机位定义;温湿度设置子程序;温湿度接收子程序;显示子程序;延时子程序等。
由于本设计方案要求硬件电路和软件编程相结合,所以选择合适的编程语言十分重要。
C语言执行效率没有汇编语言高,但语言简洁,使用方便灵活,运算丰富,表达化类型多样化,程序设计自由度大,很好的可重用性,可移植性等特点基于C语言的众多优点本设计选择此语言来编程。
3.1主函数设计软件分为两部分,主程序和中断服务程序。
主程序完成初始化工作、温湿度数据接收处理控制。
外部中断服务子程序主要完成时间值的读取、结果的输出等工作,如图3.1所示。
图3.1 主程序流程图3.2按键查询独立式按键接口采用直接读入方式工作,直读式键盘接口是一个输入接口,输入接口主要功能是解决数据输入的缓冲(选通)问题。
本设计按键较少,采用的独立按键。
图3.2 查询按键处理在扫描按键函数中,每按下不同按键会返回一个不同的数值,在主函数中有按键查询函数判断为那个按键按下,随后进入不同的子函数,如图3.2所示。
3.3 实时监控与测试流程图本系统设计分为实时监控与测试模块,图3.3示为测试模块。
上电是数码管显示四个零,当按下测试按键后,系统开始测量环境温、湿度。
当数码管显示四个“—”时,表示成功测量温、湿度。
当按下温度(湿度)显示按键,该模块显示测试时的温度(湿度)。
当要进行下一次测量时,必须按下测试按键。
图3.3 测试流程图图3.4示为实时监控模块,按下实时监控键后,启动T0定时器开始定时,每一分钟测试一次温度、湿度,并在四位一体的共阳极数码管轮流显示温度、湿度。
当按下温度(湿度)显示按键后,该模块只显示实时的温度(湿度)。
当再次按下实时监控按键后。
定时器T0关闭。
图3.4 实时监控模块第4章硬件调试与结果分析4.1调试过程在编写此程序前,感觉DHT11的通信程序和取数程序最为难写,在之前的学习中我并没有接触过单总线的通信时序图。
通过查阅资料和参考现有的程序,然后在老师讲解和与本组的其他组员谈论后,终于弄明白这方面的知识。
而在测量函数中,刚开始并没有测得数据,通过查阅书籍我设置了一个全局变量,一步一步跟踪每一步并显示在P1的LED灯上,一步一步跟踪,完善了DTH11的通信与取数函数。
但在通信与取数函数与按键函数衔接时,总是有一定的概率测不到数据,慢慢的调试我发现我的通信与取数函数要连续调用两次才能每次正确的读取数据,在此,我设置了一个全局变量作为一个标志位,每次按下测量键是将该标志位设置为2,使通信与取数函数循环两次,这样保证了每次按下测试按键后就能与DHT11正确的通信从而保证得到正确的数据。
在实时监控这个模块中,为了保证温、湿度能循环显示、按键后能只显示温度(湿度)。
由于按键有限,所以一下设置了很多的标志位。
因为标志位太多,而没有将所有的环节考虑进去,一下程序有调试了很久才正确的实现要求的功能。
4.2 硬件调试如图4.1所示,按下左下角按键时,单片机开始与DHT11通信并开始测试温、湿度。
图示为测量温、湿度成功。
图4.1 初始化当按下图示按键时,数码管显示此时或实时监控的环境湿度。
其中最前端的“C”表示此时显示的事环节温度,如图4.2。
图4.2 显示湿度当按下此按键时,数码管显示此时或实时监控的环境温度。
其中最前端的“H”表示此时显示的是环境湿度,如图4.3。
图4.3 显示温度第5章总结这次单片机课程设计不仅巩固了以前学过的知识,而且学到了很多书本上没有没到的知识,掌握了一种系统的研究方法,可以进行一些简单的编程,通过这次课程设计我们明白理论与实际相结合是很重要的,只有理论知识还不够,理论实践相结合才能提高实际动手能力和独立思考的能力。
同样,在学习中也发现了自己的不足之处,例如对以前所学过的知识理解不够深刻,掌握不够牢固。
课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
回顾起此次单片机课程设计,我仍感慨颇多。
的确,从选题到定稿,从理论到实践,在接近两个星期的日子里,可以说得是苦多于甜,在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,通过这次课程设计之后,一定把以前所学过的知识重新温故。
参考文献[1] 王迎旭等.单片机原理及及应用[M] 机械工业出版社.2012年[2] 龚建伟、熊光明等.Visual.c.Tubor.c串口通信[M][3] 康华光等.模拟电子技术第五版[M] 高等教育出版社2011年[4] 杜树春等.单片机C语言[M] 北京航空航天大学出版社附录一:系统仿真图附录二:源程序#include <reg51.h>bit flag2,flag3,flag5;sbit dht11 = P1^7;#define NUMBER 20//防止在与硬件通信时发生死循环的计数范围#define SIZE 5#define OK 1#define ERROR 0//函数的返回值表示读取数据是否成功OK 表示成功ERROR 表示失败void DHT11_Delay_10us(void);//延时10usvoid ceshiwenshidu(void);void xianshishidu(void);void xianshiwendu(void);unsigned char ReadValue(void);unsigned char DHT11_ReadTempAndHumi(void);void delay_1_002s(void);void delay(unsigned char i);//延时程序void display(unsigned char led0,led1,led2,led3);//动态扫描显示程序unsigned char keyscan(void);//键盘扫描unsigned char status;//#define uchar unsigned char//#define uint unsigned intunsigned char flag1,flag4;unsigned char led_code[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0x89}; /*共阳字型段码表,"0"--"F","-",“H”*/unsigned char led0,led1,led2,led3;unsigned char value_array[5];//存放五字节数据的数组unsigned char value_temp, value_humi;void DHT11_Delay_10us(void){unsigned char i;i--;i--;i--;i--;i--;i--;}/*读一个字节的数据*/unsigned char DHT11_ReadValue(void){unsigned char count, value = 0, i;status = OK;//设定标志为正常状态for(i = 8; i > 0; i--){//高位在先value <<= 1;count = 0;//每一位数据前会有一个50us 的低电平时间.等待50us 低电平结束while((dht11 == 0) && (count++ < NUMBER));if(count >= NUMBER){status = ERROR;//设定错误标志return 0;//函数执行过程发生错误就退出函数}//26-28us 的高电平表示该位是0,为70us 高电平表该位1DHT11_Delay_10us();DHT11_Delay_10us();DHT11_Delay_10us();//延时30us 后检测数据线是否还是高电平if(dht11 != 0){//进入这里表示该位是1value++;//等待剩余(约40us)的高电平结束while((dht11 != 0) && (count++ < NUMBER)){dht11 = 1;}if(count >= NUMBER){status = ERROR;//设定错误标志return 0;}}}return (value);}//读温度和湿度函数,读一次的数据,共五字节,读出成功函数返回OK, 错误返回ERROR unsigned char DHT11_ReadTempAndHumi(void){unsigned char i = 0, check_value = 0,count = 0;display(led0,led1,led2,led3);// EA = 0;dht11 = 0; //拉低数据线大于18ms 发送开始信号display(led0,led1,led2,led3); //需大于18 毫秒dht11 = 1; //释放数据线,用于检测低电平的应答信号//延时20-40us,等待一段时间后检测应答信号,应答信号是从机拉低数据线80us DHT11_Delay_10us();DHT11_Delay_10us();DHT11_Delay_10us();DHT11_Delay_10us();if(dht11 != 0) //检测应答信号,应答信号是低电平{ //没应答信号return ERROR;}else{ //有应答信号while((dht11 == 0)&&(count++ < NUMBER)); //等待应答信号结束if(count >= NUMBER) //检测计数器是否超过了设定的范围{dht11 = 1;return ERROR; //读数据出错,退出函数}count = 0;dht11 = 1; //释放数据线//应答信号后会有一个80us 的高电平,等待高电平结束while((dht11 != 0) && (count++ < NUMBER));if(count >= NUMBER){dht11 = 1;return ERROR; //退出函数}//读出湿.温度值for(i = 0; i < SIZE; i++){value_array[i]=DHT11_ReadValue();if(status == ERROR) //调用ReadValue()读数据出错会设定status 为ERROR{dht11 = 1;return ERROR;}//读出的最后一个值是校验值不需加上去if(i != SIZE - 1){ //读出的五字节数据中的前四字节数据和等于第五字节数据表示成功check_value += value_array[i];}} //end fordisplay(led0,led1,led2,led3);//在没用发生函数调用失败进行校验if(check_value == value_array[SIZE - 1]){value_humi = value_array[0];value_temp = value_array[2];dht11 = 1;return OK; //正确的读出dht11 输出的数据}else{return ERROR; //校验数据错}}}void delay_1_002s(void){unsigned char z,b,c;for(z=0;z<10;z++){for(b=0;b<160;b++){for(c=0;c<207;c++);}}}void delay(unsigned char x){unsigned char i,j;for(i=0;i<x;i++)for(j=0;j<120;j++);}void display(unsigned char led0,led1,led2,led3){P2=0xfe;P0=led_code[led0];delay(5);P2=0xfd;P0=led_code[led1];delay(5);P2=0xfb;P0=led_code[led2]&0x7f;delay(5);P2=0xf7;P0=led_code[led3];delay(5);P2=0xff;}unsigned char keyscan(void){unsigned char cord_l;cord_l=P3&0xf0;if(cord_l!=0xf0){display(led0,led1,led2,led3);if(cord_l!=0xf0){while(P3!=0xf0){P3=0xf0; //等待按键释放}return(cord_l);}return(0xf0);}}void ceshiwenshidu(void){unsigned char d;for(;flag4>0;flag4--){d=DHT11_ReadTempAndHumi();display(led0,led1,led2,led3);if(flag3==0){if(d==1){led0=16;led1=16;led2=16;led3=16;}}}flag4=1;}void xianshishidu(void){led0=17;led1=value_humi/10;led2=value_humi%10;led3=0;}void xianshiwendu(void){led0=12;led1=value_temp/10;led2=value_temp%10;led3=0;}void main(){unsigned char key;P3=0xf0;TMOD=0x01;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=0;delay_1_002s();display(led0,led1,led2,led3);while(1){display(led0,led1,led2,led3);key=keyscan();if(flag1==10){ceshiwenshidu();display(led0,led1,led2,led3);}switch(key){case 0xe0: flag4=2,ceshiwenshidu();break;//开始测试温湿度case 0xd0: xianshishidu(),flag5=1,flag2=0;break;//显示湿度case 0xb0: xianshiwendu(),flag5=1,flag2=1;break;//显示温度case 0x70: flag4=1,TR0=~TR0,flag3=~flag3,flag5=0;break;}}}void shishiceshi_T0(void) interrupt 1{TH0=0x3c;TL0=0xb0;flag1++;if(flag1==NUMBER){flag1=0;if(flag5==0){flag2=~flag2;}if(flag2==0){xianshishidu();}else{xianshiwendu();}}}电气与信息工程系课程设计评分表指导教师签名:________________日期:________________注:①表中标*号项目是硬件制作或软件编程类课题必填内容;②此表装订在课程设计说明书的最后一页。