1、1论文题目基于MCS51的多路温度检测终端设计与实现专业电子与信息工程学生签名指导教师签名摘要温度是工业生产过程中保证产品质量的重要可控参数。因此,在工农业生产和科学研究中温度的检测与控制在现代经济与社会中越来越受到重视。传统的监测方法都是单点测量,同时有温度传递不及时、精度不够的缺点,不利于工业控制者根据温度变化及时做出决定,因此多路温度检测终端的设计成了一项重要的研究课题。本文设计了一种基于单片机的具有多路采集通道的高精度的数字温度检测系统。硬件上,CPU采用STC89C52为主控芯片,配置DS18B20温度传感器作为信号采集装置,利用LCD1602对四路采集的温度信号进行显示。软件上运用
2、C语言的编程,用PROTUES仿真和硬件电路的设计,实现了实时温度检测,并能够方便设置温度上下限,实现报警功能,另外还配备了单片机与PC机的通信功能。文中,终了进行了测试与实验,实验达到了预期的结果。【关键词】温度测量;单总线;数字温度传感器;单片机【论文类型】设计型2TITLETHETERMINALDESIGNANDIMPLEMENTATIONOFMULTICHANNELTEMPERATUREDETECTIONBASEDONMCS51MAJORELECTRONICINFORMATIONENGINEERINGNAMESIGNATURESUPERVISORSIGNATUREABSTRACTDUR
3、INGTHEINDUSTRYPRODUCTIONPROCESS,THETEMPERATUREISTHEIMPORTANTPARAMETEROFENSURINGTHEQUALITYOFTHEPRODUCTSTHEREFORE,THEDETECTIONANDCONTROLOFTEMPERATUREININDUSTRIALANDAGRICULTURALPRODUCTIONANDSCIENTIFICRESEARCHHAVEPLAYINGAMOREANDMOREIMPORTANTROLETRADITIONALMONITORINGMETHODSARESINGLEPOINTMEASUREMENT,MEANW
4、HILETHETEMPERATURETRANSFERISNOTTIMELYANDACCURATEENOUGHTHESEARENOTCONDUCIVETOINDUSTRIALCONTROLACCORDINGTOTHETEMPERATURECHANGEINATIMELYDECISIONSOITHASBECOMEANIMPORTANTRESEARCHTOPICINTHEDESIGNOFMULTICHANNELTEMPERATUREDETECTIONTERMINALTHISPAPERHASDESIGNEDAMULTICHANNELACQUISITIONCHANNELDIGITALHIGHPRECISI
5、ONTEMPERATUREDETECTIONSYSTEMBASEDONSINGLECHIPMICROCOMPUTERONTHEASPECTOFHARDWARE,THESTC89C52ISUSEDASTHEMAINCONTROLCHIPITEQUIPPEDWITHTHEDS18B20TEMPERATURESENSOR,WHICHACTSASSIGNALACQUISITIONDEVICETHETEMPERATURESIGNALOFFOURWAYSACQUISITIONSAREDISPLAYEDBYTHELCD1602ONTHEASPECTOFSOFTWARE,CPROGRAMMINGLANGUAG
6、EUSEDBYPROTUESSIMULATIONANDHARDWARECIRCUITDESIGNTOACHIEVEAREALTIMETEMPERATUREDETECTIONTHEREISAABILITYTOEASILYSETTHETEMPERATURELIMIT,ANDTHEALARMFUNCTIONMEANWHILEITCANALSOCOMMUNICATEWITHTHEPCINTHISPAPER,THERESULTOFTESTEDHASACHIEVEDTHEGOALASEXPECTED【KEYWORDS】TEMPERATUREMEASURE;SINGLEBUS;DIGITALTHERMOME
7、TER;SINGLECHIPPROCESSOR【TYPEOFTHESIS】DESIGNMODE3目录1基础理论111概述121单总线简介3211概述3212单总线的工作原理3213单总线器件信号传递方式413MCS51单片机7131MCS51单片机概述7132MCS51单片机的结构7133指令系统9134中断10135定时器102硬件设计方案1121系统综述1122温度采集与测量系统12221DS18B20的特性12212DS18B20引脚排列13223DS18B20的硬件结构13224DS18B20的供电方式14225DS18B20的ROM指令16226DS18B20的测温原理1823显示系
8、统19231LCM1602显示模块19223LCM1602管脚分布20424报警系统及输入设备2125最小系统外围电路22251PC机与单片机的串行通信接口电路22252晶振电路以及复位电路223软件系统的设计2431主程序2432DS18B20相关程序25321查询DS18B20的ROM26322DS18B20初始化程序27323温度采集2733LCM1602相关程序29331LCM1602初始化程序29332显示子程序3134报警系统和键盘输入系统相关程序32341报警系统32342键盘输入324实验结果总结345总结与展望3751总结3752展望37致谢39参考文献4011基础理论11概
9、述温度是表征物体冷热程度的物理量,是工业生产和科学实验中一个非常重要的参数。温度一直与人类的活动息息相关。无论是日常生活中,还是工农业控制过程中,温度都是重要的测控对象之一,准确的温度测量和实时的温度控制对人类的生存发展有着只管重要的作用。随着社会经济迅猛发展,电子技术在国民经济的建设中占据了相当重要的地位。无论是人民生活,经济建设,还是国防建设,科学研究都有紧密的关系。加强电子科学技术的研究,对于提高产品质量,改进工艺,实现标准化、系列化、自动化;对于保障安全生产、提高生产效率,降低能源消耗;对于企业生产自动化、科学化、提高科研水平,增加经济效益都具有非常重要的作用。利用电子技术中对温度进行
10、测量,在社会经济发展的各个领域中都十分重要。现如今,用温度传感器来测量实际设备中的温度也变得越来越常见。它大体经过了三个发展的阶段模拟集成温度传感器阶段、模拟集成温度控制器阶段和智能温度传感器阶段。模拟集成温度传感器是采用硅半导体集成工艺制成,因此亦称硅传感器或单片集成温度传感器。这种传感器具有功能单一仅测量温度、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温、控温,不需要进行非线性校准,外围电路简单。它是目前在国内外应用最为普遍的一种集成传感器,典型产品有AD590、AD592、TMP17、LM135等;模拟集成温度控制器主要包括温控开关、可编程温度控制器,典型
11、产品有LM56、AD22105和MAX6509。某些增强型集成温度控制器例如TC652/653中还包含了A/D转换器以及固化好的程序,这与智能温度传感器有某些相似之处。但它自成系统,工作时并不受微处理器的控制。智能温度传感器亦称数字温度传感器是在20世纪90年代中期问世的。它是微电子技术、计算机技术和自动测试技术ATE的结晶。智能温度传感器内部都包含温度传感器、A/D转换器、信号处理器、存储器或寄存器和接口电路。有的产品还带多路选择器、中央控制器CPU、随机存取存储器RAM和只读存储器ROM。智能温度传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控制器MCU;并且它是在硬件的基础上
12、通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。212国内外现状进入21世纪后,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。目前市场主要存在单点和多点两种温度测量仪表。对于单点温测仪表,主要采用传统的模拟集成温度传感器,其中又以热电阻、热电偶等传感器的测量精度高,测量范围大,而得到了普遍的应用。此种产品测温范围大都在200800之间,分辨率12位,最小分辨温度在0001001之间。自带LED显示模块,显示4位到16位不等。有的仪表还具有存储功能,可存储几百到几千组数据。该类仪表可很好的满足单个用
13、户单点测量的需要。多点温度测量仪表,相对与单点的测量精度有一定的差距,虽然实现了多路温度的测控,但价格昂贵。针对目前市场的现状,本课题提出了一种可满足要求、可扩展的并且性价比高的基于51单片机的多路温度测控系统。该系统采用DS18B20数字温度传感器作为温度采集器件,用STC89C52单片机作为主控芯片,通过1WIRE总线外挂多个(至少三个)DS18B20实现多路温度采集,最后通过LCD1602液晶屏显示出来。功能以及技术指标用1WIRE总线协议实现最基本的4路温度采集功能温度测量范围55125;各路温度的精度要求在1;采用LCD显示,同时显示四路DS18B20的温度;用户可以通过按键输入各路
14、温度的报警上限和下限;当系统检测到实际温度超过用户设置的上限或者下限之后报警;应用1WIRE通信协议来完成对四路DS18B20的控制;321单总线简介211概述目前常用的PC机与外设之间进行数据传输的串行总线主要有I2C总线、SPI总线和SCI总线。其中I2C总线以同步串行2线方式进行通信(一条时钟线,一条数据线),SPI总线则以同步串行3线方式进行通信(一条时钟线,一条数据输入线,一条数据输出线),而SCI总线是以异步方式进行通信(一条数据输入线,一条数据输出线)。这些总线至少需要两条或两条以上的信号线。近年来,美国的达拉斯半导体公司(DALLASSEMICONDUCTOR)推出了一项特有的
15、单总线(1WIREBUS)技术。该技术与上述总线不同,它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的,因而这种单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。单总线适用于单主机系统,能够控制一个或多个从机设备。主机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一条信号线。当只有一个从机设备时,系统可按单节点系统操作;当有多个从设备时,系统则按多节点系统操作。图11所示是单总线多节点系统的示意图。图11单主机多节点系统示意图212单总线的工作原理单总线即只有一根数据线,系统中的数据交换、控制都由这根线完成。设备(主机或从机)通过一个漏极
16、开路或三态端口连至该数据线,以允许设备在不发送数据时4能够释放总线,而让其它设备使用总线,其内部等效电路如图12所示。图12单总线的硬件接口示意图单总线通常要求外接一个约为47K的上拉电阻,这样,当总线闲置时,其状态为高电平。主机和从机之间的通信可通过3个步骤完成分别为初始化1WIRE器件、识别1WIRE器件和交换数据。由于它们是主从结构,只有主机呼叫从机时,从机才能应答,因此主机访问1WIRE器件都必须严格遵循单总线命令序列,即初始化、ROM命令、功能命令。如果出现序列混乱,1WIRE器件将不响应主机(搜索ROM命令,报警搜索命令除外)。表11为ROM命令的说明,而功能命令则根据具体1WIR
17、E器件所支持的功能来确定。表11ROM命令说明ROM命令说明搜索ROM(F0H)识别单总线上所有的1WIRE器件的ROM编码读ROM(33H)(仅适合单节点)直接读1WIRE器件的序列号匹配ROM(55H)寻找与指定序列号相匹配的1WIRE器件跳跃ROM(CCH(仅适合单节点)使用该命令可直接访问总线上的从机设备报警搜索ROM(ECH)(仅少数器件支持)搜索有报警的从机设备213单总线器件信号传递方式单总线通信协议定义了如下几种类型,即复位脉冲、应答脉冲、写0、写1、读0和读1,除了应答脉冲外,所有的信号都由主机发出同步信号,并且发送的所有的命令和数据都是字节的低位在前。单总线通信协议中不同类
18、型的信号都采用一种类似脉宽调制的波形表示,逻辑05用较长的低电平持续周期表示,逻辑1用较长的高电平持续周期表示。在单总线通信协议中,读写时隙的概念十分重要。当系统主机向从设备输出数据时产生写时隙,当主机设备读取数据时产生读时隙,每一个时隙总线只能传输一位数据。无论是在读时隙还是写时隙,它们都以主机驱动数据线位低电平开始,数据线的下降沿是从设备触发其内部的延时电路,使之与主机同步。在写时隙内,该延迟电路决定从设备采样数据线的时间窗口。单总线通信协议中存在两种写时隙写1和写0。主机采用写1时隙向从机写入1,而采用写0时隙向从机写入0。所有写时隙至少要60US,且在两次独立的写时隙之间至少需要1US
19、的恢复时间。两种写时隙均起始于主机拉低数据总线。产生写1时隙的方式主机拉低总线后,接着必须在15US之内释放总线,由上拉电阻将总线拉至高电平;产生写0时隙的方式为在主机拉低后,只需要在整个时隙间保持低电平即可(至少60US)。在写时隙开始后15US60US期间,单总线器件采样总电平状态。如果在此期间采样值为高电平,则逻辑1被写入器件;如果为0,写入逻辑0。图13给出了写时隙(包括1和0)时序的图形解释。图13单总线时序中写时隙时序图在图13中,黑色实线代表系统主机拉低总线,黑色虚线代表上拉电阻将总线拉高。对于读时隙,单总线器件仅在主机发出读时隙时,才向主机传输数据。所有主机发出读数据命令后,必
20、须马上产生读时隙,以便从机能够传输数据。所有读时隙至少需要60US,且在两次独立的读时隙之间至少需要1US的恢复时间。每个读时隙都由主机发起,至少拉低总线1US。在主机发出读时隙之后,单总线器件才开始在总线上发送0或1。若从机发送1,则保持总线为高电平;若发出0,则拉低总线。当发送0时,从机在读时隙结束后释放总线,由上拉电阻将总线拉回至空闲高电平状态。从机发出的数据在起始时隙之后,保持有效时间15US,因此主机在读时隙期间6必须释放总线,并且在时隙起始后的15US之内进入采样总线状态。图14所示给出了读时隙(包括读0或读1)时序的图形解释。图14单总线协议中写时序时隙图在图14所示中,黑色实线
21、代表系统主机拉低总线,灰色实线代表总局拉低总线,而黑色的虚线则代表上拉电阻总线拉高。单总线上的所有通信都是以初始化序列开始,初始化序列包括主机发出的复位脉冲及从机的应答脉冲,这一过程如图15所示。图15单总线协议中写时序时隙图在图15中,黑色实线代表系统主机拉低总线,灰色实线代表从机拉低总线,而黑色的虚线则代表上拉电阻极被那个总线拉高。系统主设备发送端发出的复位脉冲式一个480US960US的低电平,然后释放总线进入接受状态。此时系统总线通过47K的上拉电阻接至VCC高电平,时间约为15US60US,这种在接收端的设备就开始检测I/O引脚上的下降沿以及监视在脉冲的到来。主设备处于这种状态下的时
22、间至少为480US。从设备在接收到系统主设备发出的复位脉冲之后,向总线发出一个应答脉冲,表示从设备已准备好,可根据各种命令发送或接受数据。通常情况下,器件等待15US60US即可发送应答脉冲(该脉冲是一个60US240US的低电平信号,它由从机强迫将总线拉低)。复位脉冲是设备以广播方式发出的,因而总线上所有的从设备同时发出应答脉冲。7一旦器件检测到应答脉冲后,主设备就认为总线上已连接了从设备,接着主设备将发送有关的ROM功能命令。如果主设备未能检测到应答脉冲,则认为总线上没有挂接单总线从设备。13MCS51单片机131MCS51单片机概述MCS51单片机是一个40引脚的双列直插式集成电路。主要
23、包含以下资源1)8位CPU,片内振荡器;2)4KB/8KB片内程序存储器(51系列有4KB,52系列有8KB);3)128B/256B片内数据存储器(51系列有128B,52系列有256B);4)2/3个16位定时/计数器(51系列有2个,52系列有3个);5)32个可编程的I/O口线4个8位并行I/O端口;6)1个可编程全双工串行端口7)5/6个中断源,2级中断优先级(51系列有5个,52系列有6个);8)可寻址64KB片外数据存储器,64KB片外程序存储器空间的控制电路;9)有强大的位处理功能。132MCS51单片机的结构图16单片机的结构单片机内部结构如图16所示。由CPU、存储器、并行
24、I/O接口、中断系统、定时P0口驱动器P2口驱动器P1口驱动器P3口驱动器RAM地址寄存器RAMP0口锁存器P2口锁存器ROM堆栈指针地址锁存器缓冲器PC增量器程序计数器数据指针寄存器BTMP2TMP1ACCPSWALU定时和控制指令寄存器OSCP1口寄存器P3口寄存器P10P17P30P37P00P07P20P27VCCGNDPSENALE/PROGEA/VPPRSTSCONTMODTMODPCONTH0TL0TH1TL1SBUFTXSBUFRXIPIE中断、串行口和定时器模块8/计数器及串行接口六部分组成。所有功能部件均与内部总线连接在一起。1)中央处理器(CPU)它由运算器、控制器及微处
25、理器(又叫布尔处理器)组成,是整个单片机的核心,能处理8位二进制数据或代码。2)存储器MCS51系列单片机的存储器包括数据存储器(RAM)和程序存储器(ROM)。数据存储器是通用存储器,用于存放运算中间结果或临时数据。51/52片内有128/256B个8位数据存储单元和特殊功能寄存器(SFR,21/26个)。当片内数据存储器不够使用时,可片外扩展。对外有64KB数据存储器的寻址能力。程序存储器用于存放用户程序和常数。51/52片内有4KB/8KB个掩模ROM。当片内程序存储器不够使用时,可片外扩展。对外有64KB程序存储器的寻址能力。3)接口电路单片机输出的控制信号和外部采集的输入信号,同时通
26、过接口电路进行传输的,MCS51单片机共有4个8位并行输入/输出接口,称为P0,P1,P2,P3口。共有32根I/O口线。4)时钟振荡电路51/52内置有一个振荡器和时钟电路,用于产生单片机运行的脉冲时序。MCS51的外部引脚及功能MCS51单片机油40脚的DIP(双列直插式封装结构),还有44脚PLL封装。这里以40脚的DIP介绍单片机的引脚及功能。单片机的40个引脚可分为I/O口线、电源与地、时钟振荡电路引脚及控制信号四大部分。分别为I/O口线32根(4个8位I/O端口)、电源与地(2个)、时钟振荡电路引脚(2个)及控制信号(4个)。5)I/O端口4个I/O端口分别为P0、P1、P2和P3
27、口。P0口一是作为普通I/O端口使用,是漏极开路的8位准双向I/O口,每一位可驱动8个LSTTL负载。二是在访问片外存储器时,分时提供地址低8位和8位双向数据总线。P1口仅作为I/O口使用,是自带上拉电阻的8位准双向I/O端口,每一位可驱动4个LSTTL负载。P2口一是可作为普通I/O端口使用,是自带上拉电阻的8位准双向I/O口,每一位可驱动4个LSTTL负载。二是在访问片外存储器时,作为高8位地址线使用。9P3口是自带上拉电阻的8位准双向I/O端口,每一位可驱动4个LSTTL负载。6)控制引脚ALE/PROG地址锁存使能信号输出端。存取片外存储器时,用于锁存低8位地址。PROG是对于EPRO
28、M型单片机,在EPROM编程期间,此引脚用于输入编程脉冲。PSEN地址锁存使能信号输出端,是片外程序存储器的读选通信号。EA/VPP片内程序存储器屏蔽控制端。当EA端保持低电平是,将屏蔽片内的程序存储器,只访问片外的程序存储器。VPP为编程电压端。对于EPROM型单片机,在EPROM编程期间,此引脚用于施加21V的编程电压。RST/VPD复位输入信号端,高电平有效。备用电源VPD功能。电源引脚VCC主电源正端,接5V。VSS主电源负端,接地。晶振引脚XTAL1片内高增益反向放大器的输入端。XTAL2片内高增益反向放大器的输出端。133指令系统计算机的指令系统是该计算机所能执行的全部指令的集合,
29、指令系统中指令的数量及功能直接决定这计算机的功能,MCS51系列单片机的指令系统十分丰富,它不但运行速度快,而且编程效率高,在完成同样的任务时,所编程序的字节数一般比其他单片机用的要少,由于MCS51系列单片机的指令系统具有独特的优点,这类单片机获得了广泛的应用。1寻址方式寻址就是寻找指令所需的操作数,MCS51系列单片机有七种寻址方式,分别为立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址方式。2指令类型MCS51系列单片机中包括数据传送指令、算术运算、逻辑运算及移位、控制转移及位操作五类指令。1数据传送指令把“源操作数”中的数据传送到“目的操作数”中去,而“源操作
30、数”中的内容部变。这类指令在程序中占有较大的比重,是一种最基本、最常用的指令。2算术和逻辑运算指令10算术和逻辑运算指令中有加、减、乘、除四则运算和与、或、异或逻辑等算术和逻辑运算指令,这些指令可分为8类,分别是加法指令、减法指令、比较指令、乘法指令、除法指令、与运算指令、或运算指令、异或运算指令。这些指令中既有对字节进行操作的指令也有对字操作的指令。134中断MCS51系列单片机的中断系统中有5个中断源,两个外中断源由INT0、INT1输入,两个片内定时期/计数器溢出中断源,一个片内串行口中断源。提供两个优先级,能实现二级中断服务程序嵌套。每个中断源都可以设置为高优先级中断或低优先级的中断,
31、允许向CPU请求中断。135定时器在MCS51系列单片机中,有两个定时/计数器T1和T0,定时器T0由TH0和TL0构成,T1由TH1、TL1构成,他们实质上似是两个独立的16位加法计数器,TH0和TL0构成T0的计数单元,TH1和TL1构成T1的计数单元。TMOD是定时器/计数器的工作方式寄存器,由它确定定时器/计数器的工作方式和功能;TCON是控制寄存器,用于控制T0、T1的启动、计数和停止以及设置溢出标志状态。112硬件设计方案本章是在前一章的基础上对基于1WIRE总线的多点采集温度系统进行了硬件的设计,主要分为51单片机的最小系统电路、温度采集电路、LCD显示电路、上下限设置电路和报警
32、电路。21系统综述本设计用STC89C52为主控芯片,用1WIRE总线协议将4个DS18B20通过一根总线连在单片机的I/O口(P22)。LCD1602液晶屏的数据线接在单片机的P0口,在分别搭接报警电路和键盘电路。本系统的框图如图21所示。图21系统框图本系统具体模块接线如表21所示。表21本系统接线1602数据端口P0口报警系统LED引脚P1口1602RSP24SETP321602RWP25ADDP331602REP26SUBP34蜂鸣器P36OKP35DQP22STC89C51单片机系统LCD1602显示器DS18B20DS18B20DS18B20DS18B20报警电路键盘电路12本设计
33、总体电路图如下图22所示图22硬件硬件连线图22温度采集与测量系统DS18B20数字温度计可以读出精度为9位的温度值。数据经过单线接口送入DS18B20或从DS18B20送出,因此从中央处理器到DS18B20可以存在于同一条线。读、写和完成温度变换所需的电源可以由数据线本身提供,而不需要外部电源。因为每一个DS18B20有唯一的系列号(SILICONSERIALNUMBER),因此多个DS18B20可以存在于同一条单总线上。这允许在许多不同的地方放置温度灵敏器件。此特性的应用范围包括HVAC环境控制,建筑物、设备或机械内的温度检测,以及过程监视和控制中的温度检测。221DS18B20的特性1)
34、独特的单线接口,只需1个接口引脚即可通信;2)多点(MULTIDROP)能力使分布式温度检测应用得以简化;133)不需要外部器件,可用数据线供电;4)不需备份电源;5)测量范围从55至125,增量值为05;6)以9位数字值的方式读出温度,以1秒(典型值)内把温度变换为数字;7)用户可定义的,非易失性的温度告警设置;8)告警搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况);9)应用范围包括恒温控制,工业系统,消费类产品,温度计或者任何热敏系统。212DS18B20引脚排列图23DS18B20的引脚图引脚说明GND地DQ数字输入输出VDD可选的VDDNC空引脚DNC不连接223DS18
35、B20的硬件结构DS18B20数字温度传感器的内部结构如图24所示。图24DS18B20数字温度传感器的内部结构14它由4个主要的数据部件组成164位激光ROM。64位激光ROM从高位到低位依次由8位CRC,48位列号和8位家族代码28H组成;2温度灵敏元件;3非易失性温度报警触发器TH与TL。可通过软件写入用户报警上下限值;4配置寄存器。配置寄存器为中间结果暂存器中的字节。配置寄存器可以设置DS18B20温度转换的精度。可以设置成精度为9位、10位、11位、12位。上电缺省的分辨率为12位精度。用户可根据需要改写配置寄存器以获得合适的分辨率。DS18B20温度传感器的内部存储器结构如图23所
36、示。图25便笺式存储器映象DS18B20温度传感器的内部存储器包括一个中间结果寄存器和一个非易失性的电可擦除E2PROM,后者存放高温报警TH、低温度报警TL和配置寄存器的值。暂存器包含了8个连续字节,前两个字节是测得的数字温度数值,第一个字节的温度是温度的低8位,第二个字节是温度的高8位。第三个和第四个字节是TH,TL,第五个字节是配置寄存器,这三个字节的值可以保存在电可擦除的只读寄存器(E2PROM)中,掉电后数据不丢失,上电复位时数据从E2PROM载入中间结果暂存器。第六,七,八字节内容保留。第九字节是循环冗余检验CRC字节。224DS18B20的供电方式DS18B20的电源供电方式有2
37、种外部供电方式和寄生电源方式。工作于寄生电源方式时,VDD和GND均接地,它在需要远程温度探测和空间受限的场合特别有用,原理是当1WIRE总线的信号线DQ为高电平时,窃取信号能量给DS18B20供电,同时一部分能量给15内部电容充电,当DQ为低电平时释放能量为DS18B20供电。但寄生电源方式需要强上拉电阻,软件控制变得复杂特别是在完成温度转换和拷贝数据到E2PROM时,同时芯片的性能也有所降低。因此,在条件允许的场合,尽量采用外供电方式。1)DS18B20寄生电源供电方式在寄生电源供电方式下,DS18B20从单线信号线上汲取能量在信号线DQ处于高电平期间把能量储存在内部电容里,在信号线处于低
38、电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。独特的寄生电源方式有三个好处(1)进行远距离测温时,无需本地电源;(2)可以在没有常规电源的条件下读取ROM;(3)电路更加简洁,仅用一根I/O口实现测温。要想使DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由于每个DS18B20在温度转换期间工作电流达到1MA,当几个温度传感器挂在同一根I/O线上进行多点测温时,只靠47K上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大。因此,该电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中。并且工作电源VCC必须保证在5
39、V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。2)DS18B20寄生电源强上拉供电方式为了使DS18B20在动态转换周期中获得足够的电流供应,当进行温度转换或拷贝到存储器操作时,用MOSFET把I/O线直接拉到VCC就可提供足够的电流,在发出任何涉及到拷贝到存储器或启动温度转换的指令后,必须在最多10S内把I/O线转换到强上拉状态。在强上拉方式下可以解决电流供应不足的题,因此也适合于多点测温应用,缺点就是要多占用一根I/O口线进行强上拉切换。3)DS18B20的外部电源供电方式如下面图14所示,在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,其VDD端用3
40、55V电源供电,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论可以挂接任意多个DS18B20传感器,组成多点测温系统。注意在外部供电的方式下,DS18B20的GND引脚不能悬空,否则不能转换温度,读取的温度总是85。16图26DS18B20寄生电源供电方式图27DS18B20温度转换期间的强上拉供电(寄生电源方式)图28DS18B20外部电源供电方式225DS18B20的ROM指令17为了不引起逻辑的冲突,所有从器件的1WIRE总线接口都是漏极开路的基本操作分为复位、读和写三种,其中所有的读写操作均为低位在前高位在后。复位、读和写是1WIRE总线通信的基
41、础,由于操作时序已在前面介绍单总线协议的章节有所介绍,因此在此值介绍ROM功能指令。在DS18B20内部光刻了一个长度为64BIT的ROM编码,这个编码是器件的身份识别标志。当总线上挂接这多个DS18B20时可以通过ROM编码对特定器件进行操作。ROM功能命令是针对器件的ROM编码进行操作的命令,共有10个,长度均为8BIT(1BYTE)。1读ROM(33H)当挂接在总线上的1WIRE总线器件接收到此命令时,会在主机读操作的配合下将自身的ROM编码按由低到高位的顺序依次发给主机。总线挂接有多个DS18B20时,此命令会使所有器件同时向主机传送自身的ROM编码,这将导致数据冲突。2匹配ROM(5
42、5H)主机在发送完此指令后,必须紧接着发送一个64BIT的ROM编码,与此ROM编码匹配的从器件会响应主机的后续命令,而其他从器件处于等待状态。该命令主要用于选择总线上的特定器件进行访问。3跳过ROM(CCH)发送这个命令后,主机不必提供ROM编码即可对从器件进行访问。与读ROM命令类似,该命令同样只适用于单节点的1WIRE总线系统,当总线上有多个器件挂接时会引起数据冲突。4查找ROM(F0H)当主机不知道总线上器件的ROM编码时,可以使用此命令并配合特定的算法查找出来总线上的器件的数量和各个从器件的ROM编码。5报警查找(ECH)此命令用于查找出总线上满足报警条件的DS18B20,通过报警查
43、找命令并配合特定的算法,可以查找出总线上满足报警条件的器件数目和各个器件的ROM编码。6启动温度转换(44H)该命令发送完成后,主机可以通过调用READONECHAR()函数盘算温度转换是否完成,若其返回值为0则表示转换正在进行,若返回为1则表示转换完成。7读RAM(BEH)给命令发送完成后,主机可以通过调用READONECHAR函数将DS18B20中的内容从低位拉到高位一次读出。188写RAM(4EH)给命令发送出后,主机随后写入1WIRE总线的3字符将依次被存储到DS18B20的报警上限、报警下限和配置寄存器中。9复制RAM(48H)该命令会将DS18B20的报警上限和配置寄存器中的内容复
44、制到EEPROM中。该命令发出去后,主机可以通过调用READONECHAR()函数判断复制操作是否完成,READONECHAR()的返回值为1,则表示复制操作完成。10回读EEPROM(B8H)该命令会将存储在EEPROM中的报警上限、报警下限和配置寄存器的内容回读到RAM中,主机可以通过调用READONECHAR()函数判断回读操作是否完成,若返回值为1则表示回读操作完成。DS18B20在上电时会自动进行一次回读操作。为了方便查看,我将常用指令画作表格如表22表22DS18B20常用指令226DS18B20的测温原理DS18B20的测温原理如图27所示。图中低温度系数晶振的振荡频率受温度的影
45、响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。图中还隐含着记数门,当记数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行记数,进而完成温度测量。记数门的开启时间由高温度系数振荡器来决定,每次测量前首先将55所对应的一个基数分别置入减法计数器温度寄存器中,减法计数器1和温度寄存器被预置在55所对应的一个基数值。指令约定代码操作说明温度转换44H启动DS18B20进行温度转换读暂存器BEH读暂存器9个字节内容写暂存器4EH将数据写入暂存器的TH、TL字节复制暂存器48H把暂存器的TH、TL字节写
46、到E2RAM中重新调E2RAMB8H把E2RAM中的TH、TL字节写到暂存器TH、TL字节读电源供电方式B4H启动DS18B20发送电源供电方式的信号给主CPU19减法计数器1对低温度系数晶振产生的脉冲信号进行减法记数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置值将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行记数,如此循环直到减法计数器2记数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值就是所测温度值。图28中的斜率累加器用于补偿和修正测温过程中的非线性误差,其输出用于修正减法计数器的预置值,只要记数门仍未关闭就重复上述过程,直到温度
47、寄存器值达到被测温度值。图28DS18B20的测温原理23显示系统231LCM1602显示模块LCD1602液晶显示器由5V供电,可以显示2行,每行可显示16个字符。LCD1602共有16个端口,其中有5个端口与电源连接,8个端口与单片机直接进行数据通信,另有3个是LCD1602的控制端。单片机通过数据通信端可以向LCD1602执行读写操作。LCD1602实物图如图29和图210所示20图29LCM1602模块的背面实物图图210LCM1602模块的正面实物图LCM1602字符型液晶显示模块的基本特点液晶显示屏是以若干个5X8或5X11点阵块组成的显示字符群。每个点阵块为一个字符位,字符间距和
48、行距都为一个点的宽度。主控制驱动电路为HD44780HITACHI以及其他公司全兼容电。具有字符发生器ROM可显示192种字符(160个5X7点阵字符和32个5X10点字符)。具有64个字节的自定义字符RAM,可自定义8个5X8点阵字符或4个5X11点阵字符。具有80个字节的RAM。标准的接口特性,适配M6800系列MPU的操作时序。模块结构紧凑、轻巧、装配容易。单5V电源供电(宽温型需要一个7V的驱动电源)。低功耗、长寿命、高可靠性。223LCM1602管脚分布21LCM1602液晶显示模块的管脚分布资料如下表23所示表23LCM1602引脚24报警系统及输入设备本设计的报警系统分为声音报警
49、和灯光报警两部分组成,其中声音报警时又一个蜂鸣器焊接成的报警电路,而灯光报警是由4红(上限)4绿(下限)八个LED灯组成。输入部分有四个独立按键(BUTTON)组成,分别命名为“SET”、“ADD”、“SUB”、和“OK”。该部分电路是通过按键可以设置温度上限和温度下限,红色LED和黑色LED分别用于各路上限和下限的报警。蜂鸣器在其中有一路打到报警条件时候就开始报警。引脚号符号状态功能1VSS电源地2VDD5V逻辑电源3V0液晶驱动电源4RS输入寄存器选择1数据0选择5R/W输入读写操作选择1读0写6E输入使能信号7DB0三态数据总线LSB)8DB1三态数据总线9DB2三态数据总线10DB3三态数据总线11DB4三态数据总线12DB5三态数据总线13DB6三态数据总线14DB7三态数据总线MSB15BLA背光电源正极16BLK背光电源负极2225最小系统外围电路251PC机与单片机的串行通信接口电路在设计硬件接口电路时,应充分考虑到电路的电气特性、逻辑电平以及驱动能力的匹配问题,若匹配得不好,将会导致通信失败。本文采用MAX232作为PC机与单片机的串行通信接口芯片。硬件连接时,可从MAX232中的2路发送器和接收器中任选一路,只要注意发送与接收的引脚对应关系即可。接口电路如图210所示。图211PC机与单片机的串行通信