当前位置:首页 >> 工学 >>

优秀毕业论文


江苏畜牧兽医职业技术学院

毕业设计(论文)
题目: 基于单片机的种苗催芽室环境参数监控 系统设计与实现 姓名: 学号: 二级院系部: 班级: 专业: 施 佳

200906033116 机电工程系 高专电子 09 应用电子技术

指导教师: 任 玲、翟旭军

职称: 讲 师、副教授

二〇一二年 六 月

江苏畜牧兽医职业技术学院学生毕业设计(论文)诚信承诺书
论文题目 学生姓名 所属专业 指导教师姓名
养殖场用单片机温度控制器的设计与实现 施佳 应用电子技术 任 玲、翟旭军

学号 班级 职称

200906033116 高专电子 09 讲师、副教授

学生承诺 我承诺在毕业设计 (论文)活动中, 遵守学校有关规定, 恪守学术规范, 本人毕业设计 (论文)内容除特别注明和引用外,均为本人观点,不存在剽 窃、抄袭他人学术成果,伪造、篡改实验数据的情况,如果有违规行为, 我愿意承担一切责任,接受学校的处理。 学生(签名): 年 月



指导教师承诺 我承诺在毕业设计 (论文)活动中, 遵守学校有关规定, 恪守学术规范, 经过本人核查,该生毕业设计 (论文)内容除特别注明和引用外,均为本人 观点,不存在剽窃、抄袭他人学术成果,伪造、篡改实验数据的现象。 指导教师(签名): 年 月



江苏畜牧兽医职业技术学院学生毕业设计(论文)材料目录
序号 1 2 3 4 5 6 7 8 9 名 称 毕业设计(论文)全文全文 毕业设计(论文)任务书 毕业设计(论文)开题报告或实施方案 毕业设计(论文)指导记录 毕业设计(论文)中期检查记录表 毕业设计(论文)指导教师意见表 毕业设计(论文)评阅教师意见表 毕业设计(论文)答辩记录 毕业设计(论文)成绩评定表 备 注

江苏畜牧兽医职业技术学院论文(设计)

养殖场用单片机温度控制器的设计与实现

【摘要】

养殖过程中,养殖大棚的环境控制对于动植物的健康生长、 最大程度地发挥其生长性 能有着及其重要的意义。养殖大棚的环境控制主要是针对温度、湿度等环境因子进行监 视和控制。 本次设计是根据养殖场的环境温度控制要求,研究并建立基于单片机的温度控 制系统。 本系统是以 AT89C52 单片机为核心,并与数字温度传感器 DS18B20、四位一体的数 码管、继电器、按键、小型电风扇、LED 灯等器件结合起来,共同构成温度控制器。以 养殖场的温度为设定参数,根据参数偏离设定值(理想的养殖温度)的程度由单片机自 动启动相应的加热和降温设备,来升温或降温,实现对设定参数的闭环调节。该系统能 够及时采集养殖场温度,并能自动升温和降温,从而将养殖场温度保持在恒温,该系统 具有较高的测量精度和控制精度。 本文首先对养殖场温度控制过程进行分析,提出了多种控制方案,对各方案比较后 确定了本设计的总体方案。然后进行原理图的设计,采用分步焊接、软件设计与调试, 最后进行联调。通过对控制器进行实验和分析,表明系统运行情况正常,各功能模块功 能的实现可行,采集的温度数据精确性较高,能满足控制的要求。除此之外,该系统电 路简单、成本低,稍做修改还可以应用于其他温度控制的过程中,这大大地扩大了该系 统的应用范围,在养殖中具有一定的实际意义。

【关键词】

AT89C52;DS18B20;温度控制;继电器控制

I

江苏畜牧兽医职业技术学院论文(设计)

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

II

江苏畜牧兽医职业技术学院论文(设计)





【摘要】 ............................................................................ I 【关键词】 .......................................................................... I Abstract ........................................................................... II Key words .......................................................................... II 绪 论 .............................................................................. 1 2 2 2 2 2 3 3 5 6 1.系统方案选择和论证 ................................................................ 1.1 题目要求 .................................................................... 1.1.1 基本要求 ............................................................. 1.1.2 发挥部分 ............................................................. 1.1.3 功能说明 ............................................................. 1.2 系统基本方案 ................................................................ 1.2.1 各模块电路的方案选择及论证............................................ 1.2.2 系统各模块的最终方案 ................................................ 1.3 本章小结....................................................................

2.硬件设计与实现 .................................................................... 7 2.1 系统硬件模块关系 ............................................................ 7 2.2 主要单元电路的设计 ......................................................... 7 2.2.1 温度采集部分设计...................................................... 7 2.2.2 加热和降温控制部分 ................................................... 9 2.2.3 键盘、显示、控制器部分............................................... 11 2.3 系统总原理图............................................................... 11 2.4 本章小结................................................................... 12 3.系统软件设计 ..................................................................... 3.1 读取 DS18B20 温度模块子程序 ................................................ 3.2 数据处理子程序............................................................ 3.3 键盘扫描子程序............................................................ 3.4 主程序流程图.............................................................. 3.5 源程序.................................................................... 3.6 本章小结.................................................................. 4.系统制作与调试 ................................................................... 4.1 数码管的调试............................................................... 4.2 按键的调试................................................................. 4.3 温度传感器的调试 .......................................................... 4.4 继电器控制部分的调试 ....................................................... 4.5 联调....................................................................... 4.6 本章小结 ................................................................... 12 12 13 14 14 16 16 17 17 17 18 18 19 23

设计总结及展望 ..................................................................... 23 参考文献 ........................................................................... 24 附 录 .............................................................................. 25 附录 1: 产品使用说明 .......................................................... 25 附录 2: 元件清单 .............................................................. 26 附录 3 : 系统硬件原理图 ....................................................... 27 附录 4:软件程序清单(含注释) ................................................. 28 致 谢 .............................................................................. 39

III

江苏畜牧兽医职业技术学院论文(设计)





动植物的生长都是在一定的环境中进行的,在生长过程中受到环境中各种因素的影 响,其中对其影响最大的就是温度。若昼夜的温度变化很大,其对动植物生长极为不利, 因此必须对温度进行监测和控制,使其适合动植物的生长,以提高其产量和质量。 本设计就是对养殖场内温度控制要求进行分析,综合考虑系统的精度、效率以及经 济性要求多方面因素之后,设计一种基于单片机的养殖温度自动控制系统。该系统能够 实现自动监控,使其温度控制在设定值的某个范围内,同时可以通过按键输入设定温度 等控制指令,完成监控系统的工作。基于此,本课题的主要研究内容有以下几个部分: [1] 温度控制系统的总体方案设计部分 该部分主要研究养殖场温度控制的实现原理,确定温度控制系统的具体实现过程, 进行系统的总体设计,给出硬件系统结构框图,完成硬件各部分元器件的选择等。 [2] 系统硬件设计部分 该部分主要完成单片机基本电路(时钟、复位电路等)、数据采集电路、显示输出接 口、按键输入接口、继电器控制等模块电路的设计,最后给出总原理图的设计。 [3] 系统程序设计部分 此部分主要完成主服务程序、温度采集与处理、按键输入温度设定、温度显示、继 电器控制等程序模块的设计。 [4] 系统实现 该部分主要是从硬件与软件两个方面探讨系统的实现过程,采用分步焊接与调试, 并对系统进行了相应的试验分析,以验证系统所具有的功能。 本系统实现的温度控制目标功能如下: (1) 系统能对环境温度进行采集和显示(现场观温,软件记录)。 (2) 能通过按键设定动植物生长期适宜温度并显示。 (3) 当环境温度参数超过设定的上下限值时控制相应的设备启动。 (4) 可实时显示当前温度信息,并加以控制。 (5)能分辨出的最小温度<0.5℃。

1

江苏畜牧兽医职业技术学院论文(设计)

1.系统方案选择和论证

1.1 题目要求 设计并制作一个温度自动控制系统,控制对象为养殖大棚。温度可以在一定范围内 由人工设定,并能对环境温度实现自动控制,以保持设定的温度基本不变。 1.1.1 基本要求 (1)温度设定范围为 00℃~90℃,最小区分度为 1℃,标定温度≤1℃; (2)环境温度若需降低时(用电风扇降温),温度控制的静态误差≤1℃; (3)环境温度若需升高时(用加热器升温),温度控制的静态误差≤1℃; (4)用十进制数码管显示实际温度。 (5)测量温度时可在大棚内任意设置一个测量点。 1.1.2 发挥部分 (1)采用适当的控制方法,当设定温度突变(由 40℃提高到 60℃)时,减小系统 的调节时间和超调量; (2)温度控制的静态误差≤0.2℃; 1.1.3 功能说明 (1)加热器用一千瓦电炉; (2)如果采用单片机控制,允许使用已有的单片机最小系统板; (3)数码显示部分可以使用数码显示模块;

2

江苏畜牧兽医职业技术学院论文(设计)

1.2 系统基本方案 根据题目要求系统模块可以划分为:温度测量模块,显示电路模块,设定温度模块, 加热模块,控制模块和降温模块,系统的框图如图 1-1 所示。
Input 测温部分 Output 显示电路

控制部分 键盘(设定 温度)

加热装置

降温装置

图 1-1 系统方框图

1.2.1 各模块电路的方案选择及论证 为实现各模块的功能,分别做了几种不同的设计方案并进行论证。 (1)控制器模块 根据题目要求,控制器主要用于对温度测量信号的接受和处理、控制加热丝和风扇 使控制对象满足设计要求、控制显示电路对温度值实时显示以及控制键盘实现对温度值 的设定等。对控制器的选择有以下三种方案: 方案一:采用 FPGA 作为系统控制器。FPGA 功能强大,可以实现各种复杂的逻辑功 能,规模大,密度高,它将所有器件集成在一块芯片上,减少了体积,提高了稳定性, 并且可应用 EDA 软件仿真、调试,易于进行功能扩展。FPGA 采用并行的 I/O 口方式,提 高了系统的处理速度,适合作为大规模实时系统控制核心。由温度传感器送来的温度信 号,经 FPGA 程序对其进行处理,控制加热或降温装置动作。但由于本设计对数据处理的 速度要求不高,FPGA 的高速处理的优势得不到充分体现,并且其成本偏高,引脚较多, 硬件电路布线复杂。 方案二:采用模拟运算放大器组成 PID 控制系统。对于温度控制是足够的,但要附 加显示、温度设定等功能,要附加许多电路,硬件电路稍显麻烦。

3

江苏畜牧兽医职业技术学院论文(设计)

方案三:采用 ATMEL 公司的 AT89C52 作为系统控制器。单片机算术运算功能强,软 件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且其功耗低、体积 小、技术成熟和成本低等优点。 基于以上分析拟订方案三,由 AT89C52 作为控制核心,对温度采集和实时显示以及 加热装置进行控制。 (2)加热和降温装置控制模块 根据题目要求,当温度过低时,可以使用电热炉进行加热,当温度过高时,关掉电 热炉开启风扇进行降温处理。对加热和降温装置控制模块有以下两种方案: 方案一:采用可控硅来控制。可控硅是一种半控器件,应用于交流电的功率控制有 两种形式:控制导通的交流周期数达到控制功率的目的;控制导通角的方式控制交流功 率。该方案电路稍复杂,需使用光耦合驱动芯片以及变压器等器件。但该方案可以实现 功率的连续调节,因此响应速度快,控制精度也高。 方案二:采用继电器控制。使用继电器可以很容易实现通过较高的电压和电流,在 正常条件下,工作十分可靠。继电器无需外加光耦,自身即可实现电气隔离。这种电路 无法精确实现功率控制,只能工作在最大功率或零功率,对控制精度将造成影响。 基于以上分析以及现有器件限制选择方案二,采用继电器控制省去光耦和交流过零 检测电路,只需在软件上选用适当的控制算法,同样可以达到较好的效果。 (3)温度采集模块 题目要求温度静态误差小于等于 0.2℃,温度信号为模拟信号,本设计要对温度进 行控制和显示,所以要把模拟量转换为数字量。该温度采集模块有以下三种方案: 方案一:利用热电阻传感器作为感温元件,热电阻随温度变化而变化,用仪表测量 出热电阻的阻值变化,从而得到与电阻值相应的温度值。最常用的是铂电阻传感器,铂 电阻在氧化介质中,甚至在高温的条件下其物理,化学性质不变。由铂电阻阻值的变化 经小信号变送器 XTR101 将铂电阻随温度的变化转换为 4~20mA 线性变化电流, 再将电流 信号转化为电压信号,送到 A/D 转换器 ADC0809,即将模拟信号转换为数字信号。该方 案线性度优于 0.01%。 方案二:采用温度传感器 AD590K。AD590K 具有较高精度和重复性,良好的非线性, 保证±0.1℃的测量精度,加上软件非线性补偿即可以实现高精度测量。AD590 将温度转 化为电流信号,因此要加相应的调理电路,将电流信号转化为电压信号。送入 8 位 A/D 转换器,基本满足题目要求。
4

江苏畜牧兽医职业技术学院论文(设计)

方案三:采用数字温度传感器 DS18B20。DS18B20 无需其他外加电路,直接输出数字 量,可直接与单片机通信,读取测温数据,电路简单。DS18B20 与传统的热敏电阻相比, 他能够直接读出被测温度并且可根据实际要求通过简单的编程实现 9~12 位的数字值读 数方式。从 DS18B20 读出的信息或写入 DS18B20 的信息仅需要一根口线(单线接口)读 写,因而使用 DS18B20 可使系统结构更趋简单,可靠性更高。它在测温精度、转换时间、 传输距离、分辨率等方面带来了令人满意的效果。 基于以上分析和现有器件所限,温度采集模块选用方案三。 (4)键盘与显示模块 根据题目要求,温度要由人工设定,并能实时显示温度值。对键盘和显示模块有下 面两种方案: 方案一:采用液晶显示屏和通用矩阵键盘。液晶显示屏(LCD)具有功耗小、轻薄短 小无辐射危险,平面直角显示以及影像稳定不闪烁,可视面积大,画面效果好,抗干扰 能力强等特点。但由于只需显示四位温度值,信息量比较少,且由于液晶是以点阵的模 式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器资源占用较多, 其成本也偏高。 方案二:采用四位一体的 LED 八段数码管分别显示温度的十位、个位和小数点后两 位。按键采用单列 3 按键进行温度设定。数码管具有低能耗、低压、寿命长,对外界环 境要求较低。同时数码管采用 BCD 编码显示数字,程序编译容易,资源占用较少。 根据以上论述,采用方案二。本系统中,采用了数码管的动态显示,节省单片机的 内部资源。 1.2.2 系统各模块的最终方案

根据以上分析,结合器件和设备等因素,确定如下方案: (1)采用 AT89C52 单片机作为控制器,分别对温度采集、LED 显示、温度设定、加热 装置和降温装置控制。 (2) 温度测量模块采用数字温度传感器 DS18B20。此器件经软件设置可以实现高分 辨率测量。 (3)电热丝和风扇采用继电器控制,实现电路简单实用,加上温度变化缓慢可以满 足设计要求。

5

江苏畜牧兽医职业技术学院论文(设计)

(4) 显示用 LED 数码管显示实时温度值,用 ENTER(确定)、UP(上调)、DOWN(下 调)三个单键实现温度值的设定。 CPU(AT 89C52)首先写入命令给 DS18B20,然后 DS18B20 开始转换数据,转换后通 过 89S52 来处理数据。数据处理后的结果就显示到数码管上。另外由键盘设定温度值送 到单片机,单片机通过数据处理发出温度控制信息到继电器。DS18B20 可以被编程,所 以箭头是双向的。系统的实现框图如图 1-2 所示。
Input DS18B20 Output 四位一体 LED 数 码管显示 AT89C52

键盘输入(上 调, 下调, 确定)

继电器(风扇, 加热器)

图 1-2 系统实现框图

1.3 本章小结 本章通过对养殖场温度控制器的功能要求进行分析,并对实现该系统的各部分功能 进行方案论证与比较,最后给出总体方案设计思路。为第二章系统硬件电路原理图的设 计做了有力的铺垫。

6

江苏畜牧兽医职业技术学院论文(设计)

2.硬件设计与实现

2.1 系统硬件模块关系 本系统的执行方法是循环查询执行的,键盘扫描也是用循环查询的办法,由于本系 统对实时性要求不是很高, 所以没有用到中断方式来处理。 各模块关系图如图 2-1 所示。
初始化模块

DS18B20 测得温度值,存入到 BUFFER

处理温度值,换成 BCD 码

温度显示模块

键盘扫描模块 (有无确定键按下)

继电器控制模块

图 2-1 系统硬件模块关系图

2.2

主要单元电路的设计

2.2.1 温度采集部分设计 本系统采用单总线可编程温度传感器 DS18B20 来实现对温度的采集和转换,直接输 出数字量,可以直接和单片机进行通讯,大大简化了电路的复杂度。DS18B20 应用广泛, 性能可以满足题目的设计要求。DS18B20 的测温电路如图 2-2 所示。

7

江苏畜牧兽医职业技术学院论文(设计)

+5V

10KΩ DS18B20 P1.5

GND 图 2-2 DS18B20 测温电路

(1)DS18B20 的测温功能的实现 DS18B20 测温功能的实现主要是依靠编程。当 DS18B20 接收到温度转换命令后,开 始启动转换。 转换完成后的温度值就以 16 位带符号扩展的二进制补码形式存储在高速暂 存存储器的 0, 1 字节。 单片机可通过单线接口读到该数据, 读取时低位在前, 高位在后, 数据格式以 0. 062 5℃/LSB 形式表示。 温度值格式如表 2-1 所示, 其中“S”为标志位, 对应的温度计算:当符号位 S=0 时,直接将二进制位转换为十进制;当 S=1 时,先将补 码变换为原码,再计算十进制值。DS18B20 完成温度转换后,就把测得的温度值与 TH 做比较,若 T>TH 或 T<TL,则将该器件内的告警标志置位,并对主机发出的报警搜索命 令做出响应。
表 2-1 LS Byte MS Byte DS18B20 温度值格式表

23
S

22
S

21
S

20
S

2 ?1
S

2 ?2 26

2 ?3 25

2 ?4 24

(2)DSl8B20 工作过程中的协议 初始化 -> ROM 操作命令 -> 存储器操作命令-> 处理数据 1 初始化: 单总线上的所有处理均从初始化开始。 ○ 2 ROM 操作命令:总线主机检测到 DSl8B20 的存在便可以发出 ROM 操作命令之一这些 ○ 命令如表 2-2 所示。

8

江苏畜牧兽医职业技术学院论文(设计)

表 2-2 ROM 操作命令表 指令 Read ROM(读 ROM) Match ROM(匹配 ROM) Skip ROM(跳过 ROM] Search ROM(搜索 ROM) Alarm search(告警搜索) 代码 33H 55H CCH F0H ECH

3 存储器操作命令如表 2-3 所示。 ○
表 2-3 存储器操作命令表 指令 Write Scratchpad(写暂存存储器) Read Scratchpad(读暂存存储器) Copy Scratchpad(复制暂存存储器) Convert Temperature(温度变换) Recall EPROM(重新调出) Read Power supply(读电源) 代码 4EH BEH 48H 44H B8H B4H

2.2.2 加热和降温控制部分 由于本系统要控制电热丝加热,功率较大,因此要借助功率电路。在器件选择上留 足余量,增加安全性。加热部分采用继电器控制,电路简单可靠。电路如图 2-3 所示。

9

江苏畜牧兽医职业技术学院论文(设计)

图 2-3 加热器控制图

当实测温度低于设定值时,由单片机输出高电平信号,三极管 9014 导通,继电器开 始工作对加热。为了防止继电器频繁动作,在软件中对水温测量精确到 0.1℃,而在温 度设定时只取整数,可以有 1℃的余量。二极管起到保护三极管的作用,防止三极管击 穿。说明:这个电路可以根据实际加热器的要求跟换继电器及电源的大小,这里只是假 设一个小型功率的加热器,实际达不到很快升温的目的。 当设定温度低于实测温度时为了加快系统动态响应速度,设置一个小功率电扇,加 速温度的降低。使系统整体性能得以提高。原理图如图 2-4 所示。

图 2-4 电风扇控制图
10

江苏畜牧兽医职业技术学院论文(设计)

2.2.3 键盘、显示、控制器部分 本设计中采用动态显示方式驱动 4 个八段数码管,分别显示温度的十位、个位和小 数点后两位。 动态显示组合式数码管只需要较少的引脚个数, 以 4 位组合式数码管为例, 需要 8+4=12 个引脚。而如果每个数码管都要单独引脚,至少需要 4*9=36 个引脚。引脚 数减少使得印刷线路板布置变得更为简单,因此,在需要使用多位数码管时,一般都用 组合式的。数码管采用共阳极,单片机 P0 口作为段控制,P2.7~P2.4 通过 4 个 PNP 型三 极管接第 1~4 位数码管的 COM 端。 键盘采用按键开关经上拉电阻分别接 P1.1、P1.2、P1.3 口上,起到控制、上调和下 调作用。每按上调和下调键,设定温度值增 1 减 1。单片机 XTAL2、XTAL1 接 12MHZ 晶振, 提供系统时钟基值。另 RESET 接复位电路。原理图如图 2-5 所示。

图 2-5 键盘、显示、控制器部分原理图

2.3 系统总原理图 在分模块设计的基础上,进行综合电路原理图的设计,系统的总原理图见附录 3。

11

江苏畜牧兽医职业技术学院论文(设计)

2.4 本章小结 首先对温度控制器硬件的关系进行描述,然后分模块对温度采集、加热模块、降温 控制、键盘、显示及控制器部分进行硬件电路的设计,最后给出总原理图的设计,为第 三章软件的设计做好准备。

3.系统软件设计

系统的软件设计采用汇编语言,对单片机进行编程实现各功能。 主程序对模块进行初始化,而后调用读温度、处理温度、显示、键盘和继电器控制 各模块。采用的是循环查询方式,来显示和控制温度。 3.1 读取 DS18B20 温度模块子程序 每次对 DS18B20 操作时都要按照 DS18B20 工作过程中的协议进行。 初始化-> ROM 操作命令-> 存储器操作命令-> 处理数据, 程序流程图如图 3-1 所示。

12

江苏畜牧兽医职业技术学院论文(设计)

DS18B20 存在?

图 3-1 读取 DS18B20 温度子程序流程图

3.2

数据处理子程序

由于 DS18B20 转换后的代码并不是实际的温度值,所以要进行计算转换。温度高字 节(MS Byte)高 5 位是用来保存温度的正负(标志为 S 的 bit11~bit15),高字节(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 所示。

13

江苏畜牧兽医职业技术学院论文(设计)

数据传递

温度是否为负? Y BCD 码转换

N

求补运算

返回 图 3-2 数据处理子程序流程图

3.3

键盘扫描子程序 1. 2. 3. Enter Up Down → P1.1(S1) → P1.2(S2) → P1.3(S3) 控制键 加1键 减1键

按键功能:

键盘子程序流程图如图 3-3 所示。 3.4 主程序流程图

总模块流程图如图 3-4 所示。本软件设计采用循环查询来处理各个模块,温度是缓 慢变化量所以可以满足性能要求。

14

江苏畜牧兽医职业技术学院论文(设计)

开始

N

控制键是否按下?

Y Y
ENTER_FLAG=1?

是否有 ENTER?

Y

ENTER 子程 序 FLAG=1

N
是否有上调键按一次?

Y

UP 子程序

N
是否有下调键按一次?

Y

DOWN 子程序

N
DISPLAY 显示

返回主程序 图 3-3 键盘子程序流程图

15

江苏畜牧兽医职业技术学院论文(设计)

开始

初始化

调用 A/D 转换子程序

DS18B20 存在? Y 数据处理子程序

N
错误处理显示

显示子程序

键盘扫描子程序

继电器控制子程序 图 3-4 主程序流程图

3.5

源程序

源程序的设计采用的是汇编语言,由于源程序代码较长,故将其放在附录中,具体 参见附录 4。 3.6 本章小结

系统软件的设计同样也采用分模块的设计思路,然后利用主程序去调用各模块,主 要设计了读取 DS18B20 温度模块子程序、数据处理子程序、显示子程序、键盘扫描子程 序、继电器控制子程序。

16

江苏畜牧兽医职业技术学院论文(设计)

4.系统制作与调试

在具体的产品制作过程中,我们采用的是分模块焊接与调试,目的是为了防止全部 焊接调试困难,若一次不成功,查找错误麻烦。 4.1 数码管的调试 首先用万用表对数码管进行共阴还是共阳的识别以及各引脚功能的识别,然后把单 片机工作最小系统电路焊接好,采用合适的方法连接数码管与单片机。最后编写数码管 驱动程序,用烧写器将程序编入到 AT89S52 单片机中。具体调试体会如下: 在这里最关键的就是数码管动态显示原理的理解与编程,刚开始编了一个简单的程 序显示 1234, 但第一次显示的数不对, 乱码, 结果发现 a 和 e 段接线不小心搭在一起了, 线分开后,显示就正常了。然后又修改程序让其显示小数,如 24.94,如图 4-1 所示。 为了进一步理解动态显示程序的原理,将显示程序中的延时变长发现显示的数有闪烁现 象,变得更长 4 个都不能同时显示。由此可见,动态显示的关键是要选择一个合适的延 时时间,在这里采用的延时约为 2ms。

图 4-1 数码管显示效果图

4.2 按键的调试 数码管调试正常后,按原理图将按键与单片机连接,焊接很简单,关键是程序的编 写。刚开始编好程序后发现按下上调或下调键,温度上升或下降的速度非常快,人眼无 法分辨出温度的值,因此没办法设定温度。解决办法:发现是按键处理子程序中延时时 间太短了。 修改延时时间后, 按下上调或下调键温度上升或下降速度明显没刚开始快了, 但是还是比较快。又进行二次延时时间的修改,这次温度每变化一度人眼都可分辨出。 在此基础上,我们对按键的功能进行修改,每按一次上调或下降按钮,温度变 1 度, 这样可以避免长时间按着上调或下降按钮温度在不停的变。我们对按键处理子程序进行 了修改,加了几条判断按键是否按了一次这么一个过程。最终按键实现的功能如下:如 果想设定温度,首先要按控制键(ENTER),然后再按上调或下调温度按钮才可调整温度
17

江苏畜牧兽医职业技术学院论文(设计)

(每按一次调整 1 度),调好以后再按控制键(ENTER),单片机才能感受到,并启动相 应的加热或降温装置。每按一次上调按键效果如图 4-2 所示,每按一次下调按键效果图 如图 4-3 所示。

图 4-2 上调按键效果图

图 4-3 下调按键效果图

4.3 温度传感器的调试 按键与显示部分调试好后,进行 DS18B20 温度传感器与单片机的连接,它采用独特 的单线接口方式,仅需一个端口引脚,但必须先建立 ROM 操作协议,才能进行存储器和 控制操作。DS18B20 的数据读写是通过时间隙处理位和命令字来完成信息交换的,需要 严格的时序协议以确保数据的完整性。第一次编好 DS18B20 温度程序后,显示的温度不 正常,然后就仔细阅读程序,发现是时序出了问题,修改时序后温度就正常了。由此可 见,DS18B20 传感器的工作关键靠程序,程序中的时序又是最重要的。 4.4 继电器控制部分的调试 继电器控制电风扇和加热器,由于元器件的限制,没有加热器,故在此用 LED 灯来 模拟加热器,灯亮代表加热器加热。故在此先做继电器控制电风扇这部分电路,其与继 电器控制加热器原理一样。先将继电器控制风扇这部分电路与单片机连接好,然后编写 程序。温度传感器测得当前温度值并正常显示后,按键设定温度,若设定温度比当前温 度低时,电风扇应自动启动降温,但是刚开始电风扇却不动,查找程序怎么也找不到原 因。程序没问题就寻找电路的原因,查阅了大量的资料,然后问了有经验的老师,修改 了好几次电路但是由于元器件型号等问题,前面几次都没成功,有时要这个地方大约耗 了一个月的时间。在此期间电风扇转到的效果:电风扇需要启动时有时转有时不转,需 要停下来时却停不下来,与想要的效果完全不一样。

18

江苏畜牧兽医职业技术学院论文(设计)

最后在指导老师任玲的帮助下,发现三极管导体了但是继电器就是不闭合,风扇不 转。原来没有考虑好三极管的导通电流问题,最后在三极管的 b 极接了一个 15KΩ 上拉 电阻,然后接到 5V 电源上,问题终于得到了解决。总结:继电器控制电风扇主要是电路 设计上的缺陷,经过电路的改进,目前问题已解决。电风扇与单片机连接效果如图 4-4 所示。

图 4-4 电风扇与单片机的连接实物图

4.5 联调 分步调试后,最后进行联调,由于条件限制,在本设计中采用室内温度进行测试, 若设定温度高于当前温度值,加热器模拟灯会亮,但是室内温度不会变化那么快,我们 采用体温来实现温度的快速升高,达到设定值,加热器灯灭。具体调试过程如下: (1)DS18B20 温度传感器测得当前温度值为 28.38℃,显示如图 4-5 所示。

19

江苏畜牧兽医职业技术学院论文(设计)

图 4-5

温度传感器实测温度实物图

(2)设定温度值为 32.50℃,比当前实际温度高 4℃。设定温度效果图如图 4-6 所 示。

图 4-6 温度设定效果图

(3)按下确认键后,因设定温度比当前实际温度高,因此加热器模拟灯亮,代表加 热器开始加热。效果如图 4-7 所示,只要不超过 32.50℃,加热器都应该在加热。

20

江苏畜牧兽医职业技术学院论文(设计)

图 4-7 模拟加热器灯亮

(4)在此采用体温加热,当温度超过了 32.50℃,加热器就应该停止工作,效果如 图 4-8,电风扇启动,效果如图 4-9 所示,直到 32.50℃左右加热和风扇停止工作。

图 4-8 加热器停止加热

21

江苏畜牧兽医职业技术学院论文(设计)

图 4-9 电风扇转动

(5)实物总体效果图如图 4-10 所示。

图 4-10 系统总体效果图

22

江苏畜牧兽医职业技术学院论文(设计)

4.6 本章小结 本章对温度控制器的制作与调试过程给出了详细地介绍,通过本次毕业设计,我懂 得了理论与学习是密不可分的,一开始头脑中的思路是很清晰但实践起来时就开始有点 手忙脚乱了,所以说实践是很重要的。

设计总结及展望

本毕业设计是将电路、电工、模电、数电、单片机、汇编语言等书本知识与理论结 合的一次大实践。在参考和总结前人研究成果的基础上,查阅大量的资料,针对目前我 国养殖场温度控制的要求而设计出来的控制器。该温度控制器能及时检测室内温度,并 用数码管显示当前温度,根据当前温度与理想环境温度(设定温度)之间的差别,加热 器或者风扇将自动启动,直至达到设定温度停止工作。该系统的特点: (1)能够及时采集养殖场、温室大棚和水的温度,误差小于 0.1℃; (2)能够设定温度,可以设定为农作物生长的理想温度; (3)若实际温度比设定温度高时,电风扇自动启动降温,直到达到设定温度,自 动停止; (4)若实际温度比设定温度低时,加热器自动启动加温,直到达到设定温度,自 动停止; (5)该系统的控制精度高。

23

江苏畜牧兽医职业技术学院论文(设计)

虽然本毕业设计实现了对环境温度的实时采集与控制,也获得了比较理想的实验效 果,但是由于元器件和经费的限制,仍然存在着诸多不足。该作品可以进行以下的改进: (1)用实际加热器代替加热器模拟灯; (2) 电路焊接不够光滑,用 PCB 板和贴片焊接代替该焊接电路; (3)将数码管和按键安装在工作室,从而改善工作人员的工作环境。 (4)如果需要快速达到理想温度,即降温或升温,那么就需要接多个电风扇和加热 器,这可以根据需要而设置。 经改进后,该系统可以广泛地应用在养殖大棚等场所的温度控制,保证农作物理想 的生长温度,提高产量!

参考文献

[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).

24

江苏畜牧兽医职业技术学院论文(设计)

[11] 易顺明, 赵海兰, 袁 然.基于单片机的大棚温湿度控制系统设计[J].现代电子技术,2011,34 (7).

附 录

附录 1: 产品使用说明 本水温控制系统能在 0~99℃范围内设定任意温度值,超出此范围将有出错显示 8888,之后返回到 99℃或 0℃。通过按 ENTER(P1.1)键确认开始温度设定;P1.2 的 UP 键为加 1 键,每按一次使设定温度值加 1℃,P1.3 的 DOWN 键为减 1 键,每按下一次设定 温度值减 1℃。设置完温度要再按 ERTER 键确认温度设定完成,之后显示实测温度值。 当温度传感器没有接入时也将有出错提示显示 8888。

25

江苏畜牧兽医职业技术学院论文(设计)

附录 2: 元件清单

元件 AT89S52 单片机 DS18B20 温度传感器 11.0592MHZ 晶振 四位一体数码管 按键 开关 继电器 9012 三极管 9014 三极管 二极管

数量 1个 1个 1个 1个 3个 1个 1个 4个 2个 2个

元件 小电风扇 PCB 白板 10uf 电解电容 30pf 瓷片电容 稳压电源 电阻 导线 LED 灯 7805 稳压器

数量 1个 1块 1个 4个 1个 若干 若干 1个 1个

26

江苏畜牧兽医职业技术学院论文(设计)

附录 3 : 系统硬件原理图

27

江苏畜牧兽医职业技术学院论文(设计)

附录 4:软件程序清单(含注释)
;???????????主程序?????????????????????? TEMPERATURE_L DATA 31H TEMPERATURE_H DATA 30H TEMPERATURE_HC DATA 32H TEMPERATURE_LC DATA 33H TEMPERATURE_ZH DATA 34H P_DS18B20 EQU P1.5 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 ;DS18B20 低 8 位 BUFFER ;DS18B20 高 8 位 BUFFER ;计算后十位的 BCD 码存放 BUFFER ;计算后的个位和小数位的 BCD 码存放 BUFFER ;计算后十位和个位 HEX 码的存放 BUFFER ;读取 DS18B20 的输入端口 ;数码管小数点后第二位 ;小数点后第一位 ;数码管个位 ;数码管十位 ;加热器控制接口,1-加热,0-断开 ;电风扇控制接口,1-降温,0-断开 ;键盘输入后的个位值 ;键盘输入后的十位值 ;输入数据确认按钮 ;上调按钮 ;下调按钮 ;标志位,确定是否存在 DS18B20,1-存在, ;0-不存在 ENTER_FLAG EQU 20H.1 ;键盘输入的标志位,为 0 说明键盘正在输 ;入,为 1 说明键盘输入退出 ORG LJMP ORG 0000H M 0400H ;初始化 ,#0 ,#0 ;由于 KEY_BUF 是由用户输入的,所以先赋值初始化

P_FAN EQU P1.6 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

M:MOV SP,#40H MOV KEY_BUF_G MOV KEY_BUF_S CLR CLR P_SWITCH P_FAN

M1:LCALL READ_TEMP JB FLAG,NORMAL

;调用读温度子程序 ;判断是否有 DS18B20 的存在
28

江苏畜牧兽医职业技术学院论文(设计)

LCALL ERR SJMP M1 NORMAL: LCALL DATA_DEAL LCALL SET_DIS_BUF LCALL DISPLAY LCALL SCAN_KEY LCALL SJMP M1 SWITCH

;不存在时显示错误信息

;处理从 DS18B20 得到的数据 ;赋值给 DIS_BUF_Y,X,G,S ;调用数码管显示子程序 ;扫描键盘 ;处理继电器

;?????????程序名称:SCAN_KEY?????????????????? ;功能:扫描键盘 ;入口参数:DIS_BUF_G,DIS_BUF_S, ;出口参数:KEY_BUF_G,KEY_BUF_S, SCAN_KEY: JB K_ENTER,QUIT LCALL K_DELAY JB K_ENTER,QUIT CLR ENTER_FLAG 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 ;每次进来都赋值输入标志,设置为 0 ;如果有 ENTER 键入,则开始键盘输入

;?????????程序名称:PRO_ENTER?????????????????? ;功能:确认键盘输入和退出键盘输入 ;入口参数:ENTER_FLAG ;出口参数:ENTER_FLAG
29

江苏畜牧兽医职业技术学院论文(设计)

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 MOV KEY_BUF_G,#00H INC KEY_BUF_S MOV A,KEY_BUF_S CJNE A,#0AH,UPNEXT MOV R0,#200 ERROR1: LCALL ERR DJNZ R0,ERROR1 DEC KEY_BUF_S 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
30

;按键抖动处理

;个位增一

;个位增加到 10,回 0

;十位加一

;十位超过 99,溢出了

;出错,显示 888

;退回 99

江苏畜牧兽医职业技术学院论文(设计)

JB K_DOWN,K_LOOP JNB K_DOWN,$ DEC KEY_BUF_G MOV A,KEY_BUF_G CJNE A,#0FFH,DOWNNEXT MOV KEY_BUF_G,#09H DEC KEY_BUF_S MOV A,KEY_BUF_S CJNE A,#0FFH,DOWNNEXT MOV R0,#200 ERROR2: LCALL ERR DJNZ R0,ERROR2 INC KEY_BUF_S MOV KEY_BUF_G,#00H DOWNNEXT: MOV DIS_BUF_G,KEY_BUF_G MOV DIS_BUF_S,KEY_BUF_S LCALL K_DELAY RET K_DELAY: MOV R6,#100 L2: L3: MOV R7,#25 DJNZ R7,L3 DJNZ R6, L2 RET

;按键抖动处理

;个位减一

;个位减到 0,回到 9

;十位减一

;十位低于 0,溢出了

;出错,显示 888

;退回 00

;增加完成后,赋值退出,然后 DISPLAY 显示

;键盘抖动延时子程序

;??????程序名称: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
31

江苏畜牧兽医职业技术学院论文(设计)

MOV P0,A CJNE R3,#0BFH,DPNEXT CLR P0.7 DPNEXT: RR MOV A,R3 A

MOV R3,A DEC R1 LCALL DS1M CJNE R3,#0F7H,DPLOP MOV P0,#0FFH MOV P2,#0FFH RET DS1M: JOOP0: JOOP: MOV R7,#10 MOV R6,#64H DJNZ R6,JOOP DJNZ R7,JOOP0 RET ;数码管 TAB DISTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;一次显示结束,P0 口复位 ;P2 口复位

;?????????程序名称: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 DATA_DEAL: MOV A,TEMPERATURE_H
32

;判温度是否零下

江苏畜牧兽医职业技术学院论文(设计)

ANL JZ

A,#80H TEMPC1 ;A 为 0,说明是正数,跳往 TEMPC1,如果是负数, ;则对低 8 为进行补码处理

CLR MOV CPL ADD MOV A

C A,TEMPERATURE_L ;二进制数求补(双字节) ;取反加 1

A,#01H TEMPERATURE_L,A ;取补码后存回 TEMPERATURE_L,此时 TEMPERATURE_L ;里面的值就可以表示温度了,不过还要继续处理一下

MOV CPL

A, TEMPERATURE_H A ;高位 TEMPERATURE_H 取反,加上 ;从低位 TEMPERATURE_L 进来的位

ADDC A,#00H

MOV MOV

TEMPERATURE_H,A TEMPERATURE_HC,#0BH

;写回 TEMPERATURE_H

SJMP TEMPC11 TEMPC1: TEMPC11: MOV MOV SWAP MOV MOV ANL TEMPERATURE_HC, #0AH A, TEMPERATURE_HC A TEMPERATURE_HC, A A, TEMPERATURE_L A,#0FH ;取 A 低 4 位(小数位,单位是 0.0625),得出来 ;的数要乘以 0.0625,通过查表来算出值 MOV MOV B,A DPTR,#TEMPDOTTAB ;查表 ;TEMPERATURE_LC LOW=小数部分 BCD ;小数位的 BCD 码送入显示 BUFFER 中

MOVC A,@A+DPTR MOV MOV MOV MOV TEMPERATURE_LC,A DIS_BUF_X,A A,B DPTR,#BAIFENWEITAB

MOVC A,@A+DPTR MOV DIS_BUF_Y,A MOV ANL A,TEMPERATURE_L A,#0F0H ;整数部分 ;得到个位单个数值 ;SWAP 后就得到个位真正的个位
33

SWAP A

江苏畜牧兽医职业技术学院论文(设计)

MOV MOV ANL

TEMPERATURE_L,A A,TEMPERATURE_H A,#0FH

SWAP A ORL MOV A,TEMPERATURE_L TEMPERATURE_ZH,A ;组合后的值存入 TEMPERATURE_ZH ;转换 HEX 值成为 BCD 码 ;TEMPERATURE_L 目前存入的是十位 ;和个位的 BCD 编码 ANL A,#0F0H

LCALL HTOB MOV TEMPERATURE_L,A

SWAP A ORL MOV MOV ANL A,TEMPERATURE_HC TEMPERATURE_HC,A A,TEMPERATURE_L A,#0FH ;TEMPERATURE_LC HI 位 = 个位数 BCD ;TEMPERATURE_HC LOW 位 = 十位数 BCD

SWAP A ORL MOV RET ;小数部分码表 A,TEMPERATURE_LC TEMPERATURE_LC,A

BAIFENWEITAB: DB 00H,06H,03H,09H,05H,01H,08H,04H,00H DB 06H,03H,09H,05H,01H,08H,04H TEMPDOTTAB:DB00H,00H,01H,01H,02H,03H,03H,04H,05H,05H,06H,06H,07H,08H,08H,09H ;0.0625->00H ;0.0625*2 = 0.125->01H ;0.0625*3 = 0.1875->02H ;0.0625*4 = 0.25->03H;0.0625*5 = 0.3125->03H ;以此类推.......... ;????????程序名称:HTOB??????????????????????? ;功能:十六进制转 BCD ;入口参数:A ;出口参数:R7 HTOB: MOV DIV MOV B,#064H AB R7,A
34

;100 ;A/100 ;

江苏畜牧兽医职业技术学院论文(设计)

MOV XCH DIV SWAP ORL RET

A,#0AH A,B AB A A,B

;??????????程序名称:INIT_TEMP?????????????????? ;功能:初始化 DS18B20,确定 DS18B20 是否是存在的 ;入口参数:无 ;出口参数:FLAG INIT_TEMP: SETB NOP CLR MOV TSR1: MOV DJNZ DJNZ SETB MOV TSR2: DJNZ JNB LJMP TSR3: SETB LJMP TSR4: CLR LJMP TSR5: TSR6: TSR7: MOV DJNZ SETB RET ;??????????程序名称 READ_TEMP?????????????????? ;功能:读取 DS18B20 的数据 ;入口参数:TEMPERATURE_L,TEMPERATURE_H READ_TEMP: SETB P_DS18B20
35

P_DS18B20

P_DS18B20 R0,#06BH R1,#04H R1,$ R0,TSR1 P_DS18B20 R0,#14H R0,TSR2

;主机发出延时 537 微秒的复位低脉冲

;然后拉高数据线,释放总线进入接收状态 ;延时

P_DS18B20,TSR3 ;等待 DS18B20 回应 P TSR4 FLAG TSR5 FLAG TSR7 R0,#06BH R0,TSR6 P_DS18B20 ;时序要求延时 ;清标志位,表示 DS18B20 不存在 ; 置标志位,表示 DS18B20 存在

江苏畜牧兽医职业技术学院论文(设计)

L5:

LCALL JB LJMP

INIT_TEMP FLAG,TSS2 L5 A,#0CCH WRITE_18B20 A,#044H WRITE_18B20 DISPLAY INIT_TEMP A,#0CCH WRITE_18B20 A,#0BEH WRITE_18B20 READ_18B20

;先复位 DS18B20

;判断 DS18B20 是否存在?若 DS18B20 不存在则返回 ; 跳过 ROM 匹配

TSS2:

MOV LCALL MOV LCALL LCALL LCALL MOV LCALL MOV LCALL LCALL RET

;发出温度转换命令

;等待 AD 转换结束,12 位的话 750 微秒 ;准备读温度前先复位 ; 跳过 ROM 匹配

;发出读温度命令

;将读出的温度数据保存到 35H/36H

;具体的步骤:初始化完后当拉低电平开始产生写时隙-》15 微秒之内送入一位数据-》15~60 微秒-》 采样读取 DS18B20 ;???????程序名称 WRITE_18B20???????????????????? ;功能:将 A 保存的数值写入 DS18B20 中,有具体的时序要求 ;入口参数:A 寄存器 ;出口参数:无 WRITE_18B20: MOV CLR WR1: CLR MOV DJNZ RRC MOV MOV DJNZ SETB DJNZ SETB RET ;?????程序名称:READ_18B20??????????????????????
36

R2,#08H C P_DS18B20 R3,#07H R3,$ A P_DS18B20,C R3,#14H R3,$ P_DS18B20 R2,WR1 P_DS18B20

;一共 8 位数据,串行通讯

;循环右移

;A 里面一共是 8 位,所以要送 8 次 ;释放总线

江苏畜牧兽医职业技术学院论文(设计)

;功能:读取 DS18B20 中的数据,由于是串行通讯,每次读取一个,循环 8 次读取 ;入口参数:TEMPERATURE_L ;出口参数:无 READ_18B20: MOV MOV RE00: RE01: MOV CLR SETB NOP NOP CLR NOP NOP SETB MOV RE10: DJNZ MOV MOV RE20: DJNZ RRC DJNZ MOV DEC DJNZ RET ;??????程序名称:SET_DIS_BUF????????????????????? ;功能:赋值给 DIS_BUF_G, DIS_BUF_S ;入口参数:TEMPERATURE_LC,TEMPERATURE_HC ;出口参数:DIS_BUF_G, DIS_BUF_S, DIS_BUF_X, DIS_BUF_Y SET_DIS_BUF: MOV A,TEMPERATURE_LC ANL MOV MOV A,#0FH DIS_BUF_X,A A,TEMPERATURE_LC ;小数位 P_DS18B20 R3,#06H R3,RE10 C,P_DS18B20 R3,#0CH R3,RE20 A R2,RE01 @R1,A R1 R4,RE00 P_DS18B20 R4,#02H R1,#TEMPERATURE_L R2,#08H C P_DS18B20 ;数据一共有 8 位 ;将温度高位和低位从 DS18B20 中读出

SWAP A ANL A,#0FH
37

江苏畜牧兽医职业技术学院论文(设计)

MOV DIS_BUF_G,A MOV A,TEMPERATURE_HC ANL A,#0FH MOV DIS_BUF_S,A RET

;个位

;十位

;?????程序名称:SWITCH????????????????????????? ;功能:继电器控制 ;入口参数: KEY_BUF_G, KEY_BUF_S ;出口参数: P_SWITCH, P_FAN SWITCH: MOV A,KEY_BUF_G JNZ MOV JNZ JZ SNEXT: SNEXT A,KEY_BUF_S SNEXT SQUIT ;三个 BUFFER 都是 0 的话,说明还没有输入数值,直接退出

CALL SET_DIS_BUF MOV A,KEY_BUF_S

SUBB A,DIS_BUF_S JC COOL JNZ HOT MOV A,KEY_BUF_G ;十位如果相等,那么继续比较个位

SUBB A,DIS_BUF_G JC HOT: SETB COOL P_SWITCH ;P_SWITCH 为 0 说明当前温度小于设定温度, ;要升温,所以接继电器控制电热丝加热 CLR P_FAN

SJMP SQUIT COOL: SETB CLR P_FAN P_SWITCH ;P_SWITCH 为 1 说明当前温度大于设定温 ;度,要降温,所以接风扇 SQUIT: RET END

38

江苏畜牧兽医职业技术学院论文(设计)

致 谢

历时将近半年的毕业设计终于结束了,在单片机温控器的设计制作和论文写作过程 中遇到了很多障碍,都在同学和老师的帮助下度过了。尤其要感谢我的毕业设计指导老 师--任玲,她对我进行了无私的指导和帮助,不厌其烦地解决设计制作过程中出现的问 题,并帮助我进行论文的修改。另外,在校图书馆查找资料的时候,图书馆的老师也给 我提供了很多方面的支持与帮助。 在此向帮助和指导过我的各位老师表示最忠心的感谢! 感谢这篇论文所涉及到的各位学者。本文引用了数位学者的研究文献,如果没有各 位学者的研究成果的帮助和启发,我将很难完成本次设计! 由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和学友批评和指 正。

39


赞助商链接
相关文章:
优秀毕业论文范文
优秀毕业论文范文 - 天津师范大学毕业论文 天津师范大学 毕业论文原创性声明 本人郑重声明:所呈交的 论文是本人在老师的指导下独立进行研究所取 得的...
哈工大优秀毕业论文_图文
哈工大优秀毕业论文 - 毕业设计(论文) 题 目 CNT 基阴极扩散电极的研究 专学学 业号 电子信息科学与技术 1102100510 生郑雪 指导教 师张宇峰 答 ...
优秀毕业论文_图文
优秀毕业论文 - 山东农业大学教务处通知 教通字【2012】38 号 关于公布 2012 届毕业生 校级优秀学士学位论文(设计)的通知 各教学单位: 按照 《关于 2012 届...
(完整版)优秀毕业论文_图文
(完整版)优秀毕业论文 - 单片机论文,毕业设计,毕业论文,单片机设计,硕士论文,研究生论文,单片机研究论文,单片机设计论文
优秀论文范例
优秀论文范例 - 设计) 毕业论文(设计) 题 目 指导老师 专业班级 姓学名号 20052021138 电子商务 20061 2009 年 5 月 30 日 浙江经贸职...
优秀毕业论文范文
优秀毕业论文范文 - HUNAN UNIVERSITY 毕业论文 论文题目: 学生姓名:学生学号:专业班级:学院名称:指导老师:学 ...
(完整版)优秀毕业论文参考样本
(完整版)优秀毕业论文参考样本 - 单片机论文,毕业设计,毕业论文,单片机设计,硕士论文,研究生论文,单片机研究论文,单片机设计论文
【最新版】优秀毕业论文范文
【最新版】优秀毕业论文范文 - 毕业设计,毕业论文,毕业论文设计,硕士论文,研究生论文,单片机论文,单片机设计,单片机设计论文
优秀毕业论文
优秀毕业论文 - 优秀毕业论文大全 MBA 管理类人力类营销类(本科) 颐馨家园项目颐馨策略研究 英特尔公司绩效考评改进策略研究 浙江方正电机股份有限公司生产经营变动...
参考范文:2016届优秀毕业论文一等奖
参考范文:2016届优秀毕业论文一等奖 - 镇江高专 ZHENJIANG COLLEGE 毕业设计 (论文) 淘宝网服装业消费者满意度调查与分析 Investigation an...
更多相关文章: