电子体温计的设计

上传人:仙*** 文档编号:89618571 上传时间:2022-05-13 格式:DOC 页数:31 大小:160KB
返回 下载 相关 举报
电子体温计的设计_第1页
第1页 / 共31页
电子体温计的设计_第2页
第2页 / 共31页
电子体温计的设计_第3页
第3页 / 共31页
点击查看更多>>
资源描述
-滨江学院毕业论文设计 题 目 电子体温计的设计 院 系 电子工程系 专 业 电子科学与技术 学生 吴 麟 学 号 指导教师 在红 职 称 讲 师 二一五 年 五月 八日目 录1引言32系统设计42.1 任务要求42.2 设计思路42.3 系统设计42.4 方案设计与论证42.5 系统框图53 硬件电路设计63.1 硬件原理图63.2 测量单元63.3 主控单元103.4 显示单元123.5 报警单元173.6 PCB电路板的制作174 软件设计174.1 主程序设计184.2 程序初始化流程图194.3 读温度子程序流程图195 系统调试与测量205.1 实物制作205.2系统调试205.3误差分析216 设计总结21参考文献22致23附录:23. z.-电子体温计的设计吴麟信息工程大学滨江学院滨江学院电子工程系, 摘要:在我们如今的现代化工业的生产当中,温度通常是属于测量以及被控参数,然而随着我们的时代的开展和进步,我们现在的生活、工作、学习还有科研等各个领域都有着单片机技术带来的影响。它现在已然被当成了一种简便而又高效的辅助工具。此篇论文介绍了一个以STC89C52型号的单片机为主要控制器的一个电子体温计的设计。我们选用DS18B20为此次设计的温度传感器,它可以编程是它的最大的特点,不需要那么多的复杂的信号处理以及转换的电路系统,它能能够将搜集到的信息和单片机完成一对一的直接交互,十分的方便,而且它的性能相对很稳定。在温度传感器感应到了温度之后,会将信号传送到单片机中,处理单元将控制我们的LCD1602数码管实时显示。而且所测到的温度一旦超过了我们事先设定好的温度上下限的话,它的蜂鸣控制系统会发出警示声音。此系统能够迅速而又准确地测量人体的实际温度,和我们的传统水银玻璃体温计相比,具备读数容易明显,准确度较高,测量耗时较短等等优点。【关键词】DS18B20型温度感应器;电子体温计;STC89C52型单片机;显示屏LCD1602Design of electronic thermometerLin WuDepartment of Electronic Engineering,Binjiang college,NUIST NanjingAbstract:The thermometerisessentialnecessitiesinpeoples lives,and single-chiptechnology as an effective tool is applied in various field, such as living,working, and researchingin various fields with the development of society. A electronic thermometer system based on STC89C52is designed in this paper. DS18B20 as a new type ofprogrammabletemperaturesensor is used to measure temperature, which can realize the data acquisition and processingwithout plicatedsignal processing circuit andthe A /D conversioncircuit. It is easy to achievehighaccuracyand stable performance.Sensor DS18B20has measured the temperature, and then thesignalsare sent to theSTC89C52. FinallytheLCD1602display the dates by controlling of STC89C52. It can alarm if the temperature is too high. This system canquickly and accuratelymeasurethebody temperature, paredwithtraditionalmercuryglassthermometer, and has the advantages of easy reading, shortmeasurement time, high measurement accuracy.【Key words】DS18B20 ;Digital Thermometer; STC89C52;LCD16021引言如今的单片机智能化仪表已经成为了仪表测量的进展趋向。我们现在的生活都离不开单片机,例如现在医院、家庭到处都可以见到的数字温度计,出于使人们的需要更能得到满足的目的,数字体温计现在正在一步一步的更新换代。温度的测量在进展物理试验、医疗卫生的检测、食品的生产等方面有着十分重要的意义。目前所使用的温度计还有许多都是用分辨力在10.1的水银、煤油或酒精为测温材料的温度计。这些个温度计它们的刻度之间的距离经常都很严密,不方便正确的区分,读数也是一个难题,并且它们的热容量都很大,到达热平衡所需要花费的功夫都比拟长,因此很难读准,使用起来非常的不方便。本篇文章的设计当中介绍的数字体温计,与传统的温度计相比,具备读数容易,测温限度大,测温准确等长处,我们用数字显示来表示所测到的温度值,适用在测温要求精准的地方,或者用在科研实验中。温度计开展很快,一开场使用的是玻璃管温度计,到现了如今热电阻温度计、热电偶温度计、半导体集成数字温度计等等都各式各样的开展了起来。在我们的电子温度计这块里面,它的最主要的成分就是它的传感器了,一个温度计的精度大小、能测围及控制围的大小和用途等等都是由它的精度和灵敏度来决定的。温度传感器现在以及普及到了各个领域,现在的新式传感器已经有着各式各样的种类,形成了一个性能非常优良的这样的一个温度监控系统。体温测量的历史,从l6世纪就开场了。当时的Saatorio运用空气热膨胀原理,制造出第一支用于测量口腔温度的体温计。本世纪最初使用的是水银来制造温度计,如今水银温度计的使用十分的普遍。根据我们调查的的在1928年Ebstein所提到的报告当中,那个时候的体温计不仅能测量口腔和腋下的温度,还能测出颈部、直肠、大腿的根部,外耳以及尿温。它测量的原理是被测量的皮肤温度等于球体的水银的温度。由于水银体温计用起来十分的简易便利、准确度高,所以它的使用是很普遍的。然而它的测温方式和部构造都趋于成熟,没有在需要改造的必要了,人们慢慢的对水银温度计的研究失去了兴趣,到了现在就更加没什么改进以及开展了。我们在使用水银温度计测温的时候还是不怎么方便,还有水银容易造成非常有害的污染,然而为了我们更加准确的测量我们的体温,激发了人们研究各种不同测温仪器和测温方法的兴趣,从而取代水银温度计,不可否认水银体温计目前依然是一个精度高、廉价、便于测量的测温仪器。当前电子体温计已然被多家医院所选用,利用别的电子测量仪器来测量我们的体温也变得越来越普遍了。这件事说明电子测温器件的性能甚至能够取代了传统的水银温度计。水银体温计里的水银污染很大,又不方便携带,还容易碎掉,所谓我们设计了电子式的温度计来解决这些个问题。它的高稳定性和较短的测量时间跟水银体温计比起来有明显的长处,并且它的精度又高,跟水银温度计的测量值相差很小。本文主要容:本文包括了体温计设计的系统设计、硬件电路、软件系统的设计以及调试和测量等几个模块,着重介绍温度传感器以及单片机电路,通过系统方案的论文来确定适宜的器件选择,然后按要求进展电路的设计,最后进展一下系统的调试。2系统设计2.1 任务要求我们设计此系统的目的是用作体温的测量,它能够很快的测量出我们人体温度,而且它具有实时性,随时随地的准确地显示当前的体温状态。和水银温度计比照一下,我们可以明显的读出当前的温度示数,很方便快捷,而且其准确度很高,所消耗的时间很短,甚至有记忆的功能,方便我们的温度比照与查看分析,同时如果温度高于或低于了我们预先设置围的换,它的蜂鸣装置会发出报警的声音。我们设计的体温计测温围应为35C42C,误差要保持在0.2C之间,如果温度查过了38的话,报警系统会发出报警提示,我们的显示是选用LCD数码显示,能及时地检测较宽围的温度,数据的显示要明显。2.2 设计思路我们这次设计的这个电子体温计,主要的控制器件为STC89C52型单片机,我们用来设计体温计的传感器是美国半导体公司DALLAS生产的DS18B20型号的温度传感器。此传感器测量幅度为35C42C,有0.2C的测量误差。在温度不正常的情况下或者所测温度不在我们预先设置的限度时,蜂鸣器会立刻报警。我们主要提到的一些研究容有熟悉电子体温计的工作原理以及它主要的部构造,研究一下国外对温度计的开展历史。DS18B20传感器控制和STC89C52单片机主控制器12是我们本文主要的研究对象。2.3 系统设计为了满足系统的三个需求:(1) 实时温度检测。2数据能够清楚的显示与读出。3温度的改变的曲线要能及时的描述出来。 下面是我们设计电子体温计系统的主要组成局部: (a).温度采集模块。 (b).显示模块。 (c).串口通信接口模块。 (d).核心系统模块。2.4 方案设计与论证方案一:这个电子体温计的设计如图1所示,在测温电路中用选用热敏电阻来感测温度的变化情况。我们把因为温度变化引起的感应电压与电流通过模数转换,用单片机对电压及电流的变化进展加工处理,之后得到的数据通过显示电路系统把它给显示出来。然而用热敏电阻测量温度需要的时间较长,不利于我们快速的得到我们需要的温度值。热敏电阻温度采集放大电路单片机内部A/D转换电路液晶显示图1以热敏电阻为根底的电子体温计系统框图方案二:红外体温计是一种非接触的方式,是种高端技术,它是近几年才开展起来的。它的红外线的感应器器能采集到人的红外辐射,经模拟和数字之间的转换之后,送到单片机里面来处理收集到的信息,显示电路就能够吧数据显示出来。然而这个方案制作本钱高,所需要的时间比拟长,最主要的是硬件电路与软件程序设计起来复杂。因此通过上述的分析,这次的设计我们采用方案三来设计电子体温计:将温度传感器作为我们的温度采集模块,通过单片机处理输出到显示器,此方案方便快捷,对外部条件的要求低,下面来介绍一下第三方案的容:2.5 系统框图下面是方案三的系统框图:主控制器串口通信5v稳压电路时钟震荡LCD显示温度传感器图2 电子体温计的系统框图3 硬件电路设计3.1 硬件原理图 所设计的原理图如下列图所示:图3 电子体温计的总原理图该原理图包括:18b20温度传感器模块,电源模块,按键电路,单片机主控电路,报警电路,显示电路几个模块,下面介绍一下其中的几个主要局部。3.2 测量单元 下列图为温度传感器测温电路图:图4 传感器DS18b20原理图DS18B20温度传感器1接线很简单,拼装以后形式多样,能在多种场所中使用,比方说管道型的,螺纹型的,磁铁吸附型的,不锈钢封装型的,型号也很多,比方说LTM8877型,LTM8874型这些都是它的子型号。主要是跟应用的场合不同改变它的外观。封装完了以后的DS18B20适用于电缆沟的测温,锅炉的测温,机房的测温,农业大棚中的测温,干净室里的测温,弹药库的测温等等各种各样的场合。并且它的抗磨损性强,体积小,便于我们的使用,有各种各样的封装的方式,能放在一些窄小的空间里面,不便于我们直接接触的空间领域。图5 DS18b20引脚图下面概括一下DS18B20的主要特性:1测量的电压围的限度可以更大,能够到达3.0V5.5V之间,既支持数据线供电方式,也支持寄生电源的方式供电方式;2DS18B20还有一些独特的功能,这些功能里面的一个是它能支持多点组网,可以把多个DS18B20并联在我们为一个的三线上,从而使得能够在多处测量温度,提高了它的准确性;3它还有着单线接口方式的特性,在和与微处理器连接的时候,我们只需要用一条接口连接线就可以完成微处理器与DS18B20的双向的通讯;4它可以在不需要其他的外部的元件就可以独立的工作,它的本身的集成型的电路已经包括了全部的感应元件以及所需要的转换电路;5测温围在55+125,在-10+85的时侯精度在0.5左右,它的固定测温误差为1;6我们用来编程的可分辨率有912位,可分辨对应的温度是0.0625、0.125、0.25和0.5,因此使得测量温度的时候提高了准确度;79位分辨率时把温度解析成数字的时候,最多只需要93.75ms,在12位分辨率的时候,我们把温度值转换成为数字时,最多只在750ms,所用的时间更短;8用串行的方式可以把所测到的温度变成准确的数字形式,CPU支持一线总线,还能传送CRC检验码,甚至还有很强的抗干扰纠错的能力; 9如果我们把电源的正负极给接反了的话,芯片不会因此而发热,也就不会被烧坏了,但是之后就不能正常的工作了,这就是它的负压的特性。DS18B20应用围:1.冷藏仓库、存储仓库、电子通讯房、电力通信机房、电缆沟槽等测温和测控领域都可以使用。2.轴缸型的物体、纺织机等狭小的空间工业型设备的测温与控制。3.汽车里的空调系统、电冰箱、冷藏盒等地方。4.测量供热与制冷管道的热量,测量中央空调分户热能,工业领域的测温与控制等等领域。DBS18B20存储器:高速暂存器RAM和可电擦除存储器RAM为DS18B20的两个储存器,可电擦除式的RAM包含温度触发器TH和TL,还有一个配置存放器。存储器有着可以确定一线端口通讯的功能,最开场存放器的命令用数字化的方式给写到存放器里,读存放器里的命令可以用来确认一下这些写进的数字。确认完了将这些数字用复制存放器里的命令输入到可电擦除的RAM当中。在修改存放器中的数时,这个过程我们在修正存放器里面的数据时可以保证这些数据的完整性。高速暂存器RAM是将八个字节的存储器所组合起来的。当读存放器的命令工作时,它能够会读出来第九个字节,这个字节是为了对钱八个字节进展一下检验6。 DS18B20选用一线通信的接口。一线通信接口务必要先把ROM的设定给完成,不然的话记忆和控制功能会失效。我们下面要讲的是几个主要的命令功能:一:读ROM,二:ROM匹配,三:搜索ROM,四:跳过ROM,五:报警检查。这些指令的发出与接收都是在没有一个器件的64位光刻ROM序列号上完成的,在一线上面能够多个元件选用某一个元件,而且,总线也知道上面的元件是哪种,有多少个。如果对DS18B20发出的指令顺利做完了的温度测量,那么数据就会被存放在DS18B20的存储器里面了。某一控制指令指示使DS18B20通过演示来测量温度。测完了的数据放在它的存里面,并发出带有记忆能力的控制指令可以随时来读取存储器里面记录的数据。我们的温度报警器TL与TH共同具有的一字节数据是EEPROM。假定我们不用DS18B20的报警指令D,那么可以将这些个存放器当做平常的带有记忆能力的工具。在片上另有让字节怎么用更好的方法完成温度与数字的转换这么一个功能。我们用一个带有记忆功能的指令来编TH和TL的指令以及选配它的字节。经过缓存器读存放器,我们都是最先从最低位读写所有的数据5。DS18B20重要的数据局部具有四个:1我们在生产之前事先刻好光刻ROM中的64位序列号,这个序列号被当成DS18B20的地址代码。它的光刻ROM布列为:这个产品的类型标识是最先的那8位,后面的48位是这个DS18B20本体的序列号,循环冗余校验码是最后的那8位。这个光刻的ROM的目的是为了使DS18B20各不一样,防止重复的干扰,因此可以让多个DS18B20并联在同一个总线上面了。2DS18B20里面的温度传感器可以用来实现温度的测量,例如12位的转换是将16位符号转成二进制补码采用读数的方法完成,用0.0625/LSB的方式显示,其中的S是符号位。DS18b20工作原理:斜累加器低温系数振荡器减到0减法计数器2高温系数振荡器减法计数器预置减到0温度存放器预置技术比拟器增加停顿图6 DS18b20测温原理图DS18B20的工作原理跟DS1820差不多,只是根据分辨率不一样,得到的温度数据的位数不一样,并且它的温度转换需要的延时的时间从2s降到了750ms。DS18B20测温原理如上图4所示2。温度几乎对上图中的低温度系数晶振振荡频率没有什么影响,所以我们吧它产生的频率当做常态,我们把它发出的固有频率的脉冲信号传送到计数器1中。然而温度对高温度系数的振荡频率的影响很大,它发出的频率脉冲传给计数器2。我们将计数器1以及温度存放器先设置在了-55对应的一个值。计数器1用减法计数的方式对低温系数晶振的脉冲进展计算,如果计数器1预置值减到了0的时候,温度存放器值的结果加1,之后重置计数器1中的值,重新计数低温度系数晶振的脉冲信号,就这样一直的循环下去,直到计数器2的值减到了0的时候,温度存放器值的累加就此截止,此时我们得到的温度测量值即使我们通过累加得到的温度存放器里面的值了。上图的斜率累加器是用作改正我们在测温进程时的非线性问题,它用作修改计数器1中的预置值。DBS18B20应用4考前须知:即使它有着简易的测温系统、比拟高的测温准确度、很方便的连接方式、口线的占用少等长处3,然而我们在现实情况的使用中也应当要注意以下几个问题:1、较弱的硬件条件需要复杂的系统来进展弥补,因为DS1820和微处理器间采取的是串行数据传送,所以,当对DS1820进展读写编程的时候,程序的读写时序要严格按照要求,不然读不出我们的测量结果。当我们使用一些高级语言来对系统程序进展设计的时候,最好的方式是用汇编语言来编写DS18B20的程序。2、我们的很多资料都没说明总线可以放置多少个DS18B20传感器,很容易让人产生可以挂任意个18b20的错误认知,其实在实际应用中并不是这样的。要是我们挂的传感器超过了八个的话,微处理器总线的驱动就会产生问题,所得到的数据就会不准确,我们要多注意这些问题在我们进展用多点方式测量温度的时候。3、用来连接DS1820传感器的总线是有长度的限定的。在测试的时候,当用普通的信号线传输超过了50m的话,测温的数据会发生错误。如果把总线的电缆换了成双绞线带屏蔽电缆的话,正确的通信的距离能够到达150m之远,假设选用每米绞合次数更多的双绞线带屏蔽电缆的时候,正确的通信距离还能再加长。这是因为总线里电容的布列会让信号波形发生改变。所以,我们使用DS1820传感器来进展远距离测温系统的设计的时候,应该要密切的注意总线的电容的布列和匹配的阻抗的问题。4、当进展对DS1820的测温程序设计时,每次对DS1820发出温度转换指令,程序总会要等待它信号的返回,如果其中的一个DS1820发生的接触和断线的问题,在程序读到DS1820时,就会没有返回信号了,从而程序一直死循环下去。我们在设计程序和电路连接的时候一定要多多注意一下。测温用的电线我们提议采取屏蔽式的4芯双绞线,其中的一对线接地线和信号线,另一对接地线和电源处,接地用屏蔽层。3.3 主控单元下列图为单片机STC89c52电路图:图7 STC89c52电路图 STC89C52是INTEL公司生产的7,它是由ATMEL公司用CMOS工艺技术制造而成的具有高性能的8位单片机,属于标准MCS-51系列的高端产品。它不仅拥有CMOS的高速和高密度技术,更有着CMOS功耗低的特点,它的根底是在MCS-51单片机体系构造和指令系统上建立的,是89c51单片机的一个加强版,它有着时钟的输出和向上或者向下的计数器等89c51所不具备的特点。STC89C52单片机部构造为:八位的中央处理器、512字节的存储器RAM、8k的片存储器,16对双向型的输入、输端口,3个16位定时计数器以及5个两级的中断,一个信号双向传输端口,一个部的时钟振荡电路。不仅如此,89C52在低功耗的形式下面持续工作,可以选择空闲或者掉电模式通过两种软件的程序命令。中选择空闲模式时CPU停顿工作,但是RAM定时器、串行口和中断系统那么继续工作。中选择电的模式时,RAM数据被储存,时钟振荡关闭,芯片的其它功能无法使用8。 STC89C52属于CMOS微小型控制器件,它不仅性能很高,而且功耗又低,还有着可编程的Flash存储器,数据容量为8K。因为STC89c52可以直接在板子上面烧写程序,还有高机灵的cpu,因此可以在单个的芯片中可以放入多个控制器来管理控制我们的系统。下面是STC89c52的几个根本功能:512字节的RAM,8k字节的Flash,32位的I/O口线,看门狗定时器,MAX810复位电路,置4KBEEPROM,三个16位的计数器/定时器,单个6向量2级中断构造,双向传输端口,三个16位计数定时器。除了这个之外,静态逻辑操作是STC89X52下减到0Hz,支持两种软件。最高的工作频率35Mhz,6T/12T可以选择10。图8 单片机STC89c52引脚图STC89c52的主要参数:1.属于8051单片机的增强型,可以随意的选用6时钟/机器周期和12时钟/机器周期,指令代码与8051单片机兼容2.工作电压:5v的单片机是5.5V3.3V,3v的单片机是3.8V2.0V3.工作频率:040MHz,显示情况下的工作频率可以到达48MHz4.用户应用程序空间为8K字节5.片上集成了512字节的RAM6.32个I/O端口,复位之后是P0,P1,P2,P3,P4.,位准双向口、弱上拉,漏极开路输出口为P0,假设当做总线扩展时,不需要增用拉电阻,不过在用作I/O端口时,必须增加拉电阻。7.具有在系统可编程和在应用可编程功能,无需专用编辑器,无需专用仿真器,程序能在串口直接下载,几秒钟就可以做完一片了8.具备EEPROM功能9.有3个16位的定时计数器。那就是T0、T1、T2定时器10.有4个电路是外部的中断,当在下降沿中断或低电平时会触发电路,PowerDown模式下能够通过外部中断低电平,触发中断电路的方式唤醒11.通用的异步串行口,还能用定时器程序实现多个异步串行口12.正常工作温度:工业级别下-40+85,商业级别下07513.PDIP封装3.4 显示单元LCD1602显示电路图如下列图所示:图9 LCD1602电路图在1602型液晶上面,数字、字母以及符号等的以点阵方式液晶模块可以再它上面显示,能够显示一个字符,它的实现是通过每个点阵字符位来的,并且它是由许多5X7或5X11等的点阵字符位组成的。在每一位的中间都会有一个点距的间隔,在每一行的中间也会有间隔,它可以看成是字符间距与行间距。1602LCD的意思是指显示容能显示出每行16个字符的液晶模块,可以显示两行。LCD1602液晶显示它的容很丰富、体积又小、而且功耗又低、超薄又轻便,经常使用在微型仪表和低功耗应用系统当中11。图10 LCD1602引脚图1602LCD的根本参数及引脚功能14: 1602LCD有两种:带背光式和不带背光式。HD44780作为大局部的根底型的控制器,背光式1602LCD比不带背光式的厚,其实带不带背光在实际的应用中没有差异,下列图11为两者的差异:图11 1602LCD尺寸图1602LCD的主要技术参数:芯片的显示容量:162个字符芯片的工作电压:4.55.5V芯片的工作电流:2.0mA模块最正确工作电压:5.0V1602LCD字符的尺寸:2.954.35(WH)mm引脚功能说明:1602LCD选用的是14脚的无背光式或16脚的带背光式的接口,它们各个的引脚的介绍如下表1所示: 表1:引脚接口说明表编号符号引脚编号符号引脚1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚:VSS接地电源。第2脚:VDD接5V正极电源。第3脚:VL为LCD显示器用来调整比照度的端口,当接上正电源时它的比照度呈现最弱状态,当接上地的时候它的比照度到达最高状态,一旦比照度过高的话,显示错误。第4脚:RS是存放器的选择端口,当处于高电平时它会自动选择数据存放器,当处于低电平时它会自动选择指令存放器。第5脚:R/W是读写选择端口,高电平进展读操作,低电平进展写操作。当RS和R/W共同为低电平时我们可以执行编写指令或着显示地址代码的操作。当RS为低电平,R/W为高电平时可以读取忙信号,当RS为高电平R/W为低电平时我们可以写进数据。第6脚:E端为使能端口,当在此端口的高电平跳变成低电平时,随即执行液晶的模块命令。第714脚:D0D7是8位的双向型数据线。第15脚:正极背光源。第16脚:负极背光源。1602LCD的指令说明及时序1602液晶模块全部有11条部控制器的控制指令,如下表2所示:表2:控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存储器地址0001字符发生存储器地址8置数据存储器地址001显示数据存储器地址9读忙信号或地址01BF计数器地址10写数据到CGRAM或DDRAM10要写的数据信息11从CGRAM或DDRAM读数11读出的数据信息1602液晶模块的程序编写操作是通过读写操作、屏幕和光标来实现的。指令1:清理显现容,执行代码指令01H,光标复位至00H地址位置。指令2:光标复位,返回到地址00H。指令3:设置 I/D通过光标和显示模式:光标用来对方向的改变,右移高电平,左移低电平 S:屏幕上的全部字符是否向左向右移动。高电平表示有用,低电平表示没有用。指令4:显示开关控制。 D:用来控制显示的开关,高电平说明显示翻开,低电平说明显示关闭 C:光标的启动,高电平说明有光标,低电平说明无光标 B:光标的闪烁的控制,高电平时光标闪动,低电平时光标不闪动。指令5:光标或显示的移位 S/C:在高电平时显示的容位置改变,在低电平时那么是光标的位置改变。指令6:功能的设置命令 DL:高电平时是4位的总线,低电平时是8位的总线 N:在低电平时是单行显示,在高电平时是双行显示 F: 在低电平时显示出5x7的点阵字符,在高电平时显示出5x10的点阵字符。指令7:设置字符发生器RAM的地址。指令8:设置DDRAM的地址。指令9:忙信号以及光标地址的读出 BF:是忙标志位,高电平时说明忙状态,模块在这个时候接收不到命令或者数据,低电平时说明不忙状态。指令10:写数据。指令11:读数据。和HD44780兼容的芯片的时序如下表所示:表3:根本操作时序表读状态输入RS=L,R/W=H,E=H输出D0D7=状态字写指令输入RS=L,R/W=L,D0D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0D7=数据写数据输入RS=H,R/W=L,D0D7=数据,E=高脉冲输出无读写操作时序如图7和8所示:图12 读操作时序图13 写操作时序1602LCD的RAM地址映射及标准字库表 液晶显示是慢性的显示元件,所以在每一个指令的执行前必须要确认低电平为此模块的忙标识,用它来说明其处于不忙状态,不然的话这个指令无效。在显示字符的时候需要事先输入此显示字符地址,说明它的地址位置,如下列图14所示是1602的部的显示地址。图14 LCD1602部显示地址 例如第二行第一个字符的地址是40H,我们想问能不能写入40H就能把光标定于第二行第一个字符的位置?其实这样不可以,由于我们写进显示地址的时候的要最高位D7高电平是恒定的因此数据实际写入是01000000B40H+10000000B(80H)=11000000B(C0H)。 显示模块要事先设置好对对液晶模块的初始化,当在液晶模块显示字符的时候,光标自己右移,不需要人工的操作。我们每次在指令的输入前,我们都要观察液晶模块是不是处在忙状态下。1602液晶模块的字符发生存储器已储存160个不同的点阵字符图形,这些字符包括我们经常使用到的的符号、阿拉伯数字、大小写的英文字母等等,每一个字符对应一个唯一的代码,比方说大写的英文字母A的代码为01000001B41H,在它显示的时候,显示模块将显示出地址41H里的点阵字符图形,这样我们可以够清楚地看见A这个字母了。1602LCD的一般初始化复位过程:延时15mS写指令38H不检测忙信号延时5mS写指令38H不检测忙信号延时5mS写指令38H不检测忙信号之后的每次写指令、读/写数据操作均时都要检测忙信号写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设置写指令0CH:显示开及光标设置3.5 报警单元图15 蜂鸣器报警电路这个是蜂鸣报警电路,这个电路主要是用来设置报警时的温度,由蜂鸣器、发光二极管组成3.6 PCB电路板的制作当我们在做PCB版的时候,出于设计要求,还有本钱的考虑,我们选用的是热转印法来做PCB板的,下面是详细的制作步骤。第一步:电路设计。首先在Multisim11.0软件中画出各模块的原理图,然后对电路实行仿真测试,最后对该原理图进展电气规那么检查.第二步:在Protellse99软件,画出电子体温计电路图,并且生成相应的网络表和元件清单,之后利用网络表生成PCB图。第三步:设计布线规那么。在这个步骤中主要设置一下线宽、线距以及焊盘的详细参数,使所画出的PCB板能符合现实元器件封装的大小。 第四步:交付生产,生产出按我们所设计的电路图要求的产品。 第五步:焊接,PCB制作完成。图16 PCB版原理图4 软件设计4.1 主程序设计主程序的功能是将温度可以随时的显示出来,读出和处理DS18B20此时的温度测量值,对温度1秒测一次。然后读出并处理一下DS18B20当前的温度值,把它和设定的报警温度比照一下,它的程序流程见如图17所示。 存进存储里的整数局部和小数局部用调用读温度子程序的方式分开,把它们分别放在两个不同的单元里面,然后用调用的方式显示出它的子程序。初始化调用显示子程序1s到?初次上电读出温度值温度计算处理显示数据刷新发温度转换开场命令图17 DS18B20温度流程图4.2 程序初始化流程图先对DS18B20进展初始化,流程图如下:发复位命令发跳过ROM命令初始化成功完毕图18 初始化程序流程图4.3 读温度子程序流程图读温度子程序主要用来把DS18B20里面的温度的数据读出来,然后存储到温度存放器里面。其程序流程图如下:发复位命令发跳过ROM命令发读取温度命令移入温度暂存器完毕图19 温度子程序流程图5 系统调试与测量5.1 实物制作图20 实物制作图此图为我们做好的实物图以及他的焊接方式,包括液晶显示器,蜂鸣器,电源开关,温度传感器,发光二极管,还有可调温度限的按键器5.2系统调试电子体温计系统硬件调试一般分为以下几个步骤13。第一步:检查一下各种外部的元器件,查看元器件是不是完好的,没有损坏的,并仔细检测电路板中的电路之间有没有断点处,有没有漏焊、虚焊的这些情况。第二步:用仪器仪表对其进展检测,我们这主要是用万用表来对它检测,先用万用表复查一下还有没有疑问的连接点、拐点等等,再一次检测一下各个地线和电源线之间的连接处有没有断路或者短路的问题。第三步:通电检测。将电路PCB板通上电,检测一下所有器件的电源的值是否符合要求,以及检测整个电路的功能能不能正常运行。第四部:在温度计通电状态下,仔细的查看电子体温计能不能正常测出温度,看看显示屏能不能正确无误的显示出数据。图21通电状态实物图5.3误差分析我们将水银体温计以及电子体温计分别测量了人体的温度,不过存在些许的误差,经过我们的仔细分析,总结了一下的几个原因:1我们在设计电路的时候有些许的误差。因为我们制做的电路板的误差和做工的精细度有关,这个会造成一定的差异。2在设计软件的时候有误差。我们在写程序的时候,数据会有一些延时,会出现一些误差15。6 设计总结这次的电子体温计的设计终于圆满完成,在本次设计中,我学习到了许多知识,让我对设计产生的浓厚的兴趣以及对于每一个设计师的敬意,确实设计一个产品是挺难的,我从开场的一些初始的设计思路到论文的编写都是查阅了大量的资料,不过我在查阅设计的过程当中,开拓了自己的视野,还学习到了做任何事情都要预先想一想,不然就会一步错步步错,有一个好的规划对于完成一个实验或是解决一个问题是那么的重要。在这次毕业论文设计中,我感觉到我的动手能力有了较大的提升,在设计实验方面,要事先有一个良好的思路。 这次毕业设计过程中,我遇到过很多的困难,比方电路图的设计花了好长时间,起先不知如何下手,脑中一片空白,查阅了大量资料,电路图设计了一边又一边,但是我没有灰心,依然坚持了下来,看到了自己努力的成果,有种满足感。我觉得毕业论文像是对4年大学历程的一个缩影,把自己学到的知识全都集中在一片论文当中,里面集中表达出了我所学到的专业知识,非常的实用,对今后的工作之路有了一个良好的借鉴作用。这次的论文撰写经历不仅仅懂得了我一些不懂的知识,还教会了我怎么和别人沟通,遇到问题不耻下午,做事要耐心,不能急躁,不然你的大脑思维就会被限制,发挥不出你应该有的水平。论文的写作过程就像登上一样,每一步都很重要,需要你努力与坚持,当你完成的时候,会发现天是那么的蓝,是那么的耀眼。在写这篇论文的开场我真的是一头雾水不知该从何处下笔,没有丝毫的头绪,还好身边有许多热心的同学以及很多和蔼的教师们,他们无私的帮助了我,解开了我很多的疑惑,在此我要特别感我的导师在红教师和许多专业教师,从初稿到定稿,你们给予了我莫大的帮助,没有你们我真的没有信心写好这篇论文。完成这篇论文的时候我的大学生涯已经接近了尾声,陪伴着我的教师和同学们,!参考文献1高晓蓉.传感器技术M.西南交通大学,20032黄继昌.传感器工作原理及应用实例M.人民邮电,19983杰.传感器与检测技术M.高等教育,20024金发庆.传感器技术与应用第二版M.:机械工业,20065沙占友,马洪涛,安国臣,孟志永.新型智能温度传感器的与原理及应用,电子测量与仪器学报第16卷增刊.2002.10:144-1466沙占友.智能化温度测试系统的优化设计.电子测量与仪器学报第16卷增刊.2002.10:125-1277高桔祥.数字电子技术M.电子工业,20038任元,吴勇.数字电子技术M.:机械工业,20059康华光.电子技术根底模拟局部M.高等教育,198810卜益民.模拟电子技术M.:邮电大学,200511王港元.电工电子实践指导M.:科学技术,200512自美.电子线路设计M.:华中科技大学,200013金毅.温度的测量史M.教学仪器与实验,2011年27卷8期14王元庆,董戴,洪光烈.液晶显示屏温度特性的试验研究M.电子测量与仪器学报2004(4) :36-38 15 沙占友,马洪涛,安国臣,孟志永.新型智能温度传感器与原理及应用,电子测量与仪器学报第16卷增刊.2002.10:144-146致历史两个多月终于将这篇论文写完,在写论文的时候确实是遇到了不少的障碍,而且害怕自己能力缺乏不能及时完成论文,不过教师和同学给予我的帮助与支持解决了一个又一个的困难,帮助我开拓研究思路,为我指点迷津。在此我特别感在红教师给予的指导与帮助,在我需要帮助的时候把珍贵的时间用来帮我查看指导论文。在查阅资料的时候,很多热心的同学都热情的愿意帮助我,感你们。同时感一些学者们的研究文献,帮助我论文的撰写缩短了不少时间。在论文完成的时候,我心情久久不能平静,在此期间你们给了我多少无言的帮助,是我顺利的写完这篇论文,在此请接收我最诚挚的意。不过由于我的学术水平有限,所写的论文不免有一些缺乏,真心恳请你们继续指导与修正!附录:#include #include lcd1602.h#include eepom52.h#define uchar unsigned char #define uint unsigned intsbit dq = P23;/18b20 IO口的定义sbit beep = P24; /蜂鸣器IO口定义uchar a_a;uint temperature ; /bit flag_300ms ;uchar key_can; /按键值的变量uchar menu_1; /菜单设计的变量uint t_high = 300,t_low = 100;bit flag_lj_en; /按键连加使能bit flag_lj_3_en; /按键连3次连加后使能 加的数就越大了 uchar key_time,flag_value; /用做连加的中间变量bit key_500ms ;uchar flag_clock;/温度报警变量uchar zd_break_en,zd_break_value; /自动退出设置界面uchar menu_shudu = 20; /用来控制连加的速度/*1ms延时函数*/void delay_1ms(uint q)uint i,j;for(i=0;iq;i+)for(j=0;j110;j+);/*把数据保存到单片机部eepom中*/void write_eepom()SectorErase(0x2000);byte_write(0x2000, t_high % 256);byte_write(0x2001, t_high / 256);byte_write(0x2002, t_low % 256);byte_write(0x2003, t_low / 256);byte_write(0x2055, a_a);/*把数据从单片机部eepom中读出来*/void read_eepom()t_high = byte_read(0x2001);t_high = 8;t_high |= byte_read(0x2000);t_low = byte_read(0x2003);t_low = 8;t_low |= byte_read(0x2002);a_a = byte_read(0x2055);/*18b20初始化函数*/void init_18b20()bit q;dq = 1;/把总线拿高delay_uint(1); /15usdq = 0;/给复位脉冲delay_uint(80);/750usdq = 1;/把总线拿高 等待delay_uint(10);/110usq = dq;/读取18b20初始化信号delay_uint(20);/200usdq = 1;/把总线拿高 释放总线/*写18b20的数据*/void write_18b20(uchar dat)uchar i;for(i=0;i= 1;/*读取18b20的数据*/uchar read_18b20()uchar i,value;for(i=0;i= 1; /读数据是低位开场dq = 1; /释放总线if(dq = 1) /开场读写数据 value |= 0x80;delay_uint(5); /60us读一个时间隙最少要保持60us的时间return value; /返回数据/*读取温度的值 读出来的是小数*/uint read_temp()uint value;uchar low; /在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否那么会影响到18b20的时序init_18b20(); /初始化18b20write_18b20(0xcc); /跳过64位ROMwrite_18b20(0x44); /启动一次温度转换命令delay_uint(50); /500usinit_18b20(); /初始化18b20EA = 0;write_18b20(0xcc); /跳过64位ROMwrite_18b20(0xbe); /发出读取暂存器命令EA = 1;low = read_18b20(); /读温度低字节value = read_18b20(); /读温度高字节value = 10)write_eepom();key_value = 0;key_new = 1;flag_lj_en = 0;/关闭连加使能flag_lj_3_en = 0;/关闭3秒后使能flag_value = 0;/清零else if(P2 & 0x0f) != 0x0f)key_value +; /按键按下的时候else key_value = 0;if(key_value = 7)key_value = 0;key_new = 0;flag_lj_en = 1; /连加使能zd_break_en = 1; /自动退出设置界使能zd_break_value = 0; /自动退出设置界变量清零key_time = 0;ke
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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