多路智能温度测控系统设计_第1页
多路智能温度测控系统设计_第2页
多路智能温度测控系统设计_第3页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

电子技术课程设计题目:多路智能温度测控系统设计学院 计算机与通信工程学院专 业 通信工程 学号 姓 名 *** 指导老师 *** 2011年5月错误!错误!未指定书签。错误!未指定书签。错误!未指定书签。错误!未指定书签。错误!未指定书签。错误!未指定书签。错误!未指定书签。11错误!未指定书签。1314目录TOC\o"1-5"\h\z摘要 3关键字 3前言 3一.内容简介 二、设计目的 三、设计内容 四、 18B20简介 五、 单片机简介 六、 基本设计原理 七、设计步骤 八、设计图 九、仿真调试 十、软件设计 结语总结参考文献 14附录1 15摘要:本文介绍了数字温度传感器18B20测温的基本原理以及基于18B20的多点温度测量系统的设计过程,包括软件设计和硬件设计两大部分。软件部分给出了软件设计思想及软件流程图,硬件部分给出了单片机、测温电路、显示电路设计。单片机使用89C52单片机,温度传感器使用美国公司最新推出的18B20数字式温度传感器,显示模块采用显示。基于18B2O的多点测温系统在实际中应用广泛,测温系统简单、测温精度高、连接方便、占用口线少、转换速度快、给硬件电路设计工作带来极大的方便并且缩短了开发周期。关键词:18B20多点温度测量单片机仿真随着电子技术的快速发展,我们生活中的方方面面几乎都充斥着电子产品,我们也无时无刻不享受着电子技术带给我们的便利。作为电子专业的大学生,我们应当在享受电子生活带给我们的便捷的同时,应该更多的理解与思考电子产品的设计过程,并能在已有的集成芯片和单片机等微控制器的基础上,自己动手亲身体验电子设计的过程,以便于将课本上的理论实践化,做到学以致用,更好的掌握单片机等元器件的应用,锻炼独立解决问题的能力。本课程设计题目是基于18B20的多路智能温度测控系统设计,主要介绍了18B20的工作过程和原理,以及基于它的系统设计。在这个设计里,根据要求设计了两个18B20与单片机之间的单端口通信,可以推广到多个18B2O通过学习了解掌握了原理图设计及仿真方法,熟悉开发环境。在设计过程中参考或引用了《基于的电路及单片机系统设计与仿真》,18B20数据手册等参考资料以及网络上的相关资料。在此,向这些技术资料的作者表示感谢由于设计者的学识水平有限,加之时间仓促,作品不够完善,不足之处在所难免,敬请老师指导和改正。一.内容简介软件是英国公司出版的工具软件。它不仅具有其它工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、11、10/12/16/18/24/3033、、、8086、430、和系列处理器。它是能进行模拟电路、数字电路、模数混合电路、232动态仿真、I2C调试器、调试器、键盘和、系统的设计与仿真的平台。具备原理图设计、电路分析与仿真、设计功能,可以通过调入程序的编译结果.或.文件来调试单片机程序,还可直接嵌入到公司的单片机调试软件中,进行程序的调试和仿真。二、设计目的1、掌握单片机基本编程技术及外围电路的搭建2、 熟练掌握18B20的基本操作并了解其工作原理3、 熟练掌握原理图设计及仿真三、设计内容1、单片机最小系统设计2、 18B20与单片机的单口通信设计3、 原理图的绘制与仿真

4、单片机程序编写四、18B20简介18B20数字温度计是公司生产的1,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,可以节约硬件资源,而且使用较为方便。18B20产品的特点只要求一个端口即可实现通信。在18B20中的每个器件上都有独一无二的序列号。实际应用中不需要外部任何元器件即可实现测温。测量温度范围在—55°C到+125°C之间。数字温度计的分辨率用户可以从9位到12位选择内部有温度上、下限告警设置。18B20的引脚介绍92封装的18B20的引脚排列见下图表丨mISB20 引m功能描述序号引胆功能描述1GXD地信号□Q赃据檢入谁T岀引虬L开海机总圾接口引虹L为被闰着在寄生电源卜・也可%向器件提供电湍;VDD可选择的VDD引脚.当工作于寄生电沥时*此引脚必須播也18B20的使用方法由于18B20采用的是1—总线协议方式,即在一根数据线实现数据的双向传输,而对89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对 18B20芯片的访问。由于18B20是在一根线上读写数据,因此,对读写的数据位有着严格的时

序要求。18B20有严格的通信协议来保证各位数据传输的正确性和完整性。 该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。(此图为以下时序图的图例)UMETYPELEGENDBusmasteractivelowDS18S20sctiv6low■■■■BothbusmasterandDS18S20activelow R^istnrpull-up18B20的复位时序MfltwrIA"rfr*etMfltwrIA"rfr*etpliIIm"480mlnmumTX£w^lIE—1&S0lit4CD minmumTXTOC\o"1-5"\h\zresenEePulse" k:60^-240¥ RVcci-WIRE IBUS IGNU 18B20的读时序对于18B20的读时序分为读0时序和读1时序两个过程。对于18B20的读时隙是从主机把单总线拉低之后,在15之内释放单总线,以让18B20把数据传输到单总线上。18B20进行一个读时序过程,至少需要60才能完成。(下图左边为读“0”时序,右边为读“1”时序)

代码单片机检测到18B20的存在,即可向其发送操作命令18B20的写时序对于18B20的写时序仍然分为写0时序和写1时序两个过程。对于18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60代码单片机检测到18B20的存在,即可向其发送操作命令18B20的写时序对于18B20的写时序仍然分为写0时序和写1时序两个过程。对于18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60,保证18B20能够在15到45之间能够正确地采样总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15之内就得释放单总线。(下图左边为读“0”时序,右边为读“1”时序)抬令KcadROMiLJROMIMatchRON!(匹零JROM丨SkipROM(跳过ROM]SearchRQM(搜索ROM)Alarmsearchf告警搜索」殍储器操作命令WriteScratchpadt写暂存存储器)ReadScraichpadiIX暂存存储器)CopyScratchpad(复制暂存存储器)ConvcnTcinpcraturc(Sf5变换}RecallEPROM(ffl:新调出)ReadPowersupply(读电源)代码I4EH][BEH][4SH][44H][B8H][B4H]Mssie*Read”旷Slot [33UIQll][CCH][F01I][ecu]卯_LVcc1-WlRlEBUSMasterSamples-梢阳轉FWriteK1HSlot€0us 120^伸IFtEBUS恤船即WiME^0"3letDSIftiSWSAMPLESIYP MAXD81BS2DCAMPLESMKI TYPUAX每一片18B20在其中都存有其唯一的64位序列号,在出厂前已写入片内中,主机在进入操作程序前必须逐一接入 18B20用读(33H)命令将该18B20的序列号读出并登陆。当主机需要对众多在线18B20进行操作是,首先要发出匹配命令(55H)之后的操作就是针对该18B20的。而所谓跳过命令即为:之后的操作是对所有18B20的框图中先有跳过,即是启动所有18B20进行温度变换之后,通过匹配再逐一地读回每个18B20的温度数据。在18B20组成的测温系统中,主机在发出跳过命令之后,再发出统一的温度转换启动码44H就可以实现所有18B20的统一转换,再经过1s后,就可以用很少的时间去逐一读取。64数据结构图:&-BITCRCCODE[翻七ITSERIALNUMBER|R-BITFAMILYCODEUGh)|MSB LSRMSI3 LSRMSB LSB低8位为产品类型编码(18B20均为10h),中间48位为每个器件唯一的序号,高8位为(循环冗余校验)码。18B20中有用于存储测得的温度值的两个8位存储器,编号为0号到1号。1号存储器存放温度值的符号,如果温度为负,则1号存储器8位全为1,否则全为0。0号存储器用于存放温度值的补码,(最低位)的“1”表示0.5摄氏度。将存储器中的二进制数求补再转化成十进制数并处以2就得到被测温度值(-55摄氏度一125摄氏度)。温度/数据转换关系2&2$2+2$2?212。2」LSBMSb(unit=°C)LSbSSSSMSB

转换示例TEMPERATlREDIGITALOlTPlT(Binary)DIGITALOlTPlT(Hex)+85T0000010101010000O55Oh*+125°CoooooooomiloioOOFAh+25.0°C00000000001100100032h+0.5°C0000000000000001000Ih0°CooooooooooooooooOOOOh-0.5cCFFFFhmimilioomoFFCEh-55°C1111111110010010FF92h*Thepoweronresetregistervalueis+85CC五、单片机简介单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处

理能力的中央处理器随机存储器、只读存储器、多种口和中断系统、定时器 /计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。单片微型计算机简称单片机,是典型的嵌入式微控制器(),常用英文字母的缩写表示单片机,它最早是被用在工业控制领域。六、基本设计原理单片机在本设计中充当了重要的角色,是整个温度测控系统的核心,作为控18B20进行数据通信并控制液晶屏18B2089C52单片机、液晶屏构2片18B20芯片并接于18B20进行数据通信并控制液晶屏18B2089C52单片机、液晶屏构2片18B20芯片并接于P1.1口采经过处理交由1602显示。本设计出于只阐述说明原理考虑只使用了 2片18B20芯片,并外接了一个开关用于这2片芯片温度数据之间的切换。系统框图如下所示。系统框图七、设计步骤1、 查阅18B20芯片,熟悉其工作原理2、 在环境下绘制系统原理图3、 在开发环境下编写程序4、 将程序导入下仿真5、 根据仿真结果改写程序&撰写设计报告八、设计图基TDS18B20多点温度测腔仿真图o鬧—.1IJS6QLV3F,7T./i.£.i,LH]nLALZ■SFT宛3诅PD-VA&1pn基TDS18B20多点温度测腔仿真图o鬧—.1IJS6QLV3F,7T./i.£.i,LH]nLALZ■SFT宛3诅PD-VA&1pntfic£PDWlF7■RLsl0519523■3凸--!■ !I.ur,1st15.**OMD4Id20•+•GHE>3N*□•|•■p■■……-— ''4''□TTAIJEP*童痒时1/J6rf-snfl.il:F?S«J■PZ-ii^iZFZ^AJ-■X■刃步;T1.VTZ=<•gm*P3_TT>iii93jirmra^rilTIPI^TIF3TJH1F丄…打开开关显示佃丁的温度「闭合开关显示2ND的温度1说明:左下角为两个18B20芯片,端同接于89C52的P1.1口,右上角为1602,P3.3口接开关,通过它的开关切换两片18B20之间的温度显示。九、仿真调试在中使用多个18B20时,必须改变器件的属性,使仿真中的每个器件序列号各不相同。具体做法:右击18B20,选中选项,在其中改变的值(在该对话框下还可以改变的数值,即改变每次调整温度的额度)。在中,可以人为改变3个字节的器件序列号。要想得到全部8个字节,一个简单的方法就是每一次总线上只连接一个器件,利用0x33读器件序列号的命令在程序中得到完整的器件序列号。将测试序列号的程序烧入下89C51中,程序中定义通信端口为P1.1只需将18B20依次与单片机连接即可。并在运行中点击菜单项,选中 ,按,即出现图1所示对话框,在项中输入a,在项中输入0x08,点击,在窗口中即可看到序列号低八位的值。然后依次输入0x09—0x0f,再点击键,即可获得所有64位序列号。所得序列号如图2所示(本设计共用了两个18B2C)测试程序详见附录1DisplavformatBinarycDisplavformatBinarycOctal■4HexadecimalSignedIntegerUrsigriedlntegei£ddILorieVatcblindaw 了;忖arrieAddress\xalueAOXOB0X28A0X090X30aOXOd0XC5aoxob0XB8aOxOc0x00aOkOdOXO'OadxoeOXD'Caoxof0X8E<>Watch,lindov 園NameAddressvalLIEa□X080X2^axo?0X31doxoa0XC5a&xoboxe^-aftxO匚OxOOao^odOkOO且oxoecxooa□xofDxG5电l>ll程序中包含向18B20发送一个字节,读取一个字节,以及18B20的初始化等子程序。氐Addl&KDEyItem 陌]区Memory:0051CPUlniernal(IDATA)Memorv-LI1〒.Name: |sAddress莎丽 ■dataType:CASCIIZStrrs>Byte<Word(?by(ei)DoubleWord(4bs<es|-QuadWord(3R怕到IEEEFl冋(4M刖]ClEEEOauble(9丿HiechFinalPbytes]Micrtjch^ziFlaat[4bytes]BigEndiarr十、软件设计1、软件流程图

2、关键模块说明本程序由主函数、头文件18b20、1602(为便于调用特将其编为文件)三部分组成。主函数中处理了由18B20采集的温度信息并交由1602显示,并设置了一个开关,当打开开关显示1的温度,闭合开关显示2的温度。18b20是18B20的驱动程序,包含了18B20的初始化函数、读写一个字节的函数、匹配函数、温度读取函数。1602是1602的驱动程序,包含了初始化等程序,使用时只需在主程序中调用()函数即可让1602显示字母数字等信息。具体程序见附录2。结语总结在本次课程设计中,我对于芯片的学习能力有了一定了提高,对于初次接触的18B20芯片能通过阅读它的数据手册了解其使用方法,并付诸于软件编程思想。在设计中碰到了一些困难,如在实现多个 18B20的单总线通信时,遇到了编程上的瓶颈,接着又在仿真中遇到了不会读取 18B20的序列号的困难,幸而被一一克服,才得以完成本设计最终的仿真实现。第一次亲自动手编写此类较为冗长的程序,将所学的C语言运用到实际,才发现实践总是高于理论的,在实际应用中总会出现困难。在完成本设计后,本人感觉工程设计能力有较大的提升,培养了系统的思维能力,总之得到了很好的锻炼。参考文献1、唐颖.单片机原理与应用及C51程序设计.北京:北京大学出版社,20082、周润景.张丽娜.基于的电路及单片机系统设计与仿真.北京:北京航空航天大学出版社,2006附录118B20系列号测试程序<52>定义通信端口=P1A1;定义通信端口a[8];延时程序18B20(i){();}初始化函数18B20(){0;=1;复位18B20(4);稍做延时=0; 单片机将拉低18B20(100);精确延时大于480=1; 拉高总线18B20(40);}读一个字节(){0;=0;(8>0){=0; 给脉冲信号>>=1;=1; 给脉冲信号()0x80;18B20(10);}();}写一个字节(){0;(8;i>0;){=0;=0x01;18B20(10);=1;(){i;18B20();(0x33);(0<8)a[i]()将序列号存入a[]中}附录2主程序1、<52><18b20><1602>[6];3A0;(i){();}(){18B20();(5000);(1){(1)打开开关显示118B20{=(1);()[0]='-';[0]='+';1000+'0'百位数1000/100+'0'十位数100/10+'0' 个位数[5]10+'0'小数位='.'; 小数点();(0,0);("118B20");(0,1);(":");;([0]);;);(50000);}闭合开关显示218B20{=(2);()[0]='-';[0]='+';1000+'0'百位数1000/100+'0'十位数100/10+'0'个位数10+'0'小数位='.'; 小数点;();(0,0);("218B20");(0,1);(":");;([0]);;);(50000);2、18b2018B2018B20=P1A1; 定义通信端口=0负数标志1[]={0x28,0x30,05,08,0x00,0x00,0x00,0x8e};2[]={0x28,0x31,05,08,0x00,0x00,0x00,09};晶振11.059218B20(i){();}初始化函数18B20(){0;=1;复位18B20(4);稍做延时=0; 单片机将拉低18B20(100);精确延时大于480=1; 拉高总线18B20(40);}读一个字节(){0;=0;(8>0)=0; 给脉冲信号>>=1;=1; 给脉冲信号()0x80;18B20(10);}();}写一个字节(){0;(8;i>0;){=0;=0x01;18B20(10);=1;>>=1;}}匹配(a){j;(0x55)发送匹配命令(1){(0<8)(1[j])发送18B20的序列号,先发送低字节}(2){(0<8)(2[j])

温馨提示

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

评论

0/150

提交评论