基于DS18B20的多点温度采集系统设计(LCD).doc

上传人:精*** 文档编号:842802 上传时间:2023-09-08 格式:DOC 页数:25 大小:615.98KB
下载 相关 举报
基于DS18B20的多点温度采集系统设计(LCD).doc_第1页
第1页 / 共25页
基于DS18B20的多点温度采集系统设计(LCD).doc_第2页
第2页 / 共25页
基于DS18B20的多点温度采集系统设计(LCD).doc_第3页
第3页 / 共25页
基于DS18B20的多点温度采集系统设计(LCD).doc_第4页
第4页 / 共25页
基于DS18B20的多点温度采集系统设计(LCD).doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、 摘要单片机已在各行业得到广泛应用,为适应更多的应用领域,厂家采取了在一块单片机芯片上集成多种功能部件和大容量存储器的方法。因而,整个应用系统不需要扩展,而体积变小、可靠性增高,使单片机成为真正意义上的单片机系统。本设计是基于STC89C52单片机和DS185B20实现温度的测量系统,单片机在本系统中作为温度输入和显示控制器件,DS18B20被用作温度数据的采集和温度输出器件。本系统采用单总线操作,线路简单,测量值精确,可实现多点测量,并对温度超过限制值,产生报警和数据采集。本系统被广泛应用于温度控制、温度检测、温度采、消防等系统中。关键词 单片机;数据转换;温度显示;3目录一.课程设计总体说

2、明-1 1.1目的-1 1.2基本功能-1 1.3扩展功能-1 1.4课题所达到的功能目标-1 1.5单片机的选择-1 二.硬件系统说明-2 1硬件总体设计方案-2 1.1硬件设计目标-2 1.2硬件功能模块划分-2 1.3主控芯片和关键元器件的选型、接口和引脚介绍-2 2.软件设计-6 2.1流程图-6 三.软件调试说明-7 1.软件性能测试-7四课题开发总结-10五用户操作说明-11六.参考资料-11附录:程序-12一、课题总体设计说明1.1、目的 (1)本实验要实现的是通过DS18B20温度传感器采集温度并在LCD上显示,并学会使用单片机控制DS18B20此类单总线器件,并对数字温度传感

3、器DS18B0进行时序分析。 (2)更进一步了解LCD1602的应用。(3)掌握单片机与PC的远程通信。1.2、基本功能(1)以数字传感器DS1820作为前端采集温度,经过单片机处理后,将外部的温度显示在液晶屏上。(2)可用通过独立式按键来设定温度的上限值和下限值,当坏境温度超过上限值或低于下限值时会自动提示,并在液晶屏上提示温度大于上限值或温度小于下限值。 (3)当单片机检测到DS18B20存在时会在在LCD1602上显示“DS18B20 Succes”,反之则显示“DS18B20 is Wrong,TEMP is No on”。1.3、扩展功能以数字传感器DS1820作为前端采集温度,经过

4、单片机处理后,再通过串口通信,把实时温度值、上限值和下限值显示在用VB语言编辑的计算机软件的界面上并显示出实时温度的变化曲线,当实时温度超过所设定的上限值和下限值时会在用VB语言编辑的计算机软件的界面上提示当前温度超过上限值或下限值,模拟实现设备与计算机的通信,通过计算机对设备的温度检测以及实时监控。1.4、课题所达到的功能目标 (1)能在LCD1602上准确的显示出实时温度;(2)独立式按键能设置报警温度的上限值、下限值和查看所设定的上限值、下限值;(3)当温度大于上限值或低于下限值时在液晶屏上自动提示;(4)通过串口和PC机连接,能够把实时温度值、上限值和下限值显示在用VB语言编辑的计算机

5、软件的界面上并显示出实时温度的变化曲线,当实时温度超过所设定的上限值和下限值时会在用VB语言编辑的计算机软件的界面上提示当前温度超过上限值或下限值。1.5、单片机的选择 本系统采用了51单片机,其体积小巧,携带方便,价格便宜。且USB接口通讯及供电,通讯速度快,无须外接电源。51单片机有一个全双工的串通信口,非常适合与电脑进行通信。二、硬件设计说明 1、 硬件总体设计方案 1.1、硬件设计目标 本系统中通过温度传感器DS18B20的数据线DQ与主控芯片51单片机的P3.3相连接,DS18B20将采集到的数据送给单片机,经过单片机出来后,显示在8位数据线与单片机P0口的液晶LCD上。,当坏境温度

6、超过上限值或低于下限值时会自动提示,并在液晶屏上提示温度大于上限值或温度小于下限值。4个按键K1K4接到单片机的P1.0P1.4,来实现对上限值和下限值的查看与设定。串口经过MAX232的电平转换后R1 OUT和T1 IN接到单片机的RXD与TXD来实现与用VB语言编辑的计算机软件的界面间的通信。液晶LCD的RS、E分别接到单片机的P2.0P2.2来实现单片机控制液晶的读写命令和数据的控制。1.2、硬件功能模块划分 主控芯片显示模块控制模块温度检测模块通信模块(1)AT89S51:实现对整个系统的控制。(2)DS18B20、LCD1602:温度传感器DS18B20的数据线DQ与主控芯片51单片

7、机的P3.3相连接,DS18B20将采集到的数据送给单片机,经过单片机处理后,显示在8位数据线与单片机P0口的液晶LCD上。(3)按键输入:对报警温度上限值TH和下限值TL的设置。(4)串口通信:实现与与用VB语言编辑的计算机软件的界面间的通信。1.3、主控芯片和关键元器件的选型、接口和连接方式定义 1.3.1、主控芯片和关键元器件的选型 (1)主控芯片:AT89S51(2)温度采集:DS18B20 (3)按键:独立式按键(K1K4)(4)显示:LCD1602(5)串口:通过MAX232与单片机的10脚11脚相连1.3.1.1 、AT89S51引脚结构,见图1-1图1-1单片机封装及引脚结构引

8、脚功能说明: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口作为低八位地址接收

9、。 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”后

10、,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周

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

12、/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 1.3.1.2、 DS18B20数字温度传感器介绍 功能介绍 DALLAS最新单线数字温度传感器DS18B20的“一线器件”体积更小、适用电压更宽、更

13、经济 Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20、 DS1822 “一线总线”字化温度传感器 同DS1820一样,DS18B20也 支持“一线总线”接口,测量温度范围为 -55C+125C,-10+85C范围内,精度为0.5C。DS1822的精度较差为 2C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品

14、支持3V5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 DS18B20、 DS1822 的特性 DS18B20可以程序设定912位的分辨率,精度为0.5C。可选更小的方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色! DS1822DS18B20软件兼容,是DS18B20的简化版本。省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为2C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。 继“一线总线”的早期产品后,DS1820开辟了温度传

15、感器技术的新概念。DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。DS18B20的内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如下: DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56

16、位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位,见表2-1。表2-1DS18B20内部温度表示形式这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1

17、再乘于0.0625即可得到实际温度。例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H。见表2-2表2-2DS18B20转化温度形式实际温度值数字输出(二进制)数字输出(十六进制)+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 0

18、0000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6EH-551111 1100 1001 0000FC90H1.3.2、接口和连接方式定义 (1)液晶LCD1602的数据和指令选择控制端RS接到单片机的P2.0,读写控制接到单片节的P2.1,数据读写控制位E接到单片机的P2.2,8位数据线DB0DB7接到单片机的P0口。 (2)4个按键K1K4分别接到单片机的P1.0P1.3。 (3) DS18B20的DQ接到单片机的P3.3.2、软件设计 (1)流程

19、图 三、软件调试说明 1、软件性能测试(1)软件性能测试时用Proteus将画好的仿真图调人用Keil编译后的Temp.hex文件,开始仿真,测试每个按键的功能是否以及实时温度和上下限报警是否与预期计划的一致。(2) 软件性能测试结果如下图: 22 四、课题开发总结 1、总结整个课题的任务完成情况,是否与预期规划的相符合,设计出来的作品性能如何、优缺点本系统完成的与预期计划相吻合,预期所有功能基本实现,作品性能好,突出的优点是本作品的硬件电路做的相当美观,且电路相当稳定,不仅实现了LCD的显示同样也很好的在VB6.0人机界面上绘制出温度变化曲线,根据我们设定的上限提示温度和下线提示温度,判断当

20、前温度有无高温提示或低温提示,如果温度超限,则给出相应的提示信息。并达到了远程功能。 2、硬件宏观上的设计要点,达到的性能指标,存在的问题硬件的设计要点,达到的性能指标与计划预期的一样,没有存在什么问题,可以说此硬件做的相当完美。 3、软件宏观上的设计要点,达到的性能指标、开发编译工具和方法、存在的问题(1)软件设计要点,达到的性能指标几乎达到计划预期的,在设计这个系统的过程还学会了串口调试工具。(2)整个电路的设计仿真过程中除了运用了单片机相关软件外还利用了以下软件Multisim8:用于电路的设计与仿真串口调试助手与模拟串口:用于串口的调试与仿真VB6.0:用于数据的显示与显示温度变化的曲

21、线Protel:电路板的设计五、用户操作说明 第一步:将电路板上的串口与电脑的串口相连接; 第二步:将电路板接上+5V的电源(此时电源指示灯会点亮,会在LCD1602上显示实时温度,如图1所示); 第三步:在VB界面上点击打开串口(此时会在VB界面上显示实时温度,上限温度,下限温度和实时温度变化的曲线,如图2所示)。附:本系统有四个控制按键功能如下 K1:用于查看上下限温度与温度加减切换 K2:用于上限温度的调节 K3:用于下限温度的调节,并兼查看上下限温度时的返回 K4:设定好上限温度与下限温度时的确定键如,当要调上限温度时:首先按下K2,再按K2时上限温度就加1,如果要减1就按下切换按键K

22、1,再按K2即变为减。六、参考资料单片机原理及应用教程 范立南 2006年 1 月单片机原理及应用教程 刘瑞新 2003年 07月附:程序: TEMP_ZH EQU 24H ;实测温度值存放单元 TEMPL EQU 25H TEMPH EQU 26H TEMP_TH EQU 27H ;高温报警值存放单元 TEMP_TL EQU 28H ;低温报警值存放单元 TEMPHC EQU 29H ;正、负温度值标记 TEMPLC EQU 2AH TEMPFC EQU 2BH K1 EQU P1.4 ;查询按键 K2 EQU P1.5 ;设置/调整键 K3 EQU P1.6 ;调整键 K4 EQU P1.

23、7 ;确定键 BEEP EQU P3.7 RELAY EQU P1.3 ;指示灯 LCD_X EQU 2FH ;LCD 字符显示位置 LCD_RS EQU P2.0 ;LCD 寄存器选择信号 LCD_RW EQU P2.1 ;LCD 读写信号 LCD_EN EQU P2.2 ;LCD 允许信号 FLAG1 EQU 20H.0 ;DS18B20是否存在标志 KEY_UD EQU 20H.1 ;设定按键的增、减标志 DQ EQU P3.3 ;DS18B20数据信号 ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV SP,#60H MOV A,#00H MOV R0,#2

24、0H ;将20H2FH 单元清零 MOV R1,#10HCLEAR: MOV R0,A INC R0 DJNZ R1,CLEAR LCALL SET_LCD LCALL RE_18B20 START: LCALL RST ;调用18B20复位子程序 JNB FLAG1,START1 ;DS1820不存在 LCALL MENU_OK;DS1820存在,调用显示正确信息子程序 MOVTEMP_TH,#055H;设置TH初值85度 MOVTEMP_TL,#019H;设置TL初值25度 LCALL RE_18B20A;调用暂存器操作子程序 LCALL WRITE_E2 ;写入DS18B20 LCALL

25、 TEMP_BJ ;显示温度标记 JMP START2START1: LCALL MENU_ERROR;调用显示出错信息子程序 LCALL TEMP_BJ ;显示温度标记 SJMP $START2: LCALL RST;调用DS18B20复位子程序 JNB FLAG1,START1 ;DS18B20不存在 MOV A,#0CCH ;跳过ROM匹配命令 LCALL WRITE MOV A,#44H ;温度转换命令 LCALL WRITE LCALL RST MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE MOV A,#0BEH ;读温度命令 LCALL WRITE LCALL

26、READ;调用DS18B20数据读取操作子程序 LCALL CONVTEMP;调用温度数据BCD 码处理子程序 LCALL DISPBCD;调用温度数据显示子程序 LCALL CONV;调用LCD显示处理子程序 LCALL TEMP_COMP;调用实测温度值与设定温度值比较子程序 LCALL PROC_KEY ;调用键扫描子程序 SJMP START2;循环;* 键扫描子程序 *PROC_KEY:JB K1,PROC_K1 LCALL BEEP_BL JNB K1,$ MOV DPTR,#M_ALAX1 MOV A,#1 LCALL LCD_PRINT LCALL LOOK_ALARM JB

27、K3,$ LCALL BEEP_BL JMP PROC_K2PROC_K1: JB K2,PROC_END LCALL BEEP_BL JNB K2,$ MOV DPTR,#RST_A1 MOV A,#1 LCALL LCD_PRINT LCALL SET_ALARM LCALL RE_18B20 ;将设定的TH,TL值写入DS18B20 LCALL WRITE_E2PROC_K2: LCALL MENU_OK LCALL TEMP_BJPROC_END:RET;* 设定温度报警值 TH、TL *SET_ALARM:LCALL LOOK_ALARMAS0: JB K1,AS00 LCALL B

28、EEP_BL JNB K1,$ CPL 20H.1 ;UP/DOWN 标记AS00: JB 20H.1,ASZ01 ;20H.1=1,增加 JMP ASJ01 ;20H.1=0,减小ASZ01: JB K2,ASZ02 ;TH值调整(增加) LCALL BEEP_BL INC TEMP_TH MOV A,TEMP_TH CJNE A,#120,ASZ011 MOV TEMP_TH,#0ASZ011: LCALL LOOK_ALARM MOV R5,#10 LCALL DELAY JMP ASZ01ASZ02: JB K3,ASZ03 ;TL值调整(增加) LCALL BEEP_BL INC T

29、EMP_TL MOV A,TEMP_TL CJNE A,#99,ASZ021 MOV TEMP_TL,#00HASZ021: LCALL LOOK_ALARM MOV R5,#10 LCALL DELAY JMP ASZ02ASZ03: JB K4,AS0 ;确定调整 LCALL BEEP_BL JNB K4,$ RETASJ01: JB K2,ASJ02 ;TH值调整(减少) LCALL BEEP_BL DEC TEMP_TH MOV A,TEMP_TH CJNE A,#0FFH,ASJ011 JMP ASJ022ASJ011: LCALL LOOK_ALARM MOV R5,#10 LCA

30、LL DELAY JMP AS0ASJ02: JB K3,ASJ03 ;TL值调整(减少) LCALL BEEP_BL DEC TEMP_TL MOV A,TEMP_TL CJNE A,#0FFH,ASJ021 JMP ASJ022ASJ021: LCALL LOOK_ALARM ; MOV R5,#10 LCALL DELAY JMP AS0ASJ022: CPL 20H.1 JMP ASZ01ASJ03: JMP ASZ03 RETRST_A1: DB SET ALERT CODE ,0;* 实测温度值与设定温度值比较子程序 *TEMP_COMP:MOV A,TEMP_TH SUBB A,

31、TEMP_ZH ;减数被减数,则 JC CHULI1 ;借位标志位C=1,转 MOVA,TEMPFC CJNEA,#0BH,COMP SJMPCHULI2COMP: MOV A,TEMP_ZH SUBB A,TEMP_TL ;减数被减数,则 JC CHULI2 ;借位标志位C=1,转 MOV DPTR,#BJ5 LCALL TEMP_BJ3 CLR RELAY RET CHULI1: MOV DPTR,#BJ3 LCALL TEMP_BJ3 SETB RELAY LCALL BEEP_BL RET CHULI2: MOV DPTR,#BJ4 LCALL TEMP_BJ3 SETB RELAY

32、LCALL BEEP_BL RET;-TEMP_BJ3: MOV A,#0CEH LCALL WCOM MOV R1,#0 MOV R0,#2BBJJ3: MOV A,R1 MOVC A,A+DPTR LCALL WDATA INC R1 DJNZ R0,BBJJ3 RETBJ3: DB HBJ4: DB LBJ5: DB !; ;* 显示温度标记子程序 *TEMP_BJ: MOV A,#0CBH LCALL WCOM MOV DPTR,#BJ1 ;指针指到显示消息 MOV R1,#0 MOV R0,#2BBJJ1: MOV A,R1 MOVC A,A+DPTR LCALL WDATA INC

33、 R1 DJNZ R0,BBJJ1 RETBJ1: DB 00H,C;* 显示正确信息子程序 *MENU_OK: MOV DPTR,#M_OK1 ;指针指到显示消息 MOV A,#1 ;显示在第一行 LCALL LCD_PRINT MOV DPTR,#M_OK2 ;指针指到显示消息 MOV A,#2 ;显示在第一行 LCALL LCD_PRINT RETM_OK1: DB DS18B20 OK ,0M_OK2: DB TEMP: ,0;* 显示出错信息子程序 *MENU_ERROR:MOV DPTR,#M_ERROR1 ;指针指到显示消息 MOV A,#1 ;显示在第一行 LCALL LCD_

34、PRINT MOV DPTR,#M_ERROR2 ;指针指到显示消息1 MOV A,#2 ;显示在第一行 LCALL LCD_PRINT RETM_ERROR1: DB DS18B20 ERROR ,0M_ERROR2: DB TEMP: - ,0;*DS18B20复位子程序 *RST: SETB DQ NOP CLR DQ MOV R0,#6BH ;主机发出延时复位低脉冲 MOV R1,#04HTSR1: DJNZ R0,$ MOV R0,#6BH DJNZ R1,TSR1 SETB DQ ;拉高数据线 NOP NOP NOP MOV R0,#32HTSR2: JNB DQ,TSR3 ;等待DS18B20回应 DJNZ R0,TSR2 JMP TSR4 ; 延时TSR3: SETB FLAG1 ; 置1标志位,表示DS1820存在

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922