1、榆林学院本科毕业设计(论文)学生毕业设计(论文)题 目基于单片机的多路温度采集系统设计作 者院 (系)能源工程学院专 业测控技术与仪器指导教师答辩日期 榆 林 学 院毕业设计(论文)诚信责任书本人郑重声明:所呈交的毕业设计(论文),是本人在导师的指导下独立进行研究所取得的成果。毕业设计(论文)中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。尽我所知,除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经公开发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人毕业设计(论文)与资料若有不实,愿意承担一切相关的法律责任。 论文作者
2、签名: 年 月 日III摘 要 单片机是一种集CPU、RAM、ROM、I/O接口和中断系统等部分于一体的器件,只需要外加电源和晶振就可实现对数字信息的处理和控制。单片机由于其微小的体积和极低的成本,而广泛的应用于家用电器、工业控制等领域中。多路温度采集系统是利用温度传感器DS18B20检测温度,并由单片机处理显示。 本设计利用AT89S52单片机为处理器,结合温度采集电路、键盘电路、显示电路、报警电路等实现对多路温度的实时检测与显示。通过设计实物并调试,对系统存在的问题进行了分析和总结,并提出了改进措施。实验证明:该信号采集系统性能稳定,采集精度高,具有极高的性价比。关键词:单片机;DS18B
3、20;温度采集Design of Multi-channel Temperature Acquisition System Based on AT89S52 MCU ABSTRACTSingle-chip is a device which consists of a set of CPU, RAM, ROM, I/O interface, interrupt system and other parts. You only need external power supply and clock then the digital information processing and cont
4、rol can be achieved on. Because of the small scale, low price and high efficiency of MCU, it is widely used in home appliances and industrial control. Multi-channel temperature acquisition system is used temperature thermometer DS18B20 to detect the temperature, process and display by the single-chi
5、p. This design uses AT89S52 as microprocessor to realize design goal this design including temperature gathering circuit, keyboard circuit, display circuit, alarm circuit etc. to achieve the temperature detection and the display. To introduce the problems during the debugging are analyzed and summar
6、ized, some measure about the system improvement are proposed.The result of experiments indicated that signal sampling system has good performance, high precision, and has a very high pertormance-to-price ration.Key words: MCU;DS18B20;temperature acquisition目 录摘 要IABSTRACTII1 绪论11.1选题背景11.2本设计国内外状况11
7、.3本设计的任务和主要内容22 系统总体设计32.1系统概述32.2系统工作原理分析33 系统的硬件设计43.1 温度采集系统的开发过程43.2 单片机的最小系统设计43.2.1 单片机的选型43.2.2 AT89S52的性能及应用53.2.3 时钟电路设计73.2.4 复位电路设计73.3温度采集接口电路设计83.3.1 DS18B20简介83.3.2 DS18B20与单片机的接口设计123.4显示器与键盘电路的设计133.4.1 显示电路设计133.4.2 键盘电路设计143.5 报警电路设计154 多路温度采集系统的软件设计164.1 主程序流程设计164.2 程序设计及巡检子程序设计1
8、74.3巡检键盘及数码管多通道显示194.4 温度报警程序设计225 系统仿真236 总 结26参考文献27致 谢28附录A 多路温度检测系统示意图29附录B DS18B20温度测量程序30榆林学院本科毕业设计(论文)1 绪论本设计主要设计一种多路温度采集检测系统,采用目前低价位但技术十分成熟的AT89S52单片机作为内核,选用DS18B20作为温度传感器,送到显示器循环显示所测的四路温度数值,并根据现场工业需要,设置了一定范围的报警值,报警优先显示,利用按键消除报警。可用按键查看某一路的温度值,查看时数据采集不中断。软件算法上采用了直接拟合的方法(通过电压-温度关系来计算温度值),符合课题要
9、求。本课题构成的多路温度系统具有结构简单、价格低廉、测量精度高、量程宽的特点,在很多场合具有一定的适用性。1.1选题背景温度是工业对象中主要的被控参数之一,在各个种类的企业中应用广泛的各种加热设备、反应炉设备等都需要严格的控制温度。随着时代的进步,科技的发展,各行各业对于温度采集系统的要求也在不断提高以达到设备环境、生产流程的安全要求,也越来越成为温度采集系统的几个重要指标。随着集成电路技术的越来越快、越来越大规模化的发展,由于单片机具有体积小、功能强、性价比高等优点,基于单片机开发出来的一系列采集、控制系统也逐渐受到广泛关注。采取单片机作为核心,可完成对温度的采集要求。所以基于单片机的多路温
10、度采集系统被广泛应用于很多工业过程控制中,使产品既提高了产品的功能和质量,又降低了成本,简化了设计。采用单片机设计的多路温度采集系统,可进行温度检测、采集及显示,对于提高生产效率,节约能源、资源都有非常重要的作用。1.2 本设计国内外状况二十世纪七十年代单片机的出现是近代计算机技术发展史上的一个重要里程碑,单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。在不断的完善通用操作系统的过程中,单片机在数据处理,模拟仿真,人工智能等得到了广泛的应用。单片机目前以8位机为主流,不断增强控制能力,降低成本,减小体积,改善开发环境,以空前的速度迅速而广泛地取代经典电子系统。温度是
11、表征物体冷热程度的物理量,是国际单位制中7个基本物理量之一,它与人类生活、工农业生产和科学研究有着密切关系。随着科学技术的不断提高,温度测量采集技术也在不断的发展着。温度采集是过程控制中的重要课题,各行业对高性能的温度采集系统的需求也在日益增加。在温度采集方面各国均取得了许多可喜的成果,其中前苏联的压石英频率温度计分辨能力可达0.0001摄氏度,而且在-40230摄氏度范围内温度与频率的线性特性;我国生产的石英温度传感器分辨率达到0.0001摄氏度,误差在0.05摄氏度以内。国内的温度控制仪发展经历了三个阶段:第一阶段为动圈式控温仪,显示精度差,升温速度和加热时间设定都不能自动控制;第二阶段为
12、数字式控温仪,精度有所提高,但控制精度低,反应不灵敏;第三阶段为智能型控温仪,带有特有的程序,控制精度高,减少了误差。虽然温度的采集方法有很多种,但在很多情况下,对于一些特殊条件的温度测量来讲,想要的到精确的结果并不容易,需要熟练掌握各种测量方法的原理及特点,同时结合设计要求才能完成。与此同时,还需探究新的采集方法,改进以前的技术,以满足不同条件下的温度采集需要。1.3本设计的任务和主要内容如何基于AT89S52对4路温度进行采集的具体要求,有以下几点:(1)选用哪种传感器将温度信号转化为电信号;(2)单片机外围硬件的电路设计;(3)内部程序的编写。在温度采集系统中我们经常用到集成型温度传感器
13、,集成型传感器可以达到较高的精度,在集成型温度传感器的使用过程中,由于采用的单总线传输方式进行对远距离的多点温度进行检测,故在程序的控制上较复杂。新型温度传感器DS18B20具有体积小、精度高、使用电压宽采用一线总线等优点,在实际应用中取得了良好的测温效果。用四只DS18B20同时采集4路温度。AT89S52单片机P3.7接口接单线总线。单片机有一个全双工的串行通讯口,单片机与电脑之间能更好地进行串口通讯。2 系统总体设计2.1系统概述根据设计要求的性能指标,本系统不仅要满足一定精度的温度采集的基本功能,而且由于测量的路数为4路,还存在多路信号的循环显示问题,还要考虑温度超限报警输出的功能,同
14、时系统还具有显示当前各路的测量温度值的功能和键盘选择显示路数的功能。2.2 系统工作原理分析 在测温系统中我们常常用到集成型温度传感器,集成型温度传感器可以达到较高的精度,在集成型温度传感器的使用过程中,由于采用的单总线传输方式进行对远距离的多点温度进行检测,所以在程序的控制上比较复杂。在温度测量系统中,采用抗干扰能力强的新型数字温度传感器是解决这些问题的最有效方案,新型数字温度传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。根据本课题的设计目标以及硬件的特点,本系统的总体设计框图如图2-1所示AT89S52报警时钟电路键
15、盘电路4位LED显示DS18B20 1DS18B20 2DS18B20 3DS18B20 4 图2-1总体设计框图3 系统的硬件设计一个温度采集系统,包括被采集信息的采集、转换、显示等环节,在本多路温度采集系统设计中,包括CPU的选型以及包括显示电路、存储器、报警电路、电源电路等设计。3.1 温度采集系统的开发过程本设计中以DS18B20为传感器、AT89S52单片机为控制核心组成的多点温度测试系统。用4只DS18B20同时测控4路温度(视实际需要还可扩展通道数)。由于每片DS18B20含有唯一的硅串行数,所以在一条总线上可挂接多个DS18B20芯片。从DS18B20读出的信息或写入DS18B
16、20的信息,仅需要一根口线(单线接口)。读写及温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。DS18B20提供9位温度读数,构成多点温度检测系统而无需任何外围硬件。处理时,将DS18B20信号线与单片机一位口线相连,单片机可挂接多片DS18B20,从而实现多点温度检测系统。由于DS18B20只有三个引脚,其中两根是电源线VDD和GND,另外一根用作总线DQ(Data In/Out),由于其输出和输入均是数字信号且与TTL电平兼容,因此其可以与微处理器直接进行接口,从而省去了一般传感器所必需的中间转换环节。3.2 单片机的最小系统设计3.2.1 单片机的
17、选型目前,生产单片机的厂商有很多,尤其是近年来微电子技术、计算机技术的飞速发展,比较著名的有Intel、Philips、Microchip、Motorola、Zilog、Atmel等半导体企业。在上述著名的半导体企业产品中,尤其在工业测控场合,运用较多的为Intel公司的MCS-51系列,Microchip公司的PIC系列,如果作单路温度测量,恐怕要选择该系列的CPU,但由于本系统涉及的是多路,各路报警的输出信号需要单独输出,而且考虑信号调理电路的切换等还需要不少的控制线,因此该系列的少引脚特点就不适合本设计的需要,因此,本设计还是选用了ATMEL最新的8位单片机AT89S52作为本系统的CP
18、U。下面简单地介绍一下AT89S52。3.2.2 AT89S52的性能及应用功能特性描述:AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,具有8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度易失性存储器技术制造,与工业 80S52 产品指令和引脚完全兼容。片上 Flash 允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 AT89S52 为众多嵌入式控制应用系统提供高灵活、有效的解决案,其引脚如图3-1所示。AT89S52 具有以下标准功能:8k 字节 Flash,256 字节 RAM,32
19、 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或图3-1是AT89S52的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口与P3口复用。其对应的引脚功能:Pin40:正电源脚,正常工作或对片内EPRO
20、M抄写程序时,接+5V电源。Pin19:时钟XTAL1脚,片内振荡电路的输入端。Pin18:时钟XTAL2脚,片内振荡电路的输出端。AT89S52的时钟有两种方式,一种是片内时钟振荡方式,但需在18和19脚外接石英晶体(2-12MHz)和振荡电容,振荡电容的值一般取10PF-30PF;另外一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2脚输入。本设计采用片内时钟电路,外接晶振和电容组成振荡器。图3-1 AT89S52引脚输入输出(I/O)引脚:Pin39-Pin32为。P0.0-P0.7输入输出脚,Pin1-Pin8为P1.0-P1.7输入输出脚,Pin21-Pin28为P2.
21、0-P2.7输硬件复位为止入输出脚,Pin10-Pin17为P3.0-P3.7输入输出脚。在对单片机设计中,P0作为数码管的段选选通端口何数字键盘接口。Pin9:RESET/ 复位信号复用脚,当AT89S52通电,时钟电路开始工作,在RESET引脚上出现2个时钟周期以上的高平,系统即初始复位。初始化后,程序计数器PC指向0000H, P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。 值得注意的是,P0、P1、P2、P3口作为普通I/O口使用时都是准双向口结构,其输入操作和输出操作本质不同,输入操作
22、是读引脚状态,输出是对锁存器的写入操作。当内部总线给口锁存器置0或1时,锁存器中的0、1状态立即反映到引脚上。但在输入操作时,如果锁存器状态为0引脚被钳位0状态,导致无法读出引脚的高电平输入。因此,准双向口作为输入口时,应先使锁存器置1(称之为置输入方式)。然后,再读引脚,例如:要将P1口的状态读入到累加器A中,应执行以下两条指令: MOV P1,#0FFH ;P1口置入方式。MOV A, P1 ;读P1口引脚状态到A。此外,I/O口的端口自动识别功能,保证了无论是P1口(低8位地址)P2口(高8位地址)的总线复用,还是P3口的功能复用,内部资源自动选择不需要用指令进行状态选择。随着计算机技术
23、的发展,单片机的功能越来越强大,寿命长、速度快、低功耗、低噪声、可靠性高的特点及16位、32位单片机的出现,在工业领域仍具有很大的发展潜力。3.2.3 时钟电路设计本设计采用内部时钟方式来为系统提供时钟信号。时钟电路通常由晶震控制芯片、电容和晶体震荡器组成。时钟电路是用来产生AT89C51单片机工作时所需要的时钟信号。一般时钟设计有两种形式:内部时钟和外部时钟。AT89C51单片机内部有一个高增益反响放大器,它用来构成振荡器。此放大器有两个引脚,一个是的输入引脚XTAL1,另一个是输出引脚XTAL2,这两个引脚跨接晶体振荡器和用于微调的电容,目的是用来构成一个自激励振荡器。如图3-2时钟电路,
24、晶体振荡器的频率范围一般在1.2MHz和12MHz之间,单片机的运行速度会受到晶振频率的影响,因此晶振频率的选择很重要。晶振的起振频率有两个,一个是11.0592MHZ,另一个是12MHZ,本设计的AT89S52单片机采用的是12MHz。通常电路中的电容C1和C2的值都取为30PF。电路对外接电容的值尽管没有明确的要求,然而电容的晶体振荡器频率会受到电容大小的影响,以及振荡器的稳定性和起振的快速性都会受到影响。为了减少寄生电容,晶振和电容应该与单片机芯片安装时尽可能的靠近,以确保振荡器稳定,可靠地工作。本设计使用NPO电容,原因是它的温度稳定性比较好。时钟电路如图3-2所示。图3-2 时钟电路
25、3.2.4 复位电路设计为了使系统能够从正确的初始状态开始工作,就必须在启动单片机的时候对单片机复位。对电源+5V而言,电容C3和电阻R3构成了微分电路。对于上电复位,上电以后,复位电路通过电容使RST持续一段时间的高电平,如果RST能够持续充足时间的高电平,系统就有足够的时间复位,那么就实现了系统复位的可靠性。但是,电容的充电时间决定了RST端持续高电平的时间。随着电容充电的完成,RST端变成低电平。如图3-3所示。对于手动按钮复位,它是通过手动操作按键来给RST一个高电平,这种复位方式可以满足设计的要求,原因是,手动按键的时候总是有一个过程,在这个时间段内,系统能够有足够的时间复位。图3-
26、3中:C7=10uf,R21=4.7k图3-3 复位电路3.3温度采集接口电路设计本设计中以DS18B20为传感器、AT89S52单片机为控制核心组成的多点温度测试系统。用4只DS18B20同时测控4路温度(视实际需要还可扩展通道数)。由于每片DS18B20含有唯一的硅串行数,所以在一条总线上可挂接多个DS18B20芯片。从DS18B20读出的信息或写入DS18B20的信息,仅需要一根口线(单线接口)。读写及温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。DS18B20提供9位温度读数,构成多点温度检测系统而无需任何外围硬件。处理时,将DS18B20信号
27、线与单片机一位口线相连,单片机可挂接多片DS18B20,从而实现多点温度检测系统。由于DS18B20只有三个引脚,其中两根是电源线VDD和GND,另外一根用作总线DQ(Data In/Out),由于其输出和输入均是数字信号且与TTL电平兼容,因此其可以与微处理器直接进行接口,从而省去了一般传感器所必需的中间转换环节。3.3.1 DS18B20简介DS18B20是美国Dallas半导体公司推出的第一片支持一线总线接口的温度传感器。它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号供微机处理。DS18B20 特点如下:硬件接口简单,性能稳定,单线接口,仅
28、需一根口线与MCU连接无需外围元件;由总线提供电源;测温范围为-5575;精度为0.5;9位温度读数;A/D变换时间为200ms;用户自设定温度报警上下限,其值是非易失性的;报警搜索命令可识别那片DS18B20超温度限。(1)DS18B20的引脚介绍TO92封装的DS18B20的引脚排列见图3.1,其引脚功能描述见表3-1。表3-1 DS18B20详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。 图3-3 DS18B20的管脚排列(2)DS
29、18B20的产品特点1) 只要求一个端口即可实现通信。2) 在DS18B20中的每个器件上都有独一无二的序列号。3) 实际应用中不需要外部任何元器件即可实现测温。 4) 测量温度范围在55到125之间。 5) 数字温度计的分辨率用户可以从9位到12位选择。6) 内部有温度上、下限告警设置。 7)支持多点组网功能,多个DS18B20可以并联在一根三线上,实现多点测温8) 负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 DS18B20的工作原理是:DS18B20采用3脚PR-35封装,其中 GND为地;I/O为数据输入/输出端(即单线总线),该脚为漏极开路输出,常态下呈高电平;
30、VDD是外部+5V电源端,不用时应接地;DQ为空脚。图3-4所示为DS18B20的内部框图,它主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器(内含RAM),用于存储用户设定的温度上下限值的TH和TL触发器存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分。电源检测存储器控制逻辑温度传感器高温度触发低温度触发64位ROM和单线借口存储器8位CRC触发器图3-4 DS18B20内部结构图DS18B20的一线工作协议流程是:初始化ROM操作指令存储器操作指令数据传输。其工作时序包括复位时序、写时序和读时序,如图3-4,3-5,3-6所示。由于DS18B20采
31、用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S52单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。 由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和
32、命令的传输都是低位在先。DS18B20的复位时序图3-5 DS18B20的复位时序DS18B20的读时序对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时序是从主机把单总线拉低之后,在15s之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60s才能完成。图3-6 DS18B20的读时序DS18B20的写时序对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。图3-7 DS18B20的写时序对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60s,保证DS18B20能
33、够在15s到45s之间能够正确地采样I/O总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15s之内就得释放单总线。LSB设置清除斜率累加器比较预置低温度系数振荡器高温度系数振荡器计数器计数器=0=0温度寄存器预置停止加1图3-8 DS18B20测温原理框图DS18B20的温度测量原理如下:DS18B20测量温度时使用特有的温度测量技术,其测量电路框图如图3-8所示。内部计数器对一个受温度影响的振荡器的脉冲计数,低温时振荡器的脉冲可以通过门电路,而当到达某一设置高温时,振荡器的脉冲无法通过门电路。计数器设置为-55时的值,如果计数器到达0之前,门电路未关闭,则温度寄存器的值将增加,这表
34、示当前温度高于-55。同时,计数器复位在当前温度值上,电路对振荡器的温度系数进行补偿,计数器重新开始计数直到回零。如果门电路仍然未关闭,则重复以过程。温度表示值为9bit,高位为符号位。另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。3.3.2 DS18B20与单片机的接口设计温度采集是工业生产经常遇到的问题。本设计中以DS18B20为传感器AT89S52单片机为控制核心组成的多点温度测试系统。用4只DS18B20同时测
35、控4路温度(视实际需要还可扩展通道数)。本系统采用四位共阳极数码管动态显示温度,系统设有上下限报警电路。该控制系统的功能如下: (1)温度控制得设定范围为0100,最小分辨率为0.5。 (2)实时显示当前温度,可以单通道也可以循环显示。 (3)命令按键5个:通道0通道3按键,巡检键,。3.4 显示器与键盘电路的设计 基于DS18B20的多点温度采集,共模拟了4点温度,具有各点温度采集功能,通过按键设置也可以监控某一通道的温度,还设置报警温度,具有越限报警功能。SW1SW4通道0通道3报警, XUNJIAN为巡检键,关闭进入巡检模式。 在本系统中,由于该温度计还要进行信息的实时显示,所以设计了L
36、ED显示电路。LED显示器采用8段发光二极管。共阳极LED显示器的发光二极管的阳极连接在一起,通常此公共阳极接正电压。该电路由晶体管(NPN)、显示器(共阳极LED)和电阻构成。3.4.1 显示电路设计本设计使用了四块共阳极结构的LED,对数码管的驱动有两种选择,一种是显示驱动器MAX7221,一种选择是三极管驱动。MAX7221的特点是显示多样、需要单片机输入输出口少(只需要3根)、编程灵敏、简单且实用等,但是它是共阴极的驱动器。因此,选择直接由三极管驱动。LED数码管显示器有静态显示和动态显示两种方式。静态显示就是当显示器显示某个字符时侯,和它相应的段(即就是发光二极管)恒定的导通或者截止
37、,直到显示要另一个字符为止。比起动态显示器,静态显示器的亮度较高,编程也很容易,管理也较简单,但就是占用输入输出线资源较多,而且没有位选信号,线路复杂,成本也高。动态显示就是单片机定时的对LED进行扫描,然后使其逐个的显示出结果。当数码管显示的时候,由于人眼的视觉暂留效果,仍然感觉到所有的数码管都同时在显示,此方法用到的是硬件扫描,成本低,但是占用的CPU资源多,亮度也不如静态显示。根据以上所述,本设计选用的显示方示为动态显示。如图3-9为显示电路。图3-9 显示电路3.4.2 键盘电路设计基于DS18B20的多点温度采集,共模拟了4点温度,具有各点温度采集功能,通过按键设置也可以监控某一通道
38、的温度,还设置报警温度,具有越限报警功能。键盘电路如图3-10所示。图3-10 键盘电路3.5 报警电路设计在单片机采集温度发生低于或超出所设定的温度时,单片机系统能相应发出提醒。本次设计采用蜂鸣器。蜂鸣器可用AT89S52的I/O口线通过设置PNP的饱和截止驱动蜂鸣器发声,当I/O口线发出具有一定的低电平信号,即可使蜂鸣器报警。报警电路如图3-11所示。 图3-11 报警电路4 多路温度采集系统的软件设计4.1 主程序流程设计 开始初始化扫描键盘是否有键按下?采集温度是否为单通道显示?显示温度值并且过温度报警循环显示并且过温度报警结束YNYN图4-1 主程序框图(1) 采用模块程序设计。(2
39、) 采用自顶向下的程序设计。 (3) 外部设备和外部事件尽量采用中断方式与CPU联络,这样既便于系统模块化, 也可提高程序效率。 (4) 近几年推出的单片机开发系统, 有些是支持高级语言的,如C51与PL/M96的编程和在线跟踪调试。 (5) 系统的软件设计应充分考虑到软件抗干扰措施。4.2 程序设计及巡检子程序设计程序处理是整个系统的关键,即简洁的硬件结构是靠复杂的软件来支持的。多个器件挂在一条总线上为了识别不同的器件,在程序设计过程中一般有四个步骤:初始化命令;传送ROM命令;传送RAM命令;数据交换命令。由于已经在上面获取了多个DS18B20的ROM代码并在AT89S52单片机内部的E2
40、PROM中建立了测量位置点和传感器64位ROM代码之间的关系表,因此对多个温度的巡回测量流程图如图4-2所示。开始复位DS18B20发出搜索ROM的命令返回读在线DS18B20序列号所有在线DS18B20是否访问完?是否存在一个DS18B20?初始化DS18B20启动所有在线的DS18B20作温度A/D转换跳过ROM命令;转换命令延时104s初始化DS18B20执行期间匹配命令发一个DS18B20序列号发读暂存RAM命令读匹配的DS18B20温度YNYN图4-2巡检显示子程序流程图(1) 发跳过ROM命令CCH。(2) 发启动所有在线的DS18B20进行温度转换命令44H。(3) 延迟104s
41、。(4) 发匹配ROM命令55H。(5) 按照E2PROM中建立的关系表的顺序取出64位ROM代码发送到单总线。(6) 发读温度值命令BEH,读取温度值。(7) 进行CRC校验和数据处理后送LED显示器显示。(8) 重复第4步到第7步,直到所有的DS18B20测量处理完。需要注意的是,无论是单点还是多点温度检测,在系统安装及工作之前,应将主机逐个与DS18B20挂接,读出其序列号。其工作过程为:主机发出一个脉冲,待0电平大于104s后,复位DS18B20,在DS18B20所发响应脉冲由主机接收后,主机再发读ROM命令代码33H,然后发一个脉冲(104s),并接着读取DS18B20序列号的一位。
42、用同样方法读取序列号的56位。另外,由于DS1820单线通信功能是分时完成的,遵循严格的时隙概念,因此,系统对DS18B20和各种操作必须按协议进行,即初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。在正常测温情况下,DS18B20的测温分辨力为0.5。采用下述方法可获得高分辨率的温度测量结果:首先用DS18B20提供的读暂存器指令(BEH)读出以0.5为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度的整数部分,然后再用BEH指令取计数器1的计数剩余值和每度计数值。考虑到DS18B20测量温度的整数部分以0.25和0.75为进位界限
43、的关系。4.3巡检键盘及数码管多通道显示选用高亮度发光LED器件。温度数据按动态方式显示,将采集到的数值通过标度转换由四位数码管显示。其段选段接P0,位选信号由P2.2、P2.3、P2.4和P2.5设置。存放位置:6AH6DH为0通道设定值存放单元(依次为小数位,个位,十位,百位数);6EH6FH,76H77H为1通道设定值存放单元(依次为小数位,个位,十位,百位数);78H7BH为2通道设定值存放单元(依次为小数位,个位,十位,百位数);7CH7FH为3通道设定值存放单元(依次为小数位,个位,十位,百位数);51H54H显示值存放单元(调温度闪烁时再送回显示单元)。各显示按键功能如表4-1所
44、示。表4-1 显示按键按 键 功 能 XUNJIAN键 用于控制循环显示各通道温度数据 SW1用于实时显示“0”通道的温度数据 SW2 用于实时显示“1”通道的温度数据 SW3 用于实时显示“2”通道的温度数据 SW4 用于实时显示“3”通道的温度数据 系统经过初始化,进入多通道显示,然后扫描键盘,判断是否有按键按下,然后进行按键所控制的通道的温度采集。所采集的温度与设定的温度相比较,越限可以报警。多通道数据显示流程图如图4-3所示。开始单通道显示方式 扫描键盘 是SW1吗? 是否有键按下? 是SW2吗? 是SW3吗?显示1通道数据 过温度报警及温度显示显示2通道数据 过温度报警及温度显示显示
45、3通道数据 过温度报警及温度显示显示4通道数据 过温度报警及温度显示是XUNJIAN模式吗?返回 YNY 是SW4吗?YYYNNNNNY图4-3 多通道数据显示4.4 温度报警程序设计由于DS18B20需要初始化才能使用,因此,首先必须对系统进行初始化并且要关闭所有中断,DS18B20把转换到的温度读出,然后放到累加器A中,把之前设置的温度报警的上限值转换成DS18B20的输出值,这样然后再与报警上限的温度值进行比较,如果检测的结果是温度没有超限,那么系统继续进行检测。温度报警的程序流程如图4-4所示。报警程序入口DS18B20初始化DS18B20转换值温度是否过高?自动报警温度降低,是否有按键接触?报警结束
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100