基于51单片机的温湿度与时钟显示器本科论文

合集下载

基于51单片机的数字温湿度计设计与实现毕业论文

基于51单片机的数字温湿度计设计与实现毕业论文

摘要:温度和湿度是两个最基本的环境参数,人们生活与温湿度息息相关。

在日常生活、工业、医学、环境保护、化工、石油等领域,经常需要对环境温度和湿度进行测量和控制。

准确测量温湿度在生物制药、食品加工、造纸等行业更是至关重要。

因此研究温湿度的测量方法和装置具有重要的意义。

随着科技的不断发展,单片机技术已经普及到我们生活、工作、科研等各个领域,已经成为一种比较成熟的技术。

由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列有点,目前已经渗入到人们工作和生活的方方面面。

本论文介绍了一种以单片机AT89C51为主要控制器件,以DHT11为数字温湿度传感器的新型数字温湿度计。

本设计主要包括硬件电路的设计和系统软件的设计、硬件电路主要包括主控制器,测量温湿度控制电路和显示电路等。

关键词:温湿度传感器;LCD1602;protel;keil 软件Digital Thermometer and humidity Based onSingle Chip MicrocomputerAbstract :Temperature and humidity are the two most basic environmental parameters, which are closely related to people's lives and the temperature and humidity. Temperature and humidity measurement and control are often needed to ambient in the field of daily life, industry, medicine, environmental protection, chemical, petroleum, etc.,. Accurate measurement of temperature and humidity in the pharmaceutical, food processing, paper industry is essential. Therefore, studying the temperature and humidity measurement methods and devices is of great significance.This paper describes a microcontroller AT89S52 control devices, digital temperature and humidity sensors to DHT11 new digital hygrometer. The design includes the design of hardware circuits and system software design, hardware circuit includes a master controller, the measurement of temperature and humidity control circuit and display circuit. DHT11 is a composite Sensor contains a calibrated digital signal output of the temperature and humidity. Application of a dedicated digital modules collection technology and the temperature and humidity sensing technology, to ensure that the product has a Song high reliability and excellent long-term stability. Display circuit LCD1602 LCD display, 8-bit microprocessor interface, mapped by the internal 80 ×8-bit DDRAM 2 line x 16 character display, convenient and intuitive. The software part includes the main program, the measured temperature and humidity subroutine to display subroutine. The digital hygrometer with DHT11 with AT89S52 not only has the simple external circuit, but also facilitate debugging and simulation.Keywords:Temperature and humidity sensor; the LCD1602; protell; keil software目录1 绪论 (1)1.1 选题意义 (1)1.2 国内外发展趋势 (1)2 温湿度计的发展 (3)2.1 温度计的发展史 (3)2.2 湿度测量方法 (3)3 开发工具keil和protel (5)3.1 Keil C51 (5)3.1.1 keil 软件简介 (5)3.1.2 建立一个C项目 (5)3.1.3 如何生成.HEX文件 (10)3.2 protel软件 (12)3.2.1 软件简介 (12)3.2.2 功能特点 (12)3.2.3 设计环境 (13)3.2.4 电路原理图设计流程 (14)3.2.5 protel基本操作 (14)3.3 本章小结 (18)4 系统方案设计 (19)4.1 系统设计 (19)4.2 方案论证 (19)4.2.1 主控制器芯片 (19)4.2.2 温湿度采集模块 (22)4.2.3 显示模块 (28)4.3 本章小结 (30)5 硬件电路设计 (31)5.1 复位电路设计 (31)5.2 时钟电路设计 (31)5.3 显示模块电路设计 (32)5.4 温湿度采集模块设计 (33)5.5 电源选择 (33)5.6 本章小结 (34)6 软件设计及联合调试 (35)6.1 设计思路与流程图 (35)6.1.1 主程序设计 (35)6.1.2 LCD1602液晶驱动流程图 (36)6.2 程序的设计 (36)6.3 联合调试 (42)6.4 本章小结 (42)结论 (43)参考文献 (44)致谢 (45)1 绪论1.1 选题意义随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而迅速的获得这些参数就需要受制于现代信息基础的发展水平、在三大信息采集、信息传输和信息处理中,传感器属于信息技术的前沿尖端产品,尤其是温湿度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域。

(完整版)基于51单片机的温湿度检测控制系统本科生学士学位毕业论文

(完整版)基于51单片机的温湿度检测控制系统本科生学士学位毕业论文

摘要本次设计是采用MSC-51系列单片机中的AT89S51和DHT11构成的低成本的温湿度的检测控制系统。

单片机AT89S51是一款低消耗、高性能的CMOS8位单片机,由于它强大的功能和低价位,因此在很多领域都是用它。

DHT11温湿度传感器是一款含有已校准数字输出的温湿度复合传感器,传感器包括一个电阻式感湿原件和一个NTC测温元件,该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。

设计主要包括硬件电路的设计和系统软件的设计。

硬件电路主要包括单片机、温湿度传感器、显示模块、报警器以及控制设备等5部分。

其中由DHT11温湿度传感器及1602字符型液晶模块构成系统显示模块;测温湿度控制电路由温湿度传感器和预设温度值比较报警电路组成;用户根据需要预先输入预设值,当实际测量的温湿度不符合预设的温湿度标准时,发出报警信号(蜂鸣器蜂鸣),启动相应控制。

软件部分包括了主程序、显示子程序、测温湿度子程序。

关键词:AT89S51;DHT11;温湿度传感器AbstractMicrocontroller AT89S51 is a low consumption, high performance CMOS8 bit microcontroller.Because of its powerful features and low price, so it is used in many areas.DHT11 temperature and humidity sensor is a temperature and humidity combined sensor contains a calibrated digital output, the sensor consists of a resistor in the original sense of wet and a NTC temperature measurement devices.The product has many advantage,such as excellent quality, fast response, strong anti-jamming capability . This design is fromed by the AT89S51 in MSC-51 Series and DHT11 constitute which is a low-cost temperature and humidity measurement and control system. The design includes the design of hardware circuit design and system software.The hardware has Five modules.They are a microcontroller, temperature and humidity sensors, display module, alarm and control equipment. The 1602-character LCD module constitute the system display module.The temperature and humidity control circuit by the temperature and humidity sensors and preset temperature alarm circuit.According to the need of pre-enter the default value, when the actual measurement of the temperature humidity does not conform the preset temperature and humidity standards, send thealarm signal (buzzer will beep), and start the corresponding control.The software part includes the main program, the display routines, temperature and humidity subroutine.Key words:Temperature and humidity measurement;Temperature and humidity control;AT89S51 ;DHT11毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。

《2024年基于51单片机的温度控制系统设计与实现》范文

《2024年基于51单片机的温度控制系统设计与实现》范文

《基于51单片机的温度控制系统设计与实现》篇一一、引言在现代工业控制领域,温度控制系统的设计与实现至关重要。

为了满足不同场景下对温度精确控制的需求,本文提出了一种基于51单片机的温度控制系统设计与实现方案。

该系统通过51单片机作为核心控制器,结合温度传感器与执行机构,实现了对环境温度的实时监测与精确控制。

二、系统设计1. 硬件设计本系统以51单片机为核心控制器,其具备成本低、开发简单、性能稳定等优点。

硬件部分主要包括51单片机、温度传感器、执行机构(如加热器、制冷器等)、电源模块等。

其中,温度传感器负责实时监测环境温度,将温度信号转换为电信号;执行机构根据控制器的指令进行工作,以实现对环境温度的调节;电源模块为整个系统提供稳定的供电。

2. 软件设计软件部分主要包括单片机程序与上位机监控软件。

单片机程序负责实时采集温度传感器的数据,根据设定的温度阈值,输出控制信号给执行机构,以实现对环境温度的精确控制。

上位机监控软件则负责与单片机进行通信,实时显示环境温度及控制状态,方便用户进行监控与操作。

三、系统实现1. 硬件连接将温度传感器、执行机构等硬件设备与51单片机进行连接。

具体连接方式根据硬件设备的接口类型而定,一般采用串口、并口或GPIO口进行连接。

连接完成后,需进行硬件设备的调试与测试,确保各部分正常工作。

2. 软件编程编写51单片机的程序,实现温度的实时采集、数据处理、控制输出等功能。

程序采用C语言编写,易于阅读与维护。

同时,需编写上位机监控软件,实现与单片机的通信、数据展示、控制指令发送等功能。

3. 系统调试在完成硬件连接与软件编程后,需对整个系统进行调试。

首先,对单片机程序进行调试,确保其能够正确采集温度数据、输出控制信号。

其次,对上位机监控软件进行调试,确保其能够与单片机正常通信、实时显示环境温度及控制状态。

最后,对整个系统进行联调,测试其在实际应用中的性能表现。

四、实验结果与分析通过实验测试,本系统能够实现对环境温度的实时监测与精确控制。

基于51单片机的温度检测报警系统与时钟毕业设计论文

基于51单片机的温度检测报警系统与时钟毕业设计论文

基于51单片机的温度检测报警系统与时钟毕业设计论文基于51单片机的温度检测报警系统与时钟是一种将温度检测与报警功能与时钟功能相结合的设备。

本文通过介绍系统的设计思路、硬件电路和软件编程实现等方面,全面阐述了基于51单片机的温度检测报警系统与时钟的设计过程和实现方法。

首先,本文详细介绍了设计思路和目标。

基于51单片机的温度检测报警系统与时钟旨在实时监测环境温度,并在温度超过设定阈值时触发报警。

同时,系统还具备显示当前时间的时钟功能。

通过温度检测和报警功能以及时钟功能的结合,使得系统具有更多的实用价值和功能。

其次,本文详细描述了硬件电路的设计和实现。

硬件电路主要由传感器模块、温度检测模块、控制模块、报警模块和显示模块等组成。

传感器模块负责实时采集环境温度数据,温度检测模块根据采集到的数据进行温度判断和比较,控制模块根据判断结果决定是否触发报警,报警模块负责发出报警信号,显示模块则用于显示当前时间和报警状态等信息。

接下来,本文详细介绍了软件编程实现的过程。

软件编程主要包括系统初始化、温度检测、报警触发以及时钟显示等功能。

系统初始化主要用于初始化各个模块和参数设置,温度检测则通过读取传感器采集到的数据,进行温度判断和比较。

报警触发功能主要根据温度判断结果决定是否触发报警,以及如何触发报警。

时钟显示功能则通过调用系统时间,将当前的时间显示在显示模块上。

最后,本文总结了整个设计过程,对系统的优点和不足进行了总结,并对未来的改进方向进行了展望。

基于51单片机的温度检测报警系统与时钟不仅具有实时监测温度和触发报警的功能,还增加了时钟功能,使得系统更加实用。

然而,现有的系统仍有一些不足之处,例如温度检测精度有待提高,报警方式可以进一步优化等。

因此,在未来的研究中,可以对系统进行优化和改进,以提升系统的性能和功能。

总之,基于51单片机的温度检测报警系统与时钟是一种结合温度检测、报警和时钟显示功能的设备,具有一定的实用价值和应用前景。

基于51单片机的温度检测报警系统与时钟课程设计论文

基于51单片机的温度检测报警系统与时钟课程设计论文

单片机课程设计基于单片机的温度检测报警与万年历系统目录摘要〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃 1 一、设计要求与方案论证1.1设计要求〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃 1 1.2系统方案选择和论证〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃 1 1.3电路最终方案确定〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃 1 二、电子万年历与温度采集报警硬件设计和实现2.1系统设计〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃 2 2.1.1系统设计框图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃 22.1.2系统硬件需求介绍〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃 3 2.2系统硬件各模块作用〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃 3 2.2.1单片机核心控制模块〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃 42.2.2数字温度传感器模块〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃42.2.3彩屏显示电路模块〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃 52.2.4蜂鸣器电路模块〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃5 2.3系统电路图设计〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃62.3.1系统电路原理框图和原理图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃7三、软件设计与分析3.1系统软件流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃83.1.1DS18B20程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃8四、系统测试4.1测试工具〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃94.2软件测试〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃94.3硬件测试〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃10参考文献〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃11附录一:程序清单〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃12附录二:PCB电路图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃13基于单片机的温度检测报警与万年历系统摘要温度检测报警系统也是在日常生活和工业应用非常广泛的工具,能实时采集周围的温度信息进行显示,程序内部设定有报警上下限,根据应用环境不同可设定不同的报警上下限。

基于51单片机温湿度监控系统毕业设计

基于51单片机温湿度监控系统毕业设计

基于51单片机温湿度监控系统毕业设计摘要本文将介绍一个基于51单片机的温湿度监控系统的毕业设计。

该系统可以实时监测环境的温度和湿度,并将数据通过LCD显示。

同时,该系统还能将数据通过串口传输给计算机进行进一步处理和分析。

本文将从需求分析、硬件设计、软件设计和系统测试等方面全面介绍该系统的设计和实现过程。

1. 引言随着科技的不断发展,人们对环境的监测需求越来越高。

尤其是在工业生产、农业种植和生活领域,精确的温湿度监控对保证操作的顺利进行非常重要。

本文将设计一个基于51单片机的温湿度监控系统,用于实时监测环境的温湿度。

2. 需求分析需求分析是软件开发过程中至关重要的一环。

在本设计中,我们需要考虑以下需求:- 实时监测环境的温度和湿度 - 数据显示在LCD上 - 数据通过串口传输给计算机3. 硬件设计硬件设计是本系统的关键部分。

我们使用51单片机作为主控芯片,并选择合适的温湿度传感器对环境数据进行采集。

硬件设计主要包括以下几个方面: - 单片机选型和接口设计 - 温湿度传感器的选用和接口设计 - LCD模块的选用和接口设计- 串口传输电路的设计4. 软件设计软件设计是实现系统功能的关键。

本文设计了以下几个模块的软件: - 温湿度采集模块 - 数据处理模块 - LCD显示模块 - 串口通信模块5. 系统测试系统测试是确保整个系统正确运行的重要环节。

在本设计中,我们将定期对系统进行各个模块的功能测试和整体性能测试,以确保系统的稳定性和可靠性。

6. 结论本文设计并实现了一个基于51单片机的温湿度监控系统。

通过对温湿度传感器的采集和LCD显示的设计,以及串口通信的实现,该系统能够实时监测环境的温湿度,并将数据显示在LCD上。

同时,该系统还能通过串口将数据传输给计算机进行进一步处理和分析。

经过系统测试,该系统的功能和性能均符合设计要求。

参考文献•[1] 张永建. 单片机技术与应用. 北京:机械工业出版社,2018.•[2] 陈洪焰. 嵌入式系统. 北京:机械工业出版社,2019.•[3] 黄文昌. 温湿度测量技术及其应用. 北京:电子工业出版社,2016.。

《2024年基于单片机的温湿度控制系统的研究与应用》范文

《2024年基于单片机的温湿度控制系统的研究与应用》范文

《基于单片机的温湿度控制系统的研究与应用》篇一一、引言随着科技的快速发展,智能家居的概念日益深入人心。

温湿度控制系统作为智能家居的核心部分,在工业生产、家居环境调节以及农业生产等领域都有广泛应用。

近年来,以单片机为核心控制器的温湿度控制系统已成为行业发展的热点。

本文旨在探讨基于单片机的温湿度控制系统的研究进展以及实际应用情况。

二、温湿度控制系统概述温湿度控制系统是一种通过传感器实时监测环境中的温度和湿度,并通过单片机等控制器对环境进行调节的智能系统。

该系统可以实现对环境的精确控制,提高环境舒适度,降低能耗,提高工作效率。

三、基于单片机的温湿度控制系统研究1. 硬件设计基于单片机的温湿度控制系统主要由传感器、单片机、执行器等部分组成。

传感器负责实时监测环境中的温度和湿度,单片机负责接收传感器数据并做出相应处理,执行器则根据单片机的指令进行环境调节。

在硬件设计方面,需要选择合适的传感器和执行器,以及设计合理的电路和布局,以确保系统的稳定性和可靠性。

2. 软件设计软件设计是温湿度控制系统的核心部分。

在软件设计中,需要根据实际需求设计合理的控制算法和程序,实现对环境温度和湿度的精确控制。

同时,还需要考虑系统的实时性、稳定性和可靠性等因素。

此外,还需要对系统进行调试和优化,以提高系统的性能和用户体验。

四、基于单片机的温湿度控制系统的应用1. 工业生产在工业生产中,温湿度控制系统的应用非常广泛。

例如,在制药、食品加工等行业中,需要对生产环境的温度和湿度进行精确控制,以保证产品的质量和安全。

基于单片机的温湿度控制系统可以实现对生产环境的实时监测和控制,提高生产效率和产品质量。

2. 家居环境调节随着智能家居的普及,基于单片机的温湿度控制系统在家庭环境调节方面的应用也越来越广泛。

通过安装温湿度传感器和执行器,可以实现对家庭环境的实时监测和控制,提高居住舒适度。

同时,还可以通过手机APP等智能设备进行远程控制和监控。

课程设计(论文)--基于51单片机的温湿度与时钟显示器

课程设计(论文)--基于51单片机的温湿度与时钟显示器

1、背景知识随着电子技术的发展和人们生活水平的不断提高。

人类对科学技术的不断研究, 不断创新纪录。

单片机控制无疑是人们追求的目标之一, 它所给人带来的方便也是不可否定的, 其中温度传感器就是一个典型的例子, 但人们对它的要求越来越高, 要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手, 一切向着数字化控制, 智能化控制方向发展。

本设计所介绍的温度传感器与传统的温度计相比, 具有读数方便, 测温范围广, 测温准确, 其输出温度采用数字显示, 该设计控制器使用单片机STC89C52RC增强型芯片, 测温传感器使用DHT11, 用LCD1602A实现温度显示,能准确达到以上要求。

2、课程设计目的通过基于MCS-51系列单片机STC89C52RC增强型和DHT11温湿度传感器检测温度和湿度, 熟悉对DHT11传感器的使用, 温度传感器的功能, LCD1602A 液晶显示, C语言的设计;并且把我们这两年所学的数字和模拟电子技术、检测技术、以及这个学期学的单片机应用等知识, 通过理论联系实际, 从题目分析、电路设计调试、程序编制调试到传感器的选定等这一完整的实验过程, 培养了学生正确的设计思想, 使学生充分发挥主观能动性, 去独立解决实际问题, 以达到提升学生的综合能力、动手能力、文献资料查阅能力的作用, 为毕业设计和以后工作打下一个良好的基础3、工具/准备工作准备工具材料如表1所示:表15 排针若干6 按钮及开关若干7 电烙铁1个8 焊锡若干9 蜂鸣器1个10 LCD1602液晶显示器1个11 DHT11温湿度传感器1个12 电位器1个13 PNP三极管1个14 电源线1条4、设计步骤及原理步骤1: 原理图分析与设计单片机最小系统原理图如图4-1-1所示:图4-1-151单片机最小系统包括了主要由电源、复位、振荡电路以及扩展部分等部分组成。

对于电源供电模块可以通过USB电源线连接电脑供给, 另外也可以用外部稳定的5V电源供电模块供给。

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

1、背景知识随着电子技术的发展和人们生活水平的不断提高。

人类对科学技术的不断研究,不断创新纪录。

单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中温度传感器就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。

本设计所介绍的温度传感器与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,该设计控制器使用单片机STC89C52RC增强型芯片,测温传感器使用DHT11,用LCD1602A实现温度显示,能准确达到以上要求。

2、课程设计目的通过基于MCS-51系列单片机STC89C52RC增强型和DHT11温湿度传感器检测温度和湿度,熟悉对DHT11传感器的使用,温度传感器的功能,LCD1602A液晶显示,C语言的设计;并且把我们这两年所学的数字和模拟电子技术、检测技术、以及这个学期学的单片机应用等知识,通过理论联系实际,从题目分析、电路设计调试、程序编制调试到传感器的选定等这一完整的实验过程,培养了学生正确的设计思想,使学生充分发挥主观能动性,去独立解决实际问题,以达到提升学生的综合能力、动手能力、文献资料查阅能力的作用,为毕业设计和以后工作打下一个良好的基础3、工具/准备工作准备工具材料如表1所示:表14、设计步骤及原理步骤1:原理图分析与设计单片机最小系统原理图如图4-1-1所示:图4-1-151单片机最小系统包括了主要由电源、复位、振荡电路以及扩展部分等部分组成。

对于电源供电模块可以通过USB电源线连接电脑供给,另外也可以用外部稳定的5V电源供电模块供给。

对于复位电路,本设计中采用按键复位方法。

按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。

对于时钟震荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。

而本次设计采用了12MHz的晶体振荡器作为震荡源。

温湿度传感器温湿度数据采集模块如图4-1-2所示,DHT11是一款有已校准数字信号输出的温湿度传感器。

精度湿度+-5%RH,温度+-2℃,量程湿度20-90%R温度0~50℃。

DHT11数图4-1-2字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。

传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。

因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。

每个DHT11传感器都在极为精确的湿度校验室中进行校准。

校准系数以程序的形式存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。

单线制串行接口,使系统集成变得简易快捷。

超小的体积、极低的功耗,使其成为该类应用中,在苛刻应用场合的最佳选择。

产品为4针单排引脚封装,连接方便。

本设计中采用DHT11传感器将采集的温度传送给单片机,然后内部进行BCD码转换,最后通过LCD1602液晶显示器显示出来。

LCD1602液晶显示器模块如图4-1-3所示,602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样。

本次设计中将多出来的15脚接上VCC,然后GND(16脚)接到单片机的P24口,然后通过按键K5 图4-1-3来控制P24口输出电平的状态从而控制LCD1602液晶显示器的背光的开关。

仿真中由于无法仿真背光效果,只能通过LED状态图4-1-4确定,如图4-1-4所示。

通过网上查阅LCD1602液晶显示器的芯片手册可以知道,将D0-D7八个数据口连接P0,然后通过RS、RW以及使能端E控制LCD的读写操作。

步骤2:流程设计通过对课本的学习以及课外学习的知识,然后根据自己的构想来设计实现怎么样的效果,通过对软件设计思路的分析,得到该设计的系统主程序流程图如图4-2-1所示:图4-2-1系统开始后,先对定时器以及显示器进行初始化,然后写入框架显示时间和温度。

当定时器中断时,内部对秒进行自加,加到60s后自动归零且分自加,其它时间标志位也是一样。

当然,每1s满时显示会刷新一次从新显示新的数据,温度函数也是按照指定时间进行测量刷新。

步骤3:软件编程1.建立LCD.H文件#ifndef __LCD_H_#define __LCD_H_#include<reg51.h>#define uchar unsigned char#define uint unsigned int#define LCD1602_DATAPINS P0sbit LCD1602_E=P2^7;sbit LCD1602_RW=P2^5;sbit LCD1602_RS=P2^6;void Lcd1602_Delay1ms(uint c);void LcdWriteCom(uchar com);void LcdWriteData(uchar dat) ;void LcdInit();#endif2.建立LCD.C函数#include"LCD.h"//包含自建立库文件void Lcd1602_Delay1ms(uint c) //延时函数{uchar a,b;for (; c>0; c--){for (b=199;b>0;b--){for(a=1;a>0;a--);}}}void LcdWriteCom(uchar com){LCD1602_E = 0;LCD1602_RS = 0;LCD1602_RW = 0;LCD1602_DATAPINS = com;Lcd1602_Delay1ms(1);LCD1602_E = 1;Lcd1602_Delay1ms(5);LCD1602_E = 0;LCD1602_DATAPINS = com << 4; Lcd1602_Delay1ms(1);LCD1602_E = 1;Lcd1602_Delay1ms(5);LCD1602_E = 0;}void LcdWriteData(uchar dat){LCD1602_E = 0;LCD1602_RS = 1;LCD1602_RW = 0;LCD1602_DATAPINS = dat;Lcd1602_Delay1ms(1);LCD1602_E = 1;Lcd1602_Delay1ms(5);LCD1602_E = 0;LCD1602_DATAPINS = dat << 4; Lcd1602_Delay1ms(1);LCD1602_E = 1;Lcd1602_Delay1ms(5);LCD1602_E = 0;}void LcdInit() //初始化{LcdWriteCom(0x32);LcdWriteCom(0x28);LcdWriteCom(0x0c);LcdWriteCom(0x06);LcdWriteCom(0x01);LcdWriteCom(0x80);}3.建立DHT11.H库文件#ifndef __DHT11_H__#define __DHT11_H__#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit DHT_DATA = P1^0;bit DHT_Start();bit DHT_ByteRead(unsigned char *dat);#endif4.建立DHT11.C文件#include"DHT11.h"void delay_ms(unsigned char x){unsigned char a;while(x--)for(a=0;a<114;a++);}void delay_30us(void){unsigned char a;for(a=12;a>0;a--);}void delay_40us(void){unsigned char a,b;for(b=3;b>0;b--)for(a=4;a>0;a--);}bit DHT_Start(){ unsigned char m=0;DHT_DATA=1;DHT_DATA=0;delay_ms(20);DHT_DATA=1;delay_40us();if(DHT_DATA==1)return 0;elsewhile((DHT_DATA==0)&&(m<200))m++; delay_40us();delay_40us();return 1;}bit DHT_ByteRead(unsigned char *dat){ unsigned char temp=0;unsigned char x,y;unsigned char m=0;unsigned char n=0;unsigned char mask=0x01;unsigned char sum=0;for(y=0;y<5;y++){for(mask=0x80;mask!=0;mask>>=1){while(DHT_DATA==0&&m<200)m++;delay_30us();if(DHT_DATA)temp|=mask;elsetemp&=(~mask);while(DHT_DATA==1&&n<200)n++;}*(dat+y)=temp;temp=0;}for(x=0;x<4;x++)sum+=*(dat+x);if((sum&=0xff)==*(dat+4))return 1;elsereturn 0;}5.建立主函数main.c文件#include<reg51.h>#include"LCD.h"#include"DHT11.h"#define uchar unsigned char#define uint unsigned intsbit beep=P1^0;//sbit BG=P2^4;//sbit K1=P1^1;//sbit K2=P1^2;//sbit K3=P1^3;//sbit K4=P1^4;//sbit K5=P1^5;////sbit beep=P2^0;uchar code table0[]="H:";uchar code table1[]="T:";uchar code table2[]="%";uchar code table3[]="C";uchar code table_1[]="2016-06-03";uchar code table_2[]="16:00:00 5";uchar DHT[5];uchar tmp,i,j,k;uchar count,shi,fen,miao,month,day,week,year;uchar K1num,K2num,K3num;bit flag_1s=1;void Delay10ms(unsigned int x);void Keyscan();void Keyscan2();void Wtimer(uchar ad,uchar dat);void main(){LcdInit();BG = 1;beep;TMOD = 0X01;TH0 = (65536 - 50000)/256; /*11.0592MHz 46080*/ TL0 = (65536 - 50000)%256;EA = 1;ET0 = 1;TR0 = 1;LcdWriteCom(0X86);for (j = 0;j < 10;j++){LcdWriteData(table_1[j]);}LcdWriteCom(0Xc6);for (j = 0;j < 10;j++){LcdWriteData(table_2[j]);}while(1){Keyscan();Keyscan2();if(flag_1s){flag_1s=0;DHT_Start();tmp=DHT_ByteRead(&DHT);//******************LcdWriteCom(0x80);for(i=0;i<2;i++)LcdWriteData(table0[i]);LcdWriteData(DHT[0]/10+'0');LcdWriteData(DHT[0]%10+'0');LcdWriteData(table2[0]);//******************LcdWriteCom(0xC0);for(i=0;i<2;i++)LcdWriteData(table1[i]);LcdWriteData(DHT[2]/10+'0');LcdWriteData(DHT[2]%10+'0');LcdWriteData(table3[0]);//LcdWriteCom(0x07); //ÒÆÆÁ }}}void Delay10ms(unsigned int x){unsigned int t;while(x--)for(t=0;t<114;t++);}void Timer0() interrupt 1{unsigned char t;TH0=(65536 - 50000)/256; /*11.0592MHz*/TL0=(65536 - 50000)%256;t++;if(t%40==0){flag_1s=1;}count++;if (20 == count){count = 0;miao++;if (60 == miao){miao = 0;fen++;if (60 == fen){fen = 0;shi++;if (24 == shi){shi = 0;day++;week++;if(week>7)week=1;if (31 == day){day = 1;month++;if (12 == month){month = 1;year++;Wtimer(6-0x40+2,year);}Wtimer(6-0x40+5,month);}Wtimer(6-0x40+8,day);}Wtimer(6,shi);}Wtimer(9,fen);}Wtimer(12,miao);}}void Keyscan(){K1 = 1;K2 = 1;K3 = 1;if (0 == K1){Delay10ms(5);if (0 == K1){K1num++;while (!K1);if (1 == K1num){TR0 = 0;LcdWriteCom(0XC0+13);LcdWriteCom(0X0F);}if (2 == K1num){LcdWriteCom(0XC0+10);}if (3 == K1num){LcdWriteCom(0XC0+7);}if (4 == K1num){LcdWriteCom(0x89);}if (5 == K1num){LcdWriteCom(0x8C);}if (6 == K1num){LcdWriteCom(0x8F);}if (7 == K1num){TR0 = 1;K1num = 0;LcdWriteCom(0x0c);}}}if (0 != K1num){if (0 == K2){Delay10ms(5);while (!K2);if(1 == K1num){miao++;if(60 == miao)miao = 0;LcdWriteCom(0xc0+12);Wtimer(12,miao);LcdWriteCom(0xc0+13);}if(2 == K1num){fen++;if(60 == fen)fen = 0;LcdWriteCom(0xc0+9);Wtimer(9,fen);LcdWriteCom(0xc0+10);}if(3 == K1num){shi++;if(24 == shi)shi = 0;LcdWriteCom(0xc0+6);Wtimer(6,shi);LcdWriteCom(0xc0+7);}if(4 == K1num){year++;if(30 == year)year = 16;LcdWriteCom(0x88);Wtimer(0x08-0x40,year);LcdWriteCom(0x89);}if(5 == K1num){month++;if(13 == month)month = 1;LcdWriteCom(0x8B);Wtimer(0x0B-0x40,month);LcdWriteCom(0x8C);}if(6 == K1num){day++;if(day>31)day = 1;LcdWriteCom(0x8E);Wtimer(0x0E-0x40,day);LcdWriteCom(0x8F);}}}if (0 != K1num){if (0 == K3){Delay10ms(5);while (!K3);if(1 == K1num){miao--;if(255 == miao)miao = 59;LcdWriteCom(0xc0+10+2);Wtimer(12,miao);LcdWriteCom(0xc0+11+2);}if(2 == K1num){fen--;if(255 == fen)fen = 59;LcdWriteCom(0xc0+9);Wtimer(9,fen);LcdWriteCom(0xc0+10); }if(3 == K1num){shi--;if(255 == shi)shi = 23;LcdWriteCom(0xc0+6);Wtimer(6,shi);LcdWriteCom(0xc0+7);}if(4 == K1num){year--;if(255 == year)year = 16;LcdWriteCom(0x88);Wtimer(0x08-0x40,year);LcdWriteCom(0x89);}if(5 == K1num){month--;if(255 == month)month = 12;LcdWriteCom(0x8B);Wtimer(0x0B-0x40,month);LcdWriteCom(0x8C);}if(6 == K1num){day--;if(day<1)day = 31;LcdWriteCom(0x8E);Wtimer(0x0E-0x40,day);LcdWriteCom(0x8F);}}}}void Wtimer(uchar ad,uchar dat){uchar sw,gw;sw = dat/10;gw = dat%10;LcdWriteCom(0x80+0x40+ad);LcdWriteData(0x30+sw);LcdWriteData(0x30+gw);}void Keyscan2(){K4 = 1;K5 = 1;if(K4 == 0){Delay10ms(10);beep=!beep;while (!K4);}//********************if(K5 == 0){Delay10ms(10);BG=!BG;while (!K5);}}5、设计结果及分析按照设计进行软件仿真,仿真结果如图5-1:图5-1结果分析,由于protues中并没有DHT11这个芯片,因此仿真的时候无法仿真温度,若用其它芯片则要更改函数以及重新学习新的芯片资料,因此并没有进行仿真。

相关文档
最新文档