




免费预览已结束,剩余38页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)毕业设计(论文) 题目: 基于单片机的种苗催芽室环境参数监控 系统设计与实现 姓名: 学号: 二级院系部: 机电工程系 班级: 高专电子 专业: 应用电子技术 指导教师: 职称: 讲 师、副教授 年 月 江苏畜牧兽医职业技术学院学生毕业设计(论文)诚信承诺书 论文题目 养殖场用单片机温度控制器的设计与实现 学生姓名学号 所属专业 应用电子技术 班级 指导教师姓名职称 讲师、副教授 学生承诺 我承诺在毕业设计 (论文)活动中,遵守学校有关规定,恪守学术规 范,本人毕业设计 (论文)内容除特别注明和引用外,均为本人观点,不 存在剽窃、抄袭他人学术成果,伪造、篡改实验数据的情况,如果有违规 行为,我愿意承担一切责任,接受学校的处理。 学生(签名): 年 月 日 指导教师承诺 我承诺在毕业设计 (论文)活动中,遵守学校有关规定,恪守学术规 范,经过本人核查,该生毕业设计 (论文)内容除特别注明和引用外,均 为本人观点,不存在剽窃、抄袭他人学术成果,伪造、篡改实验数据的现 象。 指导教师(签名): 年 月 日 江苏畜牧兽医职业技术学院学生毕业设计(论文)材料目录 序号序号名名 称称备备 注注 1 毕业设计(论文)全文全文 2 毕业设计(论文)任务书 3 毕业设计(论文)开题报告或实施方案 4 毕业设计(论文)指导记录 5 毕业设计(论文)中期检查记录表 6 毕业设计(论文)指导教师意见表 7 毕业设计(论文)评阅教师意见表 8 毕业设计(论文)答辩记录 9 毕业设计(论文)成绩评定表 江苏畜牧兽医职业技术学院论文(设计) I 养殖场用单片机温度控制器的设计与实现养殖场用单片机温度控制器的设计与实现 【摘要摘要】 养殖过程中,养殖大棚的环境控制对于动植物的健康生长、最大程度地发挥其生长 性能有着及其重要的意义。养殖大棚的环境控制主要是针对温度、湿度等环境因子进行 监视和控制。本次设计是根据养殖场的环境温度控制要求,研究并建立基于单片机的温 度控制系统。 本系统是以 AT89C52 单片机为核心,并与数字温度传感器 DS18B20、四位一体的数 码管、继电器、按键、小型电风扇、LED 灯等器件结合起来,共同构成温度控制器。以 养殖场的温度为设定参数,根据参数偏离设定值(理想的养殖温度)的程度由单片机自 动启动相应的加热和降温设备,来升温或降温,实现对设定参数的闭环调节。该系统能 够及时采集养殖场温度,并能自动升温和降温,从而将养殖场温度保持在恒温,该系统 具有较高的测量精度和控制精度。 本文首先对养殖场温度控制过程进行分析,提出了多种控制方案,对各方案比较后 确定了本设计的总体方案。然后进行原理图的设计,采用分步焊接、软件设计与调试, 最后进行联调。通过对控制器进行实验和分析,表明系统运行情况正常,各功能模块功 能的实现可行,采集的温度数据精确性较高,能满足控制的要求。除此之外,该系统电 路简单、成本低,稍做修改还可以应用于其他温度控制的过程中,这大大地扩大了该系 统的应用范围,在养殖中具有一定的实际意义。 【关键词关键词】 AT89C52;DS18B20;温度控制;继电器控制 江苏畜牧兽医职业技术学院论文(设计) II Abstract In the process of breeding, it is important for the animal and plant health growth, maximizing its growth performance. Breeding environmental control is mainly the temperature, humidity and other environmental factors. The design is based on farms in the environment temperature control requirements, and research the establishment of the temperature control system based on MCU. This system is based on AT89C52 as the core, with digital temperature sensor DS18B20, one of four digital tube, relays, buttons, small electric fan, LED lamps and other devices together, constitute a temperature controller. In order to farms temperature to set parameters, according to the parameters from a set value ( the ideal breeding temperature ) by the microcontroller automatically start the corresponding heating and cooling equipment, to warm up or cool down, to realize the closed loop adjusting parameters. The system can timely collection of farms temperature, and can automatically heat up and cool down, thereby the farm temperature maintained at constant temperature, the system has high measurement and control precision. First, the author analyses breeding field temperature control process, puts forward several control schemes, the scheme comparison to determine the design of the overall program. Then the schematic design, step by step welding, software design and debugging, finally debugging. Through the controller to conduct experiments and analysis, shows that this system runs normally, each function module implement feasible, the collected temperature data is more accurate, and can meet the control requirements. In addition, the system has the advantages of simple circuit, low cost, a little modification can also be applied to other temperature control process, which greatly expanded the application range of the system, the breed has certain practical significance. Key words AT89C52; DS18B20; temperature control; relay control 江苏畜牧兽医职业技术学院论文(设计) III 目目 录录 【摘要】 .I 【关键词】 .I Abstract II Key words .II 绪 论 .1 1.系统方案选择和论证 .2 1.1 题目要求 .2 1.1.1 基本要求.2 1.1.2 发挥部分.2 1.1.3 功能说明.2 1.2 系统基本方案 .3 1.2.1 各模块电路的方案选择及论证.3 1.2.2 系统各模块的最终方案 .5 1.3 本章小结.6 2.硬件设计与实现 .7 2.1 系统硬件模块关系 .7 2.2 主要单元电路的设计7 2.2.1 温度采集部分设计.7 2.2.2 加热和降温控制部分 9 2.2.3 键盘、显示、控制器部分10 2.3 系统总原理图11 2.4 本章小结11 3.系统软件设计 12 3.1 读取 DS18B20 温度模块子程序.12 3.2 数据处理子程序.12 3.3 键盘扫描子程序.13 3.4 主程序流程图.13 3.5 源程序.15 3.6 本章小结.15 4.系统制作与调试 16 4.1 数码管的调试16 4.2 按键的调试16 4.3 温度传感器的调试 .17 4.4 继电器控制部分的调试17 4.5 联调18 4.6 本章小结 21 设计总结及展望 22 参考文献 23 附 录 .24 附录 1: 产品使用说明 .24 附录 2: 元件清单 .24 附录 3 : 系统硬件原理图25 附录 4:软件程序清单(含注释) 26 致 谢 .37 江苏畜牧兽医职业技术学院论文(设计) 1 绪绪 论论 动植物的生长都是在一定的环境中进行的,在生长过程中受到环境中各种因素的影 响,其中对其影响最大的就是温度。若昼夜的温度变化很大,其对动植物生长极为不利, 因此必须对温度进行监测和控制,使其适合动植物的生长,以提高其产量和质量。 本设计就是对养殖场内温度控制要求进行分析,综合考虑系统的精度、效率以及经 济性要求多方面因素之后,设计一种基于单片机的养殖温度自动控制系统。该系统能够 实现自动监控,使其温度控制在设定值的某个范围内,同时可以通过按键输入设定温度 等控制指令,完成监控系统的工作。基于此,本课题的主要研究内容有以下几个部分: 1 温度控制系统的总体方案设计部分 该部分主要研究养殖场温度控制的实现原理,确定温度控制系统的具体实现过程, 进行系统的总体设计,给出硬件系统结构框图,完成硬件各部分元器件的选择等。 2 系统硬件设计部分 该部分主要完成单片机基本电路(时钟、复位电路等)、数据采集电路、显示输出接 口、按键输入接口、继电器控制等模块电路的设计,最后给出总原理图的设计。 3 系统程序设计部分 此部分主要完成主服务程序、温度采集与处理、按键输入温度设定、温度显示、继 电器控制等程序模块的设计。 4 系统实现 该部分主要是从硬件与软件两个方面探讨系统的实现过程,采用分步焊接与调试, 并对系统进行了相应的试验分析,以验证系统所具有的功能。 本系统实现的温度控制目标功能如下: (1) 系统能对环境温度进行采集和显示(现场观温,软件记录)。 (2) 能通过按键设定动植物生长期适宜温度并显示。 (3) 当环境温度参数超过设定的上下限值时控制相应的设备启动。 (4) 可实时显示当前温度信息,并加以控制。 (5)能分辨出的最小温度TH 或 T ROM 操作命令 - 存储器操作命令- 处理数据 初始化: 单总线上的所有处理均从初始化开始。 1 ROM 操作命令:总线主机检测到 DSl8B20 的存在便可以发出 ROM 操作命令之一这 2 些命令如表 2-2 所示。 江苏畜牧兽医职业技术学院论文(设计) 9 表 2-2 ROM 操作命令表 指令代码 Read ROM(读 ROM) 33H Match ROM(匹配 ROM) 55H Skip ROM(跳过 ROM CCH Search ROM(搜索 ROM) F0H Alarm search(告警搜索) ECH 存储器操作命令如表 2-3 所示。 3 表 2-3 存储器操作命令表 指令代码 Write Scratchpad(写暂存存储器) 4EH Read Scratchpad(读暂存存储器) BEH Copy Scratchpad(复制暂存存储器) 48H Convert Temperature(温度变换) 44H Recall EPROM(重新调出) B8H Read Power supply(读电源) B4H 2.2.22.2.2 加热和降温控制部分加热和降温控制部分 由于本系统要控制电热丝加热,功率较大,因此要借助功率电路。在器件选择上留 足余量,增加安全性。加热部分采用继电器控制,电路简单可靠。电路如图 2-3 所示。 图 2-3 加热器控制图 江苏畜牧兽医职业技术学院论文(设计) 10 当实测温度低于设定值时,由单片机输出高电平信号,三极管 9014 导通,继电器 开始工作对加热。为了防止继电器频繁动作,在软件中对水温测量精确到 0.1,而在 温度设定时只取整数,可以有 1的余量。二极管起到保护三极管的作用,防止三极管 击穿。说明:说明:这个电路可以根据实际加热器的要求跟换继电器及电源的大小,这里只是 假设一个小型功率的加热器,实际达不到很快升温的目的。 当设定温度低于实测温度时为了加快系统动态响应速度,设置一个小功率电扇,加 速温度的降低。使系统整体性能得以提高。原理图如图 2-4 所示。 图 2-4 电风扇控制图 2.2.32.2.3 键盘、显示、控制器部分键盘、显示、控制器部分 本设计中采用动态显示方式驱动 4 个八段数码管,分别显示温度的十位、个位和小 数点后两位。动态显示组合式数码管只需要较少的引脚个数,以 4 位组合式数码管为例, 需要 8+4=12 个引脚。而如果每个数码管都要单独引脚,至少需要 4*9=36 个引脚。引脚 数减少使得印刷线路板布置变得更为简单,因此,在需要使用多位数码管时,一般都用 组合式的。数码管采用共阳极,单片机 P0 口作为段控制,P2.7P2.4 通过 4 个 PNP 型 三极管接第 14 位数码管的 COM 端。 江苏畜牧兽医职业技术学院论文(设计) 11 键盘采用按键开关经上拉电阻分别接 P1.1、P1.2、P1.3 口上,起到控制、上调和 下调作用。每按上调和下调键,设定温度值增 1 减 1。单片机 XTAL2、XTAL1 接 12MHZ 晶振,提供系统时钟基值。另 RESET 接复位电路。原理图如图 2-5 所示。 图 2-5 键盘、显示、控制器部分原理图 2.32.3 系统总原理图系统总原理图 在分模块设计的基础上,进行综合电路原理图的设计,系统的总原理图见附录 3。 2.42.4 本章小结本章小结 首先对温度控制器硬件的关系进行描述,然后分模块对温度采集、加热模块、降 温控制、键盘、显示及控制器部分进行硬件电路的设计,最后给出总原理图的设计,为 第三章软件的设计做好准备。 江苏畜牧兽医职业技术学院论文(设计) 12 3.3.系统软件设计系统软件设计 系统的软件设计采用汇编语言,对单片机进行编程实现各功能。 主程序对模块进行初始化,而后调用读温度、处理温度、显示、键盘和继电器控制 各模块。采用的是循环查询方式,来显示和控制温度。 3.13.1 读取读取 DS18B20DS18B20 温度模块子程序温度模块子程序 每次对 DS18B20 操作时都要按照 DS18B20 工作过程中的协议进行。 初始化- ROM 操作命令- 存储器操作命令- 处理数据,程序流程图如图 3-1 所 示。 图 3-1 读取 DS18B20 温度子程序流程图 DS18B20 存在? 江苏畜牧兽医职业技术学院论文(设计) 13 3.23.2 数据处理子程序数据处理子程序 由于 DS18B20 转换后的代码并不是实际的温度值,所以要进行计算转换。温度高字 节(MS Byte)高 5 位是用来保存温度的正负(标志为 S 的 bit11bit15),高字节 (MS Byte)低 3 位和低字节来保存温度值(bit0 bit10)。其中低字节(LS Byte) 的低 4 位来保存温度的小数位(bit0 bit 3)。由于本程序采用的是 0.0625 的精度, 小数部分的值,可以用后四位代表的实际数值乘以 0.0625,得到真正的数值,数值可 能带几个小数位,所以采取小数舍入,保留两位小数即可,即本系统的温度精确到了 0.01 度。 算法核心:首先程序判断温度是否是零下,如果是,则 DS18B20 保存的是温度的补 码值,需要对其低 8 位(LS Byte)取反加一变成原码。处理过后把 DS18B20 的温度 Copy 到单片机的 RAM 中,里面已经是温度值的 Hex 码了,然后转换 Hex 码到 BCD 码, 分别把小数位,个位,十位的 BCD 码存入 RAM 中。数据处理子程序流程图如图 3-2 所示。 数据传递 温度是否为负?求补运算 N Y BCD 码转 换 返回 图 3-2 数据处理子程序流程图 3.33.3 键盘扫描子程序键盘扫描子程序 按键功能: 1. Enter P1.1(S1) 控制键 2. Up P1.2(S2) 加 1 键 3. Down P1.3(S3) 减 1 键 键盘子程序流程图如图 3-3 所示。 江苏畜牧兽医职业技术学院论文(设计) 14 3.43.4 主程序流程图主程序流程图 总模块流程图如图 3-4 所示。本软件设计采用循环查询来处理各个模块,温度是缓 慢变化量所以可以满足性能要求。 开始 控制键是否按下? ENTER_FLAG=1? 是否有 ENTER? 是否有上调键按一次? 是否有下调键按一次? DISPLAY 显示 返回主程序 N Y Y Y N ENTER 子程 序 FLAG=1 Y N N UP 子程序 Y DOWN 子程序 图 3-3 键盘子程序流程图 江苏畜牧兽医职业技术学院论文(设计) 15 开始 初始化 调用 A/D 转换子程序 DS18B20 存在? 数据处理子程序 显示子程序 键盘扫描子程序 继电器控制子程序 Y 错误处理显示 N 图 3-4 主程序流程图 3.53.5 源程序源程序 源程序的设计采用的是汇编语言,由于源程序代码较长,故将其放在附录中,具 体参见附录 4。 3.63.6 本章小结本章小结 系统软件的设计同样也采用分模块的设计思路,然后利用主程序去调用各模块,主 要设计了读取 DS18B20 温度模块子程序、数据处理子程序、显示子程序、键盘扫描子程 序、继电器控制子程序。 江苏畜牧兽医职业技术学院论文(设计) 16 4.4.系统系统制作与调试制作与调试 在具体的产品制作过程中,我们采用的是分模块焊接与调试,目的是为了防止全部 焊接调试困难,若一次不成功,查找错误麻烦。 4.14.1 数码管数码管的调试的调试 首先用万用表对数码管进行共阴还是共阳的识别以及各引脚功能的识别,然后把单 片机工作最小系统电路焊接好,采用合适的方法连接数码管与单片机。最后编写数码管 驱动程序,用烧写器将程序编入到 AT89S52 单片机中。具体调试体会如下: 在这里最关键的就是数码管动态显示原理的理解与编程,刚开始编了一个简单的程 序显示 1234,但第一次显示的数不对,乱码,结果发现 a 和 e 段接线不小心搭在一起 了,线分开后,显示就正常了。然后又修改程序让其显示小数,如 24.94,如图 4-1 所 示。为了进一步理解动态显示程序的原理,将显示程序中的延时变长发现显示的数有闪 烁现象,变得更长 4 个都不能同时显示。由此可见,由此可见,动态显示的关键是要选择一个合适 的延时时间,在这里采用的延时约为 2ms。 图 4-1 数码管显示效果图 4.24.2 按键的调试按键的调试 数码管调试正常后,按原理图将按键与单片机连接,焊接很简单,关键是程序的编 写。刚开始编好程序后发现按下上调或下调键,温度上升或下降的速度非常快,人眼无 法分辨出温度的值,因此没办法设定温度。解决办法:解决办法:发现是按键处理子程序中延时时 间太短了。修改延时时间后,按下上调或下调键温度上升或下降速度明显没刚开始快了, 但是还是比较快。又进行二次延时时间的修改,这次温度每变化一度人眼都可分辨出。 在此基础上,我们对按键的功能进行修改,每按一次上调或下降按钮,温度变 1 度, 这样可以避免长时间按着上调或下降按钮温度在不停的变。我们对按键处理子程序进行 了修改,加了几条判断按键是否按了一次这么一个过程。最终按键实现的功能如下:如 果想设定温度,首先要按控制键(ENTER),然后再按上调或下调温度按钮才可调整温 江苏畜牧兽医职业技术学院论文(设计) 17 度(每按一次调整 1 度),调好以后再按控制键(ENTER),单片机才能感受到,并启 动相应的加热或降温装置。每按一次上调按键效果如图 4-2 所示,每按一次下调按键效 果图如图 4-3 所示。 图 4-2 上调按键效果图 图 4-3 下调按键效果图 4.34.3 温度传感器的调试温度传感器的调试 按键与显示部分调试好后,进行 DS18B20 温度传感器与单片机的连接,它采用独特 的单线接口方式,仅需一个端口引脚,但必须先建立 ROM 操作协议,才能进行存储器和 控制操作。DS18B20 的数据读写是通过时间隙处理位和命令字来完成信息交换的,需要 严格的时序协议以确保数据的完整性。第一次编好 DS18B20 温度程序后,显示的温度不 正常,然后就仔细阅读程序,发现是时序出了问题,修改时序后温度就正常了。由此可由此可 见,见,DS18B20 传感器的工作关键靠程序,程序中的时序又是最重要的。 4.44.4 继电器控制部分的调试继电器控制部分的调试 继电器控制电风扇和加热器,由于元器件的限制,没有加热器,故在此用 LED 灯来 模拟加热器,灯亮代表加热器加热。故在此先做继电器控制电风扇这部分电路,其与继 电器控制加热器原理一样。先将继电器控制风扇这部分电路与单片机连接好,然后编写 程序。温度传感器测得当前温度值并正常显示后,按键设定温度,若设定温度比当前温 度低时,电风扇应自动启动降温,但是刚开始电风扇却不动,查找程序怎么也找不到原 因。程序没问题就寻找电路的原因,查阅了大量的资料,然后问了有经验的老师,修改 了好几次电路但是由于元器件型号等问题,前面几次都没成功,有时要这个地方大约耗 了一个月的时间。在此期间电风扇转到的效果:效果:电风扇需要启动时有时转有时不转,需 要停下来时却停不下来,与想要的效果完全不一样。 最后在指导老师的帮助下,发现三极管导体了但是继电器就是不闭合,风扇不转。 原来没有考虑好三极管的导通电流问题,最后在三极管的 b 极接了一个 15K 上拉电阻, 江苏畜牧兽医职业技术学院论文(设计) 18 然后接到 5V 电源上,问题终于得到了解决。总结:总结:继电器控制电风扇主要是电路设计 上的缺陷,经过电路的改进,目前问题已解决。电风扇与单片机连接效果如图 4-4 所示。 图 4-4 电风扇与单片机的连接实物图 4.54.5 联调联调 分步调试后,最后进行联调,由于条件限制,在本设计中采用室内温度进行测试, 若设定温度高于当前温度值,加热器模拟灯会亮,但是室内温度不会变化那么快,我们 采用体温来实现温度的快速升高,达到设定值,加热器灯灭。具体调试过程如下: (1)DS18B20 温度传感器测得当前温度值为 28.38,显示如图 4-5 所示。 图 4-5 温度传感器实测温度实物图 江苏畜牧兽医职业技术学院论文(设计) 19 (2)设定温度值为 32.50,比当前实际温度高 4。设定温度效果图如图 4-6 所 示。 图 4-6 温度设定效果图 (3)按下确认键后,因设定温度比当前实际温度高,因此加热器模拟灯亮,代表 加热器开始加热。效果如图 4-7 所示,只要不超过 32.50,加热器都应该在加热。 图 4-7 模拟加热器灯亮 江苏畜牧兽医职业技术学院论文(设计) 20 (4)在此采用体温加热,当温度超过了 32.50,加热器就应该停止工作,效果 如图 4-8,电风扇启动,效果如图 4-9 所示,直到 32.50左右加热和风扇停止工作。 图 4-8 加热器停止加热 图 4-9 电风扇转动 (5)实物总体效果图如图 4-10 所示。 江苏畜牧兽医职业技术学院论文(设计) 21 图 4-10 系统总体效果图 4.64.6 本章小结本章小结 本章对温度控制器的制作与调试过程给出了详细地介绍,通过本次毕业设计,我懂 得了理论与学习是密不可分的,一开始头脑中的思路是很清晰但实践起来时就开始有点 手忙脚乱了,所以说实践是很重要的。 江苏畜牧兽医职业技术学院论文(设计) 22 设计总结设计总结及展望及展望 本毕业设计是将电路、电工、模电、数电、单片机、汇编语言等书本知识与理论结 合的一次大实践。在参考和总结前人研究成果的基础上,查阅大量的资料,针对目前我 国养殖场温度控制的要求而设计出来的控制器。该温度控制器能及时检测室内温度,并 用数码管显示当前温度,根据当前温度与理想环境温度(设定温度)之间的差别,加热 器或者风扇将自动启动,直至达到设定温度停止工作。该系统的特点: (1)能够及时采集养殖场、温室大棚和水的温度,误差小于 0.1; (2)能够设定温度,可以设定为农作物生长的理想温度; (3)若实际温度比设定温度高时,电风扇自动启动降温,直到达到设定温度,自 动停止; (4)若实际温度比设定温度低时,加热器自动启动加温,直到达到设定温度,自 动停止; (5)该系统的控制精度高。 虽然本毕业设计实现了对环境温度的实时采集与控制,也获得了比较理想的实验效 果,但是由于元器件和经费的限制,仍然存在着诸多不足。该作品可以进行以下的改进: (1)用实际加热器代替加热器模拟灯; (2) 电路焊接不够光滑,用 PCB 板和贴片焊接代替该焊接电路; (3)将数码管和按键安装在工作室,从而改善工作人员的工作环境。 (4)如果需要快速达到理想温度,即降温或升温,那么就需要接多个电风扇和加 热器,这可以根据需要而设置。 经改进后,该系统可以广泛地应用在养殖大棚等场所的温度控制,保证农作物理想 的生长温度,提高产量! 江苏畜牧兽医职业技术学院论文(设计) 23 参考文献参考文献 1 边春元.单片机应用开发实用子程序M. 北京:人民邮电出版社,2005. 2 李建兰.基于 STC12C 系统单片机的 DS18B20 编程M. 北京:人名邮电出版社,2005. 3 高吉祥.全国大学生电子设计大赛培训系列教程M. 主编:电子工业出版社,2007. 4 周坚.单片项目教程M. 北京航空航天大学出版社,2011,1. 5 徐爱钧 彭秀华.Keil Cx51 V7.0 单片机高级语言编程M. 北京: 电子工业出版社 .2007,2. 6 潘永雄 沙河 刘向阳.电子线路 CAD 实用教程M. 西安电子科技大学出版社,2008,2. 7 李斌 张晶.MCS-51 单片机应用技术项目教程M. 北京航空航天大学出版社,2011,8. 8 肖红兵.跟我学用单片机M. 北京:航空航天大学出版社,2006. 9 乌海荣.浅谈单片机在温控系统J.华章,2011,24. 10 钟晓伟 宋蛰存.基于单片机的实验室温湿度控制系统设计J. 林业机械与木工设备, 2010,38(1). 11 易顺明, 赵海兰, 袁 然.基于单片机的大棚温湿度控制系统设计J.现代电子技术, 2011,34(7). 江苏畜牧兽医职业技术学院论文(设计) 24 附附 录录 附录附录 1 1: 产品使用说明产品使用说明 本水温控制系统能在 099范围内设定任意温度值,超出此范围将有出错显示 8888,之后返回到 99或 0。通过按 ENTER(P1.1)键确认开始温度设定;P1.2 的 UP 键为加 1 键,每按一次使设定温度值加 1,P1.3 的 DOWN 键为减 1 键,每按下一次 设定温度值减 1。设置完温度要再按 ERTER 键确认温度设定完成,之后显示实测温度 值。当温度传感器没有接入时也将有出错提示显示 8888。 附录附录 2 2: 元件清单元件清单 元件数量元件数量 AT89S52 单片机 1 个小电风扇1 个 DS18B20 温度传感器1 个PCB 白板1 块 11.0592MHZ 晶振1 个10uf 电解电容1 个 四位一体数码管1 个30pf 瓷片电容4 个 按键3 个稳压电源1 个 开关1 个电阻若干 继电器1 个导线若干 9012 三极管4 个LED 灯1 个 9014 三极管2 个7805 稳压器1 个 二极管2 个 江苏畜牧兽医职业技术学院论文(设计) 25 附录附录 3 3 : 系统硬件原理图系统硬件原理图 江苏畜牧兽医职业技术学院论文(设计) 26 附录附录 4 4:软件程序清单:软件程序清单(含注释)(含注释) ;主程序 TEMPERATURE_L DATA 31H ;DS18B20 低 8 位 BUFFER TEMPERATURE_H DATA 30H ;DS18B20 高 8 位 BUFFER TEMPERATURE_HC DATA 32H ;计算后十位的 BCD 码存放 BUFFER TEMPERATURE_LC DATA 33H ;计算后的个位和小数位的 BCD 码存放 BUFFER TEMPERATURE_ZH DATA 34H ;计算后十位和个位 HEX 码的存放 BUFFER P_DS18B20 EQU P1.5 ;读取 DS18B20 的输入端口 DIS_BUF_Y DATA 35H ;数码管小数点后第二位 DIS_BUF_X DATA 36H ;小数点后第一位 DIS_BUF_G DATA 37H ;数码管个位 DIS_BUF_S DATA 38H ;数码管十位 P_SWITCH EQU P3.1 ;加热器控制接口,1-加热,0-断开 P_FAN EQU P1.6 ;电风扇控制接口,1-降温,0-断开 KEY_BUF_G DATA 39H ;键盘输入后的个位值 KEY_BUF_S DATA 49H ;键盘输入后的十位值 K_ENTER EQU P1.1 ;输入数据确认按钮 K_UP EQU P1.2 ;上调按钮 K_DOWN EQU P1.3 ;下调按钮 FLAG EQU 20H.0 ;标志位,确定是否存在 DS18B20,1-存在, ;0-不存在 ENTER_FLAG EQU 20H.1 ;键盘输入的标志位,为 0 说明键盘正在输 ;入,为 1 说明键盘输入退出 ORG 0000H LJMP M ORG 0400H M:MOV SP,#40H ;初始化 MOV KEY_BUF_G,#0 ;由于 KEY_BUF 是由用户输入的,所以先赋值初始化 MOV KEY_BUF_S,#0 CLR P_SWITCH CLR P_FAN M1:LCALL READ_TEMP ;调用读温度子程序 JB FLAG,NORMAL ;判断是否有 DS18B20 的存在 江苏畜牧兽医职业技术学院论文(设计) 27 LCALL ERR ;不存在时显示错误信息 SJMP M1 NORMAL: LCALL DATA_DEAL ;处理从 DS18B20 得到的数据 LCALL SET_DIS_BUF ;赋值给 DIS_BUF_Y,X,G,S LCALL DISPLAY ;调用数码管显示子程序 LCALL SCAN_KEY ;扫描键盘 LCALL SWITCH ;处理继电器 SJMP M1 ;程序名称:SCAN_KEY ;功能:扫描键盘 ;入口参数:DIS_BUF_G,DIS_BUF_S, ;出口参数:KEY_BUF_G,KEY_BUF_S, SCAN_KEY: JB K_ENTER,QUIT;如果有 ENTER 键入,则开始键盘输入 LCALL K_DELAY JB K_ENTER,QUIT CLR ENTER_FLAG;每次进来都赋值输入标志,设置为 0 JNB K_ENTER,$ MOV KEY_BUF_G,DIS_BUF_G ;将当前的温度赋值给 KEY_BUF,也就是说是以当前 温度为基准,进行加减的 MOV KEY_BUF_S,DIS_BUF_S K_LOOP: JB ENTER_FLAG,QUIT ;如果输入完成,ENTER_FLAG 则为 1, ;退出键盘程序 JB K_ENTER,KUP LCALL PRO_ENTER KUP: JB K_UP,KDOWN LCALL PRO_UP KDOWN: JB K_DOWN,LOOPA LCALL PRO_DOWN LOOPA: LCALL DISPLAY SJMP K_LOOP QUIT: RET ;程序名称:PRO_ENTER ;功能:确认键盘输入和退出键盘输入 ;入口参数:ENTER_FLAG ;出口参数:ENTER_FLAG 江苏畜牧兽医职业技术学院论文(设计) 28 PRO_ENTER: LCALL K_DELAY JB K_ENTER,K_LOOP ;按键抖动处理 JNB K_ENTER,$ SETB ENTER_FLAG LCALL K_DELAY RET ;程序名称:PRO_UP ;功能:数值上调处理 ;入口参数:KEY_BUF_G,KEY_BUF_S, ;出口参数:DIS_BUF_G,DIS_BUF_S, PRO_UP: LCALL K_DELAY JB K_UP,K_LOOP ;按键抖动处理 JNB K_UP,$ INC KEY_BUF_G ;个位增一 MOV A,KEY_BUF_G CJNE A,#0AH,UPNEXT ;个位增加到 10,回 0 MOV KEY_BUF_G,#00H INC KEY_BUF_S ;十位加一 MOV A,KEY_BUF_S CJNE A,#0AH,UPNEXT ;十位超过 99,溢出了 MOV R0,#200 ERROR1: LCALL ERR ;出错,显示 888 DJNZ R0,ERROR1 DEC KEY_BUF_S ;退回 99 MOV KEY_BUF_G,#09H UPNEXT: MOV DIS_BUF_G,KEY_BUF_G MOV DIS_BUF_S,KEY_BUF_S LCALL K_DELAY RET ;程序名称:PRO_DOWN ;功能:数值下调处理 ;入口参数:KEY_BUF_G,KEY_BUF_S, ;出口参数:DIS_BUF_G,DIS_BUF_S, PRO_DOWN: LCALL K_DELAY 江苏畜牧兽医职业技术学院论文(设计) 29 JB K_DOWN,K_LOOP ;按键抖动处理 JNB K_DOWN,$ DEC KEY_BUF_G ;个位减一 MOV A,KEY_BUF_G CJNE A,#0FFH,DOWNNEXT ;个位减到 0,回到 9 MOV KEY_BUF_G,#09H DEC KEY_BUF_S ;十位减一 MOV A,KEY_BUF_S CJNE A,#0FFH,DOWNNEXT ;十位低于 0,溢出了 MOV R0,#200 ERROR2: LCALL ERR ;出错,显示 888 DJNZ R0,ERROR2 INC KEY_BUF_S ;退回 00 MOV KEY_BUF_G,#00H DOWNNEXT: MOV DIS_BUF_G,KEY_BUF_G ;增加完成后,赋值退出,然后 DISPLAY 显示 MOV DIS_BUF_S,KEY_BUF_S LCALL K_DELAY RET K_DELAY: ;键盘抖动延时子程序 MOV R6,#100 L2: MOV R7,#25 L3: DJNZ R7,L3 DJNZ R6, L2 RET ;程序名称:DISPLAY ;功能:显示数据到数码管 ;入口参数:DIS_BUF_G, DIS_BUF_S, DIS_BUF_X, DIS_BUF_Y ;出口参数:无 DISPLAY: MOV DPTR,#DISTAB MOV R3,#7FH MOV R1,#DIS_BUF_S DPLOP: MOV A,R1 MOVC A,A+DPTR MOV P2,R3 江苏畜牧兽医职业技术学院论文(设计) 30 MOV P0,A CJNE R3,#0BFH,DPNEXT CLR P0.7 DPNEXT: MOV A,R3 RR A MOV R3,A DEC R1 LCALL DS1M CJNE R3,#0F7H,DPLOP MOV P0,#0FFH ;一次显示结束,P0 口复位 MOV P2,#0FFH ;P2 口复位 RET DS1M: MOV R7,#10 JOOP0: MOV R6,#64H JOOP: DJNZ R6,JOOP DJNZ R7,JOOP0 RET ;数码管 TAB DISTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;程序名称:ERR ;功能:程序出错处理,显示四个 8,即 8888 ;入口参数:无 ;出口参数: DIS_BUF_Y ,DIS_BUF_X,DIS_BUF_G, DIS_BUF_S ERR: MOV DIS_BUF_X,#08H ;如果没有找到 DS18B20,那么就显示错误, 错 ;误显示为 8888 MOV DIS_BUF_G,#08H MOV DIS_BUF_S,#08H MOV DIS_BUF_Y,#08H LCALL DISPLAY RET ;程序名称:DATA_DEAL ;功能:处理采集后的的数据 ;入口参数:TEMPERATURE_L ;出口参数:DIS_BUF_G, DIS_BUF_S,DIS_BUF_X,DIS_BUF_Y 江苏畜牧兽医职业技术学院论文(设计) 31 DATA_DEAL: MOV A,TEMPERATURE_H ;判温度是否零下 ANL A,#80H JZ TEMPC1 ;A 为 0,说明是正数,跳往 TEMPC1,如果是负数, ;则对低 8 为进行补码处理 CLR C MOV A,TEMPERATURE_L ;二进制数求补(双字节) CPL A ;取反加 1 ADD A,#01H MOV TEMPERATURE_L,A ;取补码后存回 TEMPERATURE_L,此时 TEMPERATURE_L ;里面的值就可以表示温度了,不过还要继续处理一下 MOV A, TEMPERATURE_H CPL A ADDC A,#00H ;高位 TEMPERATURE_H 取反,加上 ;从低位 TEMPERATURE_L 进来的位 MOV TEMPERATURE_H,A ;写回 TEMPERATURE_H MOV TEMPERATURE_HC,#0BH SJMP TEMPC11 TEMPC1: MOV TEMPERATURE_HC, #0AH TEMPC11: MOV A, TEMPERATURE_HC SWAP A MOV TEMPERATURE_HC, A MOV A, TEMPERATURE_L ANL A,#0FH ;取 A 低 4 位(小数位,单位是 0.0625),得出来 ;的数要乘以 0.0625,通过查表来算出值 MOV B,A MOV DPTR,#TEMPDOTTAB MOVC A,A+DPTR ;查表 MOV TEMPERATURE_LC,A ;TEMPERATURE_LC LOW=小数部分 BCD MOV DIS_BUF_X,A ;小数位的 BCD 码送入显示 BUFFER 中 MOV A,B MOV DPTR,#BAIFENWEITAB MOVC A,A+DPTR MOV DIS_BUF_Y,A MOV A,TEMPERATURE_L ;整数部分 ANL A,#0F0H ;得到个位单个数值 江苏畜牧兽医职业技术学院论文(设计) 32 SWAP A ;SWAP 后就得到个位真正的个位 MOV TEMPERATURE_L,A MOV A,TEMPERATURE_H ANL A,#0FH SWAP A ORL A,TEMPERATURE_L MOV TEMPERATURE_ZH,A ;组合后的值存入 TEMPERATURE_ZH LCALL HT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化妆品委托代理合同范本
- 化工包装代加工合同范本
- 企业垃圾分类管理工作计划
- 公司物品赠送协议书范本
- 美国援助小企业的协议书
- 车辆合伙经营合同协议书
- 购买车库合同第三方协议
- 吊装转运协议合同书模板
- 忠诚协议结婚协议书范本
- 2025卖房协议书范本
- 2024年河北电工理论考试试题电工技师考试内容(全国通用)
- 皮肤肿瘤疾病演示课件
- 铁路信号工(普速车站与区间信号设备维修)
- 一只窝囊的大老虎第二课时
- 抗菌药物合理应用
- 新部编五年级上册语文全册表格式教案(含教学反思)
- 40篇 短文搞定3500词汇
- 什么是朗诵艺术与技巧
- C语言开发基础教程(Dev-C++)(第2版)PPT完整全套教学课件
- 卡通开学季收心班会幼儿开学第一课小学一二三年级开学第一课PPT通用模板课件开学主题班会
- 喷漆房安全操作规程
评论
0/150
提交评论