




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕业论文(设计)题目实用型温度监测提示仪系部专业班级学生姓名指导教师职称2012年12月目录目录I摘要nAbstract田第一章绪论11.1 课题背景11.2 本课题研究意义21.3 本课题任务2第二章硬件设计22.1 STC89C52单片机简介22.2 DS18B20介绍52.3 系统电路设计122.4 显示电路设计13第三章软件设计143.1 软件开发工具的选择143.2 系统软件设计的一般原则153.3 系统软件设计的一般步骤153.4 测温软件实现15第四章误差分析214.1 误差产生214.2 降低误差方法21第五章调试与小结22致谢23参考文献24附录25I摘要随着社会的进步和工业
2、技术的发展,人们越来越重视温度因素,许多领域对温度范围要求严格,工业生产、农业畜牧、食品存储、医疗保健等各领域对于温度的掌控是非常苛刻的,可能因一点点的温度差异从而产生无法弥补的过失,所以温度的测控是必不可少的。本课题以AT89C52单片机系统为核心,通过DS18B20寸室内温度进行实时监测,并通过LCD1602M示温度数值。DS18B2Q1一种单线数字温度传感器,可以程序设定912位的分辨率,精确度0.5C。分辨率设定,及用户设定的报警温度存储在EEPROM,掉电后依然保存。本文结合实际使用经验,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并给出了软件流程图。关键词:D
3、S18B20单片机LCD1602AbstractAlongwiththeprogressofthesocietyandindustrialtechnologydevelopment,peoplepaymoreandmoreattentiontotemperaturefactor,manyareasofstricttemperaturerange,industrialproduction,agricultureanimalhusbandry,foodstorage,healthcare,andotherfieldsfortemperaturecontrolisverystrict,maybeal
4、ittletemperaturedifferenceresultinginirreparablemistake,sothetemperaturemeasurementandcontrolisnecessary.ThistopicwithAT89C52single-chipmicrocomputersystemasthecore,throughtheDS18B20toindoortemperaturereal-timemonitoring,andthroughtheLCD1602displaytemperaturevalue.DS18B20isasingledigitaltemperatures
5、ensor,cantheprogramsets912resolution,accuracy+/-0.5C.ResolutionSettings,anduserssetalarmtemperaturestoredinEEPROM,powerdownandstillsave.Combiningwiththeactualuseexperience,thispaperintroducesthedigitaltemperaturesensorDS18B20inunderthesinglechipmicrocomputerhardwareconnectionandsoftwareprogramming,a
6、ndgivesthesoftwareflowchart.Keywords:DS18B20MCULCD1602iii辽宁工程职业学院毕业论文(设计)第一章绪论1.1 课题背景在人类的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。自18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%勺工业部门都不得不考虑着温度的因素。温度对于工业如此重要,由此推进了温度传感器的发展。传感器主要大体经过了三个发展阶段:模拟集成温度传感器。该传感器是采用硅半导体集成工艺制成,因此亦称硅传感器或单
7、片集成温度传感器。此种传感器具有功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温、控温,不需要进行非线性校准,外围电路简单。它是目前在国内外应用最为普遍的一种集成传感器,典型产品有AD590AD592TMP17LM135等;模拟集成温度控制器。模拟集成温度控制器主要包括温控开关、可编程温度控制器,典型产品有LM56AD22105和MAX6509某些增强型集成温度控制器(例如TC652/653)中还包含了A/D转换器以及固化好的程序,这与智能温度传感器有某些相似之处。但它自成系统,工作时并不受微处理器的控制,这是二者的主要区别;智能温度传感器。
8、能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的。它是微电子技术、计算机技术和自动测试技术(ATE)的结晶。智能温度传感器内部都包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM和只读存储器(ROM)智能温度传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU);并且它是在硬件的基础上通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。温度传感器的发展趋势。进入21世纪后,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器
9、、研制单片测温系统等高科技的方向迅速发展。传感器在温度测控系统中的应用。目前市场主要存在单点和多点两种温度测量仪表。对于单点温测仪表,主要采用传统的模拟集成温度传感器,其中又以热电阻、热电偶等传感器的测量精度高,测量范围大,而得到了普遍的应用。此种产品测温范围大都在-200C800c之间,分辨率12位,最小分辨温度在0.0010.01之间。自带LED显示模块,显示4位到16位不等。有的仪表还具有存储功能,可存储几百到几千组数据。该类仪表可很好的满足单个用户单点测量的需要。多点温度测量仪表,相对与单点的测量精度有一定的差距,虽然实现了多路温度的测控,但价格昂贵针对目前市场的现状,本课题提出了一种
10、可满足要求、可扩展的并且性价比高的单片机测温系统。1.2 本课题研究意义随着科学技术的不断进步与发展,温度控制在工业控制、电子测温计、医疗仪器、家用电器等各种温度控制系统中广泛应用,且由过去的单点测量向多测量发展。目前温度传感器有模拟和数字两类传感器,为了克服模拟传感器与微处理器接口时需要信号调理电路和D专换器的弊端,大多数多点测温控制系统采用数字传感器,并大大方便了系统的设计。比较有代表性的数字温度传感器有DS18B20MAX6575DS1722MAX6635SMT160-30。在传统的温度测量系统设计中,往往采用模拟技术进行设计,这样就不可避免地遇到诸如引线误差补偿、多点测量中的切换误差和
11、信号调理电路的误差等问题;而其中某一环节处理不当,就可能造成整个系统性能的下降。随着现代科学技术的飞速发展,特别是大规模集成电路设计技术的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向。美国Dallas半导体公司推出的数字温度传感器DS18B20具有独特的单总线接口,仅需要占用一个通用I/O端口即可完成与微处理器的通信;在-10+85C温度范围内具有0.5c精度;用户可编程设定912位的分辨率。以上特性使得DS18B20上常适用于构建高精度、温度测量系统。1.3 本课题任务本课题的任务是实现对温度进行测量并进行准确显示及报警提示。整个系统由单片机控制,要能够接收DS18B2W度传感
12、器的数据并通过LCD1602a行实时显示,同时会以进度条的方式表示温度的高低,从20到40c区间每增加2c出现一个进度条,低于20c无进度条,高于40c出现10个进度条,并且当温度低于20c时,蜂鸣器不响;当温度在20到28c之间时,蜂鸣器以200M驹次间隔3s时间持续鸣叫;当温度在28.1到35c之间时,蜂鸣器以200M驹次间隔2s时间持续鸣叫;当温度在35.1到40c之间时,蜂鸣器以200M的次间隔1S时间持续鸣叫;而当温度高于40C时,蜂鸣器以200MS次间隔0.5S时间持续鸣叫。第二章硬件设计2.1 STC89C52单片机简介STC89C521一种带8K字节闪烁可编程可榛除只读存储器(
13、FPEROM-Flash1辽宁工程职业学院毕业论文(设计)ProgramableandErasableReadOnlyMemory)的低电压,高性能COMOS8微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51旨令集和输出管脚相兼容。2.1.1 时钟电路STC89C5四部有一个用于构成振荡器的高增益反相放大器,引脚RXDffiTX吩别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图2.1(a)所示,在RXDF口TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回
14、路。晶体振荡频率可以在1.212MHz间选择,电容值在530pF之间选择,电容值的大小可对频率起微调的作用。外部方式的时钟电路如图2.1(b)所示,RXDS地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz勺方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。(a)内部方式时钟电路图2.1(b)外部方式时钟电路 时钟电路2.1.2 复位及复位电路(1)复位操作复位是单片机的初始化操作。其主要功能是把PC初始化为0000H使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使
15、系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。除PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表一所示。寄存器复位状态寄存器复位状态PC0000HTCON00HACC00HTL000HPSW00HTH000H表一寄存器的复位状态SP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00H(2)复位信号及其产生RST引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。若使用颇率为6MHz勺晶振,则复位信号持续时间应超过4us才能完成复位操作。产生复位信号的电路逻辑如图2.2所示:RSTZVro9图2.2复
16、位信号的电路逻辑图整个复位电路包括芯片内、外两部分。外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。复位操作有上电自动复位相按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的,具电路如图2.3(a)所示。这佯,只要电源Vcc的上升时间不超过1ms就可以实现自动上电复位,即接通电源就成了系统的复位初始化。按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的,具电路如图2.3(b)所示;而按键脉冲复位则是利用RCa分电路
17、产生的正脉冲来实现的,具电路如图2.3(c)所示:(a)上电复位(c)按键脉冲复位(b)按键电平复位 图2.3复位电路晶振,能保证复位信号高电平持续上述电路图中的电阻、电容参数适用于6MHz时间大于2个机器周期。STC89C5定体介绍如下:主电源引脚(2根)VCC(Pin40):电源输入,接+5V电源GND(Pin20):接地线外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(
18、Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。P0口(Pin39Pin32):8位双向I/O口线,名称为P0.0P0.7P1口(Pin1Pin8):8位准双向I/O口线,名称为P1.0P1.7P2口(Pin21Pin28):8位准双向I/O口线,名称为P2.0P2.7P3口(Pin10Pin17):8位准双向I/O口线,名称为P3.0P3.
19、7STC89C52主要功能如表二所示。表二STC89C52主要功能主要功能特性兼容MCS51旨令系统8K可反复擦写FlashROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UAR伸行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能2.2DS18B20介绍DS18B2妙美国DSLLAS导体公司推出的第一篇支持“一线总线”接口的温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成用型数字信号供处理器处理。2.2.1DS18B20温度传
20、感器特性(1)适应电压范围宽,电压范围在3.05.5V,在寄生电源方式下可有数据线供电。(2)独特的单线接口方式,它与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20勺双向通信。(3)支持多点组网功能,多个DS18B2M以并联在唯一的三线上,实现组网多点测温。(4)在使用中不需要任何外围元件,全部传感器元件及转换电路集成在形如一只三极管的集成电路内。(5)测温范围-55C-+125C,在-10C+85C时精度为0.5C。(6)可编程分辨率为912位,对应的可分辨率温度分别为0.5C,0.25C,0.125C和0.0625C,可实现高精度测温。(7)在9位分辨率时,最多在93.78m
21、s内把温度转换为数字;12位分辨率时,最多在750ms内把温度转换为数字,显示速度快。(8)测量结果直接输出数字温度信号,以“一线总线”串行送给CPU同时可传送CRCJ验码,具有极强的抗干扰纠错能力。(9)负压特性。电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。2.2.2 应用范围(1)冷冻库、粮仓、储罐、电信机房、电力机房、电缆线槽等测温和控制领域。(2)轴瓦、缸体、纺织、空调等狭小空间工业设备测温和控制。(3)汽车空调、冰箱、冷柜以及中低纬度干燥箱等。(4)供热、制冷管道热量计量、中央空调分户热能计量等。2.2.3 引脚介绍DS18B2以物如图2.4所示图2.4实物图DS18B20
22、t两种封装:三角TO-92直插式(用的最多、最普遍的封装)和八角SOIC贴片式,封装引脚见图2.5。表三列出了DS18B20勺引脚定义。DS 13B2O123GNDI/OTJDD(b)DS18B20八角 SOIC(a)DS18B20To-92图2.5DS18B20弓|脚封装图表三DS18B20引脚定义引脚定义GND电源负极DQ信号输入输出VDD电源正极NC空2.2.4 硬件连接(1) DS18B2寄生电源供电方式如下面图2.6(a)所示,在寄生电源供电方式下,DS18B2映单线信号线上汲取能量:在信号线DQt于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高
23、电平到来再给寄生电源(电容)充电。独特的寄生电源方式有三个好处:进行远距离测温时,无需本地电源 可以在没有常规电源的条件下读取ROM 电路更加简洁,仅用一根I/O口实现测温要想使DS18B2进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由于每个DS18B2施温度转换期间工作电流达到1mA当几个温度传感器挂在同一根I/O线上进行多点测温时,只靠4.7K上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大。因此,该电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中。并且工作电源VCC、须保证在5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温
24、度误差变大。(2) DS18B2寄生电源强上拉供电万式改进的寄生电源供电方式如下面图2.6(b)所示,为了使DS18B20ft动态转换周期中获得足够的电流供应,当进行温度转换或拷贝到E2存储器操作时,用MOSFET把I/O线直接拉到VCCM可提供足够的电流,在发出任何涉及到拷贝到E2存储器或启动温度转换的指令后,必须在最多10pS内把I/O线转换到强上拉状态。在强上拉方式下可以解决电流供应不足的问题,因此也适合于多点测温应用,缺点就是要多占用一根I/O口线进行强上拉切换。(3) DS18B20勺外部电源供电方式如下面图2.6(c)所示,在外部电源供电方式下,DS18B2CT作电源由VDDH脚接
25、入,其VD端用35.5V电源供电,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论可以挂接任意多个DS18B2游感器,组成多点测温系统。注意:在外部供电的方式下,DS18B2的GNDI脚不能悬空,否则不能转换温度,读取的温度总是85Co期K.0DS18B20GNDDQ DDDSI8B20(a)外部电源供电方式(c)pP10寄生电源供电方式1)S I XB2(c(zcc(b)寄生电源强上拉供电方式图 工作原理硬件电路连接好以后,单片机需要怎么样工作才能将DS18B2中的温度数据读取出来呢?下面将给出详细分析。首先我们来看控制DS18B2的指令
26、:(1) 33Ht卖ROMi卖DS18B20S度传感器ROM勺编码(即64位地址)。(2) 55H匹配ROM发出此命令之后,接着发出64位RO端码,访问单总线上与该编码相对应的DS18B2乘使之作出响应,为下一步对该DS18B20勺读/写做准备。(3)F0H一搜索ROM用于确定挂接在同一总线上DS18B20勺个数,识别64位ROM地址,为操作个器件做好准备。(4)CCH-跳过ROM忽略64为ROMft址,直接向18B20发温度转换命令,适用于一个从机工作。(5)ECH一告警搜索命令。执行后只有温度超过设定值上限或下限的芯片才做出响应。以上这些指令设计的存储器是64位光刻ROM表四列出了它的含义
27、。表四64位光刻ROM&位定义S位产品系列号4娥产品序号飞位CRCS码64位光刻ROW的序列号是出厂前被光亥【J好的,它可以看做该DS18B20勺地址序列码。其各位排列顺序是:开始8位为产品类型标号,接下来48位是该DS18B20自身的序列号,最后8位是前面56位的CRC1环冗余校验码(CR=X8+X5+X4+1。光刻ROM勺作用是使每一个DS18B20rB各不相同,这样就可以实现一条总线上挂接多个DS18B20勺目的。下面介绍以上几条指令的用法。当主机需要对众多在线DS18B2(fr的某一个进行操作时,首先应将主机逐个与DS18B20S接,读出其序列号;然后再将所有的DS18B20挂接到总线
28、上,单片机发出匹配ROM0T令(55H),紧接着主机提供的64位序列(包括DS18B20勺48位序列号)之后的操作就是针对该DS18B20勺。如果主机只对一个DS18B20S行操作,就不需要读取ROMS码以及匹配RO端码了,只要用跳过ROM(CCH命令,就可以进行如下温度转换和读取操作。44H-温度转换。启动DS18B20s行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节的RAMKBEH-读暂存器。读内部RAW9字节的温度数据。4EH-写暂存器。发出向内部RAM勺2、3字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。48H-复制暂存器。将RA
29、W第2,3字节的内容复制到E2ROMKB8H-重调E2ROW内容回复到RAMH勺第3,4字节。B4H-读供电方式。读DS18B20勺供电模式。寄生供电时,DS18B20送0外接电源供电时,DS18B20送1。辽宁工程职业学院毕业论文(设计)以上这些指令涉及的存储器为高速暂存器RA防口可电擦出E2ROM见表五。表五高速暂存器RAM寄存器内容字节地址温度值低位(LSB)0温度值高位(MSB1高温限值(TH)2低温限值(LT)3配置寄存器4保留5保留6保留7CR或验值8高速暂存器RAMS9个字节的存储器组成。第01字节是温度的显示位;第2和第3个字节是复制的TH和TL,同时第2和第3个字节的数字可以
30、更新;第4个字节是配置寄存器,同时第4个字节的数字可以更新;第5,6,7三个字节的保留的。可电擦出E2ROW包括温度触发器TH和TL,以及一个配置寄存器。表六列出了温度数据在高速暂存器RAM勺第0和第1个字节中的存储格式。DS18B20s出厂时默认配置为12位,其中最高位为符号位,即温度值共11位,单片机在读取数据时,一次会读2字节共16位,读完后将低11位的二进制数转化为十进制数后再乘以0.0625便为所测的实际温度值。另外,还需要判断温度的正负。前5个数字为符号位,这5位同时变化,我们只需要判断11位就可以了。前5位为1时,读取的温度为负值,且测到的数值需要取反加1再乘以0.0625才可得
31、到实际温度值。前5位为0时,读取的温度为正值,且温度为正值时,只要将测得的数值乘以0.0625即可得到实际温度值。2.2.6工作时序图初始化时序如图2.7初始化厘程“复位和存在的冲.单畿总质线型言义:D31能。偃电平电阻上拉百缴桂刷器假电平总装控制器和蚱1眨口同为修电平图2.7初始化时序先将数据线置高电平1。延时(该时间要求不是很严格,但是要尽可能短一点)。数据线拉到低电平0o延时750us(该时间范围可以在480us960us)。数据线拉到高电平1。延时等待。如果初始化成功则在1560us内产生一个有DS18B2版回的低电平0,据该状态可以确定它的存在。但是应注意,不能无限地等待,不然会使程
32、序进入死循环,所以要进行超时判断。 若CP联到数据线上的低电平0后,还要进行延时,其延时的时间从发出高电平算起(第5)步的时间算起)最少要480us。 将数据线再次拉到高电平1后结束。(2) DS18B20f数据时序图如图2.815图2.8写数据时序图 数据线先置低电平00 延时确定的时间为15uso按从低位到高位的顺序发送数据(一次只发送一位)延时时间为45us将数据线拉高到高电平1。重复1)5)步骤,直到发送完整个字节。最后将数据线拉高到1。(3) DS18B20读数据时序图如图2.9图2.9读数据时序图将数据线拉高到1。延时2us。将数据线拉低到00延时6us。将数据线拉高到1。延时4u
33、s。读数据线的状态位,并进行数据处理。延时30uso重复1)7)步骤,直到读取完一个字节2.3 系统电路设计单片机最小系统如图如图2.10所示J3P1QP1I2P123S1SW-PBP1TBOP返P3E3P3H4P3ESR1P310K30pf11C3aPT?199国rairpiP16720P1.0vccPl.lPOOPl2POJPl.3P0.2Pl4POJPl.5P0.4PlfiP0.5Pl.7P0.6RSTA/PDP0.7P3.0/RDEAAppP3.1/TXDALE/PROGP32/INTOPSENP33/INT1P2.7P3.4HTP2.6p35mP2.5P3.6/WRP2.4P37/R
34、DP2,3XTAL2P2.2XTALlP2.1GNDP2.0STC85C52HI30pfVCC4039POO38poi37P0236P0335P04与P0533POl532,PT1刃302928P2127P26P2525P2424P2323P222221P20一图2.10系统电路图这部分为单片机复位电路和时钟电路。单片机复位后,程序计数器PC=0000H,即指向程序存储器0000H单元,使CPU从首地址重新开始执行程序。产生单片机复位的条件是:在RST引脚端出现满足复位时间要求的高电平状态,该时间等于系统时钟震荡周期建立时间再加2个机器周期时间(一般不小于10ms)。时钟电路通过单片机的XTA
35、L俐XTAL2弓唧外接定时元件12M的晶振,电容C1和C2一般去30pF左右,主要作用是帮助振荡器起震。晶体振荡频率高,则系统的时钟频率也越高,单片机运行速速也就越快。2.4 显示电路设计LCD1602M示电路原理图如图2.11所示图2.11LCD1602显示电路此部分为LCD1602a示电路,通过10K可调电阻可以调节1602背光显示亮度P0口接一个10K的上拉排阻。第三章软件设计3.1软件开发工具的选择要使单片机系统按照人的意图办事,需设法让人与计算机对话,并听从人的指挥。程序设计语言是实现人机交换信息的最基本工具,可分为机器语言、汇编语言和高级H0机器语言用二进制编码表示每一条指令,是计
36、算机能直接识别和执行的语言。用机器语言编写的程序成为机器语言程序或者指令程序(机器码程序)。因为机器只能识别和执行这种机器码程序,所以又称它为目标程序。用机器语言编写程序不易记忆、不易查错、不易修改。为了克服机器语言的上述缺点,可采用有一定含义的符号,即指令助记符来表示,一般都采用某些有关的英文单词的缩写。这样就出现了另一种程序语言一汇编语言。汇编语言是用助记符、符号和数字等来表示指令的程序语言,容易理解和记忆,它与机器语言指令是一一对应的。汇编语言不像高级语言(如BASIC那样通用型强,而是属于某种计算机所独有,与计算机的内部硬件结构密切相关。用汇编语言编写的程序称为汇编语言程序。以上两种语
37、言都是低级语言。尽管汇编语言有不少优点,但它仍存在着机器语言的某些缺陷:与CPU勺硬件结构密切相关,不同的CP贝汇编语言是不同的。这使得汇编语言程序不能移植,使用不便;其次,要使用汇编语言进行程序设计必须了解所使用CP映件的结构与性能,对程序设计人员有较高的要求。为此,又出现了对单片机进行编程的高级语言,如PLM,C等。Keil C51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系辽宁工程职业学院毕业论文(设计)统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用球开发,体会更加深刻。KeilC51软件提供丰富的
38、库函数和功能强大的集成开发调试工具,全Window酣面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。经分析综合得知,本课题采用C言进行编程。3.2 系统软件设计的一般原则单片机应用软件系统设计包括功能模块划分、程序流程确立、模块接口设计以及程序代码编写。我们依据系统的功能要求,将整体软件系统分割成若干个独立的程序模块。这些程序模块可以是几条语句的集合、功能函数或程序文件。随后,根据个程序模块的实现功能写出流程,一般需要写出具体的实现功能描述。程序代码通常采用汇
39、编语言或高级语言(C语言)编写。本课题采用C语言编程,在此必须注意以下问题:(1)提高程序代码效率必须熟悉当前使用的C语言编译器,试验每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道代码效率。(2)减少程序错误我们在编写程序时,要注重考虑如下方面。物理参数资源参数应用参数过程参数(3)单片机的抗干扰性防止干扰最有效的方法是去除干扰源、隔离干扰路径。单片机干扰最常见的现象就是复位,导致程序运行异常。设计系统是一般需要添加一个“看门狗”监控模块,在系统出现不可逆转的干扰时,监控模块将重启系统,并从断点处继续执行。(4)系统的可靠性要测试单片机软件功能的完善性。上电、掉电测试。系统
40、耗损测试。3.3 系统软件设计的一般步骤系统进行软件设计时,先要对本课题硬件有一个熟练的掌握,知道系统的组成,数据的传输,信号是如何被控制的,以及信号的显示。然后进行软件设计时,先搞清楚各个部分的子程序及他们的流程图,然后进行各子程序的编写,最后通过主函数把各子程序连接起来实现设计。3.4 测温软件实现系统软件设计主要包括系统程序和流程图,根据整个系统的要求,完成温度的测量与控制必须经过以下几个步骤:单片机接受传感器的温度信号,并通过MAX232EPE驱动LCD1602并将温度显示出来。系统主程序流程图如图3.1所示。19辽宁工程职业学院毕业论文(设计)图3.1系统主程序流程图#辽宁工程职业学
41、院毕业论文(设计)3.4.1 初始化子程序DS18B2创始化程序严格按照DS18B20勺时序来编写,微处理器开始发送一个复位脉冲(在480us960us之间),接着数据线释放拉到高电平1,如图3.2所示。图3.2初始化子程序流程图3.4.2 温度转换首先调用DS18B2创始化子程序对它进行初始化,然后发跳过匹配ROMfiT令,接着发温度转换命令完成温度转换,该命令主要是完成温度的A/D转换,读取温度程序是在转换结束后才能读取当前温度值。工作流程图如图3.3所示。fJJ始ftnsSB2O-I命令:界匕过咛列弓可命令动5M陵就摸结束图3.3温度转换流程图3.4.3 DS18B20写子程序当主机把数
42、据线从高逻辑电平拉低至逻辑电平时产生写时间片,有两种类型的写时间片,写1时间片和写0时间片,所有时间片必须有最短为60微妙的持续期。在各写周期之间必须有最短为1us的恢复时间。在I/O口线高电平变为低电平后DS18B20ft15us到60us之间对I/O采样,如果是高电平则写1,低电平写0。流程图如图3.4所示。图3.4写子程序流程图3.4.4 DS18B20读子程序从DS18B20卖数据时单片机产生读时间片,当主机把数据线从逻辑高电平拉到低电平时产生读时间片,数据线必须保持在逻辑电平至少1微妙,来自DS18B20勺输出数据在读时间段下降沿之后15微妙有效,因此为了读出从读时间段开始算起15微
43、妙的状态单片机必须停止把I/O引脚驱动拉低至低电平,在读时间段结束时I/O引脚经过外部的上拉电阻拉回至高电平,所有读时间段的最短持续周期限为60微妙,各个读时间片之间必须有最短为1微妙的恢复时间,把主机采样时间定在15微妙期间的末尾系统时序关系就有最大的余地。单片机从DS18B2四读取数据是一位一位的读的,每读完一位的数据到单片机的特定单元A,A左移一次与B向或,直至DS18B20勺数据全部移到B中,到此单片机就对DS18B2流成了读字节操作。t数据流程图如图3.5所示。图3.5读子程序流程图第四章误差分析4.1 误差产生当采用寄生电源的工作方式时(电源从IO口上获得),如果温度高于100C,
44、则将产生很大的误差,因为此时器件中较大的漏电流会使总线不能可靠检测高低电平,从而导致数据传输误码率的增大。DS18B20T作电压范围为3.0V至5.5V无需备用电源,测量温度范围为-55c至+125C,华氏相当于是-671至112571华氏度,在-10C至+85C范围内精度为0.5C。在远距离有线测温传输过程中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误使得不能准确测量4.2 降低误差方法为了使得设计能够得到准确实时温度,DS18B2床用了外部电源供电方式,在外部电源供电方式下,DS18B20T作电源由VD用唧接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以
45、保证转换精度,同时在总线上理论可以挂接任意多个DS18B20专感器,组成多点测温系统。外接电源方式下,可以充分发挥DS18B20宽电源电压范围的优点,即使电源电压VCCW到3V时,依然能够保证温度量精度。在传输方面,当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长,测温电缆线建议采用屏蔽4芯双绞线。第五章调试与小结本设计KeilC51寸单片机多点温度测量系统进行了软件编写。在编写过程中,必须严格按照DS18B2的工作时序严格编写,否则温度无法准确测量。硬件电路的设计是通过Protel99se软件来来设计的PCB设计之
46、始,由于对软件的不熟练和PC断线规则的不熟悉,导致第一版的设计失败,主要原因是布线宽度太窄导致刻板时线被刻断,焊盘设计太小,焊接时元件焊接不牢固。在两面布线时,顶层布线只放置一个过孔到顶层走线直接布线到顶层焊盘导致无法焊接。在第一版设计阶段由于粗心大意,把P0口上拉排阻的接电源错接成接地导致LCD160不能显示,通过原理图对比和电路的排查最终找出和解决问题。经过改善后,第二版PC副作成功。本课题通过分析对比各种不同的温度传感器,选定DS18B20这种单总线数字温度传感器的通信方式比较独特,软件编写要求的比较新颖,特点突出。用其构建的系统有很多优点:硬件连线简单,省去了使用模拟传感器要进行放大、
47、A/D转换等工作,由于它的级联功能,一条总线可挂接多个传感器测量不同位置的温度,根据DS18B20唯一的序号识别不同传感器在各自位置的温度。系统对DS1820和各种操作必须按协议进行,即:初始化DS1820(发复位脉冲)一发RO能命令一发存储器操作命令一处理数据。现场温度直接以“一线总线”的数字方式传输,自带地址,提高了系统的稳定性和抗干扰性。通过调试成型系统发现了DS18B2除了上述优点外,还有一些缺点,如:简单的硬件连接的代价是复杂的软件时序,DS18B2施测量温度的时候,灵敏度不够高,温度快速变化时无法迅速显示出其变化。通过一系列的实验发现:由DS18B20J建的测温小系统适用于环境温度
48、监控,对温度小变化较敏感;不适合应用于要求实时性强、温度跨度大的测温方式。25致谢本设计是在XX老师的指导下完成的,XX老师是一位极其负责任的指导老师。毕业设计初期时,就制定了详细的工作时间表,对于各个阶段要完成的设计任务都详尽列出,而且按时要求完成。期间,多次分析指导,提供修改意见。为此,对XX老师在毕业设计期间提供的悉心指导与帮助表示衷心的感谢!止匕外,特别要感谢在这次毕业设计中为我提供宝贵意见的同学,有了你们的建议让我这次毕业设计顺利完成!辽宁工程职业学院毕业论文(设计)参考文献1党峰、王敬农、高国旺.基于DS18B20勺数字式温度计的实现J.山西电子技术,2007(3)2赵海兰、赵祥伟
49、.智能温度传感器DS18B20勺原理与应用J.现代电子技术,2003,26(14)3王福泉、万频、冯孔淼、张昱.DS18B2旺空调检测系统温度采集模块中的应用J.电子技术应用,2011,37(8)4程院莲.基于单总线器件DS18B20的智能温度测量J.现代教育装备,2010(23)5刘雪松程显侠.新型温度传感器DS18B20高精度测温的实现J.微处理机2002(2)6马云峰.单片机与数字温度传感器DS18B20的接口设计J.计算机测量与控制,2002(04)7郭天祥.新概念51单片机C语言教程一入门、提高、开发、拓展全攻略.电子工业出版社M,20118林立、张俊亮、曹旭东.单片机原理及应用(基
50、于Proteus和KeilC)M.北京:电子工业出版社,20099魏伟、胡玮、王永清.51单片机C语言开发与应用技术案例详解M.北京:化学工业出版社,2010.10沈长生.常用电子元器件使用一读通M.北京:人民邮电出版社.200411童诗白、华成英.模拟电子技术基础M.北京:高等教育出版社.200012 On-LineMeasureSystemoftheTemperatureintheSyntheticAmmoniaTowerBasedontheDS18B20TemperatureSensorC.Volume1A.2009:102-104.13 Fen-PingZhou,Hong-TaoMa,
51、Bing-DongSuietal.TemperatureDetectingSystemofBeerFermentationBasedonDS18B20C.ProgressinMeasurementandTesting.p.2.2010:898-902.#辽宁工程职业学院毕业论文(设计)29附录附录一:电路原理图III2I3IIU1VCCP2T-234567891011121314151617181920HeadRESETPZ2VCCUSBPWRP3C29100nFPOWERVCC C3VCCVCC0VCC34678D-D+C2+C2-345678910iSP5REDVCC0Tx1outlTx2
52、out2Rx1iniRx2in2LCD1602LCD1602LCD 1602S W 12 3456 78CN rrEDD DDDDDD/GVCC2K R7 P37附录二:PC晞线图-工H-附录三:程序清单18B20.h#ifndef_DS18B20_H_#define_DS18B20_H_#include/包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include#defineucharunsignedchar#defineuintunsignedint;/*端口定义*/sbitDQ=P1A7;/ds18b20端口/*函数声明*/unsignedintReadTempera
53、ture(void);bitInit_DS18B20(void);unsignedcharReadOneChar(void);voidWriteOneChar(unsignedchardat);#endif18B20.c#includedelay.h#include”18b20.h/*18b20初始化*/bitInit_DS18B20(void)bitdat=0;DQ=1;/DQ复位DelayUs2x(5);/稍做延时DQ=0;/单片机将DQ拉低DelayUs2x(200);/精确延时大于480us小于960usDelayUs2x(200);DQ=1;拉高总线DelayUs2x(50);/1560us后接收60-240us的存在脉冲dat=DQ;/如果x=0则初始化成功,x=1则初始化失败DelayUs2x(25);/稍作延时返回returndat;/*读取一个字节*/unsignedc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石油化工副产品综合利用考核试卷
- 期货市场国际化发展考核试卷
- 篷布帐篷在公园露营地的安全标准与舒适度考核试卷
- 2025企业合作借款合同样本参考
- 2025办公用品买卖合同书范文
- 2025桥梁工程监理委托合同范本
- 2025大陆居民赴澳旅游合同范本
- 2025年全面机械租赁合同模板
- 湖北省“黄鄂鄂”2025年高三下学期4月联考历史
- 机关食堂承包合同常用范例二零二五年
- 酒馆加盟代理协议书
- 加油站站长试题及答案
- 环境突发事件应急预案演练记录
- 外研版(三起)(2024)三年级下册英语Unit 3 单元测试卷(含答案)
- 人教版中职数学拓展模块一:6.2复数的运算课件(共24张课件)
- 2024年同等学力申硕《英语》试题真题及答案
- 公共资源交易知识培训
- 《危机管理案例》课件
- DB13-T5687-2023负压封闭引流术护理规范
- 海绵材料项目可行性研究报告
- 2025年四川成都地铁运营有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论