您好,欢迎来到九壹网。
搜索
您的当前位置:首页基于单片机的多点温度检测系统_毕业论文 精品

基于单片机的多点温度检测系统_毕业论文 精品

来源:九壹网
 西南科技大学本科生毕业论文 Ⅰ

基于单片机的多点温度检测系统

【摘要】

温度是一个和人们息息相关的物理量,温度的变化会给我们带来重大的影响,因此对温度的检测控制非常重要,其检测控制一般使用各式各样的传感器。

本设计使用的是DS18B20,它是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本文结合实际使用经验,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并给出了软件流程图

该系统由上位机和下位机两大部分组成。下位机实现温度的检测并提供标准RS232通信接口,芯片使用了ATMEL公司的ATC51单片机和DALLAS公司的DS18B20数字温度传感器。上位机部分使用了通用PC。该系统可应用于仓库测温、楼宇空制和生产过程监控等领域

【关键字】:温度测量;单总线;数字温度传感器;单片机

1

西南科技大学本科生毕业论文 Ⅱ

【Abstract】

Temperature is a physical quantity and the people closely linked, the changes in temperature will bring significant influence to us, so the detection of the temperature control is very important, the general use of every kind of sensor detection and control.

This design is the use of DS18B20, it is a high precision digital temperature sensor network, because of its unique advantages of single bus, users can easily set up a sensor network, and can make the multi-point temperature measurement circuit is simple, reliable and become. In this paper, combining with practical experience, introduces the hardware of digital temperature sensor DS18B20 with single chip and software programming, and gives the software flow chart

The system consists of host computer and slave computer of two parts. Lower machine to achieve the temperature detection and

provide standard RS232 communication interface chip, use DS18B20 digital temperature sensor ATC51 chip of ATMEL company and the DALLAS company. PC part using the generic PC. The system can be applied to the storage temperature, building air conditioning control and production process monitoring and other fields

【 key words 】: temperature measurement, Single bus, Digital temperature sensor, singlechip

2

西南科技大学本科生毕业论文 Ⅲ

目录

【摘要】........................................................................................................................ 1 一、绪论........................................................................................................................ 4 1.1 系统背景 ...................................................... 4 1.2 系统概述 ...................................................... 4 二、方案论证................................................................................................................ 5 2.1 传感器部分 .................................................... 5 2.2 主控制部分 .................................................... 6 2.3 系统方案 ...................................................... 7 三、硬件设计................................................................................................................ 8 3.1 主控制器 ...................................................... 8 3.2 温度传感器 ................................................... 12 3.3 温度测试电路 ................................................. 17 3.4 键盘与显示电路 ............................................... 18 3.5 电源以及看门狗电路 ........................................... 26 四、软件设计.............................................................................................................. 29 4.1 概述 ......................................................... 29 4.2 程序设计 ..................................................... 29 五、结语...................................................................................................................... 32 参考文献...................................................................................................................... 33 致谢.............................................................................................................................. 34 附录............................................................. 35 附录一:温度测试子程序流程图..................................... 33 附录二 主电路电气原理图 .......................................... 34

3

西南科技大学本科生毕业论文

基于单片机的多点温度检测系统

第一章 绪论

1.1 系统背景

21世纪,科学技术的发展日新月异,科技的进步带动了测量技术的发展,现代控制设备的性能和结构发生了翻天覆地的变化。我们已经进入了高速发展的信息时代,测量技术也成为当今科技的一个主流,广泛地深入到研究和应用工程的各个领域。

温度是一个和人们生活环境有着密切关系的物理量,也是一种在生产、科研、生活中需要测量和控制的重要物理量,是国际单位制七个基本量之一。温度的变化会给我们的生活、工作、生产等带来重大影响,因此对温度的测量至关重要。其测量控制一般使用各式各样形态的温度传感器。随着现代计算机和自动化技术的发展,作为各种信息的感知、采集、转换、传输相处理的功能器件,温度传感器的作用日显突出,已成为自动检测、自动控制系统和计量测试中不可缺少的重要技术工具,其应用已遍及工农业生产和日常生活的各个领域。

分布式温度传感器在电力工业、煤矿、森林、火灾、高层建筑、航空、航天飞行器等有着重要的应用前景,引起研究人员的广泛关注。近年来,已经有不少分布式温度传感器的报道,包括基于光纤非线性效应的拉曼温度传感器等,但由于其昂贵的成本而无法得到广泛的应用。

1.2系统概述

本设计使用了美国 Dallas 半导体公司的新一代数字式温度传感器DS18B20,它具有独特的单总线接口方式 ,即允许在一条信号线上挂接数十甚至上百个数字式传感器 ,从而使测温装置与各传感器的接口变得十分简单 ,克服了模拟式传感器与微机接口时需要的A/D转换器及其它复杂外围电路的缺点。

以ATC51单片机作为控制核心,提出了一种基于DS18B20的分布式温度传感系统,多个温度传感节点通过单总线通过单总线与单片机相联形成分布式系统。单片机通过实时监控温度的变化,通过液晶显示温度的数值,当温度值超出允许范围时,报警器开始报警,从而远程实现对整个温度系统的管理和控制。

4

西南科技大学本科生毕业论文

第二章 方案论证

温度检测系统有则共同的特点:测量点多、环境复杂、布线分散、现场离监控室远等。若采用一般温度传感器采集温度信号,则需要设计信号调理电路、A/D 转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降 。所以多点温度检测系统的设计的关键在于两部分:温度传感器的选择和主控单元的设计。温度传感器应用范围广泛、使用数量庞大,也高居各类传

1。 感器之首○

2.1传感器部分

方案一

采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的。而且在温度测量系统中,采用单片温度传感器,比如AD590,LM35等.但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使得测温装置的结构较复杂.另外,这种测温装置的一根线上只能挂一个传感器,不能进行多点测量.即使能实现,也要用到复杂的算法,一定程度上也增加了软件实现的难度。 方案二

AD590是一种单片集成的两端式温度敏感电流源,它具有线性优良、性能稳定、灵敏的高、无需补偿、热容量小、抗干扰能力强、可远距离测温且使用方便的优点。首先要通过温度传感器将温度转换成电量,把它的电流信号转换成电信号,然后放大,输入到A/D转换电路,在输入到数码管显示出来。 方案三

进而考虑到用温度传感器,在单片机电路设计中,大多都使用传感器,所以可以采用一只温度传感器DS18B20,此传感器可以很容易直接读取被测温度值,进行转换就可以满足设计要求。采用数字温度芯片DS18B20测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0—100

5

西南科技大学本科生毕业论文

摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS1820和微控制器ATC51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大,且由于ATC51可以带多个DSB1820,因此可以非常容易实现多点测量.轻松的组建传感器网络。 方案论证

从以上三种方案,很容易看出,方案一、方案二都需要对温度信号进行放大、转换,十分麻烦,电路复杂,且工作量大,稳定性差。方案三,电路比较简单,软件设计也比较简单,故采用方案三。采用温度芯片DSB1820测量温度,可以体现系统芯片化这个趋势。部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更块。而且,集成块的使用,有效地避免外界的干扰,提高测量电路的精确度。所以集成芯片的使用将成为电路发展的一种趋势。本方案应用这一温度芯片,也是顺应这一趋势。

2.2 主控制部分

方案一

此方案采用PC机实现。它可在线编程,可在线仿真的功能,这让调试变得方便。且人机交互友好。但是PC机输出信号不能直接与DS18B20通信。需要通过RS232电平转换兼容,硬件的合成在线调试,较为繁琐,很不简便。而且在一些环境比较恶劣的场合,PC机的体积大,携带安装不方便,性能不稳定,给工程带来很多麻烦。 方案二

此方案采用ATC51八位单片机实现。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信.运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)多点温度数据采集,组成两级分布式多点温度测量的巡回检测系统,实现远程控制。另外ATC51在工

2。业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟○

方案论证

6

西南科技大学本科生毕业论文

从以上两个方案可以看出,方案二更适合本设计,因为它而且体积小,硬件实现简单,安装方便。故本设计采用方案二

2.3 系统方案

综上所述,传感器部分采用温度传感器DS18B20,主控部分采用ATC51单片机。总体结构方框图如图2.3-1所示。

传感器模块下位机(ATC51)显示模块控制模块上位机(PC)传感器模块下位机(ATC51)显示模块控制模块图2.3-1 总体结构方框图

7

西南科技大学本科生毕业论文

第三章 硬件设计

3.1 主控制器

ATC51是一种集成了众多功能部件、功能强大的单片机,适合于要求硬件功能强大,运算速度块,工作环境恶劣,可靠性高,扩展功能强及低功耗的应用系统。并且它的市场货源充足。所以本设计选择了ATC51单片机。

3简介 ATC51○

ATC51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。ATC2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的ATC51是一种高效微控制器,ATC2051是它的一种精简版。ATC51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案ATC51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,ATC51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

ATC51的特性 ²与MCS-51 兼容

²4K字节可编程闪烁存储器 ²寿命:1000写/擦循环

8

西南科技大学本科生毕业论文

²数据保留时间:10年 ²全静态工作:0Hz-24Hz ²三级程序存储器锁定 ²128*8位内部RAM ²32可编程I/O线 ²两个16位定时器/计数器 ²5个中断源 ²可编程串行通道 ²低功耗的闲置和掉电模式 ²片内振荡器和时钟电路

如图3.1-1 TC51单片机40引脚分布图

图3.1-1 TC51单片机引脚分布图

9

西南科技大学本科生毕业论文

VCC:供电电压。 GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故

P3口也可作为ATC51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入)

10

西南科技大学本科生毕业论文

P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 芯片擦除:

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,ATC51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计

11

西南科技大学本科生毕业论文

数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

3.2 温度传感器

这里我们用到温度芯片DS18B20。DS18B20是DALLAS公司的最新单线数字温

4,具有3引脚TO-92小体积封装形式。测温分辨率可达0.0625℃,度传感器○

被测温度用符号扩展的16位数字量方式串行输出。其工作电源既可在远端引入,也可采用寄生电源方式产生。CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路,而且它体积更小、适用电压更宽、更经济 ,DS18B20是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。它的测量温度范围为 -55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。现场温度直接以“一线总线”的数字方式传

5,如:环境输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量○

控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。DS18B20的性能是新一代产品中最好的,性能价格比也非常出色。继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自

6。 己的经济的测温系统○

总的来说DS18B20的主要特征即: ²全数字温度转换及输出。 ²先进的单总线数据通信。

²最高12位分辨率,精度可达土0.5摄氏度。 ²12位分辨率时的最大工作周期为750毫秒。

12

西南科技大学本科生毕业论文

²可选择寄生工作方式。

²检测温度范围为–55°C ~+125°C (–67°F ~+257°F) ²内置EEPROM,限温报警功能。

²位光刻ROM,内置产品序列号,方便多机挂接。 ²多样封装形式,适应不同硬件系统

DS18B20单线数字温度传感器,即“一线器件”,其具有独特的优点:

采用单总线的接口方式 与微处理器连接时 仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。 单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方 便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。

测量温度范围宽,测量精度高 DS18B20 的测量范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。

在使用中不需要任何外围元件。

持多点组网功能多个DS18B20 可以并联在惟一的三线上,实现多点测温。 供电方式灵活DS18B20 可以通过内部寄生电路从数据线上获取电源。因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而 使系统结构更趋简单,可靠性更高。

测量参数可配置DS18B20的测量分辨率可通过程序设定 9~12 位。

负压特性 电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 掉电保护功能 DS18B20 内部含有 EEPROM ,在系统掉电以后,它仍可保存分辨率及报 警温度的设定值

DS18B20的内部结构如图3.2-1所示。

图3.2-1 DS18B20内部结构图

13

西南科技大学本科生毕业论文

DS18B20的管脚排列如下图3.2-2

图3.2-2 DS18B20的管脚排列

DS18B20引脚功能: ²GND 电压地 ²DQ 单数据总线 ²VDD 电源电压 ²NC 空引脚

18B20共有三种形态的存储器资源,它们分别是:

ROM 只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。数据在出产时设置不由用户更改。DS18B20共位ROM。

RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9字节RAM,每个字节为8位。第1、2个字节是温度转换后的数据值信息,

14

西南科技大学本科生毕业论文

第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。第5个字节则是用户第3个EEPROM的镜像。第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前8个字节的CRC码。

EEPROM 非易失性记忆体用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3EEPROM,并在RAM都存在镜像,以方便用户操作。

DS18B20有4个主要的数据部件:

① 位激光ROM。位激光ROM从高位到低位依次为8位CRC、48位序号和8位家族代码(28H)组成。 ② 温度灵敏元件。

③ 非易失性温度报警触发器TH和TL。可通过软件写入用户报警上下限值。 ④ 配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。DS18B20在0工作时按此寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如图3.2-3所示。

TM R1 R0 1 1 1 1 1 LSB

MSB

图3.2-3 DS18B20配置寄存器结构图

其中,TM:测试模式标志位,出厂时被写入0,不能改变;R0、R1:温度计分辨率设置位,其对应四种分辨率如下表所列,出厂时R0、R1置为缺省值:R0=1,R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。

配置寄存器与分辨率关系如表3.2-1所示:

表3.2-1 配置寄存器与分辨率关系

R0 0 0 1 1 R1 0 1 0 1 温度计分辨率/bit 9 10 11 12 最大转换时间/us 93.75 187.5 375 750 7 高速暂存存储器○

15

西南科技大学本科生毕业论文

高速暂存存储器由9个字节组成,其分配如图3.5所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如图所示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。

温度低位 温度高位 TH TL 配置 保留 保留 保留 8位CRC MSB

LSB

图3.2-4 DS18B20 存储器映像图

温度值格式图DS18B20 温度数据表:

表3.2-2 DS18B20 温度数据表

23 MSB S 22 21 20 2-1 2-2 2-3 2-4 LSB S S S

S 26 25 24 典型对应的温度值表:

表3.2-3 DS18B20温度值表

温度/℃ +125 +25.0625 +10.125 +0.5 0 -0.5 -10.125 -25.0625 -55 二进制表示 0000 0111 1101 0000 0000 0001 1001 0001 0000 0000 1010 0010 0000 0000 0000 1000 0000 0000 0000 0000 1111 1111 1111 1000 1111 1111 0101 1110 1111 1110 0110 1111 1111 1100 1001 0000 十六进制表示 07D0H 0191H 00A2H 0008H 0000H FFF8H FF5EH FE6FH FC90H 16

西南科技大学本科生毕业论文

3.3 温度测试电路

1.硬件连接电路

DS18B20最大的特点是单总线数据传输方式,DS18B20的数据I/O均由同一条线来完成

硬件连接电路如图3.3-1所示:

VCC=5V 4.7K DS18B20 1# DS18B20 DS18B20 DS18B20 2# 3# 20# ATC51 1—WIRE 图3.3-1 温度测试连接电路

本系统为多点温度测试。DS18B20采用外部供电方式,理论上可以在一根数据总线上挂256个DS18B20,但时间应用中发现,如果挂接25个以上的DS18B20仍旧有可能产生功耗问题。另外单总线长度也不宜超过80M,否则也会影响到数据的传输。在这种情况下我们可以采用分组的方式,用单片机的多个I/O来驱动多路DS18B20。在实际应用中还可以使用一个MOSFET将I/O口线直接和电源相连,起到上拉的作用。

2. 对DS18B20的设计的注意事项

(1)对硬件结构简单的单线数字温度传感器DS18B20 进行操作,需要用较为复杂的程序完成。编制程序时必须严格按芯片数据手册提供的有关操作顺序进行,读、写时间片程序要严格按要求编写。尤其在使用DS18B20 的高测温分辨力时,对时序及电气特性参数要求更高。

(2)有多个测温点时,应考虑系统能实现传感器出错自动指示,进行自动DS18B20 序列号和自动排序,以减少调试和维护工作量。

(3)测温电缆线建议采用屏蔽4 芯双绞线,其中一对线接地线与信号线,

17

西南科技大学本科生毕业论文

另一组接VCC和地线,屏蔽层在源端单点接地。DS18B20 在三线制应用时,应将其三线焊接牢固;在两线应用时,应将VCC与GND接在一起,焊接牢固。若VCC脱开未接,传感器只送85.0 ℃的温度值。

(4)实际应用时,要注意单线的驱动能力,不能挂接过多的DS18B20,同时还应注意最远接线距离。另外还应根据实际情况选择其接线拓扑结构。

3.4键盘与显示电路⑦

1.键盘电路

采用阵列式输入,排成4行4列,总共16个按键。16个按键的输入口为P1,当有键按下的时候,通过分别对各行各列进行扫描并查表得出键值。这样可以有效的减少对单片机 I/O口的占用,使单片机有更多的I/O口来实现其他的

功能。使单片机的设计更加灵活有效。 如图3.4-1所示,16个按键排列成4行4列,4个行的引线分别同P1口的P1.4~P1.7相联接,4个列的引线通过一个上拉电阻分别联接到P1.0~P1.3口。 如图3.4-1所示

其中上拉电阻的值:R=4.7V/1.6mA=3KΩ。

在键盘操作过程中若四个按键同时按下时,则需要的上拉电阻值为12KΩ,故此上拉电阻取值为10KΩ。

工作原理:从0列开始,顺序行扫描,即该行输出为0。每扫描一行,读入列线数据,从0开始,列检查,找该行输出为0的列,若无,则顺序扫描下一行,并检查其各列;若找到某列线为0,则该列与检查行交叉的按键为被按下的键。从0行0列开始,顺序将按键编号,就可以按扫描的值得到按键的值。本电路中从P1.3~P1.0顺序输出0,再检查P1.7~P1.4。此键盘的实现要用软件的方法识键和译键。 2.显示电路

(1)LCD与单片机的接口电路LCD与单片机的接口电路如图3.4-2所示:

18

西南科技大学本科生毕业论文 +5R110KR210KR310KR310KS1SW-PBP1.7S5SW-PBP1.6S9SW-PBP1.5S13SW-PBP1.4P1.3S2SW-PBS3SW-PBS4SW-PBS6SW-PBS7SW-PBS8SW-PBS10SW-PBS11SW-PBS12SW-PBS14SW-PBS15SW-PBS16SW-PBP1.2 图3.4-1键盘电路 P1.1P1.0 19 西南科技大学本科生毕业论文

图3.4-2 LCD与单片机的接口电路

20

西南科技大学本科生毕业论文

(2) 引脚分布及功能

①128液晶显示屏共有20个引脚,其引脚名称及引脚编号的对应关系如图3.4-3所示:

VSSVDD12VO3RS4R/W56EDB0DB1DB2DB3DB4DB5DB6DB7CS1CS2/RSTVEE7101112131415161718A19K20图3.4-3 128液晶显示模块引脚分布图

②引脚功能如表3.4-1所示:

表3.4-1 128液晶显示模块引脚功能

引脚 1 符 号 引 脚 功 能 电源地 电源+5V 2 VDD 液晶显示驱动电源0-5V 3 VO H:数据输入;L:指令码输入 H:数据读取;L:数据写入 5 R/W 使能信号。由H到L完成使能 数据线 19 A 17 16 CS2 引脚 符 号 引 脚 功 能 CS1=1:芯片选择左边*点 CS2=1:芯片选择右边*点 VSS 15 CS1 /RST 复位(低电平有效) LCD驱动负电源 4 RS 18 VEE 背光电源(+) 背光电源(-) 6 7-14 E 20 K DB0-DB7 有些型号的模块19、20脚为空脚

(3) 图形液晶显示原理

21

西南科技大学本科生毕业论文

128液晶屏横向一共有128个点,纵向有个点,全屏分为左半屏和右半屏,DDRAM表与128³点的一一对应关系如表3.4-2所示:

表3.4-2 128液晶模块内部结构

左 半 屏 右 半 屏

CS1=1 Y=0 X=0 ↓ X=7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7

DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 0 1 … 62 63 0 1 CS2=1 。。。 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 ↓ DB7 DB0 DB7 DB0 ↓ DB7 DB0 ↓ DB7 56 ↓ 63 8 ↓ 55 62 63 行号 0 ↓ 7 在液晶屏上显示16*16点阵汉字首先将汉字转换成相应的代码,在送入的液晶屏的相应的位置,下面以“学”字的显示为例进行说明,“学”字在液晶屏的上的点阵排布如图3.4-4所示,在显示时先输入汉字的第1页的16位数据,在输入第2页的16位数据,即第1页与第1列的公共部分即为要输入的第1个

22

西南科技大学本科生毕业论文

数据,第1页与第2列的公共部分即为第2个要输入的数据,按照这种取码方式可得出该字代码如下:(注:上面所说的第几页,第几列是相对汉字所说的)。

DB 40h, 30h, 11h, 96h, 90h, 90h, 91h, 96h DB 90h, 90h, 98h, 14h, 13h, 50h, 30h, 00h DB 04h, 04h, 04h, 04h, 04h, 44h, 84h, 7Eh DB 06h, 05h, 04h, 04h, 04h, 06h, 04h, 00h

图3.4-4

图形显示的工作原理与汉字显示相似,如果在某位置显示指定大小的图形时,首先利用图形取模软件,将图形的代码提取出来,再根据显示汉字的原理将每页码的数据写入相应的寄存器中即可。

(4) 图形液晶控制方法 ① 读状态字(Staus Read) Rs 0 R/W 1 DB7 BUSY DB6 0 DB5 ON/OFF DB4 RESET DB3 0 DB2 0 DB1 0 DB0 0 图3.4-5 读状态字

状态字是计算机了解128-1当前状态的唯一的信息渠道。状态字为一个字节,其中仅3位有效位,它们是:

BUSY 表示当前128-1接口控制电路运行状态。BUSY=1表示128正在处理计算机发来的指令或数据。此时接口电路,不能接受除状态字以外的任何操作。

23

西南科技大学本科生毕业论文

BUSY=0表示128接口控制电路,已处于“准备好”状态,等待计算机的访问。

ON/OFF 表示当前的显示状态。ON/OFF=1表示关闭显示状态,ON/OFF表示开显示状态。

RESET 表示当前128-1的工作状态,即反映RST端的电平状态。当RST为低电平状态时,128-1处于复位工作状态,RESET=1。当前RST为高电平状态时, 128-1为正常工作状态,RESET=0。

在指令设置和数据读写时要注意状态字中的BUSY标志。只有在BUSY=0时,计算机对128的操作才能有效。因此计算机在每次对128操作之前,都要读出状态字判断BUSY是否为“0”,则计算机需要等待,直至BUSY=0为止。

② 显示开关设置(Display on/off) RS R/W 0 0 7 0 DB6 0 DB5 1 DB4 1 DB3 1 DB2 1 DB1 1 DB0 D DB图3.4-6 显示开关设置

该指令设置显示开/关触发器的状态,由此控制显示数据的存储器的工作方式,从而控制显示屏上的显示状态。当D=1为开显示设置,显示数据锁存器正常工作,显示屏上呈现所需的显示效果。此时在状态字中ON/OFF=0。当D=0为关显示设置,显示数据锁存器被置零,显示屏呈不显示状态,但显示存储器并没有被破坏,在状态字中ON/OFF=1。

③ 显示起始行设置(Display Start Line) RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 1 1 显示起始行(0~63) 图3.4-7 显示起始行设置

该指令设置了显示起始行寄存器的内容。KS0108有行显示的管理能力,该指令中L5~L0为显示起始行的地址,取值在0~3FH(1~行)范围内,它规定了显示屏上最顶一行所对应的显示存储器的地址。如果定时间隔地,等间距地修改(如加一或减一)显示起始行寄器的内容,则显示屏将呈现内容向上或向下平

24

西南科技大学本科生毕业论文

滑滚动的显示效果。

25

西南科技大学本科生毕业论文

④ 页面地址设置[Set Page ( X address)] RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 1 0 1 1 1 Page(0~7) 图3.4-8 页面地址设置

该指令设置了页面地址X地址寄存器的内容。128将显示存储器分成8页,指令代码中B2~B0就是要确定当前所要选择的页面地址,取值范围为0~7H,代表第1~8页。该指令规定了以后的读/写操作将在哪一个页面上进行。

⑤ 列地址设置(Set Y address) RS 0 0 0 1 Y address(0~63) 图3.4-9 列地址设置

R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 该指令设置了Y地址计数器的内容,DB5~DB0=0~3FH(1~)代表某一个单元地址,随后的一次读或写数据将在这个单元上进行。Y地址计数器具有自动加一功能,在每一次读/写数据后它将自动加一,所以在连续进行读/写数据时,Y地址计数器不必每次都设置一次。页面地址的设置和列地址的设置将显示存储单元唯一地确定下来,为后来的显示数据的读/写作了地址的选通。

⑥ 写指令数据 RS 0 R/W 0 DB7 DB7 DB5 DB4 DB3 DB2 DB1 DB0 指令 图3.4-10 写指令数据

此命令在在E的下降沿有效。

⑦ 写显示数据(Write Display Data) 下列图3.4—11为写现实数据图

26

西南科技大学本科生毕业论文

RS R/W 1 0 7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DB显示数据 图3.4-11 写显示数据

该操作将8位数据写入先前已确定的显示存储器的单元内,操作完成后列地址计数器自动加一。

⑧ 读显示数据(Read Display Date) 下列图3.4—12为写现实数据图 RS R/W 1 1 7 DB6 DB5 DB4 DB3 显示数据 图3.4-12 读显示数据

DB2 DB1 DB0 DB该操作将128.-1接口部的输出寄存器的内容读出,然后列地址计数器自动加一。

3.5 电源以及看门狗电路

1.电源电路

因为单片机工作电源为+5V,且底层电路功耗很小。采用7805三端稳压片即可满足要求。具体电路如图3.5-1所示。

图3.5-1 电源电路

27

西南科技大学本科生毕业论文

2. 看门狗电路

看门狗电路电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段不进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。考虑到底层电路板的工作环境相对恶劣,单片机会受到周围环境的干扰,而出现程序跑飞,死机等一些不可预知的不正常工作现象。本设计为单片机电路添加一个外部看门狗电路。定时查询单片机的工作状态,一但发现异常即对单片机延时重起。保证系统安全可靠的运行。

NE56604能为多种微处理器和逻辑系统提供复位信号,其门限电平为4.2V 。在电源突然掉电或电源电压下降到低于门限电平时。NE56604将产生精确的复位信号。NE56604内置一个看门狗定时器,用于监控微处理器,以确保微处理器的正常运行。看门狗能产生一个系统复位信号用来终止任何由于微处理器故障而引发的不正常的系统操作。

特性:

正负双逻辑输出的有效复位信号 精准的门限电平监测 上电复位内部延时

可利用外部电阻调节的内部看门狗定时器 看门狗定时器的监控周期为100ms典型值 VCC=0.8VDC时产生有效的复位信号典型值 仅需很少的外围元件 具体电路图如图3.5-2所示。

28

西南科技大学本科生毕业论文

图3.5-2 看门狗电路图

29

西南科技大学本科生毕业论文

第四章 软件设计

4.1 概述

整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。各执行模块规划好后,就可以规划监控程序了。

首先要根据系统的总体功能和键盘设置选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系

4.2 程序设计

主程序调用了4个子程序,分别是显示程序、键盘扫描以及按键处理程序、温度测试程序、中断控制程序、单片机与PC机串口通讯程序。

键盘扫描电路及按键处理程序:实现键盘的输入按键的识别及相关处理。 温度测试程序:对温度芯片送过来的数据进行处理,进行判断和显示。 显示程序:控制系统的显示部分。 中断控制程序:实现循环显示功能。

串口通讯程序:实现PC机与单片机通讯,将温度数据传送给PC机 1 主程序设计

将各个功能程序以子程序的形式写好,当写主程序的时候,只需要调用子程序,然后在寄存器的分配上作一下调整,消除寄存器冲突和I/O冲突即可。程序应该尽可能多的使用调用指令代替跳转指令。因为跳转指令使得程序难以看懂各程序段之间的结构关系。而调用指令则不同,调用指令使得程序结构清晰,无论是修改还是维护都比较方便。将功能程序段写成子程序的形式,除了方便调用之外,还有一个好处那就是以后写程序的时候如果要用到,就可以直接调用这个单元功能模块。

主程序流程图如图4.2-1所示

30

西南科技大学本科生毕业论文

开始系统初始化系统硬件测试程序温度显示子程序拨码开关扫描子程序温度测试及处理子程序串口通讯子程序 图4.2-1 主程序流程程序

2各模块子程序设计

下面对主要几个子程序的流程图做介绍:

(1)温度测试子程序设计见附录一:温度测试子程序流程图○

9 (2)中断控制程序设计如图4.2-2所示所示

31

西南科技大学本科生毕业论文

中断入口2S到否NY定时器1重新赋值装下一个温度显示存储单元地址返回

图4.2-2 中断控制程序

32

西南科技大学本科生毕业论文

结语

经过一段时间的不断学习和努力,在霍老师的谆谆教导下,在其他老师及同学们的热心帮助与指导下,基于DS18B20的多点温度测量系统的毕业设计即将结束,基本完成了老师所规定的各项工作任务。

本次设计的基于DS18B20的多点温度测量系统是一种分布式的温度测量系统,它可以远程对温度实现测量和监控,广泛应用于电力工业、煤矿、森林、火灾、高层建筑等场合。系统采用单总线技术,按照DS18B20的通信协议,由主机向DS18B20发送命令,读取DS18B20转换的温度,从而实现对多个环境的温度的测量。

本文介绍了用单片机ATC51控制DS18B20以及,着重分析各单元电路的设计,以及各电路与单片机的接口技术。本文是采用模块化的方式进行叙述,对各模块的设计进行了比较详细地阐述。

经过这一次毕业设计,我学了不少的知识,学会了怎样查阅资料和利用工具书,通过这次毕业设计,我更加深刻地认识到只有将书本与具体的实践相结合,才会有真正的收获,才能巩固自已的所学,认识到自己的不足。

33

西南科技大学本科生毕业论文

参考文献

① 贾诗炜. 多点温度检测系统.

② 潘琢金 译。C8051E020混合信号ISP FLASH微处理器数据手册 Rev1 1 2002.10 ③ http://bike.baidu.com/view/1270245.htm

④ 刘君华.智能传感器系统.西安:西安电子科技大学出版社,1999.

⑤ 魏英智.DS18B20在温度控制中的应用.1003.0794(2005)03—0092—02.2005年第3期 ⑥ 黄贤武,郑筱霞,曲波等. 传感器实际应用电路设计[M]. 成都:电子科技大学出版社,

1997.4-10. ⑦ DS18B20

一线总数线数字式传感器的原理与使用。

http//www.wenqis51com/DS18B20.htm

⑧ 李华.MCU-51系列单片机实用接口技术.北京:北京航空航天大学出版社,1993. 6 ⑨ 月霞,孙传友. DS18B20 硬件连接及软件编程『J』. 传感器世界,2001(12):25- 29.

34

西南科技大学本科生毕业论文

致谢

本设计能够顺利的完成得到了院系领导老师的大力支持和帮助,尤其是我的指导老师霍维容老师,在百忙之中抽出宝贵的休息时间,仔细耐心为我为我指导。设计过程中,霍老师一并帮我分析遇到的种种困难。一直支持,鼓励我要有解决问题的信心,使设计得以顺利的完成。霍老师严谨的治学态度和踏实的工作作风给我留下了深刻的印象,是我学习的榜样。在此,向霍老师致以最诚挚的谢意。同时还要感谢教育和指导过我的所有老师,你们给予我的不仅仅是知识,还有你们对知识孜孜不倦的追求精神和对生活的积极向上态度,使我终身受益。在开发的同时,和同学们之间的相互探讨也使我获益匪浅。在此,对他们表示由衷的感谢!

电子信息技术日新月异地飞速发展,人们总是处在不断学习阶段,再加上我水平有限,所以本设计肯定存在许多不尽如人意的地方,欢迎广大老师和同学批评指正。

最后,再次要感谢我们院的所有老师,他们精心的栽培为我以后的学习和工作打下了坚实的基础。

35

西南科技大学本科生毕业论文

10附录 ○

附录一:温度测试子程序流程图

YY开始 序列号初始化DS18B20 发搜索ROM命令读并存储当前 DS18B20 存在一个DS18B20? N 初始化DS18B20跳过ROM命令温度转换命令us等待1m 转换结束 初始化 DS18B20 序列号温度匹配ROM命令发一个DS18B20读当前DS18B20 N 所有DS18B20所有都访问完毕都访问完毕?

附录一:温度测试子程序流程图

36

西南科技大学本科生毕业论文

附录二 主电路电气原理图

附录二 主电路电气原理图

37

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务