基于单片机的智能温度控制系统设计.doc_第1页
基于单片机的智能温度控制系统设计.doc_第2页
基于单片机的智能温度控制系统设计.doc_第3页
基于单片机的智能温度控制系统设计.doc_第4页
基于单片机的智能温度控制系统设计.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河南城建学院专科毕业设计(论文)摘要基于单片机的智能温度控制系统设计【摘要】 在现代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用AT89C51单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的问题。 本系统的温度检测电路中采用芯片DS18B20,简化了系统的软硬件设计,提高了温度检测的精度。在输出控制中主要采用硬件电路实现,降低了程序的复杂性。在系统的硬件电路中采用了抗干扰设计,增强了系统的抗干扰能力。系统的软件设计采用了模块化结构,具有可移植性强和通用性强的特点。关键词:AT89C51单片机,温度,DS18B2014河南城建学院专科毕业设计(论文)AbstractAbstract In the modern industrial production, the current, voltage, temperature, pressure, and flow, velocity, and switch quantity is accused of main parameters. Example: in metallurgical industry, chemical industry, electric power engineering, paper industry, machinery and food processing and so on many domains, people need to all kinds of heating furnace, heat treatment furnace, reactors and boiler temperature detection and control. Using AT89C51 SCM to control temperature, has not only convenient control, simple and flexible configuration advantages, and can greatly improve the technical indexes are controlled temperature, which can greatly improve the products quality and quantity. Therefore, the problem of temperature control chip is a industrial production we often encounter problems. This system USES the temperature detection circuit chip DS18B20, simplify the design of the software and hardware system and improve the precision of temperature detection. In the output control mainly adopts hardware circuit implementation, reduces the complexity of the program. In the system hardware circuit design is adopted in the system, the anti-interference ability. System software design using modular structure, strong commonality and portability.Keyword:AT89C51, Temperature, DS18B20河南城建学院专科毕业设计(论文)目录 【目录】 【摘要】1Abstract2第一章、引言51.1国内外研究综述51.2毕业设计(论文)所用的方法5第二章、总体设计62.1前言62.2总体设计62.2.1智能温度控制系统的设计概括62.2.2温度传感器的选择72.2.3 DS18B20简单介绍72.2.4 DS18B20使用中注意事项9第三章、各部分电路设计103.1 振荡电路与复位电路103.2 DS18B20与单片机的接口电路103.3各子程序流程图11第四章、硬件组成15第五章、软件设计17结论19致谢20参考文献21附录22附录A.汇编语言程序源代码22附录B.C语言程序设计126附录C.C语言程序设计231 河南城建学院专科毕业设计(论文)第一章 引言第一章、引言 1.1国内外研究综述 目前,国内在温度自动控制方面的研究已经实现了在一定面积内对各种环境因子的综合控制。 1996 年,江苏理工大学研制成功了一套温室环境控制设备,通过对温室内部温度、湿度、光照及CO2浓度的监控,在150m2 温室内实现了温度、湿度、光照、CO2 浓度的综合控制。 当前,国内外利用单片机的温度控制系统软硬件实施方式主要类型是直接使用单片机以及其他一些外围芯片作为数据采集和控制的装置,不使用上位PC 机做数据处理。这种类型的自动控制系统一般以单片机为核心,包括输入模块、控制模块、输出模块等。硬件电路一般由温度传感器及模拟信号处理电路、A/D 转换器、单片机、D/A 转换器、LED(或LCD)显示器及微打印机、简易键盘、指示报警装置等组成,即为一个单片机的最小应用系统,实现基本的输入输出功能和简单的控制功能。软件设计一般采用中断技术定时采集环境因子参数,然后经过相关的标度转换得到环境因子的参数化值,再通过一定的控制算法与设定值进行比较从而对外设进行控制,一般常用的控制算法是数字PID 控制算法,这种算法经过改进可以实现较为稳定和精确的控制。产品的工艺不同,控制温度的精度也不同,因而采用的控制算法也不同。就温度控制系统的动态特性来讲,温度控制系统基本上都是具有纯滞后的一阶环节,当系统精度及温控的线性性能要求较高时,多采用PID算法或达林顿算法来实现温度控制。当系统对控制精度要求不高时,对升/降温过程的线性也没有要求时,系统可采用最简单的通断控制方式,即当被控温度达到设定值时,停止加热,当温度低于设定值时,开始加热,从而可保持恒温控制。这种系统成本低,又有一定的控制精度,能较好的满足一般农业用户的需求;但由于控制系统的核心-单片机-的数据处理能力及存储器容量的限制,控制精度有限,对生长环境参数要求较高的一些特殊作物不能很好的满足要求,另外如果没有扩展微打印机就无法查询历史温度值,因为单片机的数据存储器数据断电即逝。1.2毕业设计(论文)所用的方法 设计叙述了基于单片机的智能温度控制系统的设计,包括了硬件组成和软件的设计,该系统在硬件设计上主要是通过温度传感器对温度进行采集,把温度转换成变化的电压,然后由放大器将信号放大,通过A/D转换器,将模拟电压信号转化为对应的数字温度信号电压。其硬件设计中最为核心的器件是单片机AT89C51,它一方面控制A/D转换器实现模拟信号到数字信号的转换,另一方面,将采集到的数字温度电压值经计算机处理得到相应的温度值,送到LED显示器,以数字形式显示测量的温度。整个系统的软件编程就是通过汇编语言对单片机AT89C51实现其控制功能。整个系统结构紧凑,简单可靠,操作灵活,功能强大,性能价格比高,较好的满足了现代生产和科研的需要。河南城建学院专科毕业设计(论文)第二章 总体设计 第二章、总体设计2.1前言温度是工业控制中主要的被控参数之一。在现代化的工业生产中,人们常常需要对各类生产过程中的温度进行检测和控制,特别是在冶金、化工、建材、食品、机械、石油等工业中,温度具有举足重轻的作用。随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展和广泛的应用。单片微型计算机是随着超大规模集成电路技术的发展而诞生的,由于它具有体积小、功能强、性价比高、指令丰富、提供多种外围接口部件、控制灵活等优点,把单片机应用于温度控制中,采用单片机做主控单元,无触点控制,可完成对温度的采集和控制的要求。所以广泛应用于电子仪表、家用电器、节能装置、机器人、工业控制等诸多领域,使产品小型化、智能化,既提高了产品的功能和质量,又降低了成本,简化了设计。单片机在温度控制系统中的应用方法,包括控制系统结构、控制原理、控制电路、控制软件和控制软件流程图。在温度控制系统的控制电路中,最常见的电路有电源稳压电路、过零检测电路、温度检测电路、按键输入电路、显示电路、输出控制电路和报警电路。针对对温度极其敏感的一些大型公共场合,为达到对其温度的良好控制,本文从实用的角度以AT89C51为核心设计了一套智能温度控制系统。AT89系列单片机是ATEML公司生产的8位Flash单片机。AT89系列单片机的核心是8031,在软件和硬件方面与MCS-51系列单片机完全兼容,AT89系列单片机的指令与有关定义和MCS-51系列单片机完全相同,可以直接使用MCS-51系列单片机编写的程序。AT89系列单片机的引脚排列及其定义与MCS-51系列单片机完全一致,可以直接替换。由于内部有Flash ROM,所以编写的程序烧录很方便,易于电擦除,可以反复使用,非常方便用户对程序进行修改,可以缩短研制周期,降低研制成本。在单片机内部有Flash存储器,功耗特别低,Flash ROM的容量从AT89C1051的1KB到AT89S55的20KB,品种多,选择余地大。AT89C51是ATEML公司推出的一种低功耗、高性能的CMOS单片机,片内有4KB的内部Flash 程序存储器,128字节的内部数据存储器,工作电压为5V,有40个引脚。实践证明,本系统运行情况良好且经济可靠。2.2总体设计2.2.1智能温度控制系统的设计概括智能温度控制系统的总体设计是围绕低成本、模块化、可扩展以及寿命长的特点展开的。在硬件选择方面,选择性价比高的AT89C51单片机、LM358型放大器、LED显示器、采用低压差线性电压稳压器、较高内阻的压力传感器;在软件方面,采用了功能模块化,为以后的升级或者扩展做准备。同时采用间歇式的工作模式,非采样期间只有显示器、稳压器等处于活动状态;在保证性能要求的情况下缩短AD转换的时间等一系列措施,有效的提高了器件寿命。为了降低整个系统的成本,在满足性能要求的前提下,选择低成本元器件,简化系统设计;采用多点校准技术和线性插值方法,降低了对传感器的线性的要求,扩大了可选传感器的范围,提高了产品的通用性和可扩展性,提高了产品的竞争力。 该智能控制系统通用性比较高,可广泛应用于工业现场恶劣环境、楼宇供热、供水控制,完全脱离人工操作,并可以远程监视、控制,真正实现了智能控制。目前已经在某实际锅炉系统中试用,控制效果良好,温度、压力稳定,受到用户好评。2.2.2温度传感器的选择 本设计采用数字温度芯片DS18B20 测量温度,输出信号全数字化。采用AT89C51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。该系统利用AT89C51单片机控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限温度。该系统扩展性非常强。该测温系统电路简单、精确度较高、实现方便、软件设计也比较简单。系统框图如图2.1所示。时钟振荡电路AT89C51复位电路电源电路LED显示DS18B20温度传感器图2.1 DS18B20温度测温系统框图2.2.3 DS18B20简单介绍 本论文介绍单片机结合DS18B20设计的智能温度控制系统,系统用一种新型的“一总线”可编程数字温度传感器(DS18B20),不需复杂的信号调理电路和AD转换电路能直接与单片机完成数据采集和处理,实现方便、精度高、功耗低、微型化、抗干扰能力强,可根据不同需要用于各种温度监控及其他各种温度测控系统中。 美国DALLAS最新单线数字温度传感器DS18B20,具有微型化低功耗、高性能、可组网等优点,新的“一线器件”体积更小、适用电压更宽、更经济 Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20的测温分辨率较高,DS18B20可直接将温度转化成串行数字信号,因此特别适合和单片机配合使用,直接读取温度数据。 目前DS18B20数字温度传感器已经广泛应用于恒温室、粮库、计算机机房。测量温度范围为-55C+125C,在-10+85C范围内,误差为0.5C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。新的产品支持3V5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 DS18B20可以程序设定912位的分辨率,精度为0.0625C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色!DS18B20使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。DS18B20是一种新型的数字式温度传感器,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生。因此用它来组成一个测温系统,连接线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列、各种封装形式如图2.2所示。DQ 为数据输入/输出引脚;NC为空脚,模拟集成电路的空脚可悬空,数字集成电路的输入端空脚一般通过上拉电阻保持高电平,简单处理也可接正电源,输出可悬空,当工作在寄生电源下,也可以向器件提供电源;GND为地信号,代表地线或0线、就是公共端的意思,做电源时相当于电源负极;VDD为可选择的器件内部工作电压引脚,当工作于寄生电源时,此引脚必须接地。 图2.2 DS18B20结构引脚图2.2.4 DS18B20使用中注意事项 DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: (1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS18B20操作部分最好采用汇编语言实现。 (2)在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 (3)连接DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 (4)在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,这一点在进程序进入死循环。对DS18B20硬件连接和软件设计时也要给予一定的重视。河南城建学院专科毕业设计(论文)第三章 各部分电路设计第三章、各部分电路设计3.1 振荡电路与复位电路 振荡电路如图3.1所示,该电路采用12MHz晶体振荡器和两个电解电容组成,振荡电路的频率越高,则系统的时钟频率也越高,单片机运行速度也越快。但运行速度快对存储器的要求就高,所以选择12MHz的振荡频率最为合适。 复位电路如图3.2所示,该电路属于按钮复位电路,当按下按钮到一定时间时,就能使RST引脚端产生高电平,从而使单片机复位。 图3.1 振荡电路 图3.2 复位电路3.2 DS18B20与单片机的接口电路 由于DS18B20温度传感器产生的是数字信号,所以不需要在进行A/D转换,将DS18B20温度传感器2端口直接接单片机的P3.4接口,1端口接5v电源,3端口接地。电路图如图3.3所示。图3.3 DS18B20与单片机的接口电路3.3各子程序流程图1、初始化子程序所有操作都必须由初始化脉冲开始,单片机先输出一个480960us低电平到DQ引脚,再将DQ引脚置高电平,过1560us后检测DQ引脚状态,若为低电平则DS18B20工作正常,否则初始化失败,不能正常测量温度。 图3.4 初始化子程序图2、 读取温度子程序 读取温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。主要包括以下三个命令(详见附录A):(1)写暂存器命令 【4EH】这个命令为由TH寄存器开始向DS18B20暂存器写入数据,4EH命令后的3字节数据将被保存到暂存器的地址2、3、4(TH、TL、CONFIG)三个字节。所有数据必须在复位脉冲前写完。即如果只想写一个字节的数据到地址2,可按如下流程:1、 初始化;2、 写0CCH,跳过ROM检测;3、 写4EH; 4、 写1字节数据;5、 复位,即向DQ输出480-960us低电平(2)读暂存命令【BEH】这个命令由字节0读取9个暂存器内容,如果不需要读取所有暂存内容,可随时输出复位脉冲终止读取过程(3)转换温度命令【44H】这个命令启动温度转换过程。转换温度时DS18B20保持空闲状态,此时如果单片机发出读命令, DS18B20将输出0直到转换完成,转换完成后将输出1。图3.5 读取温度子程序 3、写流程图写时隙:写时隙由DQ引脚的下降沿引起。DS18B20有写1和写0两种写时隙。所有写时隙必须持续至少60s,两个时隙之间至少有1s的恢复时间。DS18B20在DQ下降沿后15s60s间采样DQ引脚,若此时DQ为高电平,则写入一位1,若此时DQ为低电平,则写入一位0。所以,若想写入1,则单片机应先将DQ置低电平,15us后再将DQ置高电平,持续45s;若要写入0,则将DQ置低电平,持续60s。图3.6 写流程图 4、读流程图读时隙:读时隙由DQ下降沿引起,持续至少1s的低电平后释放总线(DQ置1)DS18B20的输出数据将在下降沿15s后输出,此时单片机可读取1位数据。读时隙结束时要将DQ置1。所有读时隙必须持续至少60s,两个时隙之间至少有1s的恢复时间。图3.7 读流程图河南城建学院专科毕业设计(论文)第四章 硬件组成第四章、硬件组成本系统主要是针对一些大型公共场所的温度进行控制。因此我们要求的温度不是一个点,而是一个范围,因此我们设定了一个温度点,在此温度点的上下限附近设定一个回差带,如下图所示。图 4.1 温度越限控制示意图针对以上情况,本系统以AT89C51单片机为核心,组成一个集温度的采集、处理、显示、自动控制为一身的闭环控制系统,其原理框图见图4.2。图中硬件组成主要由以下几部分组成:单片机信息处理、温度采集、信号转换、显示、报警、键声及控制部分。 参 数 存 储键盘控制报警译码器显 示传感器保持器单 片 机变送器电源检测D/A转换器复位时钟图4.2 温度控制系统原理框图具体工作如下:利用集成温度传感器DS18B20实现对温度的采集(由于DS18B20温度传感器产生的是数字信号,所以不需要再进行A/D转换),然后数字信号通过运算放大器、保持器和变送器将数字量送入单片机进行处理。我们预先从键盘输入一个温度范围(上限报警值和下限报警值、上限值、上限复位值、下限值、下限复位值),通过温度采集系统检测出环境的温度,由数字显示电路显示出当时的温度,当温度高于上限值时,系统将起动制冷设备,把温度降下来,根据采样温度值与下限值的差值占上限与下限之间的差值的百分比平均地起动设备的台数,当温度低于上限复位值时,才关闭全部的设备。制冷设备停止工作。当温度低于下限值时,与高于上限值的控制方法相同。当温度高于或低于报警的上下限值时,报警器发声,提醒工作人员此时温度太高或太低,以做出相应的措施。其中:1、 为使整个系统的运行更加完善,本系统在设计时匹配了矩阵式键盘以及由四位LED数码管组成的显示器以显示实时的温度值及事先给定的温度值。2、 为提高系统的抗干扰能力,在原有硬件的基础上设计了电源检测、报警等电路以促进整个系统的功能更加完善。3、为使掉电后上次设定的参数不至于丢掉,本系统采用串行EEPROM24C02进行掉电前的参数存储。24C02和AT89C51的典型接口电路如下:图4.3 24C02和AT89C51的接口电路16河南城建学院专科毕业设计(论文) 第五章、软件设计为便于调试,本系统主要采用模块化结构设计,具体由键盘、显示、温度采集、信号处理、A/D转换、D/A转换报警等子程序组成。这里给出主程序框图见图5.1:图5.1 主程序流程图其中,1、 本系统采用矩阵式键盘,应用键扫描法进行识别,其程序流程图见图5.2:2、 为消除外界对采样系统的干扰,我们采用防脉冲干扰平均值法,计算方便,速度快,且所需内存很小。3、在该系统中温度范围设定在050,但经A/D转换后的采样值为对应于该温度的电压值,因此本系统的标变换公式为:这样计算后该系统中温度范围在051。开 始消 抖返回主程序 有 键 吗?是设定键?显示20H内容 有 键 吗?发 键 声设定键吗? 运行键吗?存 参 数 确定键吗?显示下一个内容 键 吗?显示上一个内容 键 吗?数字键处理图5.2 键盘程序流程图33河南城建学院专科毕业设计(论文) 结论 本设计包括确定控制任务,系统总体方案设计,各部分电路设计,硬件和软件系统的设计等,使我进一步学习与理解了基于单片机的智能温度控制系统的原理,巩固与综合专业基础知识和相关专业课程知识,提高了运用理论知识解决实际问题的实践技能。 本次设计基于单片机的智能温度控制系统,主要是针对对温度极其敏感的一些大型公共场所,将智能传感器检测和单片机控制相结合。本系统采用层次化,模块化设计,整个系统由数据采集系统,单片机控制系统,计算机监控系统组成,进行了调试和仿真,包括硬件仿真和软件仿真,完成数据的采集和处理。系统以单片机为核心,以多个温度传感器作为测量元件,通过单片机与智能传感器相连,采集存储智能传感器的测量数据。在单片机系统中,还要实现程序的扩展存储,数据的实时显示,超限语音报警和数据辅助存储功能。单片机作为监控计算机与智能传感器相连的中心,另一方面通过RS232总线与监控计算机通信,将采集到的数据传输给监控计算机。监控计算机将单片机传输的数据进行记录,存储,处理和报警,供工作人员浏览,记录和进行相关处理。 整个系统的设计以单片机为核心,实现对温度的采样、处理及控制。本系统运行稳定、工作精度高,且通过键盘可以方便地进行参数修改,真正达到对温度的智能控制。河南城建学院专科毕业设计(论文) 致谢在设计过程中,遇到了很多问题。一开始选择的方案是用温度传感器AD590作为信号采集装置,但该方案要用到数模转换,相对于DS18B20传感器的方案结构复杂,所以就否认了该方案而选用DS18B20的方案。设计仿真时,按照线路图接好仿真线路后怎么也得不到结果,运行正常,但显示电路不工作,经查资料后得知需要在显示电路中接上拉电阻。加上上拉电阻后,仿真成功。通过这次设计,我深深地意识到自己在动手操作中的不足,也使自己的理论知识得到了一定的提高。在以后的学习工作中,要理论联系实际,把我们所学的理论知识用到实际当中,这样才能学到更多的东西,学习单机片机也是如此,程序只有在经常的写与读的过程中才能提高,这是我在这次毕业设计中的最大收获。当然,在此次毕业设计中,指导老师和同学给了我很大的帮助,才是我的毕业设计能够顺利完成。杨老师在毕业设计日志和毕业设计报告的书写方面给了很多建议,很认真的批改了我的日志,让我能紧扣自己所选的题目书写日志。也很及时的告知我们关于毕业设计方面的信息。同学们也常常一起探讨解决关于毕业设计方面的问题。在这里,我衷心的对给予指导的杨老师和协助完成毕业论文(设计)工作的同学表示感谢。河南城建学院专科毕业设计(论文) 参考文献1.曹巧媛主编. 单片机原理及应用(第二版). 北京:电子工业出版社,2002;2.王忠飞,胥芳MCS-51 单片机原理及嵌入式系统应用M西安:电子科技大学出版社,2007;3.何力民编. 单片机高级教程. 北京:航空大学出版社,2000;4.金发庆等编. 传感器技术与应用. 北京:机械工业出版社,2002;5.王锦标,方崇智过程计算机控制北京:清华大学出版社,1997;6.邵惠鹤工业过程高级控制上海:交通大学出版社,1997;7.胡寿松自动控制原理北京:国防工业出版社,2000;8.刘伯春智能PID调节器的设计及应用 1995;9.周润景,张丽娜基于PROTEUS 的电路及单片机系统设计与仿真M北京:航空航天大学出版社 ,2006;10.刘守义主编单片机应用技术(第二版)西安:电子科技大学出版社2007;11. 苏家健,曹柏荣,汪志锋单片机原理及应用技术.北京:高等教育出版社,2004.河南城建学院专科毕业设计(论文) 附录 附录A.汇编语言程序源代码DATA_BUSBITP3.3FLAGBIT00HTEMP_LEQU 30HTEMP_HEQU31HTEMP_DPEQU32HTEMP_INTEQU33HTEMP_BAIEQU34HTEMP_SHIEQU35HTEMP_GEEQU36HDIS_BAIEQU37HDIS_SHIEQU38HDIS_GEEQU39HDIS_DPEQU3AHDIS_ADDEQU3BHORG 0000H AJMPSTARTORG 0050HSTART:MOVSP,#40HMAIN:LCALLREAD_TEMPLCALLPROCESSAJMPMAIN;读温度程序READ_TEMP: LCALLRESET_PULSE MOV A,#0CCHLCALL WRITEMOVA,#44HLCALL WRITELCALLDISPLAYLCALLRESET_PULSEMOVA,#0CCHLCALLWRITEMOVA,#0BEHLCALL WRITELCALLREADRET;复位脉冲程序RESET_PULSE:RESET:SETBDATA_BUSNOPNOPCLRDATA_BUSMOVR7,#255DJNZR7,$SETB DATA_BUSMOVR7,#30DJNZR7,$JNB DATA_BUS,SETB_FLAGCLRFLAGAJMPNEXTSETB_FLAG:SETB FLAGNEXT:MOV R7,#120DJNZR7,$SETB DATA_BUSJNBFLAG,RESET RET;写命令WRITE:SETBDATA_BUSMOVR6,#8CLRCWRITING:CLRDATA_BUSMOVR7,#5DJNZR7,$RRCAMOVDATA_BUS,CMOVR7,#30HDJNZR7,$SETBDATA_BUSNOPDJNZR6,WRITINGRET;循环显示段位DISPLAY:MOV R4,#200DIS_LOOP:MOVA,DIS_DPMOVP2,#0FFHMOVP0,A CLRP2.7LCALLDELAY2MSMOVA,DIS_GEMOVP2,#0FFHMOVP0,ASETBP0.7 CLRP2.6LCALLDELAY2MSMOVA,DIS_SHIMOVP2,#0FFHMOVP0,ACLRP2.5 LCALLDELAY2MSMOVA,DIS_BAIMOVP2,#0FFHMOVP0,AMOVA,TEMP_BAICJNEA,#0,SKIPAJMPNEXTTSKIP:CLRP2.4LCALLDELAY2MSNEXTT:NOPDJNZR4,DIS_LOOPRET;读命令READ:SETBDATA_BUSMOVR0,#TEMP_LMOV R6,#8MOVR5,#2CLRCREADING:CLRDATA_BUSNOPNOPSETBDATA_BUSNOPNOPNOPNOPMOVC,DATA_BUSRRCAMOVR7,#30HDJNZR7,$SETBDATA_BUSDJNZR6,READINGMOVR0,AINC R0MOVR6,#8SETBDATA_BUSDJNZR5,READINGRET;数据处理PROCESS:MOV R7,TEMP_LMOVA,#0FHANLA,R7MOVTEMP_DP,AMOV R7,TEMP_LMOVA,#0F0HANLA,R7SWAPAMOVTEMP_L,AMOVR7,TEMP_HMOVA,#0FHANLA,R7SWAPAORLA,TEMP_LMOV B,#64HDIVABMOVTEMP_BAI,AMOVA,#0AHXCHA,BDIVABMOVTEMP_SHI,AMOVTEMP_GE,BMOVA,TEMP_DPMOV DPTR,#TABLE_DPMOVCA,A+DPTRMOVDPTR,#TABLE_INTERMOVC A,A+DPTRMOVDIS_DP,AMOVA,TEMP_GEMOV DPTR,#TABLE_INTERMOVCA,A+DPTRMOV DIS_GE,AMOVA,TEMP_SHIMOV DPTR,#TABLE_INTERMOVCA,A+DPTRMOVDIS_SHI,AMOVA,TEMP_BAIMOV DPTR,#TABLE_INTERMOVCA,A+DPTRMOV DIS_BAI,ARETDELAY2MS:MOVR6,#3LOOP3:MOVR5,#250DJNZR5,$DJNZR6,LOOP3RETTABLE_DP:DB00H,01H,01H,02H,03H,03H,04H,04H,05H,06HDB06H,07H,08H,08H,09H,09HTABLE_INTER:DB03FH,006H,05BH,04FH,066HDB06DH,07DH,07H,07FH,06FHEND附录B.C语言程序设计1#include #include DS18B20.h #define uint unsigned int#define uchar unsigned char /宏定义#define SET P3_1 /定义调整键#define DEC P3_2 /定义减少键#define ADD P3_3 /定义增加键#define BEEP P3_7 /定义蜂鸣器bit shanshuo_st; /闪烁间隔标志bit beep_st; /蜂鸣器间隔标志sbit DIAN = P07; /小数点uchar x=0; /计数器signed char m; /温度值全局变量uchar n; /温度值全局变量uchar set_st=0; /状态标志signed char shangxian=38; /上限报警温度,默认值为38signed char xiaxian=5; /下限报警温度,默认值为38uchar code LEDData=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff;/*延时子程序*/void Delay(uint num) while( -num );/*初始化定时器0*/void InitTimer(void) TMOD=0x1; TH0=0x3c; TL0=0xb0; /50ms(晶振12M)/*定时器0中断服务程序*/void timer0(void) interrupt 1 TH0=0x3c; TL0=0xb0; x+;/*外部中断0服务程序*/void int0(void) interrupt 0 EX0=0; /关外部中断0 if(DEC=0&set_st=1) shangxian-; if(shangxianxiaxian)shangxian=xiaxian; else if(DEC=0&set_st=2) xiaxian-; if(xiaxian99)shangxian=99; else if(ADD=0&set_st=2) xiaxian+; if(xiaxianshangxian)xiaxian=shangxian; /*读取温度*/void check_wendu(void) uint a,b,c; c=ReadTemperature()-5; /获取温度值并减去DS18B20的温漂误差 a=c/100; /计算得到十位数字 b=c/10-a*10; /计算得到个位数字 m=c/10; /计算得到整数位 n=c-a*100-b*10; /计算得到小数位 if(m99)m=99;n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论