毕业设计-基于AT89S51单片机的温度报警器设计.doc_第1页
毕业设计-基于AT89S51单片机的温度报警器设计.doc_第2页
毕业设计-基于AT89S51单片机的温度报警器设计.doc_第3页
毕业设计-基于AT89S51单片机的温度报警器设计.doc_第4页
毕业设计-基于AT89S51单片机的温度报警器设计.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

扬州市职业大学汽车与电气工程系毕业设计(论文)作 者:吴晗 学 号:0902030234 教研室:电气自动化教研室 专 业:电气自动化 题 目:基于at89s51单片机的温度报警器设计 指导者: 谢聪 评阅者: 2012 年 5 月 毕业设计说明书(论文)中文摘要 温度的测量是日常生活和工业生产中常遇到的问题,而日常生活中常用到的普通的温度计不能和计算机接口,也就不能实现现代的工业控制。本设计是通过mcs-51单片机和ds18b20转换芯片,实现对环境温度的采集、模/数转换、处理、显示过程。要求综合运用所学主要课程的知识,并要求查询有关技术资料和书籍,得到本设计所要的技术数据和相关知识。温度控制系统是比较常见的和典型的过程控制系统。温度是工业生产过程中重要的被控参数之一,机械、食品、化工等各类工业生产过程中广泛使用的各种加热炉、热处理炉、反应炉,对工作的处理温度等均需要对温度严格控制。当今计算机控制技术在这方面的应用,已使温度控制系统达到自动化和智能化了.本装置的任务是对温度进行实时监测,首先,由温度传感器ds18b20对环境温度进行采集并送给单片机,通过单片机送至数码管显示,显示出来的数值即为所测的摄氏温度值。单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。本温度显示器的设计与制作,阐明了该装置进行设计与制作的具体过程及方法。这种温度显示器结构简单,可操作性强,应用广泛。工作时,由传感器检测温度,防止因温度升高而带来的不必要的损失。本文介绍的是采用温度传感器ds18b20的温度显示器,自动测量当前环境温度,由单片机at89s51控制,并通过四位7段数码管显示。关键词 温度显示 单片机(at89s51) 数字温度传感器(ds18b20)专科毕业设计说明书(论文) 第 38 页 共 35 页目 录摘要单片机介绍2单片机历史4单片机在各领域中的应用41 引言61.1设计背景61.2 设计任务61.3电路的工作原理72 硬件设计方案72.1 设计思路72.2硬件设计及框图7 2.2.1电源部分7 2.2.2 时钟电路8 2.2.3复位电路的设计9 2.2.4 总框图102.3温度传感器102.3.1 ds18b20102.3.2 ds18b20的主要特性112.3.3 ds18b20工作原理112.3.4 温度格式122.3.5 ds18b20的通信协议:122.3.6 ds18b20的外部电源供电方式132.4 at89s51132.4.1主要特性 142.4.2管脚说明142.5 数码管152.5.1 led数码显示器连接方法:152.5.2 方案162.5.3数码管显示方式173 系统的软件设计173.1 软件设计的主程序173.2 读温度子程序183.3 温度转换命令子程序193.4 计算温度子程序203.5 程序设计203.6 软件调试及仿真框图30结束语33参考文献33附录一 元器件清单34附录二 原理图35单片机介绍单片机也被称为微控制器(microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有cpu的专用处理器发展而来。最早的设计理念是通过将大量外围设备和cpu集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。intel的z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。早期的单片机都是8位或4位的。其中最成功的是intel的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了mcs51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着intel i960系列特别是后来的arm系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300mhz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的windows和linux操作系统。单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过pc机和其他计算的综合,甚至比人类的数量还要多。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了i/o设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机内部也用和电脑功能类似的模块,比如cpu,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可.用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、vcd等等的家电里面都可以看到它的身影!它主要是作为控制部分的核心部件。它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用pc)的主要区别。 单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的cd4000系列这些纯硬件来搞定的话,电路一定是一块大pcb板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性! 由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的cpu,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十k的尺寸!对于家用pc的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用pc上来运行,家用pc的也是承受不了的。可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称pc机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。单片机历史 单片机诞生于20世纪70年代末,经历了scm、mcu、soc三大阶段。 1.scm即单片微型计算机(single chip microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了scm与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,intel公司功不可没。 2.mcu即微控制器(micro controller unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展mcu的重任不可避免地落在电气、电子技术厂家。从这一角度来看,intel逐渐淡出mcu的发展也有其客观因素。在发展mcu方面,最著名的厂家当数philips公司。 philips公司以其在嵌入式应用方面的巨大优势,将mcs-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记intel和philips的历史功绩。 3.单片机是嵌入式系统的独立发展之路,向mcu阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了soc化趋势。随着微电子技术、ic设计、eda工具的发展,基于soc的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。单片机在各领域中的应用目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能ic卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。1.在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。2.在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。3.在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。4.单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。5.在各种大型电器中的模块化应用某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。如:音乐信号以数字的形式存于存储器中(类似于rom),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。1 引言 1.1设计背景 温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,随着人们生活水平的不断提高,对生活质量的要求不断提升,自然会更加关注跟人身体健康紧密联系的温度;同时在工业生产过程中经常需要实时测量温度,尤其是在高危生产行业,如花炮生产、煤矿行业等。但依靠人工检测既浪费时间、物力、人力, 又有一定的危险性,且测量的数据也不准确;在农业生产中也离不开温度的测量,各种农作物的生长都跟温度有直接的关系,掌握了温度的变化就可以更好的控制农作物的生长。因此研究温度的测量方法和装置具有重要的意义。 1.2 设计任务 本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机at89s51,测温传感器使用ds18b20,用4位共阴极led数码管实现温度显示,能准确达到以上要求。 1.3电路的工作原理 图1.3电路原理图这次的温度显示器由温度传感器ds18b20,at89s51单片机,led数码管和电源系统组成。其工作的原理是在电源系统供电的情况下由温度传感器ds18b20测量周围温度的变化,并将测的温度传给单片机at89s51经过单片机at89s51分析做出判断,同时经过单片机at89s51将所测得的温度显示在led显示出来,如果温度在温度传感器的规定的温度范围内,那么蜂鸣器将不会发出报警信号。2 硬件设计方案 2.1 设计思路 智能温度传感器(亦称数字温度传感器)是微电子技术、计算机技术和自动测试技术(ate)的结晶。目前,已开发出多种智能温度传感器系列产品。智能温度传感器内部都包含温度传感器、a/d转换器、信号处理器、存储器(或寄存器)和接口电路。由于ds18b20将温度传感器、信号放大调理、a/d转换、接口全部集成于一芯片,与单片机连接简单、方便,测量范围广,精度高。稳定性好等优点。广泛的运用于温度检测领域。 2.2硬件设计及框图 硬件部分 2.2.1电源部分 8051的工作电压为+5v,0.5v, 工作电流200ma其它部分工作电流:总电流:500ma 功耗:2.5w 图2.2.1电源电路电源:桥式整流、滤波(两个滤波电容)、稳压三端稳压器件:7805系列三端稳压器件是最常用的线性降压型dc/dc转换器,目前也有大量先进的dc/dc转换器层出不穷,例如低压差线性稳压器ldo等。7805简单易用,价格低廉,直到今天还在大多电路中采用。 2.2.2 时钟电路 图2.2.2 时钟电路单片机工作的时间基准是由时钟电路提供的。在单片机的xtal1和xtal2两个引脚间,接一只晶振及两只电容就构成了单片机的时钟电路,如图所示。电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数。电路中,电容器c1和c2对振荡器频率有微调作用,通常的取值范围3010pf;石英晶体选择6mhz或12mhz都可以。其结果只是机器周期时间不同,影响计数器的计数初值。 8051单片机的时钟产生有以下两种方法: (1) 内部时钟方式:利用单片机内部的振荡器,然后在引脚xtal1(18脚)和xtal2(19脚)两端接晶振,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟电路,外接晶振时,晶振两端的电容一般选择为30pf左右;这两个电容对频率有微调的作用,晶振的频率范围可在1.2mhz-12mhz之间选择。(2)外部时钟方式:此方式是利用外部振荡脉冲接入xtal1或xtal2。hmos和chmos单片机外时钟信号接入方式不同,hmos型单片机(例如8051)外时钟信号由xtal2端脚注入后直接送至内部时钟电路,输入端xtal1应接地。由于xtal2端的逻辑电平不是ttl的,故建议外接一个上接电阻。 外接时钟信号通过一个二分频的触发器而成为内部时钟信号,要求高、低电平的持续时间都大于20ns,一般为频率低于12mhz的方波。片内时钟发生器就是上述的二分频触发器,它向芯片提供了一个2节拍的时钟信号。2.2.3复位电路的设计复位是单片机的初始化操作,单片机系统在上电启动运行时,都需要先复位。其作用是使cpu和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部复位电路才能实现。单片机的外部复位电路有上电复位和手动复位两种。我们在设计单片机时,选用手动复位。上电复位利用电容器的充电实现。上电要求接通电源后,单片机实现自动复位操作。上电瞬间rst引脚获得高电平,随着电容的充电,rst引脚的高电平将逐渐下降,rst引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。手动复位:按键后:电容器被短路放电,rst直接和vcc相连,就是高电平,此时进入“复位状态”。松手后,电源开始对电容充电,此时,充电电源在电阻上,形成高电平送到rst,仍然是“复位状态”;稍后,充电结束,电降将为0,电阻上的电压也将为0,rst降为低电平,开始正常工作。 图2.2.3 上电复位 图2.2.3手动复位手动复位电路中电阻r14的阻值为8.2k另外一电阻阻值为1k,电容大小为10f对于怀疑是复位电路故障而不能正常工作的单片机也可以采用模拟复位的方法来判断,单片机正常工作时第9 脚对地电压为零,可以用导线短时间和5v 连接一下,模拟一下上电复位,如果单片机能正常工作了,说明这个复位电路有问题。2.2.4 总框图温度计电路设计总体设计方框图如图所示,控制器采用单片机at89s51,温度传感器采用ds18b20,用2位led数码管以串行口通信传送数据方式实现温度的显示。led显 示主 控 制 器单片机复位报警点按键调整温 度 传 感 器时钟振荡图2.2.4 总框图 2.3温度传感器 2.3.1 ds18b20 dallas 半导体公司的数字化温度传感器ds18b20是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。 现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量。 ds18b20内部结构主要由四部分组成:64位光刻rom,温度传感器,非挥发的温度报警触发器th和tl,高速暂存器。ds18b20的管脚排列如图所示。 ds18b20引脚定义: (1)dq为数字信号输入/输出端; (2)gnd为电源地; (3)vdd为外接供电电源输入端(在寄生电源接线方式时接地)2.3.2 ds18b20的主要特性 (1)适应电压范围更宽,电压范围:3.05.5v,在寄生电源方式下可由数据线供电;(2)独特的单线接口方式,ds18b20在与微处理器连接时仅需要一条口线即可实现微处理器与ds18b20的双向通讯;(3)ds18b20在使用中不需要任何外围元件,全部 传感元件及转换电路集成在形如一只三极管的集成电路内; (4)温范围55+125,在-10+85时精度为0.5;(5)可编程 的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温; (6)在9位分辨率时最多在 93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快; (7)测量结果直接输出数字温度信号,以一 线总线串行传送给cpu,同时可传送crc校验码,具有极强的抗干扰纠错能力; (8)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 2.3.3 ds18b20工作原理 ds18b20的读写时序和测温原理与ds18b20相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。2.3.4 温度格式 这是12位转化后得到的12位数据,存储在ds18b20的两个8比特的ram中,二进制中的前面5位是符号位,如果测得的温度大于0, 这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。 例如+125的数字输出为07d0h,+25.0625的数字输出为0191h,-25.0625的数字输出为fe6fh,-55的数字输出为fc90h 。235 ds18b20的通信协议:由于ds18b20采用的是1wire总线协议方式,即在一根数据线实现数据的双向传输,而对at89s51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对ds18b20芯片的访问。由于ds18b20是在一根i/o线上读写数据,因此,对读写的数据位有着严格的时序要求。ds18b20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。ds18b20器件要求采用严格的通信协议,以保证数据的完整性。该协议定义了几种信号类型:复位脉冲,应答脉冲时隙;写0,写1时隙;读0,读1时隙。与ds18b20的通信,是通过操作时隙完成单总线上的数据传输。发送所有的命令和数据时,都是字节的低位在前,高位在后。 ds1820使用中注意事项 :ds1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: (1)较小的硬件开销需要相对复杂的软件进行补偿,由于ds1820与微处理器间采用串行数据传送,因此,在对ds18b20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用pl/m、c等高级语言进行系统程序设计时,对ds18b20操作部分最好采用汇编语言实现。 (2)在ds18b20的有关资料中均未提及单总线上所挂ds1820数量问题,容易使人误认为可以挂任意多个ds18b20,在实际应用中并非如此。当单总线上所挂ds18b20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 (3)连接ds18b20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用ds1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 (4)在ds18b20测温程序设计中,向ds18b20发出温度转换命令后,程序总要等待ds18b20的返回信号,一旦某个ds18b20接触不好或断线,当程序读该ds18b20时,将没有返回信号,程序进入死循环。这一点在进行ds18b20硬件连接和软件设计时也要给予一定的重视。测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接vcc和地线,屏蔽层在源端单点接地。2.3.6 ds18b20的外部电源供电方式 在外部电源供电方式下,ds18b20工作电源由vdd引脚接入,此时i/o线不需要强上拉,不存在电源电流不足的问题,可以保证 转换精度,同时在总线上理论可以挂接任意多个ds18b20传感器,组成多点测温系统。注意:在外部供电的方式下,ds18b20的gnd引脚不能悬空 ,否则不能转换温度,读取的温度总是85。 图2.3.6外部供电方式单点测温电路2.4 at89s51 at89s51是一个低功耗,高性能cmos8位单片机,片内含4k bytes isp(in-system programmable)的可反复擦写1000次的flash只读程序存储器,器件采用atmel公司的高密度、非易失性存储技术制造,兼容标准mcs-51指令系统及80c51引脚结构,芯片内集成了通用8位中央处理器和isp flash存储单元,功能强大的微型计算机的at89s51可为许多嵌入式控制应用系统提供高性价比的解决方案。 2.4.1主要特性:8031 cpu与mcs-51 兼容 4k字节可编程flash存储器(寿命:1000写/擦循环) 全静态工作:0hz-24khz 三级程序存储器保密锁定 128*8位内部ram 32条可编程i/o线 两个16位定时器/计数器6个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路2.4.2管脚说明 vcc:供电电压 gnd:接地 p0口:p0口为一个8位漏级开路双向i/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门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。 p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。 p3口也可作为at89c51的一些特殊功能口 rst:复位输入端,高电平有效。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。 ale/prog:地址锁存允许/编程脉冲信号端。当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。 psen:外部程序存储器的选通信号,低电平有效。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。 ea/vpp:外部程序存储器访问允许。当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。 xtal1:片内振荡器反相放大器和时钟发生器的输入端。 xtal2:片内振荡器反相放大器的输出端。2.5 数码管2.5.1 led数码显示器连接方法: 共阳极接法:把二极管的阳极连接在一起构成公共阳极,使用时公共阳极接+5v,每个发光二极管的阴极通过电阻图与输入端相连。当阴极端输入低电平时,八段 图2.5.1 数码管的连接方法发光二极管就导通点亮,而输入高电平时则不点亮。共阴极接法:把二极管的阴极连接在一起构成公共阴极,使用时公共阴极接+5v,每个发光二极管的阳极通过电阻与输入端相连。当阳极端输入高电平时,八段发光二极管就导通点亮,而输入低电平时则不点亮。 2.5.2 方案 这里为了方便导线的连接,电流由外部电源提供,为灌电流,不增加单片机负担,所以本次设计采用四位一体共阳数码管。(如下图)重点:引脚的测量,去实验室找台设备,把电压调在1.5v2.0v之间。电源的正负极分别放在任意一脚上,根据数码管的段亮就可以判断引脚(如下图) 图2.5.2共阳数码管2.5.3数码管显示方式 数码管显示器有两种工作方式,即静态显示方式和动态显示方式。 在静态显示方式下,每位数码管的ag和h端与一个8为的io相连。特点是:数码管中的发光二极管恒定地导通或截至,直到显示字符改变为止。 静态显示方式程序非常简单,占用cpu时间资源很少,只是在显示字符改变时调用一下显示程序。但是硬件电路繁多,每个数码管需要一个8位io口、一个8位驱动、8个限流电阻。一般应用于数码管位数少的场合。 相对于静态显示方式而言,动态显示方式线路相对简单,成本低,在单片机系统中常常采用动态扫描显示方式。其工作原理是:逐个地循环点亮各位显示器,也就是说在任一时刻只有一位显示器在显示。3 系统的软件设计 系统程主要包括主程序, 温度显示子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等 。3.1 软件设计的主程序主程序的主要功能是负责温度的实时显示、读出并处理ds18b20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度。初始化调用显示子程序1s到?初次上电读出温度值温度计算处理显示数据刷新发温度转换开始命令nyny 图3.1 主程序流程图 3.2 读温度子程序 子程序的主要功能是读出ram中的9字节,在读出时需进行crc校验,校验有错时不进行温度数据的改写。其程序流程图如图ynyn 结束 发ds18b20复位 移入温度暂存器c图8rc校验正?确?9字节完?读取操作,crc校验发读取温度命令发跳过rom命令 图3.2子程序流程图3.3 温度转换命令子程序 换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如图。发ds18b20复位命令发跳过rom命令rom命令发温度转换开始命令 结束 图3.3 转换流程图 34 计算温度子程序 计算温度子程序将ram中读取值进行bcd码的转换运算,并进行温度值正负的判定,其程序流程图 图3.4 计算温度子程序 3.5 程序设计 org 0000h ajmp main org 000bh ajmp tt0 main:org 002fh ;* ;读18b20的温度 ;* temph equ 50h templ equ 51h temphc equ 52h templc equ 53h zj9 equ 60h wdcgq bit p0.0 ;* ;系统初始化 ;* mov sp,#2fh mov tmod,#21h mov th0,#3ch;12mhz晶振时定时100ms mov tl0,#0b0h mov r7,#0ah setb ea setb et0 setb tr0 clr f0 clr 00h ;setb p2.3 mov temph,#00h mov templ,#00h mov temphc,#00h mov templc,#00h ;* ;主程序 ;* start:lcall dip jnb 00h,start clr 00h jnb f0,sta1 lcall read lcall dip lcall bcdlc lcall dip sta1:lcall ml setb f0 ljmp start ;* ;t0中断子程序 ;* tt0:push psw mov psw,#10h mov th0,#3ch mov tl0,#0b0h djnz r7,tt0out mov r7,#0ah setb 00h tt0out:pop psw reti; ;* ;读1820的转换温度 ;* read:lcall rst1820 mov a,#0cch ;发跳过1820的rom命令 lcall writ1820 mov r6,#1ah ;延时104us djnz r6,$ mov a,#0beh ;读1820内部ram中9个字节的内容 lcall writ1820 mov r6

温馨提示

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

评论

0/150

提交评论