温湿度测量仪课程设计报告1

合集下载

温湿度检测仪的设计报告

温湿度检测仪的设计报告

报告成绩电子电路综合实验设计报告设计题目:温湿度检测仪的设计学生姓名:学号:专业年级:指导教师:起止日期:2016年5月—2016年6月电气与信息工程学院2016年6月19日目录1 目的与意义---------------------------------------------------------------------------------------------- 12 设计要求------------------------------------------------------------------------------------------------- 13 方案设计------------------------------------------------------------------------------------------------- 13.1 方案一-------------------------------------------------------------------------------------------- 13.2 方案二------------------------------------------------------------------------------------------ 24 系统硬件设计------------------------------------------------------------------------------------------- 24.1 STC89C52主控电路--------------------------------------------------------------------------- 34.2 DTH11温湿度检测电路 ---------------------------------------------------------------------- 44.3 LCD1602液晶屏显示电路 ------------------------------------------------------------------- 55 系统软件设计------------------------------------------------------------------------------------------- 65.1 主程序程序流程图 ---------------------------------------------------------------------------- 65.2 温湿度检测程序 ------------------------------------------------------------------------------- 25.3 LCD1206显示程序 ---------------------------------------------------------------------------- 96 系统测试结果与分析-------------------------------------------------------------------------------- 116.1系统测试结果 -------------------------------------------------------------------------------- 116.2 系统结果分析 -------------------------------------------------------------------------------- 117 总结 ----------------------------------------------------------------------------------------------------- 11参考文献 -------------------------------------------------------------------------------------------------- 11附录 -------------------------------------------------------------------------------------------------------- 12附录A 系统实物图 ----------------------------------------------------------------------------- 12附录B 系统主程序 ------------------------------------------------------------------------------ 121 目的与意义温湿检测在仓库管理、生产制造、气象观测、科学研究、国防军事以及日常生活中有广泛的应用,传统的模拟式温湿度传感器一般都要设计信号调理电路并需要经过复杂的校准和标定过程,因此测量精度难以保证,且在线性度、重复度、互换性、一致性等方面往往不尽人意。

温湿度计实训报告

温湿度计实训报告

一、实训目的本次温湿度计实训的主要目的是通过对温湿度计的结构、原理、使用方法及注意事项的学习和实践,加深对温湿度计基本原理和实际应用的理解。

通过实训,学员能够掌握温湿度计的测量方法,提高在实际工作中对温湿度环境监测和控制的能力。

二、实训环境实训地点:XX学院物理实验室实训设备:温湿度计、实验台、温湿度控制装置、记录表格等实训时间:2023年X月X日至2023年X月X日三、实训原理温湿度计是用于测量环境温度和相对湿度的仪器。

根据测量原理的不同,温湿度计可以分为多种类型,如电子温湿度计、水银温度计配合湿度计、毛发湿度计等。

本次实训主要使用电子温湿度计,其工作原理基于温度传感器和湿度传感器的信号转换。

1. 温度传感器:常用的温度传感器有热敏电阻、热电偶等。

它们能够将温度变化转换为电信号,通过电子电路处理后显示温度值。

2. 湿度传感器:常用的湿度传感器有电容式湿度传感器、电阻式湿度传感器等。

它们能够将湿度变化转换为电信号,经过处理后显示相对湿度值。

四、实训过程1. 理论学习:首先,对温湿度计的基本原理、种类、结构及使用方法进行了详细的学习。

2. 仪器认识:在实训教师的指导下,对电子温湿度计进行了详细的观察和了解,包括仪器的组成部分、工作原理和操作方法。

3. 实际操作:- 温度测量:将温湿度计放置在已知温度的环境中,观察并记录显示的温度值,与实际温度进行对比,分析误差。

- 湿度测量:将温湿度计放置在已知湿度环境中,观察并记录显示的湿度值,与实际湿度进行对比,分析误差。

- 数据记录:将每次测量的温度和湿度值记录在实验表格中,以便后续分析和总结。

4. 结果分析:对实验数据进行整理和分析,比较不同测量条件下温湿度计的准确性和稳定性。

五、实训结果1. 温度测量:在室温条件下,温湿度计的测量结果与实际温度基本吻合,误差在可接受范围内。

2. 湿度测量:在相对湿度稳定的环境下,温湿度计的测量结果与实际湿度基本吻合,误差在可接受范围内。

温湿度测量实验报告

温湿度测量实验报告

温湿度测量实验报告引言温湿度是日常生活中非常重要的气象参数,对于环境舒适度、农业生产、工业生产等都有着重要的影响。

因此,准确测量温湿度成为了科研和工程领域的重要任务。

本实验旨在通过使用一种温湿度传感器来测量环境的温湿度,并分析其测量结果的准确性。

实验装置1.Arduino开发板2.DHT11温湿度传感器3.杜邦线若干4.计算机实验步骤1.连接电路:将DHT11传感器通过杜邦线连接到Arduino开发板上。

确保连接正确且稳固。

2.编写代码:使用Arduino开发环境编写代码,将DHT11传感器与Arduino开发板进行通信。

在代码中实现温湿度测量的功能。

3.上传代码:将编写好的代码上传到Arduino开发板上,确保代码能够正确运行。

4.测试测量:将Arduino开发板连接到计算机,并打开串口监视器。

通过串口监视器可以实时查看DHT11传感器测量得到的温湿度值。

5.对比验证:测量环境中的温湿度,并使用其他准确的温湿度测量仪器进行对比,验证DHT11传感器的测量准确性。

6.记录测量结果:将DHT11传感器测量得到的温湿度值以及其他准确测量仪器的测量结果记录下来,方便后续分析和比较。

7.数据分析:将DHT11传感器测量得到的温湿度值与其他准确测量仪器的测量结果进行比较和分析,探究DHT11传感器的测量误差范围和稳定性。

8.结果讨论:根据数据分析的结果,讨论DHT11传感器的测量准确性以及在实际应用中的可靠性。

9.结论总结:总结实验结果,提出改进传感器测量准确性的建议,并展望未来温湿度测量技术的发展方向。

结果与讨论通过对DHT11传感器的实际测量以及与其他准确测量仪器的对比验证,我们得到了以下结果和结论: 1. DHT11传感器在一定范围内的温湿度测量结果与其他准确测量仪器基本吻合,具有较高的测量准确性。

2. 随着测量温度和湿度的增加,DHT11传感器的测量误差会逐渐增大,尤其是在极端的高温高湿环境中。

湿度的测量实验报告(3篇)

湿度的测量实验报告(3篇)

第1篇实验名称湿度测量实验实验日期2023年4月10日实验地点XX大学物理实验室实验目的1. 理解湿度的概念及其重要性。

2. 掌握湿度测量的基本原理和方法。

3. 熟悉常用湿度测量仪器的操作和性能。

4. 通过实验数据,分析不同环境下湿度的变化规律。

实验原理湿度是指空气中水蒸气的含量,通常以绝对湿度、相对湿度和露点温度来表示。

绝对湿度是单位体积空气中所含水蒸气的质量,相对湿度是空气中实际水蒸气分压力与同温度下饱和水蒸气分压力的百分比,露点温度是空气中的水蒸气开始凝结成露水的温度。

实验器材1. 干湿球温度计2. 湿度计3. 恒温恒湿箱4. 数据采集器5. 计算器6. 实验记录表实验步骤1. 准备工作:检查实验器材的完好性,确保数据采集器的功能正常。

2. 环境测量:在实验室内使用干湿球温度计和湿度计分别测量空气的温度和湿度,记录数据。

3. 恒温恒湿箱测试:将恒温恒湿箱设置为特定温度和湿度,放入干湿球温度计和湿度计,待稳定后记录数据。

4. 数据采集:使用数据采集器对实验环境进行实时监测,记录一定时间内的湿度变化数据。

5. 数据分析:对采集到的数据进行整理和分析,绘制湿度随时间的变化曲线。

实验结果1. 环境湿度测量:实验室内相对湿度为45%,温度为25℃。

2. 恒温恒湿箱测试:设置温度为20℃,相对湿度为50%,实验过程中湿度稳定在设定值。

3. 数据采集:通过数据采集器,记录了实验室内湿度在一天内的变化情况,发现湿度在早晨和晚上较高,中午较低。

4. 数据分析:根据实验数据,绘制了湿度随时间的变化曲线,发现湿度变化呈周期性,与室内外环境因素有关。

实验结论1. 通过本次实验,掌握了湿度测量的基本原理和方法。

2. 熟悉了常用湿度测量仪器的操作和性能。

3. 通过实验数据,分析了不同环境下湿度的变化规律,为实际应用提供了参考。

实验讨论1. 实验过程中,湿度变化与室内外环境因素有关,如温度、风速、湿度等。

2. 湿度对人类生活、工业生产等具有重要意义,因此准确测量和控制湿度至关重要。

温湿度检测仪实训报告

温湿度检测仪实训报告

#### 一、实训背景随着我国科技水平的不断提高,温湿度检测技术在各个领域中的应用日益广泛。

为了提高学生对温湿度检测仪器的操作技能和理论知识,我系信息工程系组织开展了温湿度检测仪实训。

本次实训旨在使学生了解温湿度检测仪器的原理、结构、性能及其在实际应用中的重要性。

#### 二、实训目的1. 掌握温湿度检测仪器的原理和结构;2. 学会使用温湿度检测仪器进行实际测量;3. 了解温湿度检测仪器在各个领域的应用;4. 提高学生动手操作能力和团队协作能力。

#### 三、实训内容本次实训主要分为以下几个部分:1. 理论学习:介绍温湿度检测仪器的原理、结构、性能及其在实际应用中的重要性。

2. 实验操作:学习使用温湿度检测仪器进行实际测量,包括环境温度、相对湿度、露点温度等参数的测量。

3. 数据分析:对测量数据进行处理和分析,得出结论。

4. 交流讨论:分享实训过程中的心得体会,交流学习经验。

#### 四、实训过程1. 理论学习在实训开始前,指导老师首先介绍了温湿度检测仪器的原理、结构、性能及其在实际应用中的重要性。

通过讲解,学生们对温湿度检测仪器有了初步的认识。

2. 实验操作实验过程中,学生们按照指导老师的步骤,学习使用温湿度检测仪器进行实际测量。

首先,对仪器进行校准,确保测量数据的准确性。

然后,分别测量环境温度、相对湿度、露点温度等参数,并记录数据。

3. 数据分析实验结束后,学生们对测量数据进行处理和分析。

通过对比不同测量点的数据,分析温湿度变化规律,得出结论。

4. 交流讨论实训过程中,学生们分享了实训心得体会,交流学习经验。

通过讨论,学生们对温湿度检测仪器有了更深入的了解。

#### 五、实训成果1. 学生们掌握了温湿度检测仪器的原理、结构、性能及其在实际应用中的重要性;2. 学生们学会了使用温湿度检测仪器进行实际测量,并能够处理和分析测量数据;3. 学生们的动手操作能力和团队协作能力得到了提高。

#### 六、实训总结本次温湿度检测仪实训取得了圆满成功。

测试技术课程报告-温湿度检测仪

测试技术课程报告-温湿度检测仪
对数 放 大 器 由 晶 体 管2N1711,C1和 运 放L F347N构成。2N1711的发射极电压( UBE)与集电极电流呈对数关系 ,其表达式为UBE =k T/q·ln(IC/IS)式中 , k 为波尔兹曼常数 , k = 8163 ×10 - 5qV/ K, q为电子电量 , T 为热力学温度( K) , IS 为晶体管反向饱和电流。对数放大器用来补偿湿敏电阻的指数曲线 ,使之近似于线性关系。湿敏电阻的电阻值与相对湿度的关系式可近似表示为:R = me- RH (3)式中的 m 为一变量 ,RH 代表相对湿度。令2N1711在方波信号的正半周 , U01 = + 8V ,使1N4150截止 , UDD途经湿敏电阻、 求和点A ,接2N1711 的集电极 ,再利用2N1711对 IRH求对数。因 IC1c作反相放大器使用 ,故 U02输出的是负向方波信号。在负半周时 ,U01 = - 8V ,使1N1450导通 ,对数放大器不工作。因此 ,对数放大器兼有半波整波作用。U02送至L F347N的反相输入端。由L F347N和电位器 RP1、 RP2 组成的相对湿度校准电路。其中 ,RP1 用以校准 40 %RH的刻度 ,RP2 则用来校准 100 %RH的刻度。校准后的信号通过滤波电容( C1)得到直流信号 ,再经过输出放大器L F347(2) 反相放大 ,获得输出电压,在经过分压电路,获得0~10V的电压,方便数据传入labview。
特性参数如下图6所示:
图6
4.2.5
2N1711具有实时性,高可靠性和低电压通过的特性,5V脉冲相对地线为正极性;基极施加脉冲宽度稍小,晶体管最大电流限制在0.5A。
特性参数如下图7所示:
图7
4.2.6
LM385为微功率二端带隙稳压器二极管。设计工作与10微安到20毫安的宽电流范围具有低动态阻抗,低噪声以及随时间和温度稳定工作的特点。通过內微调可以实现严格的电压误差。适用于变化范围很大的电源和具有优异调整功能的应用场合。非常低的工作电流使这些期间非常适合用于微功率电路,如便携仪器、稳压器和其他需要拓展电池寿命的模拟电路。温度范围从0℃到70℃。工作电流从10微安至20毫安;1.0%、1.5%、2.0%&3.0%初始容限级别;低温度系数;1.0欧姆动态阻抗。

温湿度测量仪课程设计报告1

温湿度测量仪课程设计报告1

课程设计报告题目:简易温湿度测量仪目录一、设计目的 (2)二、设计器材清单 (2)三、任务要求 (2)1.基本要求 (2)2.发挥部分 (2)四、方案论证 (2)1.采集传感器数据方案 (2)2.键盘扫描方案 (2)3.设置上下限方案 (2)4.显示方案 (2)5.语言选择方案 (3)五、电路与程序设计 (3)1.温湿度采集电路的设计 (3)2.报警电路的设计 (4)3.液晶显示设置 (4)六、测试方案与测试结果 (4)1.测试方案与测试条件 (4)1)硬件测试方案 (4)2)软件测试方案 (5)3)综合测试方案 (5)2.测试结果及其完整性 (5)3测试结果分析 (5)1)硬件结果 (6)2)软件结果 (6)七、实现的功能 (6)八、心得体会 (6)九、参考文献 (6)附录:源程序代码 (7)设计原理图 (18)一:设计目的1、提高对单片机的工作原理的认识。

熟悉相关控制程序。

2、了解传感器的工作原理,学习相关电路知识。

3、通过综合设计,进一步提高动手能力。

二:设计器材AT89C51单片机学习板一个,USB线一根,DHT11传感器一个,蜂鸣器一个,LCD1602液晶显示屏一块,PNP三极管一个,5.1千欧和4.7千欧电阻各一个,插针和杜邦线若干。

三:任务要求利用51学习板和DHT11设计并制作数字式温湿度测量仪。

1. 基本要求1)测量空气温湿度2)通过数码管显示温度和湿度,显示位数精确到个位,要求观察时无闪烁;3)设置温度和湿度的上下限,通过蜂鸣器报警;4)将温度和湿度单位显示在数据后面,温度C、湿度%RH;2. 发挥部分1)温度和湿度报警以不同的声音,并闪烁显示告警项。

2)使用按键来设置上下限,并显示。

3)实现摄氏度与华氏度的转换。

4)采用液晶1602或者12864来显示温湿度情况。

5)其它(如进一步扩展量程和提高精度(显示小数),自动量程转换等)。

四:方案论证采集传感器数据方案通过DHT11直接采集数据,然后进行数据处理。

温湿度实验报告

温湿度实验报告

温湿度实验报告温湿度实验报告一、引言温湿度是日常生活中常常接触到的两个重要的物理量,对于人体的舒适度和健康状况有着重要的影响。

为了更好地了解温湿度的变化规律及其对人体的影响,我们进行了一系列的温湿度实验。

二、实验目的本次实验的目的是研究温湿度对人体的影响,并通过实验数据分析温湿度的变化规律,为人们提供舒适的生活环境提供参考。

三、实验方法1. 实验仪器与材料本次实验使用的仪器有温湿度计、温湿度记录仪等。

实验材料包括室内空气、室外空气、水等。

2. 实验步骤(1)选择不同的室内和室外环境进行实验,包括室内温湿度较高、室内温湿度适中、室外温湿度较高等。

(2)使用温湿度计测量不同环境的温湿度,并记录数据。

(3)将温湿度记录仪放置在实验环境中,连续记录一段时间的温湿度数据。

(4)根据实验数据进行分析和总结。

四、实验结果与讨论通过实验记录的数据,我们发现温湿度对人体有着明显的影响。

在高温高湿的环境中,人体容易感到闷热、粘腻,容易出汗,体力活动能力下降,甚至会引发中暑等问题。

而在低温低湿的环境中,人体容易感到寒冷,皮肤干燥,容易出现口干舌燥、喉咙痛等不适症状。

此外,我们还观察到温湿度对室内空气质量的影响。

在高温高湿的环境中,空气中的湿度过高,容易滋生细菌、霉菌等微生物,增加呼吸道感染的风险。

而在低温低湿的环境中,空气中的湿度过低,容易导致皮肤干燥、鼻腔不适等问题。

针对上述问题,我们可以通过调节室内温湿度来改善生活环境。

在高温高湿的环境中,可以通过使用空调、电扇等降低室内温度和湿度;在低温低湿的环境中,可以通过加湿器等设备提高室内湿度。

五、结论通过本次实验,我们得出了以下结论:1. 温湿度对人体舒适度和健康状况有着重要的影响。

2. 高温高湿的环境容易引发中暑等问题,低温低湿的环境容易导致皮肤干燥等不适症状。

3. 调节室内温湿度可以改善生活环境,提高人体舒适度和健康状况。

六、实验感想通过本次实验,我们深刻认识到温湿度对人体的重要性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告题目:简易温湿度测量仪目录一、设计目的 (2)二、设计器材清单 (2)三、任务要求 (2)1.基本要求 (2)2.发挥部分 (2)四、方案论证 (2)1.采集传感器数据方案 (2)2.键盘扫描方案 (2)3.设置上下限方案 (2)4.显示方案 (2)5.语言选择方案 (3)五、电路与程序设计 (3)1.温湿度采集电路的设计 (3)2.报警电路的设计 (4)3.液晶显示设置 (4)六、测试方案与测试结果 (4)1.测试方案与测试条件 (4)1)硬件测试方案 (4)2)软件测试方案 (5)3)综合测试方案 (5)2.测试结果及其完整性 (5)3测试结果分析 (5)1)硬件结果 (6)2)软件结果 (6)七、实现的功能 (6)八、心得体会 (6)九、参考文献 (6)附录:源程序代码 (7)设计原理图 (18)一:设计目的1、提高对单片机的工作原理的认识。

熟悉相关控制程序。

2、了解传感器的工作原理,学习相关电路知识。

3、通过综合设计,进一步提高动手能力。

二:设计器材AT89C51单片机学习板一个,USB线一根,DHT11传感器一个,蜂鸣器一个,LCD1602液晶显示屏一块,PNP三极管一个,5.1千欧和4.7千欧电阻各一个,插针和杜邦线若干。

三:任务要求利用51学习板和DHT11设计并制作数字式温湿度测量仪。

1. 基本要求1)测量空气温湿度2)通过数码管显示温度和湿度,显示位数精确到个位,要求观察时无闪烁;3)设置温度和湿度的上下限,通过蜂鸣器报警;4)将温度和湿度单位显示在数据后面,温度C、湿度%RH;2. 发挥部分1)温度和湿度报警以不同的声音,并闪烁显示告警项。

2)使用按键来设置上下限,并显示。

3)实现摄氏度与华氏度的转换。

4)采用液晶1602或者12864来显示温湿度情况。

5)其它(如进一步扩展量程和提高精度(显示小数),自动量程转换等)。

四:方案论证采集传感器数据方案通过DHT11直接采集数据,然后进行数据处理。

1、键盘扫描方案采用扫描的办法,把扫描函数放在一个死循环里,然后一直扫描按键的按下与否,如按下则执行相应的运用。

2、设置上下限方案通过一个按键进入上下限设置模式,然后用八个四组按键分别对温湿度的上下限进行设置。

3、显示方案采用液晶显示,功耗低,延时小,显示相对较为清晰。

4、语言选择方案采用C语言进行程序的编写,C语言相对汇编语言比较简单易懂。

五:电路与程序设计1.温湿度采集电路的设计DHT11引脚说明:Pin 名称注释1 VDD 供电3-5.5VDC2 DATA 串行数据,单总线3 NC 空脚,请悬空4 GND 接地,电源负极根据引脚说明,连接线长度短于20米时用5K上拉电阻,因此采集电路如图所示:2.报警电路的设计:当温湿度超过上下限时,蜂鸣器中断报警开始,4个LED灯开始闪烁,蜂鸣器开始报警。

3.液晶显示设置:六、测试方案与测试结果1、测试方案及测试条件1)硬件测试方案:我们首先用了面包板来做硬件测试,当运行最后的程序时,硬件的连法是正确的,这时再焊到板子上。

2)软件测试方案:我们的程序是一块一块添加上去的,第一次都是单独测试它的运行无误后,再添加到整个模块里面。

最后的程序是通过仔细观察各种极限情况的执行的效果来分析其好坏。

3)综合测试方案:我们是在室温下和天气预报的温湿度数据对比来看准不准确。

再通过用电吹风加热吹干的方法鉴别其灵敏度。

2.测试结果及其完整性a:在keilC里按编译运行后没有任何错误和警告,点run后,很快会显示温湿度,数值准确。

b:此时按下K0键,进入温湿度正常显示模式。

c:此时按下K1键,上下限显示。

.d:此时按下K2键,华氏度显示.e:此时按下K4键,湿度上限+1,按下K8键,湿度上限-1.f:此时按下K5键,湿度上限+1,按下K9键,湿度上限-1.g:此时按下K6键,温度上限+1,按下KA键,温度上限-1.h:此时按下K7键,温度下限+1,按下KB键,温度下限-1.综合分析,设计完整可靠。

3.测试结果分析1)硬件结果:能正确显示和更新温湿度,表明采集电路没问题。

当超限时能发出响亮的报警声音,表示报警电路没问题。

2)软件结果:a:能正确显示和更新温湿度,反应灵敏无闪烁,表示采集子程序和显示子程序良好。

b:当按下按键时能快速做出反应,也不会很快出现连续输入,表明按键扫描和处理子程序良好。

c:当设置上下限后,只是超出当前温湿度,才会报警,表明报警子程序设计良好。

d:当按温度模式转换键后,总会来回转换,表明模式转换子程序运行良好。

七:实现的功能1.测量环境温湿度, 通过液晶屏显示温度和湿度,显示位数精确到个位,并显示单位。

. 2.摄氏和华氏温度能够来回转换。

3.在进入设置时,能够显示当前系统设定的限值。

4.报警能够同时通过蜂鸣器报警还是LED灯报警。

八:心得体会经过了三周多的时间,我们终于成功做出了温湿度测量仪,在这期间从毫无头绪到慢慢理出思路,我们查阅了很多资料,也问了很多同学老师朋友,才能成功做出这个测量仪,实在是感触颇多。

在这期间不但要学会团队合作精神,要有包容的心态,还要能虚心请教,用心思考,耐心查错,也要不断地从失败中总结经验教训。

程序的软硬设计是我们最大的难题。

本来对于单片机以及C语言并不怎么精通的我们算是遇到的很多障碍。

一开始试着在网络上搜索原理图和程序,搜到了却看不懂,一条一条指令去查,去问,一条一条试着运行,终于琢磨出了大概的框架。

慢慢掌握了指令的用法之后,编程序变得比较得心应手,也是在那一段比较艰难的时光里唯一让我们觉得离成功更近一步了的喜悦感。

纸上谈兵是有了足够的资本了,但实际焊接电路的时候又遇到了很多问题。

我们都不是第一次焊电路了,但依然存在很多老问题,比如虚焊啊,比如没有事先规划好元器件的排列啊,总之是吃足了苦头,还好最后静下心来,一点一点规划好步骤,在万无一失的前提下终于焊好了电路。

值得一提的是,一开始我们的分工就很明确,有人负责设计、编程、焊接、测试、记录、报告。

在这样合理的安排下我们以比想象快的速度完成了这次实验,也算是之前的各种离谱错误里边唯一有先见之明的安排了。

希望在今后的学习过程中,我们能继续秉承着这种良好的学习习惯,继续不断地进取,不断地提升自我!通过这次课程设计,我们小组也进步很多。

主要从几个方面有了很大的成长。

硬件方面:对传感器和放大器又有了进一步的了解,知道了PNP和NPN的区别。

有源蜂鸣器和无源蜂鸣器的区别。

软件方面:第一次将汇编语言和实际结合起来,做了一个完整的有运用价值的程序,对汇编语言更加熟悉。

由于单片机的内存有限,就对程序的有效性要求很高,这对自己的编程效率都有很大改善。

实践方面:通过查找资料,设计电路,找元件。

到班级元件清单的购买和确认,都对自己对单片机等材料的熟悉和了解有了更深刻的认识。

从最开始的在面包板上实现功能的调试成功到焊接在电路板上都经历了不晓得挑战,当我们这一组的小伙伴们都成功运行了的时候我们都得到了锻炼。

通过综合设计,硬件和软件的排错能力也提高很多。

实践本来就是我们最薄弱的环节,我们有了这样的锻炼真的很感谢本次的课程设计。

九:参考文献[1] 胡汉才单片机原理及其接口技术清华大学出版社[2]李朝青单片机原理及接口技术. 北京航空航天大学出版社,2005[3]马忠梅等单片机的C语言应用程序设计(第4版),2007[4]江世明基于Proteus的单片机应用技术. 电子工业出版社,2009[5]彭伟单片机C语言程序设计实训100例. 电子工业出版社,2009[6]张毅刚新编MCS-51单片机应用设计(第3版) 哈尔滨工业大学出版社2008[7]LCD1602、DHT11数据手册源程序代码#include<regx51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar code table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x20};uchar code shidu_str_temp[]={"shi:"};uchar code wendu_str_temp[]={"wen:"};uchar code shidu_danwei[]={"%RH"};uchar ts, tg, tx, rhs, rhg, rhx,ftb,fts,ftg,ftx;uchar U8FLAG;uchar U8count,U8temp;uchar U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata; ucharU8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8c heckdata_temp;uchar U8comdata;uchar U8ALarm_temp_RHHL[2]={90,20};uchar U8ALarm_temp_THL[2]={23,16};uint Time0_Count=0;uint U16F;uchar keyflag=0;sbit keysn=P1^3;sbit DHT=P1^4; //DHT通信端口sbit wela=P1^1;sbit dula=P1^0;sbit beep=P3^6; //蜂鸣器端口sbit Led_ce=P1^2;sbit Led_D3= P0^7;sbit Led_D2= P0^6;sbit Led_D1=P0^5;sbit Led_D0=P0^4;bit HT_ALarm=0; //高温标志bit LT_Alarm=0; //低温标志bit RHH_ALarm=0; //高湿度标志bit RHL_ALarm=0; //低湿度标志sbit RS=P1^5;sbit RW=P1^6;sbit E=P1^7;void display();void disp_alarm_temp() ;void disp_fs() ;void Delay(uint j) //(j/10)ms{uchar i;for(;j>0;j--){for(i=0;i<27;i++);}}void Delay_5us(void) //5us {uchar i;i--;i--;i--;i--;i--;i--;}//串行总线void keyscan() //键盘扫描函数{uchar a,b,d,keynum;for(d=0;d<4;d++){P0=0;dula=1;dula=0;P0=_crol_(0xfe,d);wela=1;wela=0;keysn=0;a=P0&0x0f;if(a!=0x0f){Delay(100);b=P0&0x0f;if(a==b){switch(b){case 0x0e:keynum=0+4*d;keyflag=keynum;if(keynum==4) //上限加{U8ALarm_temp_RHHL[0]++;Delay(500);disp_alarm_temp();}if(keynum==8) //上限减{U8ALarm_temp_RHHL[0]--;Delay(500);disp_alarm_temp();}break;case 0x0d:keynum=1+4*d;keyflag=keynum;if(keynum==1){disp_alarm_temp();}if(keynum==5){U8ALarm_temp_RHHL[1]++;Delay(500);disp_alarm_temp();}if(keynum==9){U8ALarm_temp_RHHL[1]--;Delay(500);disp_alarm_temp();}break;case 0x0b:keynum=2+4*d;keyflag=keynum;if(keynum==2){disp_fs();}if(keynum==6){U8ALarm_temp_THL[0]++;Delay(500);disp_alarm_temp();}if(keynum==10){U8ALarm_temp_THL[0]--;Delay(500);disp_alarm_temp();}break;case 0x07:keynum=3+4*d;keyflag=keynum;if(keynum==7){U8ALarm_temp_THL[1]++;Delay(500);disp_alarm_temp();}if(keynum==11){U8ALarm_temp_THL[1]--;Delay(500);disp_alarm_temp();}break;default:break;}}while(P0&0x0f!=0x0f); //按键释放检测}keysn=1;}}void COM(void) //bit读取{uchar i;for(i=0;i<8;i++){U8FLAG=2;while((!DHT)&&U8FLAG++);Delay_5us();Delay_5us();Delay_5us();U8temp=0;if(DHT)U8temp=1;U8FLAG=2;while((DHT)&&U8FLAG++);//----------------------//超时则跳出for循环if(U8FLAG==1)break;//判断数据位是0还是1// 如果高电平高过预定0高电平值则数据位为1U8comdata<<=1; //DHT11数据是从高位开始传的,于是用左移,进行数据处理U8comdata|=U8temp; //0}//rof}void shuju(){rhs=U8RH_data_H%100/10;//湿度的十位rhg=U8RH_data_H%10; //湿度个位rhx=U8RH_data_L%100/10;//湿度小数ts=U8T_data_H%100/10;tg=U8T_data_H%10;tx=U8T_data_L%100/10;U16F=320+180*ts+18*tg; //( (ts*10+tg ) *1.8 +32 ) *10= (ts*10+tg )if(U16F>=1000){ftb=U16F/1000;fts=U16F/100%10;ftg=U16F/10%10;}if(U16F<1000){ftb=10;fts=U16F/100;ftg=U16F/10%10;}ftx=U16F%10;RHH_ALarm=((rhs*10)+rhg)>= U8ALarm_temp_RHHL[0] ? 1:0; RHL_ALarm=((rhs*10)+rhg)<= U8ALarm_temp_RHHL[1] ? 1:0; HT_ALarm=((ts*10)+tg)>= U8ALarm_temp_THL[0] ? 1:0;LT_Alarm=((ts*10)+tg)<= U8ALarm_temp_THL[1] ? 1:0;}void write_com(uchar com) //写指令{RS=0;P2=com;Delay(50);E=1;Delay(50);E=0;}void write_data(uchar date) //写数据{RS=1;RW=0;P2=date;Delay(50);E=1;Delay(50);E=0;}void init() //1602液晶屏初始化{wela=0;dula=0;P0=0x00;E=0;write_com(0x38);write_com(0x0e);write_com(0x06);write_com(0x01);write_com(0x80);Delay(150);write_com(0x38);Delay(50);write_com(0x38);Delay(50);write_com(0x38);}void set_led_pos(uchar pos)//设置显示位置{write_com( pos|0x80);}void display() //lcd1602显示{uchar i;set_led_pos(0x00);for(i=0;i<4;i++){write_data(shidu_str_temp[i]);}set_led_pos(0x40);for(i=0;i<4;i++){write_data(wendu_str_temp[i]);}set_led_pos(0x08);for(i=0;i<3;i++){write_data(shidu_danwei[i]);}set_led_pos(0x04);write_data(table[rhs]); set_led_pos(0x05);write_data(table[rhg]); set_led_pos(0x06);write_data('.');set_led_pos(0x07);write_data(table[rhx]); set_led_pos(0x44);write_data(table[ts]); write_data(table[tg]);write_data('.');write_data(table[tx]);write_data(0xdf);write_data('C');}void disp_fs() //华氏度转换{uchar i;set_led_pos(0x00);for(i=0;i<4;i++){write_data(shidu_str_temp[i]);}set_led_pos(0x04);write_data(table[rhs]);set_led_pos(0x05);write_data(table[rhg]);set_led_pos(0x06);write_data('.');set_led_pos(0x07);write_data(table[rhx]);set_led_pos(0x08);for(i=0;i<3;i++){write_data(shidu_danwei[i]);}set_led_pos(0x40);for(i=0;i<4;i++){write_data(wendu_str_temp[i]);}set_led_pos(0x44);write_data(table[ftb]);set_led_pos(0x45);write_data(table[fts]);set_led_pos(0x46);write_data(table[ftg]);set_led_pos(0x47);write_data('.');set_led_pos(0x48);write_data(table[ftx]);set_led_pos(0x49);write_data('F');}void disp_alarm_temp() //上下限显示{uchar i;set_led_pos(0x00);for(i=0;i<4;i++){write_data(shidu_str_temp[i]);}set_led_pos(0x04);write_data(table[ U8ALarm_temp_RHHL[0]/10]);set_led_pos(0x05);write_data(table[ U8ALarm_temp_RHHL[0]%10]);set_led_pos(0x06);write_data(',');set_led_pos(0x07);write_data(table[U8ALarm_temp_RHHL[1]/10]);set_led_pos(0x08);write_data(table[U8ALarm_temp_RHHL[1]%10]);write_data(0x20); write_data(0x20);set_led_pos(0x40);for(i=0;i<4;i++){write_data(wendu_str_temp[i]);}set_led_pos(0x44);write_data(table[ U8ALarm_temp_THL[0]/10]);set_led_pos(0x45);write_data(table[ U8ALarm_temp_THL[0]%10]);set_led_pos(0x46);write_data(',');set_led_pos(0x47);write_data(table[U8ALarm_temp_THL[1]/10]);set_led_pos(0x48);write_data(table[U8ALarm_temp_THL[1]%10]);write_data(0x20);}void T0_INT() interrupt 1 //蜂鸣器中断报警{Led_ce=0;TH0=(65535-1000)/256;TL0=(65535-1000)%256;beep=~beep;if(++Time0_Count==500){Time0_Count=0;if(RHH_ALarm==1) Led_D3=~Led_D3;else Led_D3=0;if(RHL_ALarm==1) Led_D2=~Led_D2;else Led_D2=0;if (HT_ALarm==1) Led_D1=~Led_D1;else Led_D1=0;if(LT_Alarm==1) Led_D0=~Led_D0;else Led_D0=0;TR0=0;}}void RH(void) //byte读取{//主机拉低18msDHT=0;Delay(180);DHT=1;//总线由上拉电阻拉高主机延时20usDelay_5us();Delay_5us();Delay_5us();Delay_5us();//主机设为输入判断从机响应信号DHT=1;//判断从机是否有低电平响应信号如不响应则跳出,响应则向下运行if(!DHT) //T !{U8FLAG=2;//////////////////////////////////////////////////// //判断从机是否发出80us 的低电平响应信号是否结束while((!DHT)&&U8FLAG++);U8FLAG=2;//判断从机是否发出80us 的高电平,如发出则进入数据接收状态while((DHT)&&U8FLAG++);//数据接收状态COM();U8RH_data_H_temp=U8comdata;COM();U8RH_data_L_temp=U8comdata;COM();U8T_data_H_temp=U8comdata;COM();U8T_data_L_temp=U8comdata;COM();U8checkdata_temp=U8comdata;DHT=1;//数据校验U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_ L_temp);if(U8temp==U8checkdata_temp){U8RH_data_H=U8RH_data_H_temp;U8RH_data_L=U8RH_data_L_temp;U8T_data_H=U8T_data_H_temp;U8T_data_L=U8T_data_L_temp;U8checkdata=U8checkdata_temp;}//fi}//fi}void main(){P1=0x0c;Led_ce=0;P1=0xf0;init();Delay(50);ET0=1;ET1=1;EA=1;TMOD=0x01;TH0=(65535-1000)/256; TL0=(65535-1000)%256; TR0=0;while(1){RH();shuju();keyscan();switch(keyflag){case 0:display();if((RHH_ALarm==1||RHL_ALarm==1)||(HT_ALarm==1||LT_Alarm==1))TR0=1;elseTR0=0;}}}设计原理图:。

相关文档
最新文档