欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于单片机的温度控制系统设计论文(35页).doc

    • 资源ID:37065899       资源大小:300.50KB        全文页数:35页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机的温度控制系统设计论文(35页).doc

    -基于单片机的温度控制系统设计论文-第 29 页 武汉工程大学邮电与信息工程学院 毕业设计(论文)说明书 2015届毕业设计(论文)题 目基于单片机的温度控制系统设计专 业 班 级2011自动化02 学 号6102150230 姓 名张震 指 导 教 师曾丽教授 学 院 名 称武汉工程大学邮电与信息工程学院 2015年5月20日基于单片机的温度控制系统设计Design of a Temperature-Control based on the single-chip学 生 姓 名:张震 指 导 教 师:曾丽教师 摘 要随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。温度是工业对象中的一个重要的被控参数。然而所采用的测温元件和测量方法也不相同;产品的工艺不同,控制温度的精度也不相同。因此对数据采集的精度和采用的控制方法也不相同。本设计使用单片机作为核心进行控制。为了更好地推广单片机在实际生活和生产中的应用,本文介绍一种应用AT89C52单片机设计的温度控制系统。该环境温度系统采用温度传感器DS18B20通过I2C总线通信来获得当前温度,并与从3X4矩阵键盘输入的温度值进行验证,系统自动控制升温或降温的操作,将温度稳定在所设定的温度值。经实际制作表明该环境温度控制系统具有体积小、操作灵活、可靠性高、实用、成本低等特点,适合住宅和各类温室温度的控制,具有一定的实际意义。关键词:单片机;键盘;稳定温度;显示器;温度控制II AbstractWith the continuous development of electronic products to intelligent and miniaturization, microcontroller has become electronic product development and the development of the preferred controller. In order to better promote the application of single-chip microcomputer in the actual life and production, this paper introduces a design which AT89C52 single chip microcomputer temperature control system is used.The environment temperature system adopts the temperature sensor DS18B20 through the I2C bus communication to get the current temperature, and with temperature from 3x4 matrix keyboard input validation, the system automatically control the operation of the heating or cooling, to keep the temperature stable according to the set. The practical production shows that the temperature control system has small volume, flexible operation, high reliability and practical, low cost, suitable for residential and all kinds of greenhouse temperature control, has a certain practical significance. Keywords: Single chip microcomputer; keyboard; Stable temperature; Display; temperature controlII 目 录摘要 IAbstract II第1章 绪论6 1.1 选题背景61.2 选题简介6第2章 系统总体设计及方案7 2.1单片机的介绍7 2.2系统功能的确定8 2.3温度传感器DS18B20的介绍8 2.4人机交互与串口通信12第3章 硬件设计12 3.1系统结构框图13 3.2人机交互与串口通信单元设计15 3.3控制执行单元设计19第4章 软件设计20 4.1主程序20 4.2温度采集子程序22 4.3数据转换子程序22 4.4动态显示子程序23 4.5温度控制执行子程序24 4.6键盘输入中断服务子程序26第5章 结 论28附录 29致谢 42参考文献 43第1章 绪论1.1 选题背景 在生产过程中,温度的控制是十分常见的。国内已相继出现各种以微机为核心的温度控制系统。这种系统控制精度高、重复性好、自动化程度高。随着社会的发展,科技的进步,以及测温仪器在各个领域的应用,智能化已是现代温度控制系统发展的主流方向。温度是科学技术中最基本的物理量之一,物理、化学、生物等学科都离不开温度。在工业生产和实验研究中,像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等领域内,温度常常是表征对象和过程状态的最重要的参数之一。比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行;炼油过程中,原油必须在不同的温度和压力条件下进行分馏才能得到汽油、柴油、煤油等产品。没有合适的温度环境,许多电子设备就不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。因此,各行各业对温度控制的要求都越来越高。可见,温度的测量和控制是非常重要的。特别是近年来,温度控制系统已应用到人们生活的各个方面,但温度控制一直是一个未开发的领域,却又是与人们息息相关的一个实际问题。针对这种实际情况,设计一个温度控制系统,具有广泛的应用前景与实际意义。在日常生活中,人们为了拥有一个更舒适的生活环境,往往需要室内拥有一个合适的温度,而单片机的准确性高、价格低、功耗低等一系列优点,可结合升温和降温设备,有效的应用到实际生活中。单片机温度控制系统是单片机控制的一项简单应用。近几年来单片机因其独特的,方便,快捷的优势被广泛的应用于各个领域之中。1.2 选题简介课题名称:基于单片机的温度控制系统主要任务:将温度控制在设定的温度值,设定范围为2-98度,针对在生产和日常生活中温度智能化控制系统的实现。开发环境:本环境温度控制系统的软件部分是通过KEIL进行编译,并由Proteus 7 Professional进行仿真测试。技术指标:u 以AT89C52系列单片机为核心部件u 以数字电路和模拟电路为硬件基础u 以汇编语言为软件实现语言功能概述:在该环境温度控制系统中,单片机作为核心部件进行检测控制,增强了设计的通用性,适时性。在该环境温度控制系统中温度检测采用DS18B20温度传感器,它不仅具有较高的精度,而且适用电压宽。同时采用了3x4矩阵扫描键盘输入,显示设备等外围扩展芯片。温度控制分为升温和降温控制,升温控制和降温控制分别采用继电器来控制外部的升温和降温设备。软件部分采用流程图来表示,对各个子程序进行说明,包括控制算法,偏差计算等。控制是否升温或降温。第2章 系统总体设计及方案2.1单片机的介绍 随着大规模集成电路的出现及其发展,将计算机的CPU 、RAM 、 ROM 、定时/计数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,因此单片机早期的含义称为单片微型计算机,直译为单片机 。 2.1.1单片机的特点1 具有优异的性能价格比 2 集成度高、体积小、可靠性高 3 控制功能强 4 低电压、低功耗 2.1.2 单片机的基本组成 它由 CPU 、存储器(包括 RAM 和 ROM )、I/O接口、定时/计数器、中断控制功能等均集成在一块芯片上,片内各功能通过内部总线相互连接起来。 输入 / 输出引脚 P0、P1、P2、P3 的功能: P0.0P0.7(3239 脚):P0 口是一个 8 位漏极开路型双向 I/O 端口。在访问片外存储器时,它分时作低 8 位地址和 8 位双向数据总线用。在EPROM 编程时,由 P0 输入指令字节,而在验证程序时,则输出指令字节。验证程序时,要求外接上拉电阻。 P0 能以吸收电流的方式驱动8个LSTTL 负载。 P1.0P1.7(18 脚): P1 是一上带内部上拉电阻的 8 位双向 I/O 口。在 EPROM 编程和验证程序时,由它输入低 8 位地址。 P1 能驱动 4 个 LSTTL 负载。 P2.0P2.7(2128 脚): P2 也是一上带内部上拉电阻的 8 位双向 I/O 口。在访问外部存储器时,由它输出高 8 位地址。在对 EPROM 编程和程序验证时,由它输入高 8 位地址。 P2 可以驱动 4 个 LSTTL 负载。 P3. 0 P3. 7 ( 1017 脚): P3 也是一上带内部上拉电阻的双向 I/O 口。在 MCS-52中,这8个引脚还用于专门的第二功能。P3能驱动4个LSTTL负载。u P3.0 RXD(串行口输入) u P3.1 TXD(串行口输出) u P3.2 INT0(外部中断 0 输入) u P3.3 INT1(外部中断 1 输入) u P3.4 T0(定时器 0 的外部输入) u P3.5 T1(定时器 1 的外部输入) u P3.6 WR(片外数据存储器写选通) u P3.7 RD(片外数据存储器读选通)2.2系统功能的确定 一个控制系统是否能被大众所接受,在于该控制系统是否拥有人性化的操作功能。为了使本次设计的环境温度控制系统具有操作简单、灵活及高可靠性等特点,确定了该系统功能:u 3x4矩阵键盘输入。u 由温度采集。u 温度显示。u 温度控制执行。u 温度测量范围为0-99度,温度有效范围为2-98度,允许误差为1度。2.3温度传感器DS18B20的介绍 DS18B20温度传感器是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的温度传感器,十分方便。2.3.1 DS18B20的特点1. 只要求一个端口即可实现通信。2. 在DS18B20中的每个器件上都有独一无二的序列号。3. 实际应用中不需要外部任何元器件即可实现测温。4. 测量温度范围55到125。5. 数字温度计的分辨率用户可以从9位到12位选择。6. 内部有温度上、下限告警设置。2.3.2 DS18B20的内部结构DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图2.1所示。 64位ROM和单线接口 存储器与控制逻辑 高速缓存 温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器 图2.1 DS18B20内部结构框图64位ROM的位结构如图2.2所示。开始8位是产品类型的编号;接着是每个器件的唯一的序号,共有48位;最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用单线进行通信的原因。非易失性温度报警触发器TH和TL,可通过软件写入用户报警上下限数据。8位检验CRC48位序列号8位工厂代码(10H)MSB LSB MSB LSB MSB LSB 图2.2 64位ROM的位结构图DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的E2PROM。 高速暂存RAM的结构为9字节的存储器,结构如图2.3所示。前2字节包含测得的温度信息。第3和第4字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5字节为配置寄存器,其内容用于确定温度值的数字转换分辨率,DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义如图2.4所示,其中,低5位一直为1;TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时,该位被设置为0,用户不要去改动;R1和R0决定温度转换的精度位数,即用来设置分辨率,其定义方法见表2.1。温度 LSB温度 MSBTH用户字节1TH用户字节11TL用户字节2E2PROMTL用户字节2配置寄存器保留保留保留CRC 图2.3 高速暂存RAM结构图 表2.1 DS18B20分辨率的定义和规定R1R0分辨率/位温度最大转换时间/ms00993.750110187.510113751112750TM R1 R0 1 1 1 1 1 1 图 2.4 配置寄存器由表可见,DS18B20温度转换的时间比较长,而且设置的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。 高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节是前面8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。 当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存RAM的第1、2字节中。 单片机可以通过单线接口读出该数据。读数据时,低位在先,高位在后,数据格式以0.0625°C/LSB形式表示。温度值格式如图2.5所示:低字节232221202-12-22-32-4高字节SSSSS262524 图2.5 温度数值格式2.3.3 DS18B20的引脚介绍TO92封装的DS18B20的引脚排列见图2.6,其引脚功能描述见表2.2。 图2.6(底视图) 表2.2 DS18B20详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。2.4人机交互与串口通信 该热炉温度控制系统由温度采集、3x4矩阵键盘输入、温度显示、温度控制执行等四大模块组成。u 温度采集:由温度传感器DS18B20完成,并通过串口通信技术与单片机进行数据传输,使用单片机P3.7端口。u 3x4矩阵键盘输入:采用外部中断0来判断是否拥有输入请求,并通过键盘扫描技术来获取所输入的温度值和偏差温度值,输入更灵活、更方便,使用单片机P0口和P3.2端口。u 温度显示:通过4个7段LED数码显示管显示当前温度值和设定的温度值,及时反应当前温度的变化与设置温度的关系,使用单片机P1.0P1.5端口。温度控制执行:系统根据当前温度与设置的温度自动进行相应的升温或降温的操作,在系统自动进行升温或降温处理的同时显示相应的指示灯,让使用者知道系统正在进行的操作,使用单片机P2.2P2.3端口。第3章 硬件设计3.1系统结构框图AT89C52温度显示电路温度控制电路键盘输入电路温度采集电路 图3.1 系统硬件总体框图 该系统由核心部件AT89C52来处理从键盘输入电路和温度采集电路送入的数据,并通过温度显示电路进行温度显示,由温度控制电路来进行相应的升温或降温的操作。3.1.1系统硬件原理图 图3.2 原理图3.2人机交互与串口通信单元设计在该系统中,人机交互技术主要应用在恒定温度与偏差温度的设置,以及当前温度与设置温度的显示;串口通信技术应用在对温度的采集。3.2.1 键盘输入电路在本系统中,采用外部中断0控制键盘输入请求,键盘输入主要采用3x4矩阵键盘扫描技术。如图3.3所示,当按下“设置/切换”键时,进入恒定温度的设置,可从键盘中自由输入09的数字,如果输入错误可按“删除(*)”键进行删除,如果要设置偏差温度,再按一下“设置/切换”键,可进入偏差温度的设置,按“确定(#)”键,保存设置并退出键盘输入,进入温度控制状态。图3.3 键盘输入原理图为了避免从键盘输入的数据错误,该键盘输入电路还为判断按键是否释放的功能做了铺垫,如图3.4所示,该电路由3个与门构成,当有键按下时SA、SB、SC、SD端中将会有一个为低电平,此时与门的SS端将会输出低电平,同时控制了单片机的P0.7端口,再通过软件控制按键是否释放。图3.4判断键盘是否有键按下3.2.2 LED七段数码动态显示电路在本系统中采用了LED七段数码动态显示电路来显示温度值,显示范围在0-99之间,该电路由显示、片选、译码三部分组成。u 显示部分:由两个两位的LED七段共阴数码管构成,分别用来显示当前温度和设置温度,如图3.5所示。图3.5 LED七段共阴数码管u 片选部分:如图3.6所示,由一片2-4译码器(74LS139)构成,单片机的P1.4和P1.5输出两位片选信号到2-4译码器的A、B端口,进行译码后输出到LED七段数码管的片选端口,其译码功能如表3.1所示。图3.6动态显示片选电路(2-4译码器)表3.1 74LS139功能表输入输出选通端地址输入端EABY0Y1Y2Y3100000011010110111110111110111110u 译码部分:该电路由LED七段数码管显示译码器(4511)来完成,如图3.7所示,单片机将要显示的十进制数据转换成8421BCD编码,对应的译码值如表3.2所示,再分别送到LED七段数码管显示译码器的A、B、C、D引脚进行译码,最后输出到LED七段数码管的相引脚。图3.7 LED七段数码显示译码电路 表3.2 4511译码表8421BCD码十进制数000000001100102001130100401015011060111710008100193.2.3 串口通信电路为了使测得的温度更准确,在本系统中采用了温度传感器DS18B20来获取当前温度,而DS18B20是采用I2C总线进行通信的,如图3.8所示,单片机使用P3.7端口与DS18B20的数据通讯端口相连接,并通过软件实现P3.7控制DS18B20的读和写。图3.8单片机与DS18B20的通信3.3控制执行单元设计该电路的主要任务是完成单片机所发出的升温或降温操作,来控制外部的升温或降温设备。如图3.9所示,电路的GK1和GK2端分别与单片机的P2.2和P2.3端相连接,其工作原理如下:在通常情况下,GK1和GK2均为低电平,当单片机向温度控制执行电路发送降温命令时,GK1为高电平,GK2为低电平,使三极管Q1饱和导通,此时使继电器RL1闭合控制外部的降温设备进行工作,同时发光二极管D9将被点亮,提醒使用者温度过高正在进行降温操作。当单片机向温度控制执行电路发送升温命令时,GK1为低电平,GK2为高电平,使三极管Q2饱和导通,此时使继电器RL2闭合控制外部的升温设备进行工作,同时发光二极管D4将被点亮,提醒使用者温度过低正在进行升温操作。图3.9温度控制及相应显示电路第4章 软件设计4.1主程序根据所学知识,实现本系统的软件部分将使用汇编语言,要配合硬件部分实现输入一个需要恒定的温度值和偏差温度,与从温度传感器所获取的当前实际温度相比较,并向温度控制执行电路发出升温或降温的命令,在这一过程中将随时显示当前温度值和设置的温度值。其主要实现的部分包括:键盘输入、温度采集、数据转换、动态显示、温度控制等。主程序流程图如图4.1所示。 开始系统初始化发送温度读取指令读出温度值数据转换16进制10进制温度控制执行是否有外部中断0请求?显示当前温度和设置温度键盘输入中断服务子程序 结束 图4.1 主程序流程图4.2温度采集子程序温度采集子程序主要负责驱动外部的温度传感器DS18B20进行工作,通过串口通信方式向DS18B20写入ROM命令,并读取当前温度值,将读取的数据存放在26H-2EH存储单元,其中26H单元存放温度值的低位,27H单元存放温度值的高位,程序流程图如图4.2所示。开始DS18B20 复位向DS18B20写入相应的ROM命令读出温度值并进行校验结束 图4.2 温度采集子程序流程图4.3数据转换子程序数据转换子程序功能是将从温度采集子程序中采集的十六进制温度数据,转换成十进制的数值并存储在指定的存储单元内。由于该恒温系统设计的温度检测有效为0-99,所以数据转换原理为:将获取到的十六进制温度值除以十进制数10,所得到的商为相应十进制数的十位,并存入31H单元,余数则为相应十进制数的个位,并存入30H单元,其程序流程图如图4.3所示。开始合并温度值的高位和低位存入AA除以10商送31H单元余数送30H单元结束 图4.3数据转换流程图4.4动态显示子程序在该恒温系统中使用了两个两位的LED七段数码管来显示系统所采集的当前温度值和设置的温度值,为了不占用更多的单片机端口,在针对显示电路的设计时采用了动态显示的方案,而动态显示子程序的主要任务就是控制显示电路的扫描规律,其程序流程图如图4.4所示。开始当前温度高位送入A片选信号初始化ORL A,#30H当前温度高位片选信号ANL A,#0CFH显示输出MOV P1,A延时1ms当前温度低位送入A片选信号初始化ORL A,#30H当前温度低位片选信号ANL A,#0DFH显示输出MOV P1,A延时1ms设置温度高位送入A片选信号初始化ORL A,#30H设置温度高位片选信号ANL A,#0EFH显示输出MOV P1,A延时1ms设置温度低位送入A片选信号初始化ORL A,#30H设置温度低位片选信号ANL A,#0FFH显示输出MOV P1,A延时1ms结束图4.4 动态显示子程序流程图4.5温度控制执行子程序温度控制执行子程序的任务是检测由温度计测得的当前温度值是否在设置温度值的允许范围内,若当前温度大于设置温度的允许范围,表明当前温度过高,立即向温度控制电路发出降温命令(P2.2为高电平,P2.3为低电平);若当前温度小于设置温度的允许范围,表明当前温度过低,立及向温度控制电路发出升温命令(P2.2为低电平,P2.3为高电平),程序流程图如图4.5所示。开始当前温度加偏差温度设置温度加偏差温度判断温度是否过高(设置温度加偏差温度再减当前温度)判断温度是否过低(当前温度加偏差温度再减设置温度)初始温度控制端P2.2和P2.3置低电平发出降温命令P2.2高电平P2.3低电平发出升温命令P2.2低电平P2.3高电平结束YYNN图4.5 温度控制执行子程序流程图4.6键盘输入中断服务子程序 在本系统中键盘输入请求使用INT0(外部中断0)来实现,INT0采用电平触发方式,当按下键盘中的“设置/切换”键时,INT0(P3.2)端为低电平时,进入键盘输入中断服务子程序,此时可以设置要恒定温度,“删除(*)”键为删除键,点击一次可删除输入的一位数据,在输入过程中通过P0.7端口判断每次按键后是否释放,当按下“确定(#)”号键时,则保存设置并退出中断服务子程序,返回到主程序,其程序流程图如图4.6所示。INT0请求设置控制、温度控制初始化设置切换输入P0.7=低电平?设置第一列键码和第一列扫描端(P0.0)为低电平延时20ms消除抖动键按第二行扫描P0.4=低电平?键按第三行扫描P0.5=低电平?键按第四行扫描P0.6=低电平?设置第二列键码和第二列扫描端(P0.1)为低电平延时20ms消除抖动设置第三列键码和第三列扫描端(P0.2)为低电平延时20ms消除抖动第一列是否扫描过?第二列是否扫描过?第三列是否扫描过?输入显示键值相加,并存储数据输入确定?返回主程序键按第一行扫描P0.3=低电平?按键是否释放?设置切换YNYYNNYYNNYNYNYNYNYN 图4.6键盘输入中断服务子程序流程图第5章 结 论 在设计该系统的过程中我充分应用了在课堂上所学的相关理论知识,当把理论知识通过自己的双手变成实际后,使我对电路设计有了更多的了解,同时又产生了更浓厚的兴趣。 本系统的核心技术表现在温度采集、3x4矩阵键盘输入和动态显示部分,其中温度采集的硬件部分使用温度传感器DS18B20,通过软件控制与DS18B20的串口通讯来进行温度采集;3x4矩阵键盘输入采用键码的扫描来实现.。为了实现这一系列功能我主动与指导老师交流,并且查阅了大量相关的书籍,在此过程中进一步锻炼了自己思考问题与解决问题的能力,巩固并提高了自己的单片机、数字电路、模拟电路等相关知识。该系统实现的最终功能是控制外界温度,使温度恒定在一定的范围内,统所能测量温度的范围在0-99度之间,能恒定的范围是在1-98度之间,所以该系统在日常生活与生产中有较大的应用空间,特别是运用在养殖业方面。而在一些特殊的生产环境中,其需要恒温的范围远远超过了该系统,该恒温系统是不适用的,这也是该系统有待完善的地方。 附录:主程序代码 ORG 0000H LJMP MAIN ORG 0003H ;外部中断INT0入口地址 LJMP SKEY ;转外部中断INT0 ORG 1000HMAIN: CLR P2.2 ;初始控制端,温度过高/降温 CLR P2.3 ;温度过低/升温 TEMPDIN BIT P3.7 ;DS18B20 通信端口 TEMPLEQU24H ;温度低位存储单元TEMPHEQU25H ;温度高位存储单元 TEMPHEADEQU26H ;DS18B20 9位数据存储单元(26H-2EH)SHOWGETLEQU30H ;当前温度低位SHOWGETHEQU31H ;当前温度高位SHOWSETLEQU32H ;设置温度低位SHOWSETHEQU33H ;设置温度高位 TEMPCKEQU34H ;偏差温度存储单元 MOV TEMPCK,#03H ;设置系统允许的偏差温度 MOV SHOWGETL,#00H ;当前温度低位初值MOV SHOWGETH,#00H ;当前温度高位初值 MOV SHOWSETL,#00H ;设置温度低位初值 MOV SHOWSETH,#00H ;设置温度高位初值LOOP: MOV IE,#00H ACALLREADTEMP ;发送温度读取指令 ACALLREADTEMP1 ;读出温度值子程序 ACALL DATAS ;数据转换(将16进制数据转换成10进制数据) ACALL SETOUT ;温度数据处理,温度控制执行 ACALL SHOW ;显示当前温度和设置温度 CLR IT0 ;电平触发方式 SETB EA ;CUP开放中断 SETB EX0 ;允许外部中断0 AJMP LOOP;下面是主程序所用到的子程序; RESET DS18B20 复位INITDS1820:SETBTEMPDINNOPNOPCLRTEMPDINMOVR6, #0A0H; DELAY 480usDJNZR6, $ MOVR6, #0A0H DJNZR6, $SETBTEMPDINMOVR6, #SHOWSETL; DELAY 70usDJNZR6, $ MOV R6,#3CHLOOP1820: MOVC, TEMPDINJCINITDS1820OUT DJNZ R6,LOOP1820 MOVR6, #064H; DELAY 200usDJNZR6, $SJMPINITDS1820RETINITDS1820OUT:SETBTEMPDINRET;读DS18B20的程序, 从DS18B20中读出一个字节的数据READDS1820:MOVR7, #08HSETBTEMPDINNOPNOPREADDS1820LOOP:CLRTEMPDINNOPNOPNOPSETB TEMPDINMOV R6, #07H; DELAY 15us DJNZ R6, $ MOV C, TEMPDINMOVR6, #3CH; DELAY 120usDJNZ R6, $RRC A SETB TEMPDINDJNZ R7, READDS1820LOOPMOVR6, #3CH; DELAY 120usDJNZR6, $RET; 写DS18B20的子程序, 向DS18B20中写一个字节的数据WRITEDS1820: MOVR7, #08HSETBTEMPDINNOPNOPWRITEDS1820LOOP:CLRTEMPDINMOV R6, #07H; DELAY 15us DJNZ R6, $ RRC A MOVTEMPDIN, C MOVR6, #34H; DELAY 104us DJNZR6, $SETBTEMPDIN DJNZ R7, WRITEDS1820LOPRET; 向DS18B20写入相应的ROM命令READTEMP:LCALLINITDS1820MOVA, #0CCHLCALLWRITEDS1820; 写入ROM命令SKIP ROMMOVR6, #34H; DELAY 104usDJNZR6, $MOVA, #44HLCALLWRITEDS1820; 写入ROM

    注意事项

    本文(基于单片机的温度控制系统设计论文(35页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开