毕业设计基于STC89C52R单片机的蔬菜大棚温度控制系统设计.doc

上传人:土8路 文档编号:10128596 上传时间:2021-04-22 格式:DOC 页数:26 大小:126.50KB
返回 下载 相关 举报
毕业设计基于STC89C52R单片机的蔬菜大棚温度控制系统设计.doc_第1页
第1页 / 共26页
毕业设计基于STC89C52R单片机的蔬菜大棚温度控制系统设计.doc_第2页
第2页 / 共26页
毕业设计基于STC89C52R单片机的蔬菜大棚温度控制系统设计.doc_第3页
第3页 / 共26页
毕业设计基于STC89C52R单片机的蔬菜大棚温度控制系统设计.doc_第4页
第4页 / 共26页
毕业设计基于STC89C52R单片机的蔬菜大棚温度控制系统设计.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《毕业设计基于STC89C52R单片机的蔬菜大棚温度控制系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计基于STC89C52R单片机的蔬菜大棚温度控制系统设计.doc(26页珍藏版)》请在三一文库上搜索。

1、沧州师范学院 毕业设计(论文) 基于 STC89C52R 单片机的蔬菜大棚温度 控制系统设计 学员姓名:学员姓名: 指导导师:指导导师: 年年 级:级: 专专 业:业: 学学 号:号: 年 月 毕业设计(论文)开题报告毕业设计(论文)开题报告 题目基于 STC89C52R 单片机的蔬菜大棚温度控制系统设计 专业电气自动化学生姓名 一、国内外研究综述 随着改革开放,我国的温室大棚产业得到迅猛的发展,以蔬 菜大棚、花卉为主 植物栽培设施栽培在大江南北遍地开花,随着政府对城市蔬菜产业的 不断投入,在 乡镇内蔬菜大棚产业被看作是 21 世纪最具活力的新产业之一。温室是蔬 菜等植物 在栽培生产中必不可少

2、的设施之一, 不同种类的蔬菜对温度生长所需 条件的要求也 不尽相同,为它们提供一个更适宜其生长的封闭的、良好的生存环境,从 而可以通 过提早或延迟花期,最终将会给我们带来巨大的经济效益。 随着单片机的飞速发展 , 通过单片机对被控对象进行 控制日益广泛,其具有体 积小 、功能强 、性价比高等特 点 ,把单片机应用于温度控制系统中可以起到更好的 控温作用 ,可完成对温度的采集和控制等的要求 。单片机是指一个集成在一块芯片 上的完整计算机系统。 尽管他的 大部分功能集成在一块小芯片上, 也就是说一块 芯片就成了一台计算 机。它的体积小、质量轻、价格便宜、为学习、应用和开发提 供了便 利条件。 测量

3、温度的关键是温度传感器,温度传感器在国内外的发展经历了三个发展阶 段:传统的分立式温度传感器,模拟集成温度传感器,智能集成温度传感器。 目前,国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化的 方向飞速发展。由 DALLAS 半导体公司生产的 DS18B20 型单线智能温度传感器,属于 新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度 测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远 等特点。 二、选题的依据和意义 本课题研究的主要内容是利用单片机作为主控机,对温室内的温度和进行实时监 测和调控,以满足温室内作物生长的环境要求。

4、主要内容包括: 温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产 过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测 量方法和装置具有重要的意义。温度作为作物生长一个非常重要的参数,温度的变 化影响作物的发芽、幼苗的成长、作物的开花、果实的成熟等等。对于不同的作物, 其适宜的生长温度总是在一个范围。超过这个范围,作物或许会活着,但是其生长 的规律将发生明显的变化。这对于我们所希望的要求作物能够优质、高产的愿望相 距甚远,所以我们必须实时获取作物生长的环境温度。对于,超过作物生长适宜范 围的温度能够报警并及时控制。 三、研究内容及预期目标 本课题研究的

5、主要内容是利用单片机作为主控机,对温室内的温度和进行实时监测 和调控,以满足温室内作物生长的环境要求。主要内容包括: 1、温度实时准确显示。通过单总线数字式温度传感器 DS18B20 进行温度采集,,通 过单片机 STC89C52R 对采集到的数据进行处理,由 LED 显示屏对当前温度值进行显 示。 2、键盘输入并显示。操作人员可根据不同作物的不同时期的最适宜生长环境将温度 值值由键盘输入并且由显示器进行显示。便于调节作物在不同生长期所需的最适宜 生长环境,以满足不同用户的需求。 3、超限报警功能。报警模块具有两项功能,即为报警灯和声音报警。当采集到的温 度与标准值之间存在较大差异时,及时启动

6、报警装置进行报警,并采取相应的措施。 4、实现通信功能。配有通信接口可方便的与计算机进行通信,将采集到的温度值传 送到计算机上,留下采集到的历史数据,以方便专业人士进行研究。 预期目标: 1、实现对温室温度参数的实时采集,测量空间多点的温度:根据测量空间或设备的 实际需要,由多路温度传感器对关键敏感点进行测量,由单片机对各路数据进行循 环检测、数据处理、存储,实现温度的智能、多空间点的测量 2、实现超限数据的及时报警。 3、现场监测设备应具有较高的灵敏度、可靠性、抗干扰能力并具有存储、远程通信 功能。 4、通信系统具有较高的可靠性、较好的实时性和较强的抗干扰能力。与计算机通讯 功能,采用 RS

7、232 串行通讯方式最远传输距离为 20 米。 5、长时间测量数据记录功能:可以根据需要设置数据记录时间间隔,数据存入数据 存储器。 6、监控计算机软件设计管理软件既要具有完成数据采集、处理的功能,其软件编程 应具有功能强大、界面友好、便于操作和执行速度快等特点。 7、要求达到的技术指标:温范围:一 20一 100测温精度:士 0.5 四、计划进度 2013 年 11 月 4 日至 2013 年 11 月 10 日搜集材料,完成论文初稿 2013 年 11 月 11 日至 2013 年 11 月 22 日完成第二、三设计 2013 年 11 月 23 日至 2013 年 11 月 30 日完成

8、论文及实物 指导教师签字年 月 日 毕业设计(论文)任务书毕业设计(论文)任务书 题目基于 STC89C52R 单片机的蔬菜大棚温度控制系统设计 专业电气自动化学生姓名 所在系机电工程系导师导师 一、设计(论文)内容 设计的主要内容为:利用单片机 STC89C52R 实现温室大棚温度的智能控制, 使室温温度能够控制在作物最佳生长温度 20-25 度之间。 2. 通过对单片机 STC89C52R 的编程,由温度传感器 DS18B20 对温度进行测量,最 后把测量到的温度送 LED 数码管显示。如果超过上下限温度,则控制蜂鸣器报警且 令继电器对温度进行实时控制。 3. 四位数码管能够保持不间断显示

9、室温,最高位为符号位,如果温度为正,则 不显示;如果温度为负,则显示负号;第 2-3 位显示温度的整数部分,并在第三位 上显示小数点;第四位显示小数部分。 二、主要技术指标(或研究目标) 1使用 STC89C52R 单片机 2测温范围:0100 3测温分辨力:=1 4. 测温准确度:=0.5 5. 测温点数:可以扩展到 8 点 6. 温度显示:采用个 7 段段数码管 7. 温限可进行灵活设定 三、设计(或研究)的内容 设计的主要内容为:如何利用单片机 STC89C52R 实现温室大棚温度的智能控制, 使室温温度能够控制在作物最佳生长温度 20-25 度之间。 2. 怎样通过对单片机 STC89

10、S52R 的编程,由温度传感器 DS18B20 对温度进行测量,最 后把测量到的温度送 LED 数码管显示; 3.如果室温超过上下限温度,则控制蜂鸣器报警且令继电器对温度进行实时控制。 四、应收集的资料及参考文献 1、李丽荣,张长全,郑建红 51 单片机应用设计 北京:北京理工大学出版社 2012.9 2、谭浩强 C 程序设计 北京:清华大学出版社,2012.4 3、胡宴如,耿孙燕. 模拟电子技术. 北京:高等教育出版社,2005.6 4、杨志忠,卫桦林. 数字电子技术. 北京:高等教育出版社,2006.3 5、李全利. 单片机原理及应用技术. 北京: 高等教育出版社, 2006.5 6、付家

11、才. 单片机控制工程实践技术. 北京:化学工业出版社, 2005.3 7、邓木生,曹德跃. 电子技能训练. 北京:机械工业出版社, 2002.4 8、张晶,郑立平 电机控制与拖动技术 大连:大连理工上学出版社 2012.2 9、Protel 软件的应用 10、李新德,毕万新,胡辉 传感器应用技术 大连:大连理工大学出版社 2012.7 11、Keil 软件的应用 五、计划进度 2013 年 11 月 4 日至 2013 年 11 月 10 日搜集材料,完成论文初稿 2013 年 11 月 11 日至 2013 年 11 月 22 日完成第二、三设计 2013 年 11 月 23 日至 2013

12、 年 11 月 30 日完成论文及实物 指导教师签字时间年 月 日 目录目录 摘摘 要要 第第 1 1 章章 绪论绪论 1.11.1 温度控制系统设计的背景、发展历史及意义温度控制系统设计的背景、发展历史及意义 1 1 1.21.2 课题研究的目的意义课题研究的目的意义 1 1 第第 2 2 章章 系统方案设计系统方案设计 2 2 2.12.1 温度控制系统设计方框图温度控制系统设计方框图 2 2 2.22.2 方案论证方案论证 2 2 第第 3 3 章章 电路设计电路设计 3.13.1 STC89C52RSTC89C52R 的介绍的介绍 3 3 3.23.2 最小电路的介绍最小电路的介绍 6

13、 6 3.33.3 键盘电路设计键盘电路设计 6 6 3.43.4 显示电路设计显示电路设计 7 7 3.53.5 报警电路设计报警电路设计 7 7 3.63.6 传感器电路设计传感器电路设计 8 8 3.73.7 电机控制电路设计电机控制电路设计 8 8 第第 4 4 章章 程序设计程序设计 9 9 4.14.1 系统主程序设计系统主程序设计 9 9 4.24.2 显示程序设计显示程序设计 9 9 4.34.3 温度处理程序设计温度处理程序设计 9 9 4.44.4 上下限温度设定程序上下限温度设定程序 1010 4.54.5 程序流程图程序流程图 1010 4.64.6 程序源代码程序源代

14、码 1010 第第 5 5 章章 总结总结 2222 参考文献参考文献 2323 摘要摘要 本文根据蔬菜大棚温度控制系统的要求和特点,设计了一种基于 51 单片机 的蔬菜大棚温度控制器。该控制器以单片机为控制核心,结合外围信号采集电路、 键盘扫描电路、LCD 显示电路、报警电路和继电器控制电路,实现了蔬菜大棚 的的智能控制。DS18B20 温度传感器将采集的数据在传感器内部经模数转换后 传送给单片机,单片机将得到的数据分别与键盘预先设定的上限温度值和下限 温度值比较,如果数据大于上限温度值值,开启电机并报警,如果数据小于下 限温度值,启动电机并报警,并且电路还有预报警,当温度高于预报警上限值,

15、 进行报警,提醒用户,当温度低于预报警下限值时,进行报警,提醒用户。整 个过程 LCD 实时显示上限温度值、下限温度值、实际温度值。 关键字: 单片机;信号采集;温度控制系统;键盘扫描。LCD 显示 第一章 绪论 1.11.1 温度控制系统设计的背景、发展历史及意义温度控制系统设计的背景、发展历史及意义 随着社会的发展,科技的进步,以及测温仪器在各个领域的应用,智能化 已是现代温 度控制系统发展的主流方向。 特别是近年来, 温度控制系统已应 用到人们生活的各个方面, 但温度控制一直是一个未开发的领域,却又是与人 们息息相关的一个实际问题。针对这种 实际情况,设计一个温度控制系统,具 有广泛的应

16、用前景与实际意义。 温度是科学技术中最基本的物理量之一,物理、 化学、生物等学科都离不开温度。在 工业生产和实验研究中,像电力、化工、 石油、冶金、航空航天、机械制造、粮食存储、 酒类生产等领域内,温度常常 是表征对象和过程状态的最重要的参数之一。比如,发电厂 锅炉的温度必须控 制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才 能正常 进行;炼油过程中,原油必须在不同的温度和压力条件下进行分馏才能得到汽 油、 柴油、煤油等产品。没有合适的温度环境,许多电子设备就不能正常工作, 粮仓的储粮就 会变质霉烂,酒类的品质就没有保障。因此,各行各业对温度控 制的要求都越来越高。可 见,温度

17、的测量和控制是非常重要的。 单片机在电 子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测 和温 度控制。随着温度控制器应用范围的日益广泛和多样,各种适用于不同场合的 智能温 度控制器应运而生。 1.21.2 课题研究的目的意义课题研究的目的意义 本设计的内容是温度测试控制系统,控制对象是温度。温度控制在日常生 活及工业领 域应用相当广泛,比如温室、水池、发酵缸、电源等场所的温度控 制。而以往温度控制是 由人工完成的而且不够重视,其实在很多场所温度都需 要监控以防止发生意外。针对此问 题,本系统设计的目的是实现一种可连续高 精度调温的温度控制系统,它应用广泛,功能 强大,小巧美观

18、,便于携带,是 一款既实用又廉价的控制系统。 第二章第二章 系统方案设计系统方案设计 2.12.1 蔬蔬菜菜温温度度控控制制系系统统设设计计 方框图方框图 系统硬件电路框图如图2.1所示, 蔬菜温度控制装置 由单片机最小系统、LCD液晶显示电路、键盘电路、报 警电路、温度传感器、继电器控制等七部分组成。 系统工作原理:将温度传感器采集的数据输入单片机,单片机将得到的数 据分别与键盘预先设定的上限温度和下限温度比较,如果数据大于上限温度单 片机控制报警并接通电机电源(相当于接升温器) ,如果数据小于下限温度单片 机控制报警并接通电机电源(相当于接降温器) ,整个过程LCD实时显示:上 限温度值、

19、下限温度值、实际温度值。 2.22.2 方案论证方案论证 在设计中要对空压机内压力、上、下限压力显示,显示模块的设计方案如下。 方案一:方案一:测温电路的设计,可以使用热敏电阻之类的器件利用其感温效应,在 将随被测温度变 化的电压或电流采集过来,进行 A/D 转换后,就可以用单片 机进行数据的处理,在显示电 感温电路比较麻烦。 路上, 就可以将被测温度 显示出来, 这种设计需要用到 A/D 转换电路 方案二:方案二:考虑使用温度传感器,结合单片机电路设计,采用一只 DS18B20 温 度传感器,直接读 取被测温度值,之后进行转换,依次完成设计要求。比较以 上两种方案,很容易看出,采用方案二,电

20、路比较简单,软件设计容易实现, 故实际设计中拟采用方案二。 LCD 显示 继电器 蜂鸣器 复位电路 DS18B20 输入键盘 STC89C52STC89C52 R R 第三章第三章 电路设计电路设计 3.1.1 单片机单片机 STC89C52RSTC89C52R 的介绍的介绍 图 2-3 STC89C52R 单片机引脚图 芯片引脚如图 2-3 所示: VCC : 电源。 GND: 地。 P0 口:P0 口是一个 8 位漏极开路的双向 I/O 口。作为输出口,每位能驱动 8 个 TTL 逻辑电平。对 P0 端口写“1”时,引脚用作高阻抗输入。当访问外部 程序和数据存储器时,P0 口也被作为低 8

21、 位地址/数据复用。在这种模式下, P0 具有内部上拉电阻。在 flash 编程时,P0 口也用来接收指令字节;在程序校 验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1 口: 是一个具有内部上拉电阻的 8 位双向 I/O 口,p1 输出缓冲器能 驱动 4 个 TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口拉高, 此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻 的原因,将输出电流(IIL)。此外,P1.0 和 P1.2 分别作定时器/计数器 2 的外 部计数输入(P1.0/T2)和时器/计数器 2 的触发输入(P1.1/T2EX),具体如下 表 1

22、 所示。在 flash 编程和校验时,P1 口接收低 8 位地址字节。 P2 口:P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P2 输出缓冲器 能驱动 4 个 TTL 逻辑电平。对 P2 端口写“1”时,内部上拉电阻把端口拉高, 此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻 的原因,将输出电流(IIL)。在访问外部程序存储器或用 16 位地址读取外部 数据存储器(例如执行 MOVX DPTR)时,P2 口送出高八位地址。在这种应用中, P2 口使用很强的内部上拉发送 1。在使用 8 位地址(如 MOVX RI)访问外部数 据存储器时,P2 口输出 P2 锁

23、存器的内容。在 flash 编程和校验时,P2 口也接 收高 8 位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p2 输出缓冲器 能驱动 4 个 TTL 逻辑电平。对 P3 端口写“1”时,内部上拉电阻把端口拉高, 此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻 的原因,将输出电流(IIL)。P3 口亦作为 AT89S52 特殊功能(第二功能)使 用,如上表 2-1 所示。在 flash 编程和校验时,P3 口也接收一些控制信号。 RST: 复位输入。晶振工作时,RST 脚持续 2 个机器周期高电平将使单片 机复位。看门狗

24、计时完成后,RST 脚输出 96 个晶振周期的高电平。特殊寄存 器 AUXR(地址 8EH)上的 DISRTO 位可以使此功能无效。DISRTO 默认状态下, 复位高电平有效。 ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低 8 位地址的输出脉冲。在 flash 编程时,此引脚(PROG)也用作编程输入脉冲。 在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外 部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE 脉冲将会跳过。如果需要,通过将地址为 8EH 的 SFR 的第 0 位置 “1”,ALE 操作将无效。这一位置 “1”

25、,ALE 仅在执行 MOVX 或 MOVC 指令时有效。 否则,ALE 将被微弱拉高。这个 ALE 使能标志位(地址为 8EH 的 SFR 的第 0 位)的设置对微控制器处于外部执行模式下无效。 PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当 STC89C52R 从外部程序存储器执行外部代码时,PSEN 在每个机器周期被激活 两次,而在访问外部数据存储器时,PSEN 将不被激活。 EA/VPP:访问外部程序存储器控制信号。为使能从 0000H 到 FFFFH 的外部 程序存储器读取指令,EA 必须接 GND。为了执行内部程序指令,EA 应该接 VCC。在 flash

26、编程期间,EA 也接收 12 伏 VPP 电压。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。 程序存储器:如果 EA 引脚接地,程序读取只从外部存储器开始。对于 89S52,如果 EA 接 VCC,程序读写先从内部存储器(地址为 0000H1FFFH)开 始,接着从外部寻址,寻址地址为:2000HFFFFH。 数据存储器:STC89C52R 有 256 字节片内数据存储器。高 128 字节与特 殊功能寄存器重叠。也就是说高 128 字节与特殊功能寄存器有相同的地址,而 物理上是分开的。当一条指令访问高于 7FH 的地址时,寻址方式决定 CP

27、U 访 问高 128 字节 RAM 还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄 存器(SFR) 定时器 2:定时器 2 是一个 16 位定时/计数器,它既可以做定时器,又可 以做事件计数器。其工作方式由特殊寄存器 T2CON 中的 C/T2 位选择(如表 2 所示)。定时器 2 有三种工作模式:捕捉方式、自动重载(向下或向上计数) 和波特率发生器。工作模式由 T2CON 中的相关位选择。定时器 2 有 2 个 8 位寄 存器:TH2 和 TL2。在定时工作方式中,每个机器周期,TL2 寄存器都会加 1。 由于一个机器周期由 12 个晶振周期构成,因此,计数频率就是晶振频率的 1/12。

28、 中断:STC89C52R 有 6 个中断源如表 2-2 所示:两个外部中断(INT0 和 INT1),三个定时中断(定时器 0、1、2)和一个串行中断每个中断源都可以 通过置位或清除特殊寄存器 IE 中的相关中断允许控制位分别使得中断源有效 或无效。IE 还包括一个中断允许总控制位 EA,它能一次禁止所有中断。定时器 2 可以被寄存器 T2CON 中的 TF2 和 EXF2 的或逻辑触发。程序进入中断服务后, 这些标志位都可以由硬件清 0。实际上,中断服务程序必须判定是否是 TF2 或 EXF2 激活中断,标志位也必须由软件清 01。 符号位地址功能 EAIE.7中断总允许控制位。EA=0,

29、中断总禁止;EA=1,各中断 由各自的控制位设定 -IE.6预留 ET2IE.5定时器 2 中断允许控制位 ESIE.4串行口中断允许控制位 ET1IE.3定时器 1 中断允许控制位 EX1IE.2外部中断 1 允许控制位 ET0IE.1定时器 0 中断允许控制位 EX0IE.0外部中断 1 允许控制位 3.23.2 STC89C52RSTC89C52R 单片机最小系统单片机最小系统 图 3-2-1 晶振电路 图 3-2-2 复位电路 如图 3-2-1、图 3-2-2 所示,复位电路和时钟电路是维持单片机最小系统 运行的基本模块。单片机最小系统是在以 51 单片机为基础上扩展,使其能更方 便地

30、运用于测试系统中,不仅具有控制方便、组态简单和灵活性大等优点,而 且可以大幅度提高被测试的技术指标,从而能够大大提高产品的质量和数量。 单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,称为在 实时检测和自动控制领域中广泛应用的器件,在工业生产中称为必不可少的器 件,尤其是在日常生活中发挥的作用也越来越大2。 3.33.3 键盘电路键盘电路 因为本设计使用键盘数比较少,只要 5 个按键就足够了,故可以直接接在 端口即可。 图 3-3-1 键盘电路 3.23.2 显示电路设计显示电路设计 将 P1 与显示的数据端相连,采用模拟时序形式电路。电路接线如图 3-2 图 3.2 显示电路

31、3.33.3 报警电路设计报警电路设计 报警电路对实时温度的检测,温度过高或过低报警灯亮,并且蜂鸣器根据不 同的报警情况,发出不同频率的声音。 图 3.3 报警电路 3.43.4 传感器电路设计传感器电路设计 本设计使用的是 DS18B20,采用单总线方式连接。 图 3.4 传感器电路 3.53.5 电机控制电路设计电机控制电路设计 电机电路利用继电器来控制电机开断。电路如图图 3.5 图 3.5 电机控制电路设计 第第 4 4 章章 程序设计程序设计 4.14.1 主程序设计主程序设计 主程序主要完成初始化、以及调用显示、指示灯、温度采集等等。具体模 块包括: 1、显示程序设计 2、温度采集

32、程序设计 3、温度处理程序设计 4.24.2 显示程序设计显示程序设计 显示程序主要将几个数组的内容通过 LCD1602 的写数据指令显示在 LCD 屏上。 4.34.3 温度处理程序设计温度处理程序设计 将采集到的实时温度与设定的上限,下限,上限预报警,下限预报警温度 进行比较,若超过上限温度红灯亮,并且发出高频率的报警声。如果实时温度 介于上限预报警和上限温度之间,黄灯亮,并发出低频率的报警声。在超过下 限温度时红灯亮,也发出高频率的报警声,如果实时温度介于下限预报警和下 限温度之间,黄灯亮,并发出低频率的报警声。 4.44.4 上下限温度设定程序上下限温度设定程序 采用外部中断 1 的方

33、式,可以实时进行设定温度上下限值。温度上下限设 定的范围为-2099 度。 4.54.5 程序流程图程序流程图 开始 显示欢迎界面 输入上下限温 度值 温度采集并显 示 温度比较判断是 否超否超过设定 值 报警并进行温度 处理 是 否 4.64.6 程序源代码程序源代码 #include #include #define LCD_DB P2 sbit DQ = P10; sbit BUZZER = P11; sbit PWM = P12; sbit LCD_RS = P14; sbit LCD_RW = P15; sbit LCD_E = P16; sbit HEAT = P17; void

34、initial(void); void read_DHT11(void); void LCD_write_command(unsigned char com); void LCD_display_char(unsigned char x, unsigned char y, unsigned char dat); unsigned char read_DHT11_char(void); void control_temperature_humidity(void); void delay_xms(unsigned int time_xms); void delay_x10us(unsigned

35、int time_x10us); unsigned char stop_system = 0; unsigned char lineOne = TS(0-50): C; unsigned char lineTwo = HS(20-90): %RH; unsigned int T0_number = 0, T1_number, PWM_width_H; unsigned char temperature_ten, temperature_one, humidity_ten, humidity_one; unsigned char temperature_H, temperature_L, hum

36、idity_H, humidity_L, checkData; void initial(void) unsigned char i, j; TMOD = 0 x11;/定时器 0 工作方式 1,16 位计数器;定时器 1 工作方式 1,16 位计数器 TH1 = 0 xFC;/定时器 1 溢出周期 1ms,延时 TH1 = 0 x66; TH0 = 0 xFC;/定时器 0 中断周期 1ms,PWM TL0 = 0 x66; EA = 1; ET1 = 1; ET0 = 1; EX0 = 1; IT1 = 1; TR0 = 1; LCD_write_command(0 x38); /设置 8

37、 位格式,2 行,5x7 LCD_write_command(0 x0c); /设置整体显示,关闭光标,且不闪烁 LCD_write_command(0 x06); /设置输入方式,增量不移位 LCD_write_command(0 x01); /清屏 for (i = 0; i 16; i+) LCD_display_char(i, 1, lineOnei); for (j = 0; j 16; j+) LCD_display_char(j, 2, lineTwoj); LCD_display_char(14, 1, 0 xDF);/显示 void read_DHT11(void) DQ =

38、 0; delay_xms(18); DQ = 1; delay_x10us(2); if (DQ = 0) while (DQ = 0); while (DQ = 1); humidity_H = read_DHT11_char(); humidity_L = read_DHT11_char(); temperature_H = read_DHT11_char(); temperature_L = read_DHT11_char(); unsigned char read_DHT11_char(void) unsigned char i, temp_one, temp_two; for (i

39、 = 0; i 8; i+) while (DQ = 0); delay_x10us(3); if (DQ = 0) temp_one = 0; else temp_one = 1; temp_two 28) /温度转速 PWM_width_H = 100; else if (temperature_H = 23) HEAT = 0; PWM_width_H = (temperature_H - 18) * 10; void delay_xms(unsigned int time_xms) T1_number = 0; TR1 = 1; while (1) if (time_xms = T1_

40、number) break; TR1 = 0; void delay_x10us(unsigned int time_x10us) while (time_x10us-) _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); void main(void) initial(); while(1) delay_xms(2000); read_DHT11(); LCD_display_DHT11(); control_temperature_humidity(); void INT_0(void) inter

41、rupt 0 stop_system = 1; void Timer_0(void) interrupt 1 TH0 = 0 xFC;/定时器 0 中断周期 1ms,PWM TL0 = 0 x66; T0_number+; if (T0_number 100) T0_number = 0; else if (T0_number PWM_width_H) PWM = 1; else PWM = 0; void Timer_1(void) interrupt 3 TH1 = 0 xFC;/定时器 1 溢出周期 1ms,延时 TL1 = 0 x66; T1_number+; 第第 6 6 章章 总结

42、总结 写这篇总结时,当初很多的困难到现在已体会不到了。现在回过来看当初, 我认为一切都很值。在这中间每天都有很多挫折在等待着我,但我始终坚信 “失败是更近一步走向成功”。 在软件的调试过程中,遇到的问题有很多,下面就几个比较突出的问题进 行说明。 1)在对 Keil C 的使用时不知道怎么才能让它生成 HEX 文件,从而进行仿 真,因为以前没有用过类似的软件,不会并且也不知道需要生成 HEX 文件,导 致前期的工作很难进行 2 )因为用的是 DHT11 数字传感器,在编程过程中需要对所测得温度进行 处理,而且需要给定一个温度范围,建立一个温度与电机转速的数学模型,经 过反复的计算、实验才实现。

43、 3)因为考虑到经济实用方面,所以在进行实物操作之前,采用 proteus 软 件对程序和硬件电路进行仿真,可是在仿真过程中,独立按键总是不灵敏,这 需要对延迟时间进行调整,而程序中设置的延迟时间总是不能够很符合实际操 作,所以在这方面浪费了大量的时间进行反复的操作和实验 4)在仿真过程中,因为用到的是 LCD1602 显示模块,这种显示模块是可 以显示字符的,并且这种模块本身带有字库,但事实仿真过程中,电路要求相 对宽松,不需加上拉电阻,而实际的电路调试过程需要加上拉电阻。 不管困难有多么多,我都通过我能寻求帮助的一切方式去解决问题。早在 选题之前,我就利用平时的时间看 DS18B20 芯片

44、资料,当初认为 DS18B20 延时 要很精确,所以我必须写出精确的延时程序。但是 C 语言延时是不好精确地, 为了写出那种很精确的延时程序,在网上找了很多资料,还有可以利用 keil 这 个软件进行一些调试,也可测出延时时间。 延时解决后,以为一切都会很顺利,但往往看起来容易的事情总有想不到 的问题。在写 DS18B20 驱动程序时,读出来显示的温度值总是不对,左看右看, 我知道问题肯定是出在数据处理上。于是我上网看别人是怎么进行数据处理, 结合很多网上程序后,最后选择了其中一种的方法,但一切并不顺利,一篇又 一篇的调试,不知调试了多少次终于成功了。 DS18B20 驱动写出来了后,1602

45、 显示程序以前写过,所以可以移植过来, 所以减少了不少的时间。大的结构确定后,就是修改一些细节上。比如我的温 度比较范围是从-20-99,这在软件控制上,看上去很简单。可最后代码写下 来也不少。而且我也是调试了蛮多次的。主要是以前从没有独立做过这种课程 设计。所以没有经验,很多细节上处理的不是很好。所以自己只有不断地去学 习别人怎么处理,然后结合自身来处理细节上的问题。利用了几天的时间,终 于是在 PROTEUS 上仿真成功了。但我的设计还是存在一些问题,比如反映时间 不是很快,这些问题是值得去注意的。 再者,在 Proteus 上仿真通过,而没有做出实物,那也永远只是理论水平。 所以,尽管课

46、程设计完成了,我要做的还远远不够。在写课程设计的论文时, 也得到了同学的帮助,同学也帮忙完成了一些。 通过这次课程设计,让我对于单片机的项目有了一个认知。我更近一步看 清了前方的路。很多东西是接下来必须去做的。总之,要学的还很多,只有不 断地学习,才能轻松的处理事情。有句话说的很对“只有很努力,才能看起来 毫不费力”。课程设计搞完了,我的单片机学习还是不会断,因为我学的还真 不够。最后感谢给与我指点的老师和同学。虽然我没有很强烈的表达在表面, 但我一直都记住的。没有你们,我可能会走很多弯路才能做到,一生中遇到你 们这些贵人是我的荣幸。感谢你们。 参考文献参考文献 1 赵晶.Protel99 高级应用M. 人民邮电出版社, 2006. 2 谷树忠.Protel DXP 实用教程M. 电子工业出版社,2003. 3 刘湘涛、江世民.单片机原理与应用M

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1