首页 基于单片机的温湿度控制系统

基于单片机的温湿度控制系统

举报
开通vip

基于单片机的温湿度控制系统基于单片机的温湿度控制系统 石家庄铁道大学四方学院毕业设计 基于单片机的温湿度控制系统 Temperature and humidity control system based on MCU 2012 届 电气工程 系 专 业 电子信息工程 学 号 学生姓名 指导教师 完成日期 2012年 5 月 25 日 毕业设计成绩单 毕业设计开题报告 摘 要 温湿度控制已成为当今社会研究的热门项目。是工农业生产过程中必须考虑的 因素。作为最常见的被控参数。温度和湿度已经不再是相互独立的物理量,而应...

基于单片机的温湿度控制系统
基于单片机的温湿度控制系统 石家庄铁道大学四方学院毕业设计 基于单片机的温湿度控制系统 Temperature and humidity control system based on MCU 2012 届 电气工程 系 专 业 电子信息工程 学 号 学生姓名 指导教师 完成日期 2012年 5 月 25 日 毕业设计成绩单 毕业设计开题报告 摘 要 温湿度控制已成为当今社会研究的热门项目。是工农业生产过程中必须考虑的 因素。作为最常见的被控参数。温度和湿度已经不再是相互独立的物理量,而应 在系统中综合考虑。广泛应用于实验室、大棚、花圃、粮仓乃至土壤等各个领域。 而传统的温湿度控制则利用湿度 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 、毛发湿度表、双金属式测量计和湿度试纸等 测试器材。通过人工进行检测。对不符合温度和湿度要求的库房进行通风、降温、 去湿等操作。这种人工测试方法费时费力,效率低。切随机性较大。误差大。因 此就需要一种造价低廉、使用方便且计算精确的温湿度控制仪器。利用单片机对 温、湿度控制,具有控温、湿精度高、功能强、体积小、价格低,简单灵活等优 点,很好的满足了工艺要求。 关键词:单片机 DHT11传感器 1602液晶显示屏 STC89C52 报警 Abstract The temperature and humidity control has become a popular project in today‘s social studies. Is the industry and agriculture production process must consider the factors. As the most common is accused of parameters. Temperature and humidity is no longer is independent of each other physical quantities, and in the system should be considered. Widely used in laboratory, awning, flower bed, granaries and soil, and other fields. While the traditional temperature and humidity control is use of humidity table, hair humidity table, double metal type gauge and humidity dipstick test equipment. Through the artificial testing. Not in conformity with the requirements of the temperature and humidity supply cooling, ventilation, to wet operation. This artificial testing time-consuming, the efficiency is low. Cut large randomness. Error. Hence the need for a cheap and easy to use and the calculating accurate temperature and humidity control instruments. Using single chip microcomputer to control temperature and humidity, temperature control, wet with high precision and strong function, small volume, low price, advantages, such as simple nimble, meet the technological requirements. This article through the use of STC89C52 microcontroller, DHT11 sensor module, 1602 LCD screen module and alarm module. Simple and clear implementation can be asked. DHT11 digital temperature and humidity sensors to the acquisition of temperature and humidity data to the microcontroller. The processing of single chip. Accurate displayed on the LCD panel. And the temperature and humidity on the set limit. The limit alarm. Keywords: Singlechip DHT11 sensor 1602 LCD screen STC89C52 Alar 目 录 第1章 绪 论 ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 1 1.1 课题研究的背 景 ??????????????????????????????????????????????????????????????????????????????????????????????????????????? 1 1.2 课题研 究的意义 ??????????????????????????????????????????????????????????????????????????????????????????????????????????? 1 1.3 课题研究的主要内 容 ???????????????????????????????????????????????????????????????????????????????????????????????????? 2 1.4 课题研究的 工作原理 ???????????????????????????????????????????????????????????????????????????????????????????????????? 2 第2章 系统总体方案设计 ????????????????????????????????????????????????????????????????????????????????????????????????????? 3 2.1 功能要 求 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 3 2.2 设计思 路 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 3 2.3 方案选 择 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 3 2.3.1 传感器选择方 案???????????????????????????????????????????????????????????????????????????????????????????????????? 3 2.3.2 显示器选择 方案???????????????????????????????????????????????????????????????????????????????????????????????????? 4 2.3.3 单片机主 芯片选择方案 ????????????????????????????????????????????????????????????????????????????????????????? 4 2.4 总体设 计框图 ???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 5 第3 章 系统硬件设 计 ???????????????????????????????????????????????????????????????????????????????????????????????????????????? 7 3.1 概 述 ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 7 3.2 主控模块设 计 ??????????????????????????????????????????????????????????????????????????????????????????????????????????????? 7 3.2.1 STC89C52芯片的简介???????????????????????????????????????????????????????????????????????????????????????????? 7 3.2.2 主控模块电路原理 图????????????????????????????????????????????????????????????????????????????????????????????10 3.3 DHT11传感器模 块设计?????????????????????????????????????????????????????????????????????????????????????????????????10 3.3.1 DHT11传感器简介 ????????????????????????????????????????????????????????????????????????????????????????????????10 3.3.2 DHT11传感器模块电路设计 ??????????????????????????????????????????????????????????????????????????????????14 3.4 1602液晶显示模块设 计 ???????????????????????????????????????????????????????????????????????????????????????????????15 3.4.1 1602液晶显 示屏简介???????????????????????????????????????????????????????????????????????????????????????????15 3.4.2 1602液晶 显示模块电路原理图?????????????????????????????????????????????????????????????????????????????18 3.5 报警模 块 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????19 3.5.1 蜂鸣器介绍??????????????????????????????????????????????????????????????????????????????????????????????????????????19 3.5.2 蜂鸣器工作原 理???????????????????????????????????????????????????????????????????????????????????????????????????19 第4章 系统软件 设计 ???????????????????????????????????????????????????????????????????????????????????????????????????????????20 4.1 1602液晶显示模块设计 ???????????????????????????????????????????????????????????????????????????????????????????????21 4.2 传感器模块设 计 ??????????????????????????????????????????????????????????????????????????????????????????????????????????23 第5章 系统分析与调试 ????????????????????????????????????????????????????????????????????????????????????????????????????????25 第6章 结论与展 望 ???????????????????????????????????????????????????????????????????????????????????????????????????????????????27 致 谢 ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????29 附 录 ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????30 附录A 外文资 料 ????????????????????????????????????????????????????????????????????????????????????????????????????????????????30 附录B 硬件原理图 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????38 I 附录C 程序清 单 ????????????????????????????????????????????????????????????????????????????????????????????????????????????????39 II 石家庄铁道大学四方学院毕业设计 第1章 绪 论 1.1 课题研究的背景 温度、湿度和人类的生产、生活有着密切的关系,同时也是工业生产中最常见最基本的工艺参数,例如机械、电子、石油、化工等各类工业中广泛需要对温度湿度的检测与控制。并且随着人们生活水平的提高,人们对自己的生存环境越来越关注。而空气中温湿度的变化与人体的舒适度和情绪都有直接的影响,所以对温度湿度的检测及控制就非常有必要了。 随着科技的飞速发展和普及,高性能设备越来越多,各行各业对温湿度的要求也越来越高。传统的温湿度检测模式是以人为基础,依靠人工轮流值班,人工巡回查看等方式来测量和记录环境状况信息。在这种模式下,不仅效率低不利于人才资源的充分利用,而且缺乏科学性,许多重大事故都是由人为因素造成的,人工维护缺乏完整的管理系统。而问世监控系统就可以解决这样人才资源浪费,管理不及时的问题,这是由于它的智能化设计所决定的。故本次设计对于类似项目还具有普遍意义。 1.2 课题研究的意义 8051单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,用其作为温湿度控制系统的实力也很多。使用8051单片机能够实现温湿度全程的自动控制,而且8051单片机易于学习掌握,性价比高。 使用8051型单片机设计温湿度控制系统,可以即时精确的反应温室内的温度以及适度的变化。完成诸如升温到特定的温度、降温到特定的温度。在温度上下限范围内保持恒温等多种控制方式,在湿度控制方面也是如此。将此系统应用到温室当中无疑为植被生长提供了更加适宜的环境。对于大棚种植和花圃、花卉栽培,必须在某些特定环境安装温湿度装置对其进行监控。本系统可以及时、精确的反映室内的温度以及湿度的变化,能够满足温湿度的控制要求。 1 石家庄铁道大学四方学院毕业设计 1.3 课题研究的主要 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 本系统所要完成的任务是: 1.3.1人性化的设计。界限温度值及湿度值能够由用户根据不同植被的各种生长需求由键盘输入并通过显示器显示。 1.3.2 能够实时、准确的显示采样温度值与湿度值。 1.3.3通过采集温度及湿度值,准确的判断 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 值与当前值之间的差异,及时的启动报警装置(警报提示音提示音)进行报警,并采取相应的方案。 1.3.4能够根据环境在不同时间段内对温湿度的不同要求,用户可随机人为的更改温度及湿度值,以满足用户不同的需求。 1.4 课题研究的工作原理 该电路的最关键部分是关于温度和湿度的采集以及检测、显示。主控电路芯片采用学校统一制作的STC89C52单片机学习板。STC单片机执行指令的速度很快,对工作环境的要求比较低;传感器模块我选择了DHT11数字温湿度传感器。告别了以前的单独测量温度以及湿度的方式,更简洁,更方便。连接好外围电路。通过DHT11准确的检测出当前环境下的温湿度,并且将所测数据交给STC单片机进行分析和处理。再将所得数据有单片机发送给HJ1602A液晶屏。成功完成显示。控制模块采用蜂鸣器报警方式。预先设置好所需温度和湿度的限值(一个上限一个下限),将蜂鸣器接入电路。通过温度和湿度的上下限值控制蜂鸣器的报警。若逾越限值,实现蜂鸣器鸣响。但是需要注意的是温度超标和湿度超标需设置两种不同的鸣响方式,用来加以区别(温度越限以及湿度越限蜂鸣器的领翔方式必须不一样)。提醒工作人员此时温度湿度数据出现异常、需及时调整,及时启用升温器、加湿器、降温风扇以及喷雾器来有效的调整实验室内温湿度。从而简单实现了控制。总体来说,本次设计主要涉及了温湿度的测量以及实现简单控制。硬件方面有四个模块,即传感器模块、STC80C52单片机主控模块、LCD1602液晶显示模块以及报警模块,从硬件制作方面。也相对简便。原理清晰、连线方便,不需要额外的焊接等技术。给硬件的制作带来了极大的便捷。 2 石家庄铁道大学四方学院毕业设计 第2章 系统总体方案设计 2.1 功能要求 1、通过数字温湿度传感器DHT11采集温湿度数据,即时传输给单片机; 2、单片机将收到的信号进行分析和处理,将采集到时温湿度实时数据送给1602液晶显示屏; 3、通过1602LCD液晶屏完成温湿度的数据显示; 4、给定温度湿度上下限数值,设置不同的温湿度,接入蜂鸣器,实现越限报警; 2.2 设计思路 电路总体上分为温湿度采集部分、中央处理器、显示模块以及报警模块部分。以STC89C52单片机最小系统作为核心控制电路,控制DHT11传感器采集的温湿度的转换,控制1602液晶屏的显示,以及蜂鸣器的报警。具体显示内容及方 式由软件来完成。采集温湿度方面由DHT11传感器来完成,它是一个数字温湿度传感器、内置模数转换,可以直接与单片机相连接。而1602液晶屏是插针式,也可以直接与单片机相连接。因此不需要手动焊接等复杂的过程。具体步骤是:按照原理图将传感器、1602液晶显示屏分别接入单片机。通过DHT11传感器采集当前的温湿度值、再经单片机,将处理后的数据传送到液晶屏上显示出来。并且接入蜂鸣器。设置温度的上下限值。实现越限报警。 2.3 方案选择 2.3.1 传感器选择方案 方案一:选用DS18B20温度传感器作为温度检测模块。DS18B20是一线式数字温度传感器。具有独特的单线式接口方式。测量范围在—55?~125?,—10?~85?,误差范围在-\+0.5?。最高精度可达0.0625?。 HS1101是电容式湿度传感器。可测量相对湿度范围在0%~100%RH。误差为-\+2%RH。 方案二: 选用DHT11作为设计的温湿度检测模块。DHT11是一款集成型的数字 3 石家庄铁道大学四方学院毕业设计 温湿度一体传感器。 它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。测量范围20%~90%RH,0?~50?。测温精度为-\+2?,测湿精度为-\+5%RH。完全符合本次毕业设计的要求。 经上述分析,方案一虽然精度更精确。却稍显复杂。方案二即便不能实现方案一的高精度测量。却也能满足设计要求。且简便易行。可靠稳定。具有超高的性价比。故选择方案二。 2.3.2 显示器选择方案 方案一:采用12864液晶显示屏。液晶显示模块是128×64点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。可与CPU直接接口,提供两种界面来连接微处理机:8-位并行及串行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式等。 方案二:采用HJ1602液晶显示屏。HJ1602A 是一种工业字符型液晶,能够同时显示16x02 即32个字符。(16列2行)。1602只能显示字母、数字和符号能显示16*2个字符,但寄存器不止32个,有一些显示效果,如字符一个个显示、字符从左到右或从右到左显示等等,显示效果简单。 总结:在编程使用方面,两者难度差不多,原理差不多,都是写指令、写地址、写数据等等。当然12864液晶屏显示更全面、字符更多。相比于1602液晶屏、12864能更形象具体的实现显示功能。不过1602液晶屏也能实现设计的要求。网上买比较廉价,最低的六块钱左右。而12864液晶显示屏最便宜的也要四十块钱。从造价方面考虑,当然是价格低廉的优先。而HJ1602A就是最好的选择。 2.3.3 单片机主芯片选择方案 方案一:AT89C51是美国ATMEL公司生产的低电压,高性能CMOS型8位单 片机,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。其片内的4K程序存储器是FLASH工艺的,这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护我们的劳动成果。再者,AT89C51目前的售价比8031还低,市场供应也很充足。AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。只要 4 石家庄铁道大学四方学院毕业设计 程序长度小于4K,四个I/O口全部提供给用户。可用5V电压编程,而且擦写时间仅需lOms。AT89C51芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。PO口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。 方案二:STC89C51系列单片机的指令系统和AT89C51系列的完全兼容,但实际操作起来却存在很多问题: (1)AT89C51不带ISP下载,要用下载器才行,STC89C52可以用你的USB转串口下载,下载软件可以到STC厂家网上去下。 (2)STC单片机执行指令的速度很快,大约是AT的3-30倍,尽管快是好事,但这样一来,你在AT上好使的程序在STC上不一定好用,最典型的例子就是那些对时序有严格要求的模块,用STC时注意得加长延时,大约是AT的10—30倍就差不多,这一点自己调试就知道了。 (3)STC单片机对工作环境的要求比较低,电压低于5伏时仍然正常工作,甚至3伏到4伏之间都还可以工作,然而这样的环境下AT肯定不行了,所以当一个系统用STC单片机好用,但用AT的单片机不工作时,直接查最小系统,看单片机的供电是否正常。 比较这两种方案,由于在学校期间学过数字电路、单片机原理、C语言程序设计,综合考虑单片机的各部分资源和作为学生能够获得的资源,经过对比此次设计要求,我选择用STC系列芯片完成。而且学校也提供了相应的硬件操作平台,实际操作起来比较方便,故STC为更合理的选择。 2.4 总体设计框图 按照系统功能的具体要求,在保证实现其功能的然础上,尽可能降低系统成本。总体 设计方案 关于薪酬设计方案通用技术作品设计方案停车场设计方案多媒体教室设计方案农贸市场设计方案 围绕上述思想,初步确定系统的方案如图2-1所示。 石家庄铁道大学四方学院毕业设计 从图中可以看出,系统有微处理器模块、1602字符液晶显示模块、DHT11传感器模块和报警模块组成。在方案设计中,遵循简洁至上的原则,因此所有的外 围模块采用串行方式与微处理器模块接口。该设计以STC89C51系列单片机为控制核心,实现温湿度采集及显示的基本功能。在设计系统时,为了更好地采用模块化设计法,分步的设计各个单元功能模块,系统的硬件部分可以分为传感器的使用、单片机控制、1602液晶显示和实现报警四大部分。 6 石家庄铁道大学四方学院毕业设计 第3章 系统硬件设计 3.1 概述 此次的毕业设计主要由4个大的模块构成,分别是主控模块、传感器模块、LCD液晶显示模块及报警模块,其中主控模块是此次毕业设计的核心模块,主要是指STC89C52芯片,它控制整个系统的运行,利用其各个口分别控制其他模块,使其他模块能够成为一个整体,实现功能的需要;报警模块主要指将蜂鸣器接入单片机电路。通过对时时温度的检测,并给定所需要的温度区间,即给定上下限值,实现越限报警;传感器模块用于实验室实时温湿度的检测、由于DHT11的数字一体性,集成了模数转换等模块。直接接单片机即可。LCD液晶显示模块同样接入单片机,完成对单片机处理后的数据进行显示。 3.2 主控模块设计 3.2.1 STC89C52芯片的简介 功能特性:STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案,如图3-1所示。STC89C52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O口线,看门狗定时器,2 个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 主要性能:与MCS51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz,33Hz 、三级加密程序存储器 、32个可编程I/O口线 、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。 7 石家庄铁道大学四方学院毕业设计 图3-1 STC89C52芯片 管脚说明: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写―1‖时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址―1‖时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 8 石家庄铁道大学四方学院毕业设计 P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL P3口: 门电流。当P3口写入―1‖后,它们被内部上拉为高电平,并用作输入。作为输由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为STC89C52的一些特殊功能口,如下表所示: 管脚备选功能: 表3-1 P3口的第二功能 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD(串行输入口) TXD(串行输出口) /INT0(外部中断0) /INT1(外部中断1) T0(记时器0外部输入) T1(记时器1外部输入) /WR(外部数据存储器写选通) /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对 外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应 9 石家庄铁道大学四方学院毕业设计 不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 3.2.2 主控模块电路原理图 单片机主程序模块通过对DHT11传感器采集到信号的读取,将得到的数据信号进行分析和处理,再将处理后的信号发送给1602液晶显示模块。完成信息的接收与发送。并且连接蜂鸣器。控制报警系统。如图3-2所示。 图3-2 STC89C52模块电路原理图 3.3 DHT11传感器模块设计 3.3.1 DHT11传感器简介 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校 10 石家庄铁道大学四方学院毕业设计 准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处 理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。 DHT11传感器实物图如下3-3所示: 图3-3 DHT11传感器实物图 (1)引脚介绍: in1:(VDD),电源引脚,供电电压为3~5.5V。 P Pin2:(DATA),串行数据,单总线。 Pin3:(NC),空脚,请悬浮。 Pin4(VDD),接地端,电源负极。 明 : (2)接口说 建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。 11 石家庄铁道大学四方学院毕业设计 图3-4 DHT11典型应用电路 (3)数据帧的描述: DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下: 一次完整的数据传输为40bit,高位先出。 数据格式:8bit湿度整数数据+8bit湿度小数数据 +8bi温度整数数据+8bit温度小数数据 数据传送正确时校验和数据等于―8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据‖所得结果的末8位。 (4)电气特性:VDD=5V,T = 25?,除非特殊标注 表3-2 DHT11的电气特性 参数 供电 供电电流 条件 DC 测量 平均 待机 采样周期 秒 Min 3 0.5 0.2 100 1 typ 5 max 5.5 2.5 1 150 单位 V mA mA uA 次 注:采样周期间隔不得低于1秒钟。 (5)时序描述: 用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换 12 石家庄铁道大学四方学院毕业设计 到低速模式。 通讯过程如下图3-5所示: 图3-5 总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。 -6 图3 总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。 数字0信号表示方法如下图3-7所示: 13 石家庄铁道大学四方学院毕业设计 图3-7 数字1信号表示方法如下图3-8所示 -8 图3 3.3.2 DHT11传感器模块电路设计 DHT11传感器连接STC89C51系列单片机相对比较简单。单片机的P2.0口用来发收串行数据,即数据口。连接传感器的Pin2(单总线,串行数据)。由于测量范围电路小于20米,建议加一个5K的上拉电阻,因此在传感器的Pin2口与电源之间连接一个5K电阻。而传感器的电源端口Pin1和Pin4分别接单片机的VDD和GND 14 石家庄铁道大学四方学院毕业设计 端。传感器的第三脚悬浮放置。DHT11传感器原件的电路原理图如下3-9所示: 图3-9 DHT11电路原理图 3.4 1602液晶显示模块设计 3.4.1 1602液晶显示屏简介 HJ1602A 是一种工业字符型液晶,能够同时显示16x02 即32个字符。(16列2行)。在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。发光管和LED数码管比较常用,软硬件都比较简单。 在单片机系统中应用晶液显示器作为输出器件有以下几个优点: 由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。 液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。 液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。 相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。 15 石家庄铁道大学四方学院毕业设计 字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目 ,16*2,20*2和40*2行等的模块。下面以长沙太阳人电子有限公司前常用16*1 的1602字符型液晶显示器为例,介绍其用法。 一般1602字符型液晶显示器实物如图3-10和3-11所示: 图3-10 液晶屏正面 图3-11 液晶屏背面 (1)引脚说明: 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。 第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生―鬼影‖,使用时可以通过一个10K的电位器调整对比度。 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平 R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 16 石家庄铁道大学四方学院毕业设计 第7,14脚:D0,D7为8位双向数据线。 第15脚:背光源正极。 第16脚:背光源负极。 (2)1602LCD的RAM地址映射以及标准字库表 LCD1602液晶模块 N:低电平时为单行显示,高电平时双行显示。 F:低电平时显示5X7的点阵字符,高电平时显示5x10的点阵字符 (有些模块是 DL:高电平时为8位总线,低电平时为4位总线)。 指令7:字符发生器RAM地址设置 。 指令8:DDRAM地址设置 。 指令9:读出忙信号和光标地址。 BF为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙,模块就能接收相应的命令或者数据。 :写数据 。 指令10 指令11:读数据 。 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。 1602 内部显示地址如图3-12所示: 17 石家庄铁道大学四方学院毕业设计 图3-12 1602内部显示地址 例如第二行第一个字符的地址是40H,那么是否直接写入40H 就可以将光标定位在第二行第 一个字符的位置呢,这样不行,因为写入显示地址时要求最高位D7恒定为高电平1,所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H) 。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602 液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如下图所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母―A‖的代码是01000001B(41H),显示时模块把地址41H 中的点阵字符图形显示出来,我们就能看到字母―A‖。 3.4.2 1602液晶显示模块电路原理图 液晶显示的原理是利用液晶的物理特性, 通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。 18 石家庄铁道大学四方学院毕业设计 图3-13 1602显示模块 3.5 报警模块 3.5.1 蜂鸣器介绍 蜂鸣器是一种一体化结构的电子讯响器。采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母―H‖或―HA‖(旧标准用―FM‖、―LB‖、―JD‖等)表示。 3.5.2 蜂鸣器工作原理 图3-14 蜂鸣器工作原理图 19 石家庄铁道大学四方学院毕业设计 第4章 系统软件设计 在对我们所要设计的课题有了整体的了解之后,需要先建立程序框架的流程图,对整个设 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 分模块,逐个模块实现其功能,最终把各个子模块合理的连接起来,构成总的程序。主程序首先要对整个系统进行初始化,然后将采集到的温湿度指令传给系统的主流程图如图4-1所示: 图 4-1 主程序流程图 20 石家庄铁道大学四方学院毕业设计 4.1 1602液晶显示模块设计 液晶显示模块是一个慢显示器件,在执行每条指令之前要确认模块的忙标志为低电平,表示不忙,则此指令失效,要显示字符时要先输入显示字符地址,告诉 模块在哪里现实了字符。1602液晶显示模块可与STC89C52直接接口的。软件流程图如图4-2所示: 21 石家庄铁道大学四方学院毕业设计 图4-2 1602液晶显示模块程序流程图 22 石家庄铁道大学四方学院毕业设计 4.2 传感器模块设计 温湿度模块DH11数字温湿传感器加湿器温湿度传感器随着科技的不断发展,汽车、空调、除湿器、烘干机等种类繁多的电器都已进入人们的日常生活,而这些电器设备很多都离不开对温度、湿度等环境因素的要求。因此,温度、湿度传感器用途越来越广泛。新一代的数字传感器不再需要外置的A D转换模块,并具有标准接口,使用方便,得到了越来越多的应用。DHT11作为一种新型的单总线温湿度数字传感器,具有更多的优点,它使系统设计更加简单,控制方便,易于实现。1 单总线通信简介 目前常用的微机与外设之间进行数据传输的串行总线主要有I2C总线、SPI总线和SCI总线。其中I2C总线以同步串行两线方式进行通信(1条时钟线,1条数据线),SPI总线则以同步串行三线方式进行通信(1条时钟线,1条数据输入线,1条数据输出线),而SCI总线是以异步方式进行通信的(1条数据输入线,1条数据输出线)。这些总线至少需要两条或两条以上的信号线。 DHT11传感器模块的软件流程图如下图所示 23 石家庄铁道大学四方学院毕业设计 图 4-3 DHT11传感器模块程序流程图 24 石家庄铁道大学四方学院毕业设计 第5章 系统分析与调试 本设计是在Keil C环境下开发的,Keil C软件支持C语言的编程及调试,运用方便,是做C语言毕业设计者的首选。设计的首要任务是安装和学习使用这个软件,在简单的学习和了解Keil C后,我们便可在此环境下开始了对带录音功能的电子琴的设计工作。在编译完Keil C后,再运用STC_ISP_V480软件烧录到开发板上,实现实物与程序的连接。在烧录前要对STC_ISP_V480进行一些必要的设置。第一步:设置MCU Type为STC89C52RC;第二步:打开编写好并编译的程序文件,它是以.hex为后缀的文件;第三步:选择对应的COM端口,(可在我的电脑的设备管理处查看COM选项);第四步:点击Download/下载,等提示 请给MCU上电时,打开开发板上的开关,它就自行烧录了。 Keil C程序运行如图5-1所示 -1 keil C运行图 图5 25 石家庄铁道大学四方学院毕业设计 图5-2 程序烧录运行图 在完成对程序的调试及烧录之后,还需要对其进行演示,把开发板与电脑连上,设置好对应的接口,完成供电及下载。开始供电后、稍带几秒等1602液晶屏能正常显示当前温湿度了之后。观察当前温湿度的变化。并且针对与自己设定的限值相比较。若当前温度没有超标,即没有超过限值。可以用手捂住DHT11传感器,令其温度的显示超标。测试能否达到报警。经过测试。完全可行。因而简单的实现了对温度的控制。湿度控制原理跟温度一样。 26 石家庄铁道大学四方学院毕业设计 第6章 结论与展望 本系统以单片机为核心部件的控制系统,利用软件编程,最终基本上实现了各项要求。虽然系统还存在一些不足,比如温湿度测量不够精确,特别是湿度,波动较大。尝试了各种改进方法。仍然不太理想。不过大体能反映出设计的目的和要求。与预期的结果相差不多。 经过近两个月的奋斗,从确定题目,到后来查找资料,理论学习,实验编程调试,这一切都使我的理论知识和动手能力有了很大的提高。了解了单片机的硬件 结构和软件编程方法,对单片机的工作方式有了很大的认知。同时,对一些外围设备比如传感器、液晶屏、键盘、蜂鸣器等有了一定的了解~学会了对一项工程如何设计:首先,要分析需要设计的系统要实现什么功能,需要什么器件;然后,针对设计购买相应的硬件,选用硬件时不仅要选用经济的,更重要的是如何能更精确更方便的完成系统的要求;再次,对各个硬件的软件实现要弄清楚,如何更好的实现各个硬件的协调,更好的通过主控制器件实现硬件的功能。最后,通过各种测试与调试,让设计更好的完成系统要求。 但因为我们的水平有限,此设计中也存在一定的不足。就比如说对湿度的控制方面,由于温度时刻都在发生着变化。而湿度的变化又大体上取决于温度。因而对于湿度的控制有点困难。同时由于湿度变化波动比较大。造成报警频繁,为湿度限值的设定也带来了不小的麻烦。 温湿度控制已经成为了21世纪热门研究话题之一。无论是从生产还是生活,与我们人类都是息息相关的。而智能化的控制温湿度已经发展成为一种必然。随着世界经济的发展,人们生活水平的提高以及社会的进步。我们不可能一直墨守陈规,不能在恪守以前利用人力资源来控制温湿度的方法。不仅浪费大量的人力资源、财力资源,并且控制系统也更加单一化。而采用自动控制的办法、既节省了人力资源,更体现了与时俱进的思想、世界在进步、而这种进步就该体现在各个方面。 27 石家庄铁道大学四方学院毕业设计 参考文献 .8051单片机课程设计实训教材[M]. 北京:清华大学出版社,2003( [1] 陈明荧 [2] 徐新艳.单片机原理、应用与实践[M]. 北京:高等教育出版社,2005( [3] 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用[M]. 北京:清华大学出版社,2002. [4] 王千.实用电子电路大全[M]. 电子工业出版社,2001. [5] 冯博琴.微型计算机原理与接口技术[M]. 北京:清华大学出版社,2004. [6] 张毅刚.MCS-51单片机应用设计[M]. 哈尔滨工业大学出版社,2004. [7] 张淑清,姜万录等.单片微型计算机接口技术及应用[M]. 国防工业出版社,2003. [8] 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用[M]. 北京:清华大学出版社,2001. [9] 冯博琴.微型计算机原理与接口技术[M]. 清华大学出版社,2004. [10] 张毅刚.MCS-51单片机应用设计[M]. 哈尔滨工业大学出版社,2004. [11] 赵亮,侯国锐.单片机C语言编程与实例[M]. 北京:人民邮电出版社,2003. [12] 王振红,李洋,郝承祥.ISD4004语音芯片的工作原理及其在智能控制系统中的应用[J]. 电子器件2002年3月第25卷第1期. [13] R.L.Geiger,P.E.Allen,N.R.Strader.VLSI.Design Techniques for Analog And Digitial Ciruits,McGraw-Hill Inc.1990. [14] ANALOG DEVICES.The technology of AT89C51[EB/OL].White Paper,Spe.28.2000. 28 石家庄铁道大学四方学院毕业设计 致 谢 毕业在即,而毕业论文则是毕业前的最后一环,也是非常重要的一环。为期两 个多月的毕业设计过程中,老师给与了我很大帮助,无论是从实习期间的懵懂状 态,再到硬件设计以及毕业论文的完成后的略有小成。我都会有深深的感慨。热 情的教师团队以及同学间的相互帮助,使我更加增强了团队意识以及竞争意识。 大学四年一路走来,我在课堂上学习了不少相关知识。尤其是《单片微型计算 机原理与接口技术》和《传感器原理与应用技术》这两门课程为我今天的毕业设 计带来了极大的帮助。把浅浅的理论上升到实践,使我对理论的掌握更加深入。 从而培养了自己的动手能力,增强学习单片机的兴趣。 同时我还要感谢实习老师。经过老师的耐心讲解,我慢慢学会了各种简单元器 件的使用,比如蜂鸣器,数码管,LED灯等。并能自主的设计小问题,自主的 完成实验。在做毕业设计的过程中,也是指导老师给我指明了思路,包括硬件采 购,电路连接以及软件程序设计等。都给我提供了相当大的帮助。在此,特意对 实习老师表示深深感谢。 最后,还要对学校表示感谢。是学校给我们提供了一次难能可贵的实习机会。 而实习期间,刚好排除了我们对毕业设计一点头绪也没有的烦恼。并且通过本次 实习,为大家毕业设计的完成做了很大铺垫。因此,这次实习机会不仅重要,并 且显得那么宝贵。还有学校从硬件方面也对我们能帮助很大。实验室老师辛苦的 焊接STC89C52单片机学习板。大大的方便了我们完成毕业设计。 总之,无论是从学生、老师还是到学校。本次毕业设计过程中我受到了很大的 帮助和启发。没有你们,我的毕业设计就坚持不下来。感谢你们,有了你们,我 受益匪浅。 29 石家庄铁道大学四方学院毕业设计 附 录 附录A 外文资料 Introduction to STC89C52 General Description The STC 89C52 is a low-power, high-performance CMOS 8-bit microcomputer with 4K bytes of Flash Programmable and Erasable Read Only Memory (PEROM). The device is manufactured using Atmel’s high density nonvolatile memory technology and is compatible with the industry standard MCS-51? instruction-set and pinout. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory programmer. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel STC89C52 is a powerful microcomputer which provides a highly flexible and cost effective solution to many embedded control applications. STC89C52 has the following features: 40-pin, 4k Bytes Flash chip program memory, 128 bytes of random access data memory (RAM), 32 external bi-directional input / output (I / O) ports, interrupt priority level 2 5 Interrupt nesting level interrupts, two 16-bit programmable timer counters, two full duplex serial port, watchdog (WDT) circuit, the on-chip clock oscillator. In addition, STC89C52 design and configuration of the oscillation frequency can be set to 0Hz and through the software power-saving mode. Idle mode, CPU to suspend work, and RAM timing counters, serial port, and interrupt system to continue, but freezes the oscillator power-down mode save RAM, disabling all other chip functions until the next interrupt or hardware reset. Meanwhile, the chip also has PDIP, TQFP and PLCC packages such as three, to accommodate different products Features Overview The STC89C52 provides the following standard features: 4K bytes of Flash,128 bytes of RAM, 32 I/O lines, two 16-bit timer/counters, a five vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator and clock circuitry. In addition, the STC89C52 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port and interrupt system to continue 30 石家庄铁道大学四方学院毕业设计 functioning. The Power-down Mode saves the RAM contents but freezes the oscillator disabling all other chip functions until the next hardware reset. Features • Compatible with MCS-51? Products • 4K Bytes of In-System Reprogrammable Flash Memory – Endurance: 1,000 Write/Erase Cycles • Fully Static Operation: 0 Hz to 24 MHz • Three-Level Program Memory Lock • 128 x 8-Bit Internal RAM • 32 Programmable I/O Lines • Two 16-Bit Timer/Counters • Six Interrupt Sources • Programmable Serial Channel • Low Power Idle and Power Down Modes Pin Function Description: VCC: Supply voltage. ?GND: Ground. ?Port 0 Port 0 is an 8-bit open-drain bi-directional I/O port. As an output port, each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as high-impedance inputs. Port 0 may also be configured to be the multiplexed low-order address/data bus during accesses to external program and data memory. In this mode P0 has internal pullups. Port 0 also receives the code bytes during Flash programming, and outputs the code bytes during program verification. External pullups are required during program verification. Port 1 Port 1 is an 8-bit bi-directional I/O port with internal pullups.The Port 1 output buffers can sink/source four TTL inputs.When 1s are written to Port 1 pins they are pulled high by the internal pullups and can be used as inputs. As inputs,Port 1 pins that 31 石家庄铁道大学四方学院毕业设计 are externally being pulled low will source current (IIL) because of the internal pullups.Port 1 also receives the low-order address bytes during Flash programming and verification. Port 2 Port 2 is an 8-bit bi-directional I/O port with internal pullups.The Port 2 output buffers can sink/source four TTL inputs.When 1s are written to Port 2 pins they are pulled high by the internal pullups and can be used as inputs. As inputs,Port 2 pins that are externally being pulled low will source current (IIL) because of the internal pullups. Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memory that use 16-bit addresses (MOVX @DPTR). In this application, it uses strong internal pullups when emitting 1s. During accesses to external data memory that use 8-bit addresses (MOVX @ RI), Port 2 emits the contents of the P2 Special Function Register. Port 2 also receives the high-order address bits and some control signals during Flash programming and verification. Port 3 Port 3 is an 8-bit bi-directional I/O port with internal pullups. The Port 3 output buffers can sink/source four TTL inputs.When 1s are written to Port 3 pins they are pulled high by the internal pullups and can be used as inputs. As inputs,Port 3 pins that are externally being pulled low will source current (IIL) because of the pullups. Port 3 also serves the functions of various special features of the STC89C52 as listed below: Port 3 also receives some control signals for Flash programming and verification. RST Reset input. A high on this pin for two machine cycles while the oscillator is running resets the device. ALE/PROG 32 石家庄铁道大学四方学院毕业设计 Address Latch Enable output pulse for latching the low byte of the address during accesses to external memory. This pin is also the program pulse input (PROG) during Flash programming. In normal operation ALE is emitted at a constant rate of 1/6 the oscillator frequency, and may be used for external timing or clocking purposes. Note, however, that one ALE pulse is skipped during each access to external DataMemory. If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is active only during a MOVX or MOVC instruction. Otherwise, the pin is weakly pulled high. Setting the ALE-disable bit has no effect if the microcontroller is in external execution mode. PSEN Program Store Enable is the read strobe to external program memory. When the AT89C51 is executing code from external program memory, PSEN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory. EA/VPP External Access Enable. EA must be strapped to GND in order to enable the device to fetch code from external program memory locations starting at 0000H up to FFFFH.Note, however, that if lock bit 1 is programmed, EA will be internally latched on reset. EA should be strapped to VCC for internal program executions.This pin also receives the 12-volt programming enable voltage (VPP) during Flash programming, for parts that require 12-volt VPP. XTAL1 Input to the inverting oscillator amplifier and input to the internal clock operating circuit. XTAL2 Output from the inverting oscillator amplifier.Oscillator Characteristics XTAL1 and XTAL2 are the input and output, respectively,of an inverting amplifier which can be configured for use as an on-chip oscillator, as shown in Figure 1. Either a quartz crystal or ceramic resonator may be used. To drive the device from an external clock source, XTAL2 should be left unconnected while XTAL1 is driven as shown in Figure 2.There are no requirements on the duty cycle of the external clock signal, since the input to the internal clocking circuitry is through a divide-by-two flip-flop, but minimum and maximum voltage high and low time specifications must be observed. 33 石家庄铁道大学四方学院毕业设计 From:www.baiduwenku.com 34 石家庄铁道大学四方学院毕业设计 STC89C52的介绍 综合描述 STC89C52是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的STC89C52是一种高效微控制器,STC89C52是它的一种精简版本。STC89C52单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,可为您提供许多高性价比的应用场介,可灵活应用于各种控制领域。 STC89C52具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,STC89C52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。 功能特性概述: STC89C52提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM, /计数器,一个32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 主要特性: ?与MCS-51 兼容 ?4K字节可编程闪烁存储器 ?寿命:1000写/擦循环 ?数据保留时间:10年 ?全静态工作:0Hz-24MHz 35 石家庄铁道大学四方学院毕业设计 ?三级程序存储器锁定 ?128×8位内部RAM ?32可编程I/O线 ?两个16位定时器/计数器 ?5个中断源 ?可编程串行通道 ?低功耗的闲置和掉电模式 ?片内振荡器和时钟电路 引脚功能说明: ?VCC:供电电压。 ?GND:接地。 ?P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 ?P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 ?P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输 ―1‖时,其管脚被内部上拉电阻拉高,且作为出4个TTL门电流,当P2口被写 输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址―1‖时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 ?P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入―1‖后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为STC89C52的一些特殊功能口,如下表所示: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) 36 石家庄铁道大学四方学院毕业设计 P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 ?RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ?ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 ?/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机 器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 ?EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 ?XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 ?XTAL2:来自反向振荡器的输出。 XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 37 石家庄铁道大学四方学院毕业设计 附录B 硬件原理图 38 石家庄铁道大学四方学院毕业设计 附录C 程序清单 //****************************************************************// //单片机 : STC89C52RC // 功能 :串口发送温湿度数据 晶振 11.0592M 波特率 9600 //硬件连接: P2.0口为通讯口连接DHT11,DHT11的电源和地连接单片机的电源和地,单片机串口加MAX232连接电脑 //****************************************************************// #include <reg51.h> #include <intrins.h> #include <absacc.h> typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 无符号8位整型变量 */ typedef unsigned int U16; /* defined for unsigned 16-bits integer variable 无符号16位整型变量 */ #define lcd_H #include <reg51.h> #define HIGH 1 #define LOW 0 #define TRUE 1 #define FALSE 0 #define ZERO 0 #define MSB 0x80 #define LSB 0x01 //********液晶屏部分 **** #define LINE1 0 #define LINE2 1 #define LINE1_HEAD 0x80 #define LINE2_HEAD 0xC0 39 石家庄铁道大学四方学院毕业设计 #define DATA_MODE 0x38 #define OPEN_SCREEN 0x0C #define DISPLAY_ADDRESS 0x80 #define CLEARSCREEN LCD_en_com(0x01) #define LCDIO P1 sbit LCD1602_RS = P2 ; //定义端口 sbit LCD1602_RW = P2 ; sbit LCD1602_EN = P2 ; //----------------------------------------------// //----------------IO口定义区--------------------// //----------------------------------------------// sbit P2_0 = P2 ; sbit SPK=P0 ; int t1,t2,ss; //----------------------------------------------// //----------------定义区--------------------// //----------------------------------------------// U8 U8FLAG; U8 U8count,U8temp; U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata; U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp, U8checkdata_temp; U8 U8comdata; unsigned char str1[]={?s‘,‘h‘,‘i‘,‘d‘,‘u‘,‘:‘}; unsigned char str2[]={?w‘,‘e‘,‘n‘,‘d‘,‘u‘,‘:‘}; LCD_init(); void Delay(U16 j) { U8 i; 40 石家庄铁道大学四方学院毕业设计 for(;j>0;j--) { for(i=0;i<27;i++); } } void Delay_10us(void) { U8 i; i--; i--; i--; i--; i--; i--; } void COM(void) { U8 i; for(i=0;i<8;i++) { U8FLAG=2; while((!P2_0)&&U8FLAG++); Delay_10us(); Delay_10us(); Delay_10us(); U8temp=0; if(P2_0)U8temp=1; U8FLAG=2; 41 石家庄铁道大学四方学院毕业设计 while((P2_0)&&U8FLAG++); //超时则跳出for循环 if(U8FLAG==1)break; //判断数据位是0还是1 // 如果高电平高过预定0高电平值则数据位为 1 U8comdata<<=1; U8comdata|=U8temp; //0 }//rof } void LCD_Read_BF(void) { unsigned char read=0; LCD1602_RS=LOW; LCD1602_RW=HIGH; LCD1602_EN=HIGH; LCDIO=0XFF; read=LCDIO;} { void LCD_en_com(unsigned char command)//写指令 LCD_Read_BF(); LCD1602_RS=LOW; LCD1602_RW=LOW; LCD1602_EN=HIGH; LCDIO=command; LCD1602_EN=LOW; } void LCD_en_dat(unsigned char dat)//写数据 42 石家庄铁道大学四方学院毕业设计 { LCD_Read_BF(); LCD1602_RS=HIGH; LCD1602_RW=LOW; LCD1602_EN=HIGH; LCDIO=dat; LCD1602_EN=LOW; } void LCD_set_xy(unsigned char x,unsigned char y) //写入地址函数 { unsigned char address; if(y==LINE1) address=LINE1_HEAD+x; else address=LINE2_HEAD+x; LCD_en_com(address); } void LCD_write_char(unsigned char x,unsigned char y,unsigned char dat)//写入字符函数 { LCD_set_xy(x,y); LCD_en_dat(dat); } void LCD_write_string(unsigned char x,unsigned char y,unsigned char *s)//写入字符串函数 { LCD_set_xy(x,y); while(*s) { LCDIO=*s; LCD_en_dat(*s); 43 石家庄铁道大学四方学院毕业设计 s++; } } void LCD_Init(void) //初始化函数 { LCD_en_com(0x38); /*显示模式设置*/ Delay(5); LCD_en_com(0x38); Delay(5); LCD_en_com(0x38); Delay(5); LCD_en_com(0x38); LCD_en_com(0x08); /*显示关闭*/ LCD_en_com(0x01); /*显示清屏*/ LCD_en_com(0x06); /*显示光标移动设置*/ Delay(5); LCD_en_com(0x0C); /*显示开及光标设置*/ } //-------------------------------- //-----湿度读取子程序 ------------ //-------------------------------- //----以下变量均为全局变量-------- //----温度高8位== U8T_data_H------ //----温度低8位== U8T_data_L------ //----湿度高8位== U8RH_data_H----- //----湿度低8位== U8RH_data_L----- //----校验 8位 == U8checkdata----- 44 石家庄铁道大学四方学院毕业设计 //----调用相关子程序如下---------- //---- Delay();, Delay_10us();,COM(); //-------------------------------- void RH(void) { //主机拉低18ms P2_0=0; Delay(180); P2_0=1; //总线由上拉电阻拉高 主机延时20us Delay_10us(); Delay_10us(); Delay_10us(); Delay_10us(); 从机响应信号 //主机设为输入 判断 P2_0=1; //判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行 if(!P2_0) //T ! { U8FLAG=2; //判断从机是否发出 80us 的低电平响应信号是否结束 while((!P2_0)&&U8FLAG++); U8FLAG=2; //判断从机是否发出 80us 的高电平,如发出则进入数据接收状态 while((P2_0)&&U8FLAG++); //数据接收状态 COM(); U8RH_data_H_temp=U8comdata; COM(); U8RH_data_L_temp=U8comdata; COM(); U8T_data_H_temp=U8comdata; 45 石家庄铁道大学四方学院毕业设计 COM(); U8T_data_L_temp=U8comdata; COM(); U8checkdata_temp=U8comdata; P2_0=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; } //湿度整数部分 str1[6] = (char)(0X30+U8RH_data_H/10); str1[7] = (char)(0X30+U8RH_data_H%10); //湿度小数部分 str1[9] = (char)(0X30+U8RH_data_L/10); //温度整数部分 str2[6] = (char)(0X30+U8T_data_H/10); str2[7] = (char)(0X30+U8T_data_H%10); //温度小数部分 str2[9] = (char)(0X30+U8T_data_L/10); t1=(int)(0X30+U8T_data_H/10); t2=(int)(0X30+U8T_data_H%10); ss=t1*10+t2; } 46 石家庄铁道大学四方学院毕业设计 } void xianshi(void) { LCD_write_char(0x00,0,‘s‘); LCD_write_char(0x01,0,‘h‘); LCD_write_char(0x02,0,‘i‘); LCD_write_char(0x03,0,‘d‘); LCD_write_char(0x04,0,‘u‘); LCD_write_char(0x05,0,‘:‘); LCD_write_char(0x06,0,str1[6]); LCD_write_char(0x07,0,str1[7]); LCD_write_char(0x08,0,‘.‘); LCD_write_char(0x09,0,str1[9]); LCD_write_char(0x0B,0,‘%‘); LCD_write_char(0x0C,0,‘R‘); LCD_write_char(0x0D,0,‘H‘); LCD_write_char(0x00,1,‘w‘); LCD_write_char(0x01,1,‘e‘); LCD_write_char(0x02,1,‘n‘); LCD_write_char(0x03,1,‘d‘); LCD_write_char(0x04,1,‘u‘); LCD_write_char(0x05,1,‘:‘); LCD_write_char(0x06,1,str2[6]); LCD_write_char(0x07,1,str2[7]); LCD_write_char(0x08,1,‘.‘); LCD_write_char(0x09,1,str1[9]); LCD_write_char(0x0B,1,0x27); LCD_write_char(0x0C,1,‘C‘); } //**蜂鸣器**// void laba() 47 石家庄铁道大学四方学院毕业设计 { unsigned int i; if(ss>554||ss<500) { for(i=0;i<200;i++)//喇叭发声的时间循环,改变大小可以改变发声时间长短 { Delay(160); //参数决定发声的频率,估算值,可以自行更改参数并 SPK=!SPK; } SPK=1; Delay(60000); } //喇叭停止工作,间歇的时间,可更改 } //---------------------------------------------- //main()功能描述: AT89C51 11.0592MHz 串口发 //送温湿度数据,波特率 9600 //---------------------------------------------- void main() { LCD_init(); Delay(4); while(1) { //调用温湿度读取子程序 RH(); xianshi(); laba(); } } 48
本文档为【基于单片机的温湿度控制系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_196623
暂无简介~
格式:doc
大小:109KB
软件:Word
页数:54
分类:工学
上传时间:2017-10-01
浏览量:32