基于 AT89S51单片机的温度 控制系统_第1页
基于 AT89S51单片机的温度 控制系统_第2页
基于 AT89S51单片机的温度 控制系统_第3页
基于 AT89S51单片机的温度 控制系统_第4页
基于 AT89S51单片机的温度 控制系统_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、 题 目 基于 at89s51单片机的温度 控制系统34摘 要以单片机为核心的温度控制系统在工农业生产中发挥着重要作用,随着科技的发展进步,新型微处理器、电力电子器件和集成化功能模块不断涌现,设计一种应用新型器件的低成本、性能优异的温度控制系统具有重要意义。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路、数码显示电路、键盘控制电路、报警电路。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、继电器控制程序、报警程序。 关键词:at89s51单片机、温度

2、控制、ds18b20温度芯片abstracttemperature control system based on the single chip has been playing an extensive and important role in industrial and agricultural production. with the progress of science and technology,new processing microprocessor, power electronic devices and integrated function modules em

3、erge constantly. it has a great significance to design a low cost, excellent performance single-chip microcomputer temperature control system through the application of new devices.in the article introduced this control systems hardware part, including: temperature examination electric circuit, temp

4、erature-control circuit, seven-segment display circuit,keyboard control circuit,warning circuit.the monolithic integrated circuit through carries on corresponding processing to the signal, thus realizes the temperature control goal. in the article also emphatically introduced the software design par

5、t, uses the modular structure in here, the main module includes: seven-segment display sequence, keyboard scanning and pressed key disposal procedure, temperature signal processing procedure, black-white control procedure, warning procedure.keywords: at89s51 monolithic integrated circuit ;ds18b20 te

6、mperature chip;temperature control目 录第一章 绪论11.1 单片机系统的发展概况11.2 温度控制发展现状11.3 单片机温度控制目的和意义21.4 设计内容21.4.1 具体控制要求3第二章 单片机温度控制系统方案选择42.1 测温模块方案的分析与比较42.2 显示器的选择52.3 键盘设计方案选择52.4 控制器模块62.5 加热制冷装置有效功率控制模块72.6 系统各模块的最终方案7第三章 单片机温度控制系统的硬件电路设计93.1系统硬件模块关系93.2 主要硬件单元电路的设计93.2.1主控制部分方案93.3 温度传感电路设计133.3.1 ds18

7、b20的测温原理193.4加热,制冷控制部分203.5键盘控制器部分213.6显示控制器部分213.7警报器部分243.8电源输入部分243.9温度控制系统仿真图26第四章 系统的软件设计274.1 系统的主程序设计274.11 读取ds18b20温度模块子程序274.12 数据处理子程序284.13 键盘扫描子程序284.14 主程序流程图30第五章 结论与展望31参考文献32附 录33温度控制系统原理图33致 谢34第一章 绪论1.1 单片机系统的发展概况自从intel公司于1976年研制出第一种单片机mcs-48系列单片机,单片机便开始在我们人类社会的发展中扮演着日益重要的角色。单片机是

8、将具有数据处理能力的中央处理单元(center processing unit,即cpu)、随机存储器(ram)、只读存储器(rom)及其他i/o通信口集成在一块芯片上,构成的一个最小的计算机系统,现代单片机系统加上了中断单元、定时/计数单元、a/d转换单元等更复杂、更完善的电路,使得单片机的功能越来越强大,应用也更加广泛。 目前,单片机正在一些新技术领域发挥着重要作用,例如在家用电器中的模糊控制、变频控制应用中,都闪现着单片机的身影。目前,欧美等发达国家一直在不断提升单片机的性能,使其向着低功耗化、微型化、高性能化、串行总线化方向发展。同时,随着超大规模集成电路工艺和集成制造技术的不断完善,

9、单片机的硬件集成度也不断提高,已经出现了能满足各种不同需求、具有各种特殊功能的单片机。可以展望,单片机必将在我们的日常生活中发挥更大的作用,并极大地改善我们的生产生活。 1.2 温度控制发展现状自70年代以来,由于工业过程控制的需要,特别是在电子技术的迅猛发展,以及自动控制理论和设计方法发展的推动下,国外温度控制系统发展迅速,并在智能化自适应参数自整定等方面取得成果。在这方面以日本、美国、德国、瑞典等国技术领先,并且都生产出了一批商品化的性能优异的温度控制器及仪器仪表,在各行业广泛应用。 目前,国外温度控制系统及仪表正朝着高精度智能化、小型化等方面快速发展。温度控制系统在国内各行各业的应用虽然

10、已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同国外的日本、美国、德国等先进国家相比,仍然有着较大的差距。目前,我国在这方面总体技术水平处于20世纪80年代中后期水平。成熟产品主要以“点位”控制及常规的pid控制器为主,它只能适应一般温度系统控制,难于控制滞后复杂时变温度系统控制,而且适应于较高控制场合的智能化、自适应控制仪表国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。现在,我国在温度等控制仪表业与国外还有着一定的差距。1.3 单片机温度控制目的和意义依靠单片机处理信息的系统已经使我们的生活发生了巨大变化,其系统的集成度越来越高,使其提供的功能也越来越强大,并

11、促使我们的生活生产更加简便。采用新式的单片机控制系统不仅可以节约硬件空间,而且也显现出成本优势和日后扩展升级的优势,而集成化、耐高压的芯片模块和新式电子器件使得系统的移植性更强,应用领域也更加广泛。例如,igbt新型器件的发展使得弱电控制强电的领域越来越广,控制的器件类型也越来越多,系统的稳定性也越来越强。本次单片机温度控制系统硬件设计更加追求系统的可移植性,努力应用当今最简约的模块化设计,在兼顾性能指标和成本的前提下,使所设计的系统的核心部件还能应用于水温控制对器件耐压、耐流的要求,稍加修改和改善也能适应具有类似功能和控制要求的其它系统。采用数字温度传感器ds18b20,因其内部集成了a/d

12、转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。数字温度传感器ds18b20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。由于ds18b20芯片的小型化,更加可以通过单条数据线就可以和主电路连接,故可以把数字温度传感器ds18b20做成探头,探入到狭小的地方,增加了实用性。更能串接多个数字温度传感器ds18b20进行范围的温度检测。 1.4 设计内容设计一个温度自动控制系统,控制对象为蔬菜储藏室。储藏室温可以在一定范围内由人工设定,并能在环境温度变化时实现自动控制,以保持设定的温度基本不变。基本要求如下:(1)温度设定

13、范围为030,最小区分度为0.1。(2)当采集的温度经处理后超过设定温度的上限时,开启降温设备,关闭升温设备。当采集的温度经处理后低于设定温度的下时,开启升温设备,关闭降温设备。(3)当温度传感头出现故障时扬声器发出警笛声并显示错误。(4)用十进制数码管显示储藏室的实际温度。1.4.1 具体控制要求 根据设计的要求,要利用温度传感器实时温度。当温度高于设定的温度时 (30),打开降温装置进行调整使温度在设定的范围内。当温度低于设定的温度时(0),打开升温装置进行调整使温度在设定的范围内。同时要求能设定温度。 温度控制系统能对温度进行自动的检测和控制。系统采用单片机来控制温度,包括温度的采集电路

14、,键盘显示电路,温控电路,报警电路等几个部分。第二章 单片机温度控制系统方案选择2.1 测温模块方案的分析与比较测温模块主要有以下3种温度测量模块选择。方案1:采用热敏电阻。这种电阻是利用温度敏感的半导体材料制成,其阻值随温度变化有明显的改变。负温度系数热敏电阻器通常是有锰、钴的氧化物烧制成半导体陶瓷制成。其特点是,在工作温度范围内电阻阻值随温度是升高而降低。可满足40-90测量范围,但热敏电阻精度、重复性、可靠性较差,不适于检测小于1的信号;而且线性度很差,不能直接用于a/d转换,应该用硬件或软件对其进行线性化补偿。方案2:采用集成温度传感器。如常用的a/d590和lm35。ad590是电流

15、型温度传感器。这种器件以电流作为输出量指示温度,其典型的电流灵敏度是1ua/k。输出电流与它所感受的温度成线性关系,工作电压可以从+4+30v范围内选用,测温范围为-55+150。它与大多数其他形式的温度传感器相比不存在线性化问题,它是二端器件,使用非常方便,作为一种高电阻电流源,它不需要严格考虑传输线上的电压信号损失和噪声干扰问题,因此特别适合作为远距离测量或控制作用。由于ad590是电流型传感器,经过电阻转换为电压值。需要多路模拟开关控制温度采样信号并有放大器放大和a/d转换器将模拟量转换为数字量,这样就有许多硬件电路,且价格较高。方案3:采用ds18b20单总线式数字温度传感器。ds18

16、b20是美国dallas公司生产的单总线式温度传感器。它具有微型化、低功耗、高性能、抗干扰能力强、易配处理器等明显的优点,特别适合于构成多点温度测控系统,可以直接将温度转化成串行数字信号(提供9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片。它的温度测量范围为55+125,可编程为912位a/d转换精度,测温分辨率可以达到0.0625。被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可以在远端引入,也可以采用寄生电源方式产生,多个ds18b20可以并联到三根或两根线上,cpu只需一根断口线就能与多个ds18b20通信,占用单片机的端口少,可以大大节省引线和逻辑电路。

17、方案选择:选择方案3。理由:当前的温度传感器已经完全进入数字时代,它直接输出温度值的数字量,省去了繁琐的转换并节省了大量的硬件电路,而且精度可以做得很高。2.2 显示器的选择方案一:采用液晶显示屏。液晶显示屏(lcd)具有功耗小、轻薄短小无辐射危险,平面直角显示以及影象稳定不闪烁,可视面积大,画面效果好,抗干扰能力强等特点。但由于只需显示三位温度值,信息量比较少,且由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器资源占用较多,其成本也偏高。方案二:采用三位led七段数码管分别显示温度的十位、个位和小数位。数码管具有:低能耗、低损耗、低压、寿命长、耐老化,对外

18、界环境要求较低。同时数码管采用bcd编码显示数字,程序编译容易,资源占用较少。根据以上论述,采用方案二。本系统中,采用了数码管的动态显示,节省单片机的内部资源。2.3 键盘设计方案选择方案1:采用4*4矩阵键盘输入。这种接口方式适用于按键数量较多的场合,它由行线和列线组成,按键位于行列的交叉点上。矩阵键盘的工作原理是按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接到+5v上。平时无按键按下时行线处于高电平状态,而当有按键按下时,行线电平状态将由与此电平相连的列线决定。列线电平如果为低,则行线电平为低;列线电平为高则行线电平也为高。由于矩阵键盘中行、列线为多键共用,

19、各案件均影响该键所在行和列的电平,因此,各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并做适当处理才能决定闭合键的位置。对于矩阵键盘,按键是位置由行号和列号唯一决定,所以分别对行号和列号进行二位制编码,然后将两值合成一个字节,高4位是行号,低4位是列号。但这种编码对不同行的键,离散性大,并且编码的复杂难度与键盘的个数成正比,因此不适合用在输入量小的设计中。图2-1:矩阵式键盘方案2:采用独立式按键接口。这种方式是各种按键相互独立,每个按键各接一根输入线,一根线上的按键工作状态是不会影响其他输入线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断是哪个按键被按下了。独立式按键电

20、路配置灵活,软件简单。但每个按键需占用一个输入口线在按键数量较多时需要较多的输入口线且电路结构复杂。故此种键盘适用于按键较少的或操作速度高的场合。独立式按键电路按键直接与单片机i/o口连接,通过读i/o口,判断各i/o口线的电平状态,即可识别出按下的键盘。方案选择:选择方案2。理由:每个按键只需要占用一根输入口线,该设计所用按键较少。从而减少单片机的i/o口使用,设计简单,配置灵活,软件简单。2.4 控制器模块根据题目要求,控制器主要用于对温度测量信号的接受和处理、控制加热和降温设备使控制对象满足设计要求、控制显示电路对温度值实时显示以及控制键盘实现对温度值的设定等。对控制器的选择有以下三种方

21、案:方案一:采用fpga作为系统控制器。fpga功能强大,可以实现各种复杂的逻辑功能,规模大,密度高,它将所有器件集成在一块芯片上,减少了体积,提高了稳定性,并且可应用eda软件仿真、调试,易于进行功能扩展。fpga采用并行的i/o口方式,提高了系统的处理速度,适合作为大规模实时系统控制核心。由温度传感器送来的温度信号,经fpga程序对其进行处理,控制加热装置动作。但由于本设计对数据处理的速度要求不高,fpga的高速处理的优势得不到充分体现,并且其成本偏高,引脚较多,硬件电路布线复杂。方案二:采用模拟运算放大器组成pid控制系统。对于储藏室温控制是足够的。但要附加显示、温度设定等功能,要附加许

22、多电路,稍显麻烦。方案三:采用atmel公司的at89s51作为系统控制器。单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且其功耗低、体积小、技术成熟和成本低等优点。基于以上分析拟订方案三,由at89s51作为控制核心,对温度采集和实时显示以及加热装置进行控制。2.5加热制冷装置有效功率控制模块根据设计要求,可以使用电热炉进行加热,使用压缩制冷器进行降温,控制电功率即可以控制加热,降温的速度。当储藏室温过高时,关掉电热炉并开启压缩制冷器进行降温处理。当储藏室温过低时开启电炉关闭压缩制冷器。由于加热制冷的功率较大,考虑到简化电路的设计,我们直接采用220v电

23、源。对加热制冷装置控制模块有以下两种方案:方案一:采用可控硅来控制加热器有效功率。可控硅是一种半控器件,应用于交流电的功率控制有两种形式:控制导通的交流周期数达到控制功率的目的;控制导通角的方式控制交流功率。由交流过零检测电路输出方波经适当延时控制双向可控硅的导通角,延时时间即移相偏移量由温度误差计算得到。可以实现对交流电单个周期有效值周期性控制,保证系统的动态性能指标。该方案电路稍复杂,需使用光耦合驱动芯片以及变压器等器件。方案二:采用继电器控制。使用继电器可以很容易实现地通过较高的电压和电流,在正常条件下,工作十分可靠。继电器无需外加光耦,自身即可实现电气隔离。基于以上分析选择方案二,采用

24、继电器控制省去光耦和交流过零检测电路,在软件上选用适当的控制算法,同样可以达到较好的效果。2.6系统各模块的最终方案根据以上分析,结合器件和设备等因素,确定如下方案:1.采用at89s51单片机作为控制器,分别对温度采集、led显示、温度设定、加热制冷装置开关控制。2.温度测量模块采用数字温度传感器ds18b20。此器件经软件设置可以实现高分辨率测量。3.电热丝、压缩制冷器有效功率控制采用继电器控制,实现电路简单实用,加上温度变化缓慢可以满足设计要求。4.显示用led数码管显示实时温度值,用enter、up、down三个单键实现温度值的设定。第三章 单片机温度控制系统的硬件电路设计3.1系统硬

25、件模块关系本系统的执行方法是循环查询执行的,首先单片机at89s51写入命令给ds18b20,检测ds18b20是否存在,如果不存在发出警告并显示错误显示,检测存在后ds18b20开始监测温度并转换数据,转换后通过at89s51来处理数据。数据处理后的结果就通过74ls164移位寄存器显示到七段数码管上。另外还可以由键盘设定温度值送到单片机,单片机通过键入的数据与当前的温度值比较处理发出温度控制信息到继电器。由于ds18b20可以被编程,所以箭头是双向的。输入部分有:键盘部分,ds18b20。输出部分有:led数码显示,继电器部分,报警器部分,ds18b20。系统硬件模块关系如图3-1所示。控

26、制器at89s51led数码显示键盘输入ds18b20继电器报警器图3-1 系统硬件模块关系图3.2 主要硬件单元电路的设计3.2.1主控制部分方案本设计中选用atmel公司的at89s51单片机作为主控芯片。主控模块采用单片机最小系统是由于at89s51芯片内含有4kb的e2prom,无需外扩存储器,电路简单可靠,其时钟频率为 024 mhz ,并且价格低廉。at89s51是一个低功耗,高性能cmos 8位单片机,片内含4k bytes isp(in-system programmable)的可反复擦写1000次的flash只读程序存储器,器件采用atmel公司的高密度、非易失性存储技术制造

27、,兼容标准mcs-51指令系统及80c51引脚结构,芯片内集成了通用8位中央处理器和isp flash存储单元,功能强大的微型计算机的at89s51可为许多嵌入式控制应用系统提供高性价比的解决方案。at89s51具有如下特点:40个引脚,4k bytes flash片内程序存储器,128 bytes的随机存取数据存储器(ram),32个外部双向输入/输出(i/o)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(wdt)电路,片内时钟振荡器。此外,at89s51设计和配置了振荡频率可为0hz并可通过软件设置省电模式。空闲模式下,cpu暂停工作,而ra

28、m定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存ram的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有pdip、tqfp和plcc等三种封装形式,以适应不同产品的需求。其主要功能特性:兼容mcs-51指令系统 4k可反复擦写(1000次)isp flash rom 32个双向i/o口4.5-5.5v工作电压 2个16位可编程定时/计数器时钟频率0-33mhz 全双工uart串行中断口线128x8 bit内部ram 2个外部中断源低功耗空闲和省电模式 中断唤醒省电模式3级加密位 看门狗(wdt)电路软件设置空闲和省电功能 灵活的isp字节和分页编程双数据寄存

29、器指针 at89s51提供以下标准功能:4k字节flash闪速存储器,128字节内部ram,32个i/o口线,看门狗(wdt),两个数据指针,两个16位定时器/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟。同时, at89s51可降至0hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止cpu的工作,但允许ram,定时/计数器,串行通信口及中断系统继续工作。掉电方式保持ram中的内容,但振荡器停止工作并禁止其它所有部件工作直接到一个硬件复位。at89s51引角功能说明vcc:电源电压gnd:地p0口:p0口是一组8位漏极开路型双向i/o口,也即地址/数据

30、总线复用口,作为输出口用时,每位能驱动8个ttl逻辑门电路,对端口写“1”可作为高阻抗输入端口。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在flash编程时,p0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。p1口:p1是一个带内部上拉电阻的8位双向i/o口,p1的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号校验期间,p1接收低8位地址。表3-1为p1口第二功能。表3

31、-1 p1口第二功能端口引脚第二功能p1.5mosi(用于isp编程)p1.6miso(用于isp编程)p1.7sck(用于isp编程)p2口:p2是一个带有内部上拉电阻的8位双向i/o口,p2的输出缓冲级可驱动4个ttl逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流i。在访问位地址的外部数据存储器(如执行:movx ri 指令)时,p2口线上的内(也即特殊功能寄存器,在整个访问期间不改变。flash 编程或校验时,p2也接收高位地址和其它控制信号)。p3口:p3口是一组带有内部上拉电

32、阻的8位双向i/o口。p3口输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对p3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端口时,被外部拉低的p3口将用上拉电阻输出电流i。p3口除了作为一般的i/o口线外,更重要的用途是它的第二功能,p3口的第二功能如下表3-2。表3-2 p3口的第二功能 端口功能第二功能端口引脚第二功能rxd(p3.0)串行输入口t0(p3.4)定时/计数器0外部输入txd(p3.1)串行输出口t1(p3.5)定时/计数器1外部输入int0(p3.2)外中断0wr(p3.6)外部数据存储器写选通int1(p3.3)外中断1rd(p3.7)外部数

33、据存储器读选通rst:复位输入。当振荡工作时,rst引脚出现两个机器周期上高电平将使单片机复位。wdt益出将使该引脚输出高电平,设置sfr auxr 的 disrto 位(地址8eh)可打开或关闭该功能。disrto 位缺省为reset输出高电平打开状态。ale/prog:当访问外部程序存储器或数据存储器时,ale(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ale仍以时钟振荡频率的1/6输出的正脉冲信号,因此它可对外输出时钟或用于定时目地,要注意的是:第当访问外部数据存储器时将跳过一个ale脉冲。如有必要,可通过对特殊功能寄存器(sfr)区中的8eh单元的d0位置位

34、,可禁止ale操作。该位禁位后,只有一条movx 和movc指令ale才会被激活。此外,该引脚伎被微弱拉高,单片机执行外部程序时,应设置ale无效。psen:程序储存允许(psen)输出是外部程序存储器的读选通信号,当at89s51由外部程序存储器取指令(或数据)时,每个机器周期两次psen有效,即输出两个脉冲。当访问外部数据存储器,高有两次有效的psen信号。ea/vpp:外部访问允许。欲使cpu访问外部程序存储器(地址0000hffffh),ea端必须保持低电平(接地)。需注意的是:如果加密位lb1被编程,复位时内部会锁存ea端状态。如ea端为高电平(接vcc端),cpu则执行内部程序存储

35、器中的指令。flash存储器编程时,该引脚加上12v的编程电压vpp。xtal1:振荡器反相放大器及内部时钟发生器的输入端。xtal2:振荡器反相放大器的输出端。at89s51单片机内部构造及功能:特殊功能寄存器:这些地址并没有全部占用,没有占用的地址不可使用,读这些地址将得到一个随意的数值。而写这些地址单元将不能得到预期的结果。电源空闲标志:电源空闲标志(pof)在特殊功能寄存储器sfr中pcon的第4位(pcon.4),电源打开时pof置“1”,它可由软件设置睡眠状态并不为复位所影响。存储器结构:mcs-51单片机内核采用程序存储器和数据存储器空间分开的结构,均具有64kb外部程序和数据的

36、寻址空间。程序存储器:如果ea引脚接地(gnd),全部程序均执行外部存储器。在at89s51,假如接至vcc(电源),程序首先执行从地址0000h0fffh(4kb)内部程序存储器,再执行地址为1000hffffh(60kb)的外部程序存储器。数据存储器:在at89s51的具有128字节的内部ram,这128字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行,128字节均可设置为堆栈区空间。at89s51单片机引脚如图3-2所示。图3-2 at89s51单片机引脚图 3.3 温度传感电路设计 本设计系统我采用了ds18b20单总线可编程温度传感器,来实现对温度的采集和转换,直接输

37、出数字量,可以直接和单片机进行通讯,大大简化了电路的复杂度。ds18b20应用广泛,性能可以满足系统的设计要求。(1)ds18b20简介ds18b20是dallas半导体公司最新的单线数字温度传感器,新的“一线器件”体积更小、适用电压更宽、更经济。dallas 半导体公司的数字化温度传感器ds1820是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。ds18b20测量温度范围为 -55+125,在-10+85范围内,精度为0.5。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣

38、环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3v5.5v的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。ds18b20可以程序设定912位的分辨率,精度为0.5。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在eeprom中,掉电后依然保存。ds18b20的性能是新一代产品中最好的!性能价格比也非常出色! 继“一线总线”的早期产品后,ds18b20开辟了温度传感器技术的新概念。ds18b20可使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。(2)ds18b20的内

39、部结构ds18b20内部结构主要由四部分组成:64位光刻rom、温度传感器、非挥发的温度报警触发器th和tl、配置寄存器。ds18b20的管脚排列如3-4所示:图3-4 ds18b20的管脚排列dq为数字信号输入/输出端;gnd为电源地;vdd为外接供电电源输入端(在寄生电源接线方式时接地)。光刻rom中的64位序列号是出厂前被光刻好的,它可以看作是该ds18b20的地址序列码。64位光刻rom的排列是:开始8位(28h)是产品类型标号,接着的48位是该ds18b20自身的序列号,最后8位是前面56位的循环冗余校验码(crc=x8+x5+x4+1)。光刻rom的作用是使每一个ds18b20都各

40、不相同,这样就可以实现一根总线上挂接多个ds18b20的目的。ds18b20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/lsb形式表达,其中s为符号位。如表3-3所示。表3-3 二进制补码bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0232221202-12-22-32-4bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8ssss27262524这是12位转化后得到的12位数据,存储在ds18b20的两个8比特的ram中,二进制中的前面4位是符号位,如果测得

41、的温度大于0,这4位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这4位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如+125的数字输出为07d0h,+25.0625的数字输出为0191h,-25.0625的数字输出为fe6fh,-55的数字输出为fc90h。(3)ds18b20温度传感器的存储ds18b20温度传感器的内部存储器包括一个高速暂存ram和一个非易失性的可电擦除的e2ram,后者存放高温度和低温度触发器th、tl和结构寄存器。暂存存储器包含了9个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的

42、高八位。第三个和第四个字节是th、tl的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。ds18b20暂存寄存器分布如表3-4所示。表3-4 ds18b20暂存寄存器分布寄存器内容字节地址温度最低数字位0温度最高数字位1高温限值2低温限值3保留4保留5记数剩余值6每度记数值7crc校检8该字节各位的意义:“tm r1 r0 1 1 1 1 1”,低五位一直都是1,tm是测试模式位,用于设置ds18b20在工作模式还是在测试模式。在ds18b20出厂时该位被设置为0,用户不要去改动。r1和r0用来

43、设置分辨率,如表3-5表所示:(ds18b20出厂时被设置为12位)分辨率设置表:表3-5分辨率设置表r1r0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms0112位750ms(4)ds18b20 的工作时序据ds18b20的通讯协议,主机控制ds18b20完成温度转换必须经过三个步骤:每一次读写之前都要对ds18b20进行复位,复位成功后发送一条rom指令,最后发送ram指令,这样才能对ds18b20进行预定的操作。复位要求主cpu将数据线下拉500微秒,然后释放,ds18b20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主cp

44、u收到此信号表示复位成功。ds18b20的一线工作协议流程是:初始化rom操作指令存储器操作指令数据传输。其工作时序包括初始化时序、写时序和读时序,如图3-5、图 3-6和图 3-7所示。图3-5 初始化时序主机即单片机首先发480us-960us的低电平,进行复位,然后释放总线,之后总线被外部上拉电阻电阻抬高,大约等待 1560us 之后,ds18b20 发出 60 到240us 的低电平信号,以示存在,至此初始化结束。图3-6 写操作时序写“0” 的时候,首先单片机发复位信号,然后发“0”于是低电平持续60us 就完成了写“0”,写“1”的时候首先单片机发复位信号,持续时间大于 1us 小

45、于 15us然后发“1”持续 50us 以上即可。图3-7 读操作时序读时序也是主机先发低电平,然后在15us内检测连接ds18b20的数据线的引脚,从而读得相应值。(5)ds18b20的使用注意事项ds18b20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:1、较小的硬件开销需要相对复杂的软件进行补偿,由于ds18b20与微处理器间采用串行数据传送,因此,在对ds18b20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用pl/m、c等高级语言进行系统程序设计时,对ds18b20操作部分最好采用汇编语言实现。 2、在

46、ds18b20的有关资料中均未提及单总线上所挂ds18b20数量问题,容易使人误认为可以挂任意多个ds18b20,在实际应用中并非如此。当单总线上所挂ds18b20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 3、连接ds18b20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用ds18b20进行长距离测温系

47、统设计时要充分考虑总线分布电容和阻抗匹配问题。 4、在ds18b20发出温度转换命令后,程序总要等待ds18b20的返回信号,一旦某个ds18b20接触不好或断线,当程序读该ds18b20时,将没有返回信号,程序进入死循环。这一点在进行ds18b20硬件连接和软件设计时也要给予一定的重视。测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接vcc和地线,屏蔽层在源端单点接地。ds18b20的测温电路如图3-8所示。 图3-8 ds18b20测温电路3.3.1 ds18b20的测温原理ds18b20测量温度采用了特有的温度测量技术, 其温度测量电路如图3-9所示。它是通过计数时钟

48、周期来实现的。低温度系数振荡器输出的时钟信号通过由高温度系数振荡器产生的门周期而被计数,计数器被预置在55相对应的一个基权值。如果计数器在高温度系数振荡周期结束前计数到零,表示测量的温度值高于55,被预置在55的温度寄存器的值就增加1,然后重复这个过程, 直到高温度系数振荡周期结束为止。这时温度寄存器中的值就是被测温度值, 这个值以16位形式存放在便笺式存储器中,此时低位在前,高位在后。斜率累加器在补偿温度震荡的抛物线特性。然后计数器又开始计数直到0,如果周期仍未结束,将重复这一过程。图3-9 ds18b20测温原理ds18b20在使用时,一般都采用单片机来实现数据采集。只须将ds18b20信

49、号线与单片机1位i/o线相连,且单片机的1位i/o线可挂接多个ds18b20,就可以实现单点或多点温度检测。 3.4加热,制冷控制部分由于本系统要控制电热丝加热,压缩制冷器制冷,功率较大,因此要借助功率电路。在器件选择上留足余量,增加安全性。加热部分采用继电器控制,电路简单可靠。当实测温度低于设定值时,由单片机输出低电平信号。三极管9014导通,继电器动作对储藏室加热处理,反之亦然。为了防止继电器频繁动作。在软件中对储藏室温测量精确到0.1,而在温度设定时只取整数。可以有1的余量。继电器电路中有一个三极管9014的保护电路,即将一个二极管反向接到继电器两端。其原理是:当继电器突然断电时,继电器

50、产生很大的反向电流。二极管的作用是将反向电流分流,使流过三级管9014的电流比较小,达到保护三极管9014的作用。加热制冷控制电路如图3-10所示。图3-10加热制冷控制电路3.5键盘控制器部分键盘采用按键开关经上拉电阻分别接p2.0、p2.1、p2.2口上,起到控制、上调和下调作用。每按上调和下调键,设定温度值增1减1。按键功能: 1. enter p2.0(k2)控制键2. upp2.1(k3)加1键3. downp2.2(k4)减1键键盘控制原理图如图3-11所示。图3-11键盘控制原理图3.6显示控制器部分本设计中主要使用七段数码管和移位寄存器芯片74ls164,采用静态显示方式驱动3

51、个七段数码管,分别显示温度的十位、个位和小数位。数码管采用共阳极, at89s51单片机每个i/o的拉电流只有12ma。单片机通过总线将要显示的数据信号传送到移位寄存器芯片74ls164寄存,再由移位寄存器控制数码管的显示,从而实现移位寄存点亮数码管显示。由于单片机的时钟频率达到12mhz,移位寄存器的移位速度相当快,所以我们根本看不到数据是一位一位传输的。从人类视觉的角度上看,就仿佛是全部数码管同时显示的一样。当移位寄存器芯片74ls164清除端(clear)为低电平时,输出端(qaqh)均为低电平。串行数据输入端(a,b)可控制数据。当 a、b 任意一个为低电平,则禁止新数据输入,在时钟端

52、(clock)脉冲上升沿作用下 q0 为低电平。当 a、b 有一个为高电平,则另一个就允许输入数据,并在 clock 上升沿作用下决定 q0 的状态,74ls164逻辑封装图如图3-12所示。图3-12 74ls164逻辑封装图移位寄存器芯片74ls164引出端符号:clock 时钟输入端;clear 同步清除输入端(低电平有效);a,b串行数据输入端;q0q7 输出端。移位寄存器芯片74ls164的真值表如表3-6所示。表3-6 74ls164真值表输入(inputs)输出(outputs)clearq0q1q2q3q4q5q6q7clocka blhhhhlhhl lllllllllq0q

53、1q2q3q4q5q6q7hq0q1q2 q3q4q5q6lq0q1q2 q3q4q5q6lq0q1q2 q3q4q5q6移位寄存器74ls164、七段数码管与单片机的具体接线电路如图3-13所示。图3-13 数码显示电路3.7警报器部分本设计中温度传感器为主要测温部分,所以当温度传感头出现故障或检测不到时,要及时让工作人员知道,并处理相应问题。所以单片机会控制扬声器发出警笛声来提示。具体接线电路如图3-14所示。图3-14 警报电路3.8电源输入部分控制系统主控制部分电源需要用5v直流电源供电,其电路如图3-15所示,把频率为50hz、有效值为220v的单相交流电压转换为幅值稳定的5v直流电

54、压。其主要原理是把单相交流电经过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压。由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。降压后还是交流电压,所以需要整流电路把交流电压转换成直流电压。由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作。需通过低通滤波电路滤波,使输出电压平滑。稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流电压。设计中使用集成稳压芯片7805解决了电源稳压问题。图3-15 电源电路3.9温度控制系统仿真图图3-16

55、 温度控制系统仿真图第四章 系统的软件设计4.1 系统的主程序设计本系统的执行方法是循环查询执行的,键盘扫描也是用循环查询的办法,由于本系统对实时性要求不是很高,所以没有用到中断方式来处理。系统的软件设计采用汇编语言,对单片机进行编程并实现各项功能。主程序对模块进行初始化,而后调用读温度、处理温度、显示温度、键盘扫描和继电器各模块。用的是循环查询方式,来显示和控制温度。4.11 读取ds18b20温度模块子程序每次对da18b20操作时都要按造ds18b20工作过程中的协议进行。初始化- rom操作命令- 存储器操作命令- 处理数据 程序流程图如图4-1所示。初始化开始ds18b20存在?读取温度值返回存储操作命令rom操作命令是否图4-1 读取ds18b20温度子程序流程图4

温馨提示

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

评论

0/150

提交评论