毕业设计基于AT89C51单片机为核心的多路温度采集系统电路设计_第1页
毕业设计基于AT89C51单片机为核心的多路温度采集系统电路设计_第2页
毕业设计基于AT89C51单片机为核心的多路温度采集系统电路设计_第3页
毕业设计基于AT89C51单片机为核心的多路温度采集系统电路设计_第4页
毕业设计基于AT89C51单片机为核心的多路温度采集系统电路设计_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、编号: 题目:基于at89c51单片机为核心的多路温度采集系统电路设计题目类型: 理论研究 实验研究 工程设计 工程技术研究 软件开发摘 要 本毕业设计提出一种基于at89c51单片机为核心的温度采集系统,并采用数字化单总线技术的设计方案应用于多路温度采集系统中。方案采用了一种新型数字温度传感器ds18b20,利用ds18b20温度传感器将温度的变化,变换成电流的变化,再转换为电压变化输入模数转换器,通过单线总线传给at89c51单片机,at89c51单片机把数据通过液晶显示器lcd1602实时显示不同方位的温度变化。系统对多点的温度进行实时巡检,同时能够通过设定的指令对温度进行监控。温度传感

2、器ds18b20负责温度的采集,单片机将从ds18b20发出的信息读取的温度并与有效温度的上下极值进行比较,若超过有效温度范围则启动报警系统,否则继续从ds18b20读取温度。该系统具有实用性强、可靠性高、测量精度高等特点。测温范围在55+125。关键词:数字温度传感器(ds18b20);单片机(at89c51);液晶(lcd1602)显示器。abstractthis design is proposed based on at89c51microcontroller as the core of the temperature control system and its digital s

3、ingle-bus technology used inthe design of the greenhouse temperature measurement system. program uses a new type of digital temperature sensor ds18b20, use ds18b20 temperature sensor embedded inside the greenhouse temperature, transformed into the current changes, and then a converted to voltage inp

4、ut adc, the bus passed through the single at89c51 comicic- rocontroller at89c51 microcontroller input and output through the serial port tounat- e with the pc machine. system for real-time multi-point inspection of temperature, w- hile providing instruction based on the temperature of pc-time acquis

5、ition. tempsen- sor for temperature ds18b2collection, microcontroller reads the message from the d- s18b20 temperature and with the effective temperature of the upper and lower extm- comparison, if more than the effective temperature range, start alarm system, and to the pc, send the appropriate sig

6、nals, or continue to read from the ds18b20 temper- rure. the system has a practical and high reliability。key words: 目 录1 课题的背景及其意义41.1 本毕设主要内容41.2.1 设计任务与要求42 总体设计方案52.1 方案设计与论证52.2 传感器部分52.3 控制部分62.4 系统方案62.5 系统设计原理73.1 单片机的选择83.1.1 at89c51单片机的功能特点83.2 温度传感器的选择103.2.1 ds18b20的简介113.2.3 ds18b20内部结构1

7、24 硬件电路设计164.1 电源164.1.1 电源电路164.2 功能按键174.2.1按键电路174.2.2 液晶显示电路174.3 温度采集电路184.4 报警电路设计194.5 基于at89c51简易转数测量系统复位电路194.6基于at89c52简易转数测量系统时钟电路204.5 整体电路215 软件设计215.1 概述215.2 软件设计总流程225.3 子程序设计245.3.1 初始化lcd1602245.4 按键扫描245.5 温度的设定子程序256 系统调试及结果分析267 结论26致 谢27附 录28原理图28pcb图29源程序29引言温度是一个十分重要的物理量,对它的测

8、量与控制有着十分重要的意义。随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度。在人类的生活环境中,温度扮演者极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。自18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的工业部门都不得不考虑着温度的因素。温度对于工业如此重要,由此推进了温度传感器的发展。1 课题的背景及其意义温度是一个和人们生活环境有着密切关系的物理量,也是一种在生产、科研、生活中需要测量和控制的重要物理量。在工、农业生产和日常生活中,占据着极其重要地位。

9、工业发展与是否能掌握温度有着密切的联系。在冶金、钢铁、石化、水泥、玻璃、医药等行业都与之有关,可以说几乎80%的工业部门都不得不考虑温度对自身系统的影响。温度不但对于工业如此重要,在农业生产中温度的监测与控制也有着十分重要的意义。我国作为世界上最大的农业国,但是人均占有耕地面积少,这对农业的发展有着极大的限制。因此,设计一种能够进行多路温度检测系统具有较为广泛的应用价值。多路温度测量显示是近几年的研究课题,随着传感技术与通讯技术的发展,单片机的出现,温度测量仪器应运而生,最近几年的研究更是迅速。采用单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的

10、技术指标,从而能够大大提高产品的质量和数量。单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,成为自动化和各个测控领域中必不可少且广泛应用的器件,尤其在日常生活中也发挥越来越大的作用。因此,单片机对温度的检测与控制问题是一个工农业生产中经常会遇到的问题。基于此,本毕业设计是围绕基于单片机多路温度检测与采集系统来开展相关的应用研究工作。 出现了基于新型at89c51单片机和数字温度传感器ds18b20的多路温度测量仪器。1.1 本毕设主要内容1.2.1 设计任务与要求(1)温度检测:通过传感器和单片机的连接,能实时准确检测到现场温度。 (2)温度显示:把现场实时检测到温度值显示出来。

11、 (3)报警温度设定和报警:根据需要可以设置报警温度,并且当达到报警温度时会发出声光报警提示。1.2 .2 设计目的(1)学会运用keil软件编写程序,提高分析程序的能力。(2)进一步熟悉at89c52单片机外部引脚的线路连接方法。(3)熟悉lcd1602使用方法。(4)学会使用proteus仿真软件对设计的电路进行仿真,验证电路功能是否正确。(5)学会使用dxp2004制作电路图。(6)熟悉制作电路板的流程。2 总体设计方案2.1 方案设计与论证多路温度采集电路设计系统有则共同的特点:测量点多、环境复杂、布线分散、现场离监控室远等。若采用一般温度传感器采集温度信号,则需要设计信号调理电路、a

12、/d 转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降 。所以多路温度检测系统的设计的关键在于两部分:温度采集即温度传感器的选择和系统主控单元的设计。2.2 传感器部分方案一:热敏电阻作为传统的温度传感器,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差。使用时,将其串接在电路中,在一般情况下,其阻值很小,损耗也很小,不影响电路正常工作;但若有过流发生,其温度升高,它的阻值随之急剧升高,达到限制电流的保

13、护作用,避免损坏电路中的元器件。当故障排除后,温度自动下降,又恢复到低阻状态,因此对于检测温度的信号是不适用的。在温度测量系统中,采用单片温度传感器,比如ad590,lm35等.但这些芯片输出的都是模拟信号,必须经过a/d转换后才能送给计算机,这样就使得测温装置的结构较复杂.另外,这种测温装置的一根线上只能挂一个传感器,不能进行多点测量.即使能实现,也要用到复杂的算法,一定程度上也增加了软件实现的难度。方案二:在多路温度采集电路设计系统中,传统的模拟信号远距离测温系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。另外传统

14、的测温方法是将模拟信号远距离采样进行a/d转换,一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。因此,在温度测量系统中,采用抗干扰能力强的新型数字温度传感器是解决这些问题的最有效方案。采用数字温度芯片ds18b20测量温度,输出信号全数字化,便于单片机处理及控制。且该芯片的物理化学性很稳定,元件线形较好。其测量温度范围为-55c+125c,在-10+85c范围内,精度为0.5c。热敏电阻的精度较差为2c。新型数字温度传感器ds18b20具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。d

15、s18b20的最大特点之一采用了单总线的数据传输,由数字温度计ds18b20和微控制器at89c51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大,且由于at89c51可以带多个dsb1820,因此可以非常容易实现多路温度的测量。轻松的组建温度传感器网络。2.3 控制部分方案一:此方案采用pc机实现。它可在线编程,可在线仿真的功能,这让调试变得方便。但是pc机输出信号不能直接与ds18b20通信。需要通过rs232电平转换兼容,硬件的合成在线调试,较为繁琐,很不简便。而且在一些环境比较恶劣的场合,pc机的体积大,携带安装不方便,性能

16、不稳定,这不利于工作。方案二:此方案采用at89c51八位单片机实现。at89c51的时钟为12m,i/o口可达32个,高的时钟频率和丰富的i/o,都为实现电路功能提供了非常有利的条件。同时也at89c51内含4kb flash rom,开发环境友好,易用、方便,大大加快本系统设计开发。使操作更为简洁、易懂。实时显示电路的设计,使温度信息更迅速,直观地发布,这些都提高了系统的可行性。而且单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以单独对多路ds18b20控制工作。另外at89c51在工业控制上也有着广泛的应用,编程技术及外围功

17、能电路的配合使用都很成熟。2.4 系统方案 综上所述,温度传感器以及主控部分都采用第二方案。系统设计采用针对传统温度测温系统测温点少,系统兼容性及扩展性较差的特点,运用分布式通讯的思想,用ds18b20和at89c51单片机一起组成了温度采集系统。ds18b20是在分立式温度采集模块上发展而来的集温度传感器和a/d转化于一体的芯片,该芯片能够直接读出被测温度,并且可根据实际要求通过简单的编程实现 9-12位的数字值读数方式。at89c51单片机可以分别在 93.75ms 和 750ms 内完成 9 位和 12 位的数字量,并且从 ds18b20 读出的信息或写入 ds18b20 的信息仅需要一

18、根i/o口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的 ds18b20 供电,而无需额外电源。因而使用 ds18b20 可使系统结构更趋简单,可靠性更高。同时其“一线总线”独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入了全新的概念。系统主要包括三大模块:控制模块、温度采集模块、温度显示模块、报警模块等。电源采用系统总方案如下图1:图1系统总方案图(1) 控制模块功能:控制模块在系统的功能是控制温度采集模块完成温度采集并将采集到的温度读入控制模块的数据寄存器,再将从温度采集模块读取的温度数据写入显示模块并控制显示模块完成温度的显示。(2) 温度

19、采集模块功能:温度采集模块的主要功能是通过温度传感器感应温室温度并转化成模拟信号,通过转化模块将模拟信号转化成数字信号,并存取温度数据。(3) 温度显示模块功能:温度显示模块的主要功能是在控制模块的控制下将控制模块写入的数据显示在液晶屏上,便于读取温度数值。(4) 报警模块功能与设定的报警温度上下限比较,超过限度后通过扬声器与灯光报警。同时处理后把报警的方向的信息送到lcd1602中显示出来。2.5 系统设计原理利用温度传感器ds18b20可以直接读取被测温度值,进行转换的特性,模拟温度值经过ds18b20处理后转换为数字值,然后送到单片机中进行数据处理,并与设置的温度报警上下限比较,超过限度

20、后通过扬声器报警。同时处理后的数据送到lcd1602中显示。3 硬件的设计本文已经在前面提出多路温度检测系统的设计的关键在于温度采集部分和系统主控单元部分的设计。因此系统硬件的选择主要就是温度传感器主控单片机的选择。3.1 单片机的选择所谓单片机(m1crocontroller)是指在一个集成芯片中,集成微处理器 (cpu)、存储器、基本的i/o接口以及定时/计数、通信部件,即在一个芯片上实现一台微型计算机的基本功能。世界上最早的单片机是1974年美国仙童公司研制的f8单片机,但其中最具典型性的当数intel公司的mcs-51系列单片机。因此,在本课题设计的多路温度采集设计系统中,采用单片机实

21、现温度的控制。在单片机选用方面,因为mcs- 51系列单片机拥有基于复杂指令集(cisc)的单片机内核,虽然其速度不快,12个振荡周期才执行一个单周期指令,但其端口结构为准双向并行口,可兼有外部并行总线,故使其扩展性能非常强大。51系列的内部硬件预设,可用特殊功能寄存器对其进行编辑。所以,本系统中的单片机选用intel公司生产at89c51芯片,at89c51单片机是intel公司新近推出的高档型mcs- 51系列单片机中的增强型产品,是一种低功耗、高性能cmos8位微控制器,具有8k在系统可编程flash存储器,使用atmel公司高密度非易失性存储器技术制造。片上flash允许程序存储器在系

22、统可编程(isp),亦适于常规编程器。3.1.1 at89c51单片机的功能特点at89c51是美国atmel公司生产的低电压,高性能cmos8位单片机。片内含4k bytes可反复擦写的只读程序存储器(perom)和128 bytes随机存取数据存储器(ram)。兼容标准mcs-51指令系统,片内置8位中央处理器(cpu)和flash存储单元。at89c51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,能灵活应用于各种控制领域。at89c51主要性能参数:4k字节可编程闪烁存储器 寿命:1000写/擦循环 全静态工作:0hz-24mhz三级程序存储器锁定1288位内部ram 两个

23、16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式 片内振荡器和时钟电路3.1.2 at89c51单片机的引脚说明 在外部结构上,at89c51单片机和mcs51系列单片机的结构相同,有三种封装形式,分别是pdip形式、plcc形式、tafp形式。其中,常用的为pdip形式,其40针脚按其功能可分为3部分:i/o口线(p0p3),控制线(ale、ea、psen、rst),电源及时钟(gnd、vcc、xtal1、xtal2) 。其pdip封装,40针脚形式如图2:图2 at89c51 pdip封装引脚图vcc:供电电压+5v。gnd:接地。p0口:p0口为一个8位漏级开路双向i

24、/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电

25、流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)

26、这是由于上拉的缘故。rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。/p

27、sen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。/ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。xtal2:来自反向振荡器的输出。3.2 温度传感器的选择 温度是表征物体冷热程度的状态量,是现代科学技术中最基本

28、、最重要的物理量。与温度变化有关的物质属性很多,因而温度测量的仪器也是多种多样的。常用的温度测量仪有热电阻、热电偶、pn结温度传感器、集成温度传感器等。热电阻它的优点是灵敏度高,工作温度范围宽,稳定性好,过载能力强,体积小。但它的不足之处在于非线性和互换性差。热电偶测量精度高,热电动势与温度在小范围内基本呈单值、线性关系,稳定性和复现性较好,响应时间较快;测温范围宽,高温热电偶测温上限可达2800。pn结温度传感器利用晶体二极管、三极管的pn结电压随着温度变化而变化的原理制成。线性度好,热惯性小,灵敏度高。集成温度传感器是将测温元件、放大电路、偏置电路及线性化电路集成在同一芯片上的温度传感器。

29、相对其它传感器有较好的线性度和一致性,且体积小,使用方便。温室是一个有较大惯性的被控对象,温度的变化速度较慢,因而不需要传感器的反应速度太高;但要求传感器有优良的物理及化学稳定性。用的较多的是以铂电阻为代表的模拟传感器和以ds18b20为代表的数字传感器。考虑到铂电阻需要信号调理电路,将电阻信号转换为电压信号,经过a/d转换后才能被单片机接受,信号调理电路的相对复杂,抗干扰性比较差,而且价格较高,而ds18b20不仅价格便宜而且使用方便、测温准确、精度较高。为了节省成本,提高效率,方便采集系统以后的进一步扩展和完善,本设计系统的采集模型采用ds18b20单总线数字式温度传感器。3.2.1 ds

30、18b20的简介数字温度传感器ds18b20是dallas公司生产的基于串行接口的一线式数字温度传感器,它是将半导体温敏器件、a/d转换器、存储器等做在一个很小的集成电路芯片上,传感器直接输出的就是温度信号数字值的全新传感器。有3引脚to92小体积封装形式。具有一线总线、体积更小、适用电压更宽、而且经济等特点。其工作电源既可在远端引入,也可采用寄生电源方式产生。cpu只需一根端口线就能与诸多ds18b20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。ds18b20支持“一线总线”接口,测量温度范围为 -55c+125c,在-10+85c范围内,精度为0.5c。现场温度直接以“一线总

31、线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。dsl8b20具有如下特征: 采用单总线技能,与单片机通信只须要一根i/o线,在一根线上可挂接多个dsl8b20。 低压供电,电源范围35v,可以本地供电,也可以直接从数据线上窃取电源(寄生式供电方式)。 每只dsl8b20具有一个独立的、不可修改的64位序列号,根据序列号可以访问对应的器件。 测温范围为一55+125,在一1085范围内误差为05。 可编程数据为912位,其转换12位的温度时间为750 ms(最大)。 dsl8b20可将检测到的温度值直接转化成数字量

32、,并通过串行通信的方式与主控制器执行数据通信。3.2.2 ds18b20工作原理ds18b20测温原理:由于低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在一个对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的

33、斜率累加器用于补偿和修正测温过程中的非线形,其输出用于累加器1的预置值。其原理图如3: 图3 ds18b20工作原理图3.2.3 ds18b20内部结构(1) ds18b20的引脚说明ds18b20采用3脚to-92封装或8脚soic封装。3脚to-92封装形式和器件图如图4所示:gnd接地;dq数据输入输出。漏极开路单线接口,也在寄生电源模式时给设备提供电源;vdd可选的电源电压脚。vdd在寄生电源模式时必须接地。 图3.3 ds18b20引脚图4 ds18b20的dip 40封装图(2)ds18b20的内部结构图5:图5 ds18b20的内部结构图ds18b20有4个主要的数据部件: 64

34、位激光rom。64位激光rom从高位到低位依次为8位crc、48位序列号和8位家族代码(28h)组成。 温度灵敏元件。 非易失性温度报警触发器th和tl。可通过软件写入用户报警上下限值。 配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。ds18b20在0工作时按此寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如表1:表 1tmr1r011111msblsb其中,tm:测试模式标志位,出厂时被写入0,不能改变;r0、r1:温度计分辨率设置位,其对应四种分辨率如下表所列,出厂时r0、r1置为缺省值:r0=1,r1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。

35、配置寄存器与分辨率关系如表2 :表 2r0r1温度计分辨率/bit最大转换时间/ms00993.750110187.510113751112750(3)高速暂存存储器 高速暂存存储器由9个字节组成,其分配如表 3所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如图所示。对应的温度计算:当符号位s=0时,直接将二进制位转换为十进制;当s=1时,先将补码变为原码,再计算十进制值。表 3温度低位温度高位thtl配置保留保留保留8位crclsbmsb温度值格式图ds18b20 温度数

36、据表4:表 4232221202-12-22-32-4msblsbsssss262524典型对应的温度值表5:表 5温度/二进制表示十六进制表示+125 +25.0625+10.125+0.50-0.5-10.125-25.0625-5500000111 1101000000000001 1001000100000000 1010001000000000 0000100000000000 0000000011111111 1111100011111111 0101111011111110 0110111111111100 1001000007d0h0191h00a2h0008h0000hfff

37、8hff5ehfe6fhfc90h(4)ds18b20使用的注意事项ds1820虽然具有测温系统简单、测温精度高、连接方便、占用p口线少等优点,但在实际应用中也应注意以下几方面的问题:对硬件结构简单的单线数字温度传感器ds18b20 进行操作,一定要注意ds18b20对程序和电气参数的严格要求。连接ds18b20的总线电缆是有长度限制的。所以在试验中,要考虑总线的选择和分布及与之相关的问题。有多个测温点时,应考虑系统能实现传感器出错自动指示,进行自动ds18b20 序列号和自动排序,以减少调试和维护工作量。在ds1820的有关资料中均未提及单总线上所挂ds1820数量问题,实际应用时,不能挂接

38、过多的ds18b20,若是挂得太多就要解决其驱动能力问题。在ds18b20测温实际应用中,一定要确保每个ds18b20都接触良好否则系统会陷入死循环,这一点在进行ds1820硬件连接和软件设计时也要给予一定要注意。4 硬件电路设计系统电路主要功能包括:多路温度采集及其相关处理,实时显示温度信息,硬件设计主要包括以下几个模块:电源电路、按键电路、液晶显示电路、温度采集电路、报警电路、复位电路、时钟电路等。具体硬件电路框图结构如图6:电源 图 6 硬件电路框图结构4.1 电源4.1.1 电源电路因为单片机工作电源为+5v,且电路功耗很小。采用电池组 和lm7805三端稳压片即可满足要求,使移动作业

39、更方便。lm7805系列为3端稳压器件,能提供5v的输出电压。应用范围广,内含过流和过载保护电路,带散热片时能持续提供1.5a的输出电流。具体电路如下图7:图 7 电源电路主要特点:具有最大输出电流可达 1.5a、输出电压有5v、过热保护、短路保护等特点电源电路其主要作用是为单片机提供工作电源。4.2 功能按键 4.2.1按键电路单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其它的按键或键盘都是以开关状态来设置控制功能或输入数据。具体电路如下图8:图8 按键电路开关状态的输入:按键开关状态的可靠输入有两种解决方法。一种是软件去抖动:它是在检测到有键按下时,执行一个10ms

40、的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响。另一种为硬件去抖动:即为按键添加一个锁存器。两种方法都简单易行,本设计采用的是软件防抖动方式。4.2.2 液晶显示电路 设计采用的是液晶lcd1602来显示温度、报警方位等。在液晶显示同一画面上显示三个方位实时温度的信息及温度超过报警信息,具体电路图如下图9: 图 9液晶显示电路4.3 温度采集电路ds18b20最大的特点是单总线数据传输方式,ds18b20的数据i/o均由同一条线来完成。根据ds18b20的通讯协议,主机(单片机)控制ds18b20完成温度转换必须经过三个步骤:每

41、一次读写之前都要对ds18b20进行复位操作,复位成功后发送一条rom指令,最后发送ram指令,这样才能对ds18b20进行预定的操作。硬件连接电路如下图10:图10温度采集电路本系统为多路温度采集电路设计系统设计。ds18b20采用外部供电方式,理论上可以在一根数据总线上挂256个ds18b20,但实际应用中发现,如果挂接25个以上的ds18b20仍旧有可能产生功耗问题。另外单总线长度也不宜超过80m,否则也会影响到数据的传输。在这种情况下我们可以采用分组的方式,用单片机的多个i/o来驱动多路ds18b20。4.4 报警电路设计 为了实现多点温度检测报警系统,本设计采用at89c51单片机作

42、为主控制器,采用扫描的方式对多点ds18b20温度传感器获取对应该位置的温度值,经处理后通过串口可以立即发送到上位机,如温度不在设定的范围内,给出声光报警信号。硬件连接电路如下图11: 图11报警电路4.5 基于at89c51简易转数测量系统复位电路在上电或复位过程中,控制cpu的复位状态:这段时间内让cpu保持复位状态,而不是一上电或刚复位完毕就工作,防止cpu发出错误的指令、执行错误操作,也可以提高电磁兼容性能。无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。许多用户在设计完单片机系统,并在实验室调试成功后,在现场却

43、出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。单片机在启动时都需要复位,以使cpu及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从rst引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果rst引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则cpu就可以响应并将系统复位。复位电路通常采用上电自动复位和按钮复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的。只要vcc的上升时间不超过1ms,就可以实现自动上电复位。除了上电复位外,有时还需要按键手动复位。按键手动复位有电平方式和脉

44、冲方式两种。其中电平复位是通过rst端经电阻与电源vcc接通而实现的。 图 12 复位电路图12兼有上电复位和按钮复位的电路。在单片机设计中,若有外部扩展的i/o接口电路需初始复位,如果它们的复位端和mcs-51单片机的复位端相连,复位电路中的r、c参数要受到影响,这时复位电路中的r、c参数要统一考虑以保证可靠的复位。如果单片机mcs-51单片机与外围i/o接口电路的复位电路和复位时间不完全一致,使单片机初始化程序不能正常运行,外围i/o接口电路的复位也可以不和mcs-51单片机复位端相连,仅采用独立的上电复位电路。一般来说,单片机的复位速度比外围i/o快些。若rc上电复位电路接mcs-51单

45、片机和外围电路复位端,则能使系统可靠地同步复位。为保证系统可靠复位,在初始化程序中应用到一定的复位延迟时间。复位电路软件程序跑飞或者硬件发生错误的时候产生一个复位信号,控制mcs-51单片机从0000h单元开始执行程序,重新执行软件程序。此电路的输出端reset接在单片机的复位引脚。4.6基于at89c52简易转数测量系统时钟电路时钟在单片机中非常重要,单片机各功能部件的运行都是以时钟频率为基准。时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种为外部时钟方式。内部时钟方式:内部时钟方式电路图如下图13所示。图13 时

46、钟电路mcs-51单片机内部有一个用与构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚xtal1,输出端为引脚xtal2。这两个引脚接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器电路。电路中的电容c1和c2典型值通常选择为20pf左右。对外接电容的值虽然没有严格的要求,但是电容的大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。晶体的振荡频率的范围通常是在1.2mhz12mhz之间。晶体的频率越高,则系统的时钟频率也就越高,单片机的运行速度也就越快。为了提高温度稳定性,应采用温度稳定性能好的npo高频电容。mcs-51单片机常选择振荡频率12mhz的石英晶体。

47、外部时钟方式是使用外部振荡脉冲信号,常用于多片mcs-51单片机同时工作,以便于同步。对外部脉冲信号只要求高电平的持续时间大于20us,一般为低于12mhz的方波。外部的时钟源直接接到xtal2端,直接输入到片内的时钟发生器上。由于xtal2的逻辑电平不是ttl的,因此要外接一个4.7k10k的上拉电阻。这次的设计采用mcs-51的内部时钟方式。因为外部时钟方式是用外部振荡脉冲信号,用于多片mcs-51单片机同时工作。在这次设计中只用一个mcs-51单片机,不需要振荡脉冲信号。4.5 整体电路电路原理图(见附录)5 软件设计5.1 概述整个系统的功能是由硬件电路配合软件来实现的,当硬件的型号确

48、定下来后也就有了与此相匹配的软件。因此是由硬件来确定软件的。本设计系统由硬件来看可以把软件分成两大不同的功能:一是系统的主要控制程序,它是整个控制系统的核心,用于控制各模块工作的;二是系统的执行程序,它是用来实现各模块实质性的功能如测量、计算、显示等。每一个执行程序也就是一个小模块功能的实现。这里将各主要的执行模块列出,并为每一个执行模块进行功能定义和接口定义。当各执行模块完成之后就可以完成系统的主要控制程序。5.2 软件设计总流程操作说明:本系统用6个按键实现功能,分别为:复位键、页面切换键、高温设置键、低温设置键、确认键、累加键“+”、累减键“-”。主界面第一行显示当前温度,第二行显示报警

49、的上下温度值。如下图14所示。图14 主界面操作方法:上限温度设置方法为按下高温设定键,输入格式为xxx.x,然后按下确认键确认。下限温度设置方法为按下低温设置键,输入格式为xxx.x,然后按下确认键。本系统软件设计主要包括主程序,显示子程序、按键扫描子程序、设置温度子程序几部分组成。主程序流程图如下图15所示。主程序中,首先初始化lcd1602,然后检测18b20是否工作正常,随后进行键盘扫描。扫描后从中读取之前设置温度的上下限,并从ds18b20中读取当前的温度进行计算,如果达到报警要求,报警电路进行报警。进行键盘输入,可选择是否停止报警。和是否更改上下限温度,设置后按复位键程序重新进行计

50、算,并开始计算当前温度是否在设定值内。复位键为复位电路中的复位按键。图 15 主程序流程图程序从主函数开始先进行初始化,ds18b20是一个数字集成的温度转化芯片,对当前温度进行转化处理。同时ds18b20是以一线总线传输的形式传给at89c51,再at89c51译码转换到lcd1602液晶显示当前温度,人工按键设定温度值是以lcd1602液晶显示的形式直观的反应设定的报警温度,使用者可以根据要求设定报警的上下限温度(55+125可调),at89c51根据人工按键设定值与当前温度值进行比较,若当前温度值高于或低于设定值则均报警电路反应,有效的实施监控。数据采集及算法转化框图如图16图16 ds

51、18b20工作流程图ds18b20可直接将被测温度转换成串行数字信号,供单片机处理,通过对ds18b20编程可以实现912位的温度读数,并可分别在93.75ms和750ms内完成9位和12位的数字量。其测温范围-55+125,最大分辨率为0.0625,在-10+85范围内其测温准确度为0.5。ds18b20采用一线总线的传输的形式可以直接把数字量和51单片机(本设计使用at89c51单片机)进行通信译码。程序开始初始化,再经ds18b20,rom操作指令识别判断,再进行存储操作指令,转化处理,读取当前温度值。根据上边所画的流程图可以用c语言编写出对应的源程序如附录所示。5.3 子程序设计5.3

52、.1 初始化lcd1602由于1602是一个慢速设备,所以在初始化时,首先执行一段延时的程序,等待lcd1602,然后根据1602使用手册,初始化时,要对其进行3次写显示模式的设置,然后根据需要、开显示、开光标、清屏,即可完成对lcd1602的初始化。如图17所示。图 17 初始化lcd流程图5.4 按键扫描对键盘扫描的编程采用线翻转法实现,分为两步:1、将列线作为输出线,行线作为输入线。置输出先全部为0,此时行线中呈低电平0的为按键所在行,如果全都不是0,则没有按键按下;2、将第一步反过来,即将行线作为输出线,列线作为输入线。置输出线全部为0,此时列线呈低电平0的为按键所在的列。这样就能得到

53、按键的具体位置。按键扫描子程序流程图如图18所示。图 18键盘扫描子程序5.5 温度的设定子程序通过lcd液晶显示设定值,使用键盘进行高温报警与低温报警值的设定。如图19,必须按照规定的格式进行设置,否则出现乱码。源程序见附录。图 19 温度设定的子程序流程图6 系统调试及结果分析1、测试环境及工具测试温度:0100摄氏度。测试仪器及软件:数字万用表,温度计0100摄氏度,串口调试助手。2、测试方法使系统运行,观察系统硬件检测是否正常(包括单片机最小系统,按键电路,显示电路,温度测试电路等)。观察显示数据是否相符合即可。采用温度传感器和温度计同时测量多点水温变化情况,观察显示电路是否正常。并记

54、录各点温度值,与实际温度值比较,得出系统的温度指标。3、测试结果分析在所设计的测控系统中,仅实现了对温室温度的有效测量,还有其他各方面的和温室环境有关的因素没有纳入该系统,有待完善。目前,本人已经基本完成了对温室温度的采集和显示的系统硬件设计制作,并对该装置进行了检验,结果表明,基本达到设计要求。由于本人的经验不足,技术水平有限,因此本文论述的还只是一个基本模型,实验过程中的实际实践不多,如果要将该方案应用于实际用途,还需要进一步实践调试。7 结论通过分析对比各种不同的温度传感器,选定ds18b20,这种单总线数字温度传感器的通信方式比较独特,软件编写要求的比较新颖,特点突出。用其构建的系统有很多优点:硬件连线简单,省去了使用模拟传感器要进行放大、a/d转换等工作,由于它的级联功能,一条总线可挂接多个传感器测量不同位置的温度,根据ds18b20唯一的序号识别不同传感器在各自位置的温度。需要注意的是, 在系统安装及工作之前应将主机逐个与ds1820 挂接,以读出其序列号。另外,由于ds1820 单线通信功能是分时完成的,遵循严格的时隙概念,因此, 系统对ds1820 和各种操作必须按协议进行,即:初始化ds1820 (发复位脉冲)发rom功能命令发存储器操作命令处理数据。现场温度直接以“一线总线”的数字方式传输,每一个自带地址,大大减少了系统的电缆数,提高

温馨提示

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

评论

0/150

提交评论