温度传感器应用设计 2

更新时间:2024-05-14 08:51:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

编号:

传感器综合设计实训

实训(论文)说明书

题 目: 温度传感器应用设计 院 (系): 信息与通信学院 专 业: 电子信息工程 学生姓名: 学 号:

指导教师: 王守华、童有为、李秀东、

归发弟、胡机秀

2012年 7月 4 日

摘 要

随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测与显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,需要外加信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。数字温度计是一种利用数字显示温度的装置,与传统的水银温度计相比,它具有测温准确,显示直观等优点,因而得到了广泛的应用。

本文的设计主要是基于DS18B20的数字式温度传感器,它具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。本文的设计以STC89C52单片机为主控制器,采用DS18B20数字温度传感器作为测温元件,采用1602LCD液晶显示模块,它是一种可编程的器件,实现温度显示。本次的设计分为两个模块:一是硬件设计,包括温度采集电路、显示电路以及报警电路;二是对系统软件部分的设计,应用汇编语言实现温度的采集与显示。通过DS18B20直接读取被测温度值,送入单片机进行数据处理,之后进行输出显示,最终完成了数字温度计的总体设计。其系统构成简单,信号采集效果好,数据处理速度快,便于实际检测使用。

关键词:STC89C52;DS18B20;1602LCD液晶显示;蜂鸣器;

Abstract

With the rapid development of modern society, swift development and traditional industry transformation's gradual realization. Able to work independently of the temperature detection and display system used in many other fields. Traditional temperature examination take thermistor as temperature sensitive unit. Thermistor's cost is low, needs the sur- signal processing electric circuit, moreover the reliability is relatively bad, the temperature measurement accuracy is low, the examination system also has certain error.Digital thermometer is a device with digital display of temperature, compared with the conventional mercury thermometer, it has a temperature measurement accuracy, visual display, etc., which have been widely used.

This design is mainly based on the digital temperature sensor DS18B20. It has convenient readings, temperature measuring range, temperature measurement precision, the digital display, wide application scope etc. Characteristics. This paper designed to STC89C52 single chip computer is used as controller, the digital temperature sensor DS18B20 as temperature sensor, using 1602 LCD module. It is a programmable devices, realize temperature display. This design is divided into two modules: one is the hardware design, including the temperature acquisition circuit and display circuit. The second part of the design of the system software, application assembly language realize the collection of temperature and display. Through the DS18B20 directly read temperature being measured, into the single chip microcomputer data processing. After the output shown, eventually completed the overall design of digital thermometer. The system structure is simple, signal acquisition effect is good, data processing speed, and it is easy to use the actual detection. Key words: STC89C52 ;DS18B20;1602 LCD;Duzzer

桂林电子科技大学实训(论文)报告用纸 第 1 页 共1页

目 录

引言 ...................................................................... 1 1 绪论 ................................................................... 1 1.1 课题背景 .............................................................. 1 1.2 课题设计的目的及意义 .................................................. 2 1.3 技术要求及指标 ........................................................ 2 2 硬件基础知识及设计思路介绍 ............................................. 3 2.1 MCS-52单片机的总体结构 ............................................... 3 2.1.1 MCS-52单片机包含的功能部件: ....................................... 3 2.2 温度采集电路的设计 .................................................... 4 2.2.1 DS18B20内部结构 .................................................... 4 2.2.2 DS18B20测温原理 .................................................... 4 2.3 温度显示电路的设计 .................................................... 5 2.4时钟控制电路 .......................................................... 6 2.5按键控制电路 .......................................................... 7 2.6 复位电路 .............................................................. 7 2.7蜂鸣器电路 ............................................................ 7 3 系统软件设计 ........................................................... 8 3.1主程序 ................................................................ 8 3.2读出温度子程序 ........................................................ 8 3.3 显示子程序 ............................................................ 8 3.4 报警子程序 ............................................................ 9 4 系统调试 ............................................................... 9 5 结论 .................................................................. 10 谢辞 ..................................................................... 12 参考文献 ................................................................. 13 附录 ..................................................................... 14 附录1:整体电路原理图 ................................................... 14 附录2:PCB排版图 ........................................................ 15 附录3:整体程序 ......................................................... 16

桂林电子科技大学实训(论文)报告用纸 第 1 页 共25页

引言

DS18B20是美国DALLAS公司生产的一线式数字式温度计芯片,它具有结构简单,不需外接元件,采用一根I/ O数据线既可供电又可传输数据、并可由用户设置温度报警界限等特点,可广泛用于食品库、冷库、粮库等需要控制温度的地方。DS18B20是DS1820的改进型产品,但该产品具有比DS1820更好的性能,目前,该产品已成为DS1820的替代品而在温控系统中得到广泛的应用.它是支持 “一线总线”接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。DS18B20支持3V~5.5V的电压范围,使系统设计更灵活、方便。

温度传感器的应用设计,以DS18B20作为检测元件,并设置了超限报警功能,如果测得的温度超过了预设温度值,蜂鸣器将会发出报警信号,同时1602LCD正常显示温度值,按下复位键系统停止报警,系统将再次检测测得的温度值,若在预设范围内,1602LCD正常显示测得的温度值,否则产生报警信号。而且传感器DS18B20是采用3线制与单片机相连,减少了外部的硬件电路,主控制器通过软件处理接收到的数据,从而使得整个系统具有低成本、易使用和稳定性高等特点。在通信以及其他相关领域有着不可忽视的美好前景!

1 绪论

1.1 课题背景

单片机自1976年由Intel公司推出MCS-48开始,迄今已有三十多年了。由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域,对各个行业的技术改造和产品更新换代起着重要的推动作用。

MCS-51系列及80C51单片机有多种品种。它们的引脚及指令系统相互兼容,主要在内部结构上有些区别。目前使用的MCS-51系列单片机及其兼容产品通常分成以下几类:基本型、增强型、低功耗型、专用型、超8位型、片内闪烁存储器型。其中ATMEL公司的标准型AT89单片机因其与MCS-51的完全兼容性、优良的工作性能、使用的灵活性以及较高的性能价格比,成为AT89系列单片机的主流机型,在嵌入式控制系统中获得广泛应用。

桂林电子科技大学实训(论文)报告用纸 第 2 页 共25页

1.2 课题设计的目的及意义

MCS-51系列及80C51单片机有多种品种。它们的引脚及指令系统相互兼容,主要在内部结构上有些区别。目前使用的MCS-51系列单片机及其兼容产品通常分成以下几类:基本型、增强型、低功耗型、专用型、超8位型、片内闪烁存储器型。其中ATMEL公司的标准型AT89单片机因其与MCS-51的完全兼容性、优良的工作性能、使用的灵活性以及较高的性能价格比,成为AT89系列单片机的主流机型,在嵌入式控制系统中获得广泛应用。

温度是我们日常生活中实时接触到的物理量,但是它是看不到的,仅凭感觉只能估测到大概的温度值。传统的水银温度计虽然能指示温度,但是精度低,反应速度慢,误差大,显示不够直观。数字温度计的出现可以让人们直观的了解自己想知道的温度到底是多少。

当前,主要温度仪表,如热电偶、热电阻及辐射温度计等在技术上已经成熟,但是它们只能在传统的场合应用,尚不能满足简单、快速、准确测温的要求,尤其是高科技领域。因此,各国专家都在有针对性地竞相开发各种新型温度传感器及特殊与实用测温技术,如采用光纤、激光及遥感或存储等技术的新型温度计已经实用化。由于许多质量高、价格低,使用简单的传感器和数字化测量仪表一起使用,以及微型计算机、微处理器和各种大规模集成电路的迅速普及,使今天的数字测量仪表远优于传统的测量仪表。数字化测量是一种发展十分迅速的综合性应用技术。利用数字化测量仪表的计量技术、测量系统,不但能可靠地获得大量准确的信息,而且能极其迅速地对信号进行有效的处理,还可以实现自动化测量功能。因此作为自动化、智能化测量系统的基础和核心的数字化仪器仪表,在我国现代化建设中将发挥越来越重要的作用。

本文介绍了利用DS18B20的数字式温度传感器设计并制作的一款基于1602 LCM液晶显示的数字温度计能有效克服传统的缺点和不足,与传统的温度计相比,输出温度采用液晶显示,具有读数方便、测温稳定准确、精度高、测量范围广、低能耗等优点,很适合日常温度的测量。 1.3 技术要求及指标

(1)根据设计要求,选用STC 89C52单片机为核心控制器件;

(2)温度检测器件采用DS18B20数字式温度传感器,利用单总线式连接方式与单片机 的串行接口P0.0引脚相连;

(3)显示电路采用1602 LCM液晶显示器接P1口并行显示温度值

(4)温度测量范围从一55℃~+125℃,一10~+85℃时测量精度为±0.5℃; (5)用户可自设定非易失性的报警上下限值; (6)报警搜索命令可以识别哪片Dsl8820温度超限;

桂林电子科技大学实训(论文)报告用纸 第 3 页 共25页

2 硬件基础知识及设计思路介绍

2.1 MCS-52单片机的总体结构

2.1.1 MCS-52单片机包含的功能部件:

8位CPU ;振荡器和时钟电路(20MHz);256字节的片内数据存储器RAM;8K字节片内程序存储器ROM;可寻址扩展的外部程序存储器和数据存储器各64K;21个特殊功能;存器SFR;32线双向,可独立寻址的并行I/O口;1个全双工串行I/O口;3个16位定时计数/定时器;6个中断源,2级中断优先级;具有较强的位处理(布尔)能力。

表2.1.1 P3各口的第二功能定义

P3各口的第二功能定义 口线 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

KEY112.1.2 单片机电路设计 8J3U1P10P11P12P13P14P15(MOSI)P16(MISO)P17(SCK)P3.3(INT1)P3.2(INT0)P3.5(T1)P3.4(T0)EA/VPPX1X2RESETP3.7(RD)P3.6(WR)P3.0(RXD)P3.1(TXD)ALE/PROGPSEN10113029RXDTXDP0.0(AD0)P0.1(AD1)P0.2(AD2)P0.3(AD3)P0.4(AD4)P0.5(AD5)P0.6(AD6)P0.7(AD7)P2.0(A8 )P2.1(A9 )P2.2(A10)P2.3(A11)P2.4(A12)P2.5(A13)P2.6(A14)P2.7(A15)39383736353433322122232425262728P0P1P2P3P4P5P6P7引脚 10 11 12 13 14 15 16 17 第二功能 RXD(串行输入口) TXD(串行输出口) /INT0(外部中断0) /INT1(外部中断1) T0(记时器0外部输入) T1(记时器1外部输入) /WR(外部数据存储器写选通) /RD(外部数据存储器读选通) VCC123456789J1

7654321CON8KEY22KEY33KEY4456781312151418B20218B201BUZZRSRWENVCCX1X2RET31191891716

AT89S51 图2.1.2 单片机电路设计

桂林电子科技大学实训(论文)报告用纸 第 4 页 共25页

2.2 温度采集电路的设计 2.2.1 DS18B20内部结构

图3.6为DS1820的内部结构框图,它主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器(内含便笺式RAM),用于存储用户设定的温度上下限值的TH和TL触发器存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分。

64温度传感器 高温触发器TH 存储与控制逻辑 位 ROM

和单线接口 高速缓存配置寄存器 8位CRC发生器 温度传感器DS18B20的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM,高速暂存RAM的结构为8字节的存储器。

对应的温度计算:当符号位S=0时,表示测得的温度植为正值,直接将二进制位转换为十进制;当S=1时,表示测得的温度植为负值,先将补码变换为原码,再计算十进制值。 2.2.2 DS18B20测温原理

低温度系数振荡器 计数器1 预置 斜率累加器 比较 图3.6 DS18B20内部结构框图

预置

图2.2.2 DS18B20测温原理图

Tx =0 温度寄存器 高温系数振荡器 计数器2 =0

桂林电子科技大学实训(论文)报告用纸 第 5 页 共25页

减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器 1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3.8中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。

另外,由于DS18B20单线通信功能是分时完成的,它有严格的时间概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。 2.2.3 温度采集电路

本次设计用了两个DS18B20实现两路温度采集,

VCCU1KEY11KEY22KEY33KEY4456781312151431191891716P10P11P12P13P14P15(MOSI)P16(MISO)P17(SCK)P3.3(INT1)P3.2(INT0)P3.5(T1)P3.4(T0)EA/VPPX1X2RESETP3.7(RD)P3.6(WR)AT89S51P3.0(RXD)P3.1(TXD)ALE/PROGPSEN10RXD11TXD3029EEP0.0(AD0)P0.1(AD1)P0.2(AD2)P0.3(AD3)P0.4(AD4)P0.5(AD5)P0.6(AD6)P0.7(AD7)P2.0(A8 )P2.1(A9 )P2.2(A10)P2.3(A11)P2.4(A12)P2.5(A13)P2.6(A14)P2.7(A15)39383736353433322122232425262728P0P1P2P3P4P5P6P7123456789J1VCCR74.7KGND18B202123CON318B201123CON3VCCR64.7KRSRWENGNDVCC18B201图2.2.3 温度采集电路

2.3 温度显示电路的设计

本次温度传感器设计用了1602液晶显示。.显示比较方便控制简单,成本较低。其电路图接法如下图所示 :

桂林电子科技大学实训(论文)报告用纸 第 6 页 共25页

1602采用标准的16脚接口,其中:

第1脚:VSS为地电源

L11602GNDVCC 第3脚:V0为液晶显示器对比接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以

ERWRSV0CVCGNDD7D6D5D4D3D2D1D0 第2脚:VDD接5V正电源

GND度调整端,接正电源时对比度最弱,

P7P6P5P4P3P2P1P0ENRWRS16151413121110987654321通过一个10K的电位器调整对比度 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

S6GNDSW-PBVCCR2POT2VCC 图2.3 1602显示部分

第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。 第15脚:背光电源正极 第16脚:背光电源负极 2.4时钟控制电路

时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。

在本次设计当中我们选用的是:内部时钟方式,利用单片机的引脚18(XTAL2)和引脚19 (XTAL1)外接晶振及电容,与片内可以构成振荡器的反向放大器一起组成工作主频电路,如图3.1所示。AT89C52的工作频率取决于晶振Y1的频率。采用晶振的目的是可以提高工作频率的稳定性。图4—1中的C2、C3的作用是稳定频率和快速起振, 电容值一般在5~30pF。典型值为27pF,我们取12MHz。在设计电路板的时候应使C2、C3和Y1尽量靠近单片机芯片,以减少分布电容所引起对振荡电路的影响。

时钟控制电路的接法如下图: C3

C230p30pXTAL2(18)Y111.0592XTAL1(19)AT89C52时钟产生方式通常有两种:一是内部时钟方式,二是外部时钟方式。

图2.4 时钟控制电路

桂林电子科技大学实训(论文)报告用纸 第 7 页 共25页

2.5按键控制电路

按键控制开关电路,实现控制某一路温度采集电路,以及控制上下限的调节。D1、D2发光二极管用来显示那一路18B20被采集。 2.6 复位电路

当在STC 89C52单片机的REST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。 在实际的应用当中复位操作有两种形式种是

GNDVCCD1D2LEDLEDR31KS2SW-PBS3SW-PBS4S5SW-PBSW-PBR41KKEY1KEY2KEY3KEY4上电复位,另一种是按键复位电路。

图2.7 按键电路

C1+5VC1+5VRESTKC1VCCR1200R1+RESTREST (9脚 )10uFR2R1R210KS1

图5—1 上电复位电路 图5—2按键复位电路 图5—3 复位电路

本设计用了图5—2按键复位电路。 2.7蜂鸣器电路

当被采集的温度超过被设定的温度值时,报警器报警,然后按复位键复位,停止报警,1602显示正常的温度值。

图2.7 蜂鸣器电路

BUZZR910KQ1NPN-EBCVCC10LS1SPEAKERR8GND 桂林电子科技大学实训(论文)报告用纸 第 8 页 共25页

3 系统软件设计

该设计中所涉及到的系统程序主要包括主程序、DS18B20初始化子程序、读温度子程序、计算温度子程序以及显示数据刷新子程序等。 3.1主程序

主程序的主要功能是负责温度的实时显示,读出并处理DS18B20的测量温度值。其主要包括4个部分,即初始化部分、读取温度值部分、调用显示子程序以及结束返 回部分。

3.2读出温度子程序

读出温度子程序的主要功能是读出RAM的前两个字节的内容,并对其进行相应处理,以便能用1602 LCD进行显示。其具体程序流程图如图4所示。该子程序首先需关总中断,再调用DS18B20复位初始化子程序,并判断标志位FLAG值是否为逻辑真,再调用写DS18B20子程序以及读DS18B20子程序,并利用温度转换命令将存储的数据进行BCD转换成对应的数值在1602 LCD上显示出来。

关总中断 延迟800ms 调用DS18B20复位初始化子程序 发跳过ROM命令 返回主程序 读暂存器内容 连续两次调用读DS18B20子调用DS18B20复位初始化子程序 标志位FLAGI=1? 发跳过ROM命令 调用写DS18B20子程序 发温度转换命调用写DS18B20子程序 存储数据并进行BCD转换 返回主程序 (图四) 3.3 显示子程序

显示数据子程序主要是对显示缓冲器中的数据用对应的段码表示输出到单片机的P0口,同时扫描单片机的P2.0~P2.3,每位显示延时4722μs,显示完四位数据就返回到主程序。

桂林电子科技大学实训(论文)报告用纸 第 9 页 共25页

3.4 报警子程序

报警子程序是当单片机读取完数据后就开始检测温度值是否超过了预设的温度值范围。其程序流程图如图5所示。

检测TEMPZS是否大于上限

转换成BCD码程序 检测TEMPZS是否 小于下限 报警一次 4 系统调试

电路调试是整个系统功能否实现的关键步骤,我们将整个调试过程分为两大部分:硬件调试和软件调试。

系统的调试以程序为主。硬件调试比较简单,首先检查电路的焊接是否正确,然后可用万用表测试或通电检测.软件调试则可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、读温度子程序、报警子程序、显示子程序等的编程及调试,由于DS18B20与单片机采用串行数据的传送,因此,对DS18B20进行读写编程时必须严格地保证读写时序,否则将无法读取测量结果。本程序采用单片机汇编语言编写,用KEIL uVision2编译器编程调试。软件调试直到能够显示温度值,而且在有温度变化时(如用手去接触)显示温度能改变,并在预设的温度范围内正常显示,超过了预设温度范围继电器动作并保持一直吸合状态,同时蜂鸣器产生报警信号,数码管显示但是显示温度值不断闪烁,直到温度在预设范围内继电器关闭,蜂鸣器停止报警,温度正常显示,此时软件调试基本完成。

调试结果如下图5所示:

桂林电子科技大学实训(论文)报告用纸 第 10 页 共25页

(图5)

5 结论

经过一段时间的学习与研究,本次设计已经全部完成,本设计电路结构简单,调试方便。经验收测试,该数字温度计设计方案正确可行,各项指标稳定可靠。 虽然本文介绍的数字温度计有许多优点,但在设计当中也存在一些不足,如温度传感器测温时有一定的时间延迟,系统反应缓慢。另外,与单片机控制的智能温度计相比,该数字温度计系统功能单一。由于采用专用集成芯片控制,可扩展空间有限,没有添加超温报警,日期显示等附加功能。

设计过程是发现问题,解决问题的过程,进而完善软件程序的过程。对与我们总体设计来讲,还必须考虑硬件系统与软件系统相协同的问题,还有它们之间的接口问题,因为任何一个环节出了问题,整个系统将无法工作,这就要求设计的各个部分互相协同。考虑整体的协调性是否良好。这就要求设计工作时各个设计者之间要相互协调与合作。除此之外,我们要在拥有扎实的专业知识的前提条件下,在整个设计与调试过程中要有信心和耐心,要持之以恒,坚持不懈。要知道设计工作不是一天两天的事情,最需要的就是恒心与耐力,不畏困难的精神。只要你持之以恒,多查资料设计总会成功。在调试中不断发现问题进而解决问题,其本身就是对自己的一次锻炼,培养了自己独立思

桂林电子科技大学实训(论文)报告用纸 第 11 页 共25页

考,动手解决问题的能力。从而从各个方面得到提高与完善自己,使自己的各个方面提高到一个新的台阶,同时为以后的工作打下基础。

在做实训计之初,我查了很多关于温度传感器的设计资料,我发现经了长时间的实践的检验,而我几乎从零开始做,我发现自己很难找到创新点,即使成功了也是对前人工作的一次重复,一度我很茫然,前人的设计何在?但是经过仔细思考,我端正了自己的态度,同时我也找到了姑且算作创新点的所在,作好了一切准备工作之后便开始了紧张的毕业设计工作。做单片机实训设计的这段时间是紧张的一段时间,也是重新学习努力探索的一段时间,更是充满收获喜悦的一段时间。经过这次实训设计,我学会了许多新知识,学会了如何查找资料,学会了遇到问题先分析问题解决问题的能力,学会了如何充分的利用网络资源来提高自己的文化知识和专业知识,学会了单片机系统开发的一般流程;也明白了许多不曾明白的道理,明白了求学应当有严谨的作风,并且更应该有锲而不舍、坚强的韧劲。

桂林电子科技大学实训(论文)报告用纸 第 12 页 共25页

谢 辞

为期两周的传感器已经圆满结束。经过本人的不懈努力以及老师的耐心指导和热情帮助,本次实训顺利完成。在此,要特别鸣谢指导教师以及实验室的各位老师们!

在此我要感谢指导教师给我的提供了宝贵的意见,感谢学校给我们这提供实训的机会。特别感谢实验室的老师和同学们在调试阶段给予的大力支持,给我们提供了一个良好的设计环境,使用工具,为我们的毕业设计能够顺利完成提供了强大的后勤保障。

最后,衷心的感谢在百忙之中抽时间来对我的实训论文进行审阅、评议和参加论文答辩的各位老师!由于个人水平有限,设计中存在许多缺陷以及不足之处,敬请各位老师给予批评改正。

谢谢!

桂林电子科技大学实训(论文)报告用纸 第 13 页 共25页

参考文献

[1] 戴永成等.基于DS18B20的数字温度测量仪.北华航天工业学院学报,2008 [3] 廖常初.现场总线概述.电工技术,1999

[4] 张越等.基于DS18B20温度传感器的数字温度计.微电子学,2007 [5] 李朝青.单片机原理及接口技术.北京航空航天大学出版社,1998 [6] 黄河.基于DS18B20的单总线数字温度计.湘潭师范学院学报,2008 [7] 李广弟.单片机基础.北京航空航天大学出版社,1994

[8] 王建强等.基于DSP控制器与DS18B20的温度测量方法.仪器仪表与检测技术,2009 [9] 丁镇生.传感器及传感技术应用.北京:电子工业出版社,1998. [10] 余孟尝.数字电子技术基础简明教程.北京:高等教育出版社,2006. [11] 黄贤武. 传感器原理与应用. 桂林:高等教育出版社,2007. [12] 徐同举.新型传感器基础[M]. 北京:机械工业出版社,1987.

桂林电子科技大学实训(论文)报告用纸 第 14 页 共25页

附 录

附录1:整体电路原理图

桂林电子科技大学实训(论文)报告用纸 第 15 页 共25页

附录2:PCB排版图

附录3:设计方案框图

电源 STC 89C52主控制器 DS18B20温度采集 报警电路 复位 1602液晶显示 0

桂林电子科技大学实训(论文)报告用纸 第 16 页 共25页

附录4:整体程序

#include #define uchar unsigned char #define uint unsigned int

sbit DQ=P2^2;//ds18b20与单片机连接口 sbit DQ2=P2^3; sbit RS=P2^5; sbit RW=P2^6; sbit EN=P2^7; sbit beep=P2^4; sbit key1=P1^0; sbit key2=P1^1; sbit key3=P1^2; sbit key4=P1^3; uchar h;

unsigned char code str1[]={\ TH:+125 %unsigned char code str2[]={\ %unsigned char code str3[]={\ \//unsigned char code table[]=%uchar fCode[8]; uchar data disdata[5]; uint tvalue;//温度值 uchar tflag;//温度正负标志

unsigned int temp0=0,temp1=0; //unsigned char n=0,m=+125;

/*************************lcd1602程序**************************/ void delay1ms(unsigned int ms)//延时1毫秒(不够精确的) {unsigned int i,j; for(i=0;i

void wr_com(unsigned char com)//写指令// { delay1ms(1);

桂林电子科技大学实训(论文)报告用纸 第 17 页 共25页

RS=0; RW=0; EN=0; P0=com; delay1ms(1); EN=1; delay1ms(1); EN=0; }

void wr_dat(unsigned char dat)//写数据// { delay1ms(1);; RS=1; RW=0; EN=0; P0=dat; delay1ms(1); EN=1; delay1ms(1); EN=0; }

void lcd_init()//初始化设置// {delay1ms(15);

wr_com(0x38);delay1ms(5); wr_com(0x08);delay1ms(5); wr_com(0x01);delay1ms(5); wr_com(0x06);delay1ms(5); wr_com(0x0c);delay1ms(5); }

void display(unsigned char *p)//显示// {

while(*p!='\\0') { }

wr_dat(*p); p++; delay1ms(1);

桂林电子科技大学实训(论文)报告用纸 第 18 页 共25页

}

void init_play0()//初始化显示 { lcd_init(); wr_com(0x80); display(str1); }

void init_play()//初始化显示 { lcd_init(); wr_com(0x80); display(str1); wr_com(0xc0); display(str2); }

void init_play2()//初始化显示 { lcd_init(); wr_com(0x80); display(str1); wr_com(0xc0); display(str3); }

/******************************ds1820 *********************/ void delay_18B20(unsigned int i)//延时1微秒 {

while(i--); }

void ds1820rst()/*ds1820复位*/ { uchar x=0;

DQ = 1; //DQ复位 delay_18B20(4); //延时 DQ = 0; //DQ拉低

delay_18B20(100); //精确延时大于480us DQ = 1; //拉高 delay_18B20(40);

}

桂林电子科技大学实训(论文)报告用纸 第 19 页 共25页

uchar ds1820rd()/*读数据*/ { uchar i=0; }

void ds1820wr(uchar wdata)/*写数据*/ {

uchar i=0; {

for (i=8; i>0; i--)

DQ = 0; uchar dat = 0; for (i=8;i>0;i--)

{ DQ = 0; //给脉冲信号 dat>>=1;

DQ = 1; //给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); }

return(dat);

DQ = wdata&0x01; delay_18B20(10); DQ = 1; wdata>>=1; }

unsigned int read_temp()/*读取温度值并转换*/ {

}

unsigned int val; uchar a,b; ds1820rst();

ds1820wr(0xcc);//*跳过读序列号*/ ds1820wr(0x44);//*启动温度转换*/ ds1820rst();

ds1820wr(0xcc);//*跳过读序列号*/ ds1820wr(0xbe);//*读取温度*/ a=ds1820rd(); b=ds1820rd(); val=b;

桂林电子科技大学实训(论文)报告用纸 第 20 页 共25页

val<<=8; val=val|a;

if(val<0x0fff) {tflag=0;} else {

val=~val+1; }

/*******************************************************************/ void ds1820disp(uint tvalue )//温度值显示 { uchar flagdat;

disdata[0]=tvalue/1000+0x30;//百位数 disdata[1]=tvalue00/100+0x30;//十位数 disdata[2]=tvalue0/10+0x30;//个位数 disdata[3]=tvalue+0x30;//小数位 if(tflag==0)

flagdat=0x20;//正温度不显示符号 else

flagdat=0x2d;//负温度显示负号:-

if(disdata[0]==0x30)

{disdata[0]=0x20;//如果百位为0,不显示 if(disdata[1]==0x30)

{disdata[1]=0x20;//如果百位为0,十位为0也不显示 } }

wr_com(0xc7);

wr_dat(flagdat);//显示符号位 wr_com(0xc8);

wr_dat(disdata[0]);//显示百位 wr_com(0xc9);

tflag=1;

val=val*(0.625);//温度值扩大10倍,精确到1位小数 return val;

}

桂林电子科技大学实训(论文)报告用纸 第 21 页 共25页

wr_dat(disdata[1]);//显示十位 wr_com(0xca);

wr_dat(disdata[2]);//显示个位

wr_com(0xcb);

wr_dat(0x2e);//显示小数点 wr_com(0xcc);

wr_dat(disdata[3]);//显示小数位 //

wr_com(0xcd); wr_dat(0xdf); wr_com(0xcf); wr_dat('C'); return tvalue ;

//复位

}

void DispCode() {

ds1820rst(); ds1820wr(0x33); }

void ds1820rst2()/*ds1820复位*/ { uchar x=0;

uchar ds1820rd2()/*读数据*/ { uchar i=0;

DQ2 = 1; //DQ复位 delay_18B20(4); //延时 DQ2 = 0; //DQ拉低

delay_18B20(100); //精确延时大于480us DQ2 = 1; //拉高 delay_18B20(40);

}

uchar dat = 0; for (i=8;i>0;i--)

{ DQ2 = 0; //给脉冲信号 dat>>=1;

DQ2 = 1; //给脉冲信号

桂林电子科技大学实训(论文)报告用纸 第 22 页 共25页

}

if(DQ2) dat|=0x80; delay_18B20(10); }

return(dat);

void ds1820wr2(uchar wdata)/*写数据*/ {

uchar i=0; {

for (i=8; i>0; i--)

DQ2 = 0;

DQ2 = wdata&0x01; delay_18B20(10); DQ2 = 1; wdata>>=1; }

unsigned int read_temp2()/*读取温度值并转换*/ {

unsigned int val; uchar a,b; ds1820rst2();

ds1820wr2(0xcc);//*跳过读序列号*/ ds1820wr2(0x44);//*启动温度转换*/ ds1820rst2();

ds1820wr2(0xcc);//*跳过读序列号*/ ds1820wr2(0xbe);//*读取温度*/ a=ds1820rd2(); b=ds1820rd2(); val=b; val<<=8; val=val|a;

}

if(val<0x0fff) {tflag=0;} else {

val=~val+1;

桂林电子科技大学实训(论文)报告用纸 第 23 页 共25页

}

tflag=1;

val=val*(0.625);//温度值扩大10倍,精确到1位小数 return val;

}

/*******************************************************************/

void DispCode2() {

ds1820rst2(); ds1820wr2(0x33); }

void beep_p() { }

void key_scan() {

while(1)

if(((tvalue00/100)>3)&&((tvalue0/10)>1)&&((tvalue)>5)) { }

beep=1;

{ if(key1==0)

delay1ms(10); {

if(key1==0)

init_play(); DispCode(); read_temp();//读取温度 ds1820disp();//显示 while(!key1); }

桂林电子科技大学实训(论文)报告用纸 第 24 页 共25页

}

}

if(key2==0) { }

delay1ms(10);

if(key2==0) { }

init_play2(); DispCode2();

read_temp2();//读取温度 ds1820disp();//显示 while(!key2 );

void main() {

init_play0();//初始化显示 delay1ms(1000); beep=0;

TH0=(65536-20000)/256; TL0=(65536-20000)%6; h++; if(h==20) { }

key_scan(); init_play();

read_temp();//读取温度 init_play2();

read_temp2();//读取温度

h=0;

ds1820disp();//显示//读取温度

桂林电子科技大学实训(论文)报告用纸 第 25 页 共25页

ds1820disp();//显示 }

void timer0() interrupt 1 { }

read_temp();//读取温度 init_play2();

read_temp2();//读取温度 ds1820disp();//显示//读取温度

TH0=(65536-20000)/256; TL0=(65536-20000)%6; h++; key_scan(); if(h==20) { } init_play();

h=0;

ds1820disp();//显示

本文来源:https://www.bwwdw.com/article/2f97.html

Top