基于单片机的数字温度计设计

上传人:痛*** 文档编号:41685094 上传时间:2021-11-22 格式:DOC 页数:36 大小:1,016.50KB
收藏 版权申诉 举报 下载
基于单片机的数字温度计设计_第1页
第1页 / 共36页
基于单片机的数字温度计设计_第2页
第2页 / 共36页
基于单片机的数字温度计设计_第3页
第3页 / 共36页
资源描述:

《基于单片机的数字温度计设计》由会员分享,可在线阅读,更多相关《基于单片机的数字温度计设计(36页珍藏版)》请在装配图网上搜索。

1、本科生毕业论文基于单片机的数字温度计设计基于单片机的数字温度计设计 院院 系系 电气信息工程学院电气信息工程学院 专专 业业 电子信息工程电子信息工程 班班 级级 学学 号号 学学 生生 姓姓 名名 联联 系系 方方 式式 指指 导导 教教 师师 职称职称 助教(硕士)助教(硕士) 20122012 年年 5 5 月月独独 创创 性性 说说 明明本人郑重声明:所呈交的毕业论文(设计)是本人在指导老师指导下取得的研究成果。除了文中特别加以注释和致谢的地方外,论文(设计)中不包含其他人已经发表或撰写的研究成果。与本研究成果相关的所有人所做出的任何贡献均已在论文(设计)中作了明确的说明并表示了谢意。

2、签名: 年 月 日授授 权权 声声 明明本人完全了解许昌学院有关保留、使用本科生毕业论文(设计)的规定,即:有权保留并向国家有关部门或机构送交毕业论文(设计)的复印件和磁盘,允许毕业论文(设计)被查阅和借阅。本人授权许昌学院可以将毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编论文(设计)。本人论文(设计)中有原创性数据需要保密的部分为(如没有,请填写“无”): 签名: 年月 日指导教师签名: 年月 日摘摘 要要本设计介绍以 AT89C51 单片机作为控制器,以数字温度传感器 DS18B20 作为温度采集器的数字温度计。用户可自行设置温度的上

3、下限,超出用户设置的上下限时可以进行报警。文中先对各个模块进行分析和设计,并进行流程图的绘制,根据流程图写出 C 语言程序,最后在 KEIL 软件上进行编译、链接,在 Proteus 软件环境中进行仿真,达到了预期效果。关键词关键词:温度测量;单片机;DS18B20;数码管ABSTRACTABSTRACTThis design is introduces a digital temperature thermometer which use the AT89C51 SCM as the controller and the digital temperature sensor DS18B20

4、as the temperature collector. User can set the upper and lower limits by himself. If the temperature is beyond the restraint, it can alarm. Firstly, this paper analyses and designs each sub-module. Then design flow chart and write C language programs according to the flow chart. Finally, links and c

5、ompiles are made in Keil, meanwhile , simulations are made on the Proteus. The expected effects are achieved. Key words: Temperature measurement; AT89C51 SCM; DS18B20; Digital tube 目目 录录1 绪论 .11.1 课题背景及研究意义 .11.2 课题设计主要工作 .21.3 温度传感器的发展背景 .22 总体设计方案 .22.1 设计方案 .32.2 设计原理及组成 .43 系统硬件电路的设计 .43.1 AT89C

6、51 单片机介绍.43.1.1 AT89C51 的基本特性.43.1.2 AT89C51 引脚说明.53.1.3 芯片擦出 .73.2 液晶显示模块简介 .73.2.1 液晶模块功能介绍 .73.2.2 LM016L 引脚介绍.83.3 温度传感器的工作原理 .93.3.1 DS18B20 概述.93.3.2 温度的读取 .113.3.3 DS18B20 的读写操作.123.3.4 DS18B20 测温原理.133.3.5 高速暂存存储器.143.3.6 DS18B20 的单总线读/写时序.153.4 系统硬件总电路 .164 数字温度计软件设计 .164.1 DS18B20 模块.174.2

7、 程序总流程图 .185 系统的调试与仿真 .185.1PROTEUS 软件简介.185.2 KEIL 软件简介.195.3 系统的调试与实现 .195.4 仿真结果 .206 总结 .22参考文献 .23附 录 .24致 谢 .3111 1 绪论绪论1.11.1 课题背景及研究意义课题背景及研究意义随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。温度是工业对象中的

8、一个重要的被控参数。然而所采用的测温元件和测量方法也不相同;产品的工艺不同,控制温度的精度也不相同。因此对数据采集的精度和采用的控制方法也不相同。温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。数字温度计采用温度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等) ,将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即 AD 转换电路将模拟信号转换为数字信号,数字信号再送给处理

9、单元,如单片机或者 PC 机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,如25.0 摄氏度,然后通过显示单元,如LED,LCD 或者电脑屏幕等显示出来给人观察。数字温度计根据使用的传感器的不同,AD 转换电路,及处理单元的不同,它的精度,稳定性,测温范围等都有区别,这就要根据实际情况选择符合规格的数字温度计。 本设计涉及两个方面的内容:一是单片机技术,二是数字化温度传感器技术。本设计选择 Dallas 半导体公司生产的 DS18B20 作为传感器进行温度测量,采用单片机对温度进行控制,不仅具有控制方便、简单和灵活等优点,而且可以大幅度的提高温度控制的

10、技术指标。在数字、智能化方面有广泛的用途。 1.21.2 课题设计主要工作课题设计主要工作本课题的研究重点是设计一种基于单片机的数字温度计控制系统。利用数字温度传感器 DS18B20,此传感器课读取被测量温度值,进行转换。主要工作如下:(1) 温度测试基本范围 0100。(2) 精度误差小于 1。 (3) LED 液晶显示。 2(4) 可以设定温度的上下限报警功能。(5) 实现报警提示。本文是基于 AT89C51 单片机,采用数字温度传感器 DS18B20,利用 DS18B20 不需要A/D 转换,课直接进行温度采集显示,报警的数字温度计设计。包括传感器数据采集电路,温度显示电路,上下限报警调

11、整电路,单片机主板电路等组成。1.31.3 温度传感器的发展背景温度传感器的发展背景温度是一种最基本的环境参数,人们的生活与温度息息相关,因此研究温度的测量方法在人们的生活中起着不可缺少的作用。测量温度的关键是温度传感器,温度传感器的发展历程经历了三个阶段:(1)传统的分立式温度传感器,(2)模拟集成温度传感器,(3)智能温度传感器。国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展。 目前的智能温度传感器(亦称数字温度传感器)是在 20 世纪 90 年代中期问世的,它的特点是能输出温度数据及相关温度控制量,适配各种微控制器,并且它是在硬件的基础上通过软件来实现测试

12、功能的,其智能化程度也取决于软件的开发水平。本文将介绍智能集成温度传感器 DS18B20 的结够特征及控制方法,与传统的温度计相比,其具有读数方便、测温范围广、测温准确、输出温度采用数字显示,主要用于对测温要求比较准确的场所或科研实验室使用。 2 2 总体设计方案总体设计方案2.1 设计方案设计方案 采用数字温度芯片 DS18B20 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在 0100 摄氏度时,最大线形偏差小于 1 摄氏度。DS18B20 的最大特点之一采用了单总线的数据传输,由数字

13、温度计 DS18B20 和微控制器 AT89C52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用 51 单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多 DS18B20 控制工作,还可以与 PC 机通信上传数据,另外 AT89C52 在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。该系统利用AT89C51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。该系统扩

14、展性非常强,它3可以在设计中加入时钟芯片DS1302以获取时间数据,在数据处理同时显示时间,并可以利用AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。2.22.2 设计原理及系统组成设计原理及系统组成 利用温度传感器 DS18B20 可以直接读取被测温度值,进行转换的特性,模拟温度值经过 DS18B20 处理后转换为数字值,然后送到单片机中进行数据处理,并与设置的温度报警限比较,超过限度后通过扬声器报警。同时处理后的数据送到 LED 中显示。

15、 本课题以是89C52单片机为核心设计的一种数字温度控制系统,系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等组成。系统框图主要由主控制器、单片机复位、报警按键设置、时钟振荡、LED显示、温度传感器组成。系统框图如图2-1所示:主控制器LED显示温度传感器单片机复位报警按键设置时钟振荡图 2-1 系统基本方框图1. 主控制器单片机AT89C52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。2. 显示电路4显示电路采用LED液晶显示数码管,从P3口RXD,TXD串口输出

16、段码。显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,只用p3口的RXD,和TXD,串口的发送和接收,四只数码管采用74LS164右移寄存器驱动,显示比较清晰。3. 温度传感器温度传感器采用美国DALLAS半导体公司生产的DS18B20温度传感器。DS18B20输出信号全数字化。便于单片机处理及控制,在0100 摄氏度时,最大线形偏差小于1 摄氏度,采用单总线的数据传输,可直接与计算机连接。用AT89C51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。 3 3 系统硬件电路的设计系统硬件电路的设计3.1 A

17、T89C51 单片机介绍单片机介绍3.1.1 AT89C51 基本特性基本特性AT89C51 是一种低功耗,高性能 CMOS8 位单片机。片内带 4K 字节闪存可编程可擦除只读存储器,其可擦除只读存储器可以反复擦除 1000 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和 80C51 引脚相兼容。由于将多功能 8 位中央 CPU 和闪烁存储器组合在单个芯片中,片上 Flash 允许程序存储器在系统可编程,也适用于常规编程器,ATMEL 的 AT89C51 是一种高效微控制器。AT89C51 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方

18、案。AT89C51 具有以下特点:40 个引脚(具体引脚见图 2-2) ,4K 字节可编程 Flash 片内程序存储器,128*8 位内部 RAM,32 个可编程双向输入/输出(I/O)口,5 个中断源,2个 16 位的可编程定时/计数器,三级程序存储器锁定,可编程的串行通道,片内振荡器和时钟电路。另外 AT89C51 还具有低功耗闲置和掉电模式,可通过软件设置省电模式,在空闲模式下,CPU 暂停工作,而 RAM 计算器和串行口以及外中断系统可以继续工作掉电模式会冻结振荡器进而保持 RAM 数据,停止单片机的其它功能直到外中断激活或者硬件复位动作。 5 图3-1 AT89C51实物图、管脚图3

19、.1.2 管脚说明:管脚说明:VCC:+5V 电源。 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 口被外部下拉为低电平时,将输

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

21、八位地址信号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。6当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,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(外

22、部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3 口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位信号。当输入的复位信号延续 2 个周期以上的高电平时有效,用于完成单片机的复位操作。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。如果微处理器在外部执行状态 ALE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。由外部程序存储器取指期间,每个机器周期

23、两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。 /EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是否有内部程序存储器。当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP) 。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2 不接。

24、7图 3-2 AT89C5 电路仿真图3.1.3 芯片擦除芯片擦除整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE管脚处于低电平 10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。3.23.2 液晶模块简介液晶模块简介3.2.13.2.1 模块的功能介绍模块的功能介绍 LM016L 液晶模块采用 HD44780 控制器,hd44780 具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,LM016L 与单片机 MCU 通讯可采用 8 位或 4 位并行传输两种方式,hd44780 控制器由两个 8

25、位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF) ,显示数 RAM(DDRAM) ,字符发生器 ROMA(CGOROM)字符发生器 RAM(CGRAM) ,地址计数器 RAM(AC)。IR 用于寄存指令码,只能写入不能读出,DR 用于寄存数据,数据由内部操作自动写入 DDRAM 和 CGRAM,或者暂存从 DDRAM 和 CGRAM 读出的数据,BF 为 1 时,液晶模块处于内部模式,不响应外部操作指令和接受数据,DDTAM 用来存储显示的字符,能存储 80 个字符码,CGROM 由 8 位字符码生成 5*7 点阵字符 160 中和 5*10 点阵字符32 种.8 位字符编码和字

26、符的对应关系,可以查看参考文献(30)中的表 4. CGRAM 是为用户编写特殊字符留用的,它的容量仅 64 字节,可以自定义 8 个 5*7 点阵字符或者 4 个5*10 点阵字符,AC 可以存储 DDRAM 和 CGRAM 的地址,如果地址码随指令写入 IR,则 IR 自动把地址码装入 AC,同时选择 DDRAM 或 CGRAM 但愿,LM016L液晶模块的引脚图如图 3-2 所示8图 3-2LM016L 液晶模块的引脚3.2.23.2.2 LM016LLM016L 引脚介绍:引脚介绍:Vss(1 脚):一般接地。Vdd(2 脚):接电源。Vee(3 脚):液晶显示器对比度调整端,接电源时

27、对比度最弱,接地时对比度最高(对比度过高时会产生“鬼影” ,使用时可以通过一个 10K 的电位器调整对比度) 。RS(4 脚):RS 为寄存器选择,高电平 1 时选择数据寄存器、低电平 0 时选择指令寄存器。R/W(5 脚):R/W 为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。E(6 脚):E(或 EN)端为使能(enable)端,下降沿使能。DB0(7 脚):底 4 位三态、 双向数据总线 0 位(最低位) 。DB1(8 脚):底 4 位三态、 双向数据总线 1 位。DB2(9 脚):底 4 位三态、 双向数据总线 2 位。 DB3(10 脚):底 4 位三态、 双向数

28、据总线 3 位。 DB4(11 脚):高 4 位三态、 双向数据总线 4 位。 DB5(12 脚):高 4 位三态、 双向数据总线 5 位。 DB6(13 脚):高 4 位三态、 双向数据总线 6 位。 DB7(14 脚):高 4 位三态、 双向数据总线 7 位(最高位)(也是 busy flang)。 寄存器选择控制如表 4-1。表 4-1 寄存器选择控制RSR/W操作说明00写入指令寄存器(清除屏等)01读 busy flag(DB7),以及读取位址计数器(DB0DB6)值910写入数据寄存器(显示各字型等)11从数据寄存器读取数据如图 3-3 所示。用 89C51 的 P2 口作为数据线

29、,用 P3.2、P3.1、P3.0 分别作为 LCD的 E、R/W、RS。其中 E 是下降沿触发的片选信号,R/W 是读写信号,RS 是寄存器选择信号本模块设计要点如下:显示模块初始化:首先清屏,再设置接口数据位为 8 位,显示行数为 1 行,字型为 57 点阵,然后设置为整体显示,取消光标和字体闪烁,最后设置为正向增量方式且不移位。向 LCD 的显示缓冲区中送字符,程序中采用 2 个字符数组,一个显示字符,另一个显示电压数据,要显示的字符或数据被送到相应的数组中,完成后再统一显示.首先取一个要显示的字符或数据送到 LCD 的显示缓冲区,程序延时 2.5ms,判断是否够显示的个数,不够则地址加

30、一取下一个要显示的字符或数据。图 3-3液晶模块与单片机接口3.33.3 温度传感器的工作原理温度传感器的工作原理3.3.13.3.1 DS18B20DS18B20 概述概述DS18B20 的读写时序和测温原理与 DS1820 相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由 2s 减为 750ms。 DS18B20 测温原理:低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器 1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器 2 的脉冲输入。计数器 1 和温度寄存器被预置在55所对应的一个基数值。计数器 1 对 低温度系

31、数晶振产生的脉冲信号进行减法计数,当计数器 1 的预置值减到 0 时,温度寄存器的值将加 1,计数器 1 的预置将重新被装入,计数器 1 重 新开始对低温度系数晶振产生的脉冲信号进行10计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。DS18B20 功能特点:(1) 独特的单线接口方式,仅需一个端口引脚可实现微处理器与 DS18B20 的双向通信; (2) 使用范围更宽,电源电压范围为 35.5V,在寄生电源方式下可由数据线供电;(3) 在使用 DS18B20 时不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路

32、内;(4) 用户可定义的非易失性温度报警设置;(5) 测温范围为-55+125。在-1085时温度分辨率为0.5,DS18B20 温度传感器可完成对温度的测量,并用 16 位符号扩展的二进制补码的形式输出温度值,DS18B20 输出的数字量与所测温度的对应关系如表 3-2 所列。表 3-2 温度/数据关系温度/数据输出(二进制)数据输出(十六进制)+1250000 0111 1101 000007d0H+850000 0101 0101 00000550H+10.1250000 0000 12010 001000a2H+0.50000 0000 0000 10000008H00000 0000

33、 0000 00000000H-0.51111 1111 1111 1000fff8H-10.1251111 1111 0101 1110ff5eH-551111 1100 1001 0000fc90H11DS18B20 有 4 个主要的数据部件:1. 光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20 的地址序列码。64 位光刻 ROM 的排列是:开始 8 位 (28H)是产品类型标号,接着的 48 位是该DS18B20 自身的序列号,最后 8 位是前面 56 位的循环冗余校验码(CRC=X8+X5+X4+1) 。光刻 ROM 的作用 是使每一个 DS18B

34、20 都各不相同,这样就可以实现一根总线上挂接多个DS18B20 的目的。 2. DS18B20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用 16 位符号扩展的二进制补码读数形式提供,以 0.0625/LSB 形式表达,其中 S 为符号位。3. DS18B20 温度传感器的存储器 DS18B20 温度传感器的内部存储器包括一个高速暂存RAM 和一个非易失性的可电擦除的 EEPRAM,后者存放高温度和低温度触发器 TH、TL 和结构寄存器。3.3.23.3.2 温度的读取温度的读取DS18B20 在出厂时以配置为 12 位,读取温度时共读取 16 位,所以把后 11 位的 2 进

35、制转化为 10 进制后在乘以 0.0625 便为所测的温度,还需要判断正负。前 5 个数字为符号位,当前 5 位为 1 时,读取的温度为负数;当前 5 位为 0 时,读取的温度为正数。DS18B20 的初始化: 1. 先将数据线置高电平“1” 。2. 延时(该时间要求的不是很严格,但是尽可能的短一点) 。3. 数据线拉到低电平“0” 。4. 延时 750 微秒(该时间的时间范围可以从 480 到 960 微秒) 。5.数据线拉到高电平“1” 。6.延时等待(如果初始化成功则在十五到六十毫秒时间之内产生一个由 DS18B20 所返回的的电平据该状态来确定它的存在但是注意不能无限的进行等待,不然会

36、使程序进入死循环,所以要进行超时控制)7. 若 CPU 读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要 480 微秒。8.将数据线再次拉高到高电平“1”后结束。 3.3.33.3.3 DS18B20DS18B20 的读的读/ /写操作写操作 1. 数据线先置低电平“0” 。2. 延时确定的时间为 15 微秒。123. 按从低位到高位的顺序发送字节(一次只发送一位) 。4. 延时时间为 45 微秒。 5. 将数据线拉到高电平。6. 重复上(1)到(6)的操作直到所有的字节全部发送完为止。7. 最后将数据线拉高。 DS18B20 的读操作:

37、1. 将数据线拉高“1” 。2. 延时 2 微秒。3. 将数据线拉低“0” 。4. 延时 15 微秒。5. 将数据线拉高“1” 。6. 延时 15 微秒。7. 读数据线的状态得到 1 个状态位,并进行数据处理。8. 延时 30 微秒。 3.3.43.3.4 DS18B20DS18B20 内部结构内部结构DS18B20 的管脚的排列如图 3-5:27.0DQ2VCC3GND1U3DS18B20图 3-4 DS18B20 引脚图图 3-4 为 DS18B20 引脚图,DS18B20 引脚名称及功能如下表 3-3 所示。表 3-3 DS18B20 引脚名称以及各引脚功能序号名称引脚功能描述1GND接

38、地端2DQ数字信号输入/输出端3VDD外接供电电源输入端(采用寄生电源接线方式时接地)DS18B20 有 4 个主要的数字部件:64 位激光 ROM、温度传感器和非易失性温度报警触发器 TH 和 TL、配置寄存器。如图 3-5 所示13存储器和控制器高速缓存器8位CRC生成器温度传感器高温触发器TH低温触发器TL配置寄存器64位ROM和一线端供电方式选择DQVDDGND图 3-5 DS18B20 内部结构图3.3.53.3.5 DS18B20DS18B20 测温原理测温原理单片 DS18B20 使用时,总线接 5 千欧上拉电阻即可,图 3-7 为 DS18B20 与单片机的连接电路图。图 3-

39、6 DS18B20 与单片机连接电路图DS18B20 的测温过程:用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。图 3-8 为利用单片 DS18B20 温度测量电路方框图。14斜坡式累加器比较低温度系数振荡器预置高温度系数振荡器=0=0预置计数器1计数器2温度寄存器+1LSB置位/清0停止图 3-7 温度测量电路方框图斜坡式累加器用来补偿高温振荡器的非线性,以期在测温时获得比较高的分辨率。这是通过改变计数器对温度每增加 1所需计数的值来实现的。3.3.63.3.6 高速暂存存储器高速暂存存储器 高速暂存存储器由 9 个字节组

40、成,其分配如表 3-4 所示。表 3-4 DS18B20 暂存寄存器分布表寄存器内容及意义暂存器地址LSB0MSB1TH/用户字节 12TL/用户字节 23转换位数设定,由 b5 和 b6(0-R1-R0-11111):R1-R0: 00/9bit 01/10bit 10/11bit 11/12bit至多转换时间:93.75ms 187.5ms 375ms 750ms4保留5保留6保留7CRC 校验8153.3.73.3.7 DS18B20DS18B20 的单总线读的单总线读/ /写时序写时序DS18B20 单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对 DS18B2

41、0 的各种操作按协议进行。ROM 中 64 位序列号的作用是为了可以实现一根总线上挂多个 DS18B20,DS18B20 为单总线工作方式,故该总线的协议非常严格。协议包括几种单线信号类型:复位脉冲、存在脉冲、写“0”、写“1”、读“0”和读“1”。初始化要求总线主机发送复位脉冲(480960us,再将其置为高电平)如图 3-8 所示。主机发复位脉冲40usTx”0960us主机接收存储信号至少480us等待1560usDS18B20发出的在线应答脉冲60240usVCC GND图 3-8 DS18B20 初始化时序图当主机把数据从逻辑高电平拉到逻辑低电平时,有两种写时隙:写“1”时隙和写“0

42、”时隙,如图 3-9 所示。写”0时间60Tx”01us30us15us15us15us15us30us DS18B20采样 TYP 1us 写”1时间 DS18B20采样 TYP MAXVCC-WriteBus GNDMINMAXMIN图 3-9 DS18B20 写时序图16当从 DS18B20 读取数据时,主机生成读时隙,如图 3-10 所示。主机读”0时间1us30us1us 15us15us15us15us30us 1us 主机读”1时间VCC-WriteBus GND 总线采样 总线采样图 3-10 DS18B20 读时序图3.43.4 系统硬件总电路系统硬件总电路经过方案选择以及对

43、各部分功能的了解,本设计的总电路图如下图 3-11 所示图 3-11 总电路图174 4 数字温度计软件设计数字温度计软件设计4.14.1 DS18B20DS18B20 模块模块DS18B20 初始化流程图如下图 4.1 所示C C5 51 1寄寄存存器器初初始始化化温温度度转转换换命命令令1 18 8B B2 20 0存存在在?读读取取温温度度温温度度数数据据处处理理温温度度显显示示报报警警温温度度比比较较超超出出范范围围?开开始始Y YN NY YN N图 4-1 挂一个 DS18B20 的读/写程序流程图读 DS18B20 是从最低有效位开始,8 位系列编码都读出后,48 位序列号再读入

44、,移位寄存器中就存储了 CRC 值。4.24.2 程序总流程图程序总流程图18程序总流程图如下图 4-2 所示。MCU初始化DS18B20初始化判定温度是否在设定范围内灯灭显示温度结束黄灯亮绿灯亮大于某一值小于某一值开始图 4-2 程序总流程图系统的工作过程为:单片机和 DS18B20 温度传感器先进行初始化,接着报警温度进行设置,分析读取温度的正负,对温度进行处理和转换,最后通过单片机的控制把温度值显示在数码管上。 5 5 系统的调试与仿真系统的调试与仿真5.15.1 ProteusProteus 软件软件简介简介Proteus 软件是英国 Labcenter electronics 公司出

45、版的 EDA 工具软件(该软件中国总代理为广州风标电子技术有限公司) 。它不仅具有其它 EDA 工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。在编译方面,19它也支持 IAR、Keil 和 MPLAB 等多种编译器。 该软件的特点是:1. 实现了单片机仿真和 SPICE 电路仿真相结合,具有模拟电路仿真、数字电路仿真、各种单片机(51 系列、AVR、PIG 等常用的 MCU)及其外围电路(如 LCD、RAM、ROM、键盘、LED、A/D、D/A)组成的系统仿真。2. 提供了多种虚拟仪器。如示波器、逻辑分析仪、信号发生器等,调试非常方便。3. 提供软件调

46、试功能,同时支持第三方的软件编译和调试环境,如 Keil 等软件。4. 具有强大的原理图绘制功能。Proteus 与其它单片机仿真软件不同的是,它不仅能仿真单片机 CPU 的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验从某种意义上讲,是弥补了实验和工程应用阉脱节的矛盾和现象。单片机系统仿真设计时,常用到的是两类软件,即仿真软件和编程软件。编程软件主要完成程序的编写、编辑、编译、调试等任务,直到得到最终系统所需的.he

47、x 文件,而仿真软件则完成虚拟硬件电路的设计、测试及运行等任务,其存储的文件是以 DNS 为后缀。目前常用单片机仿真软件是 Proteus 软件,常用编辑软件是 KEIL 软件。5.25.2 KeilKeil 软件简介软件简介 Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用 C 来开发,体会更加深刻。Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面另外重要的一点,只要看一下编译后生成的

48、汇编代码,就能体会到 Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。Keil C51 软件是一个基于 32 位 Windows 环境的应用程序,支持 C 语言和汇编语言编程,其6.0 以上的版本将编译和仿真软件统一为 Vision(通常称为 V2)。Keil 提供包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:Vision IDE 集成开发环境 C51 编译器、A51 汇编器、LIB51 库管理器、BL51 连接/定位器、OH51 目标文件生成器以及 Mon

49、itor-51、RTX51 实时操作系统。5.35.3 系统的调试与实现系统的调试与实现20程序的调试有很多种软件可以选择,KEIL、伟福、Proteus 等。其中,KEIL 既可以调试 C 语言又可以调试汇编语言,本设计是用 C 语言编写的程序,所以采用了 KEIL 软件进行调试。在系统调试中,一般先对硬件及软件进行分模块的调试,然后再进行系统的整体调试。各模块均调试完成后,会把程序写入单片机,然后组装连接各硬件模块,看系统通电运行后的各模块配合情况以及整体实现功能。本设计的调试分为三步:一是软件调试,二是硬件调试,三是软硬件联合调试。5.45.4 ProteusProteus 仿真仿真结果

50、结果(1)设定温度上限为七十度下限为三十度。此时为八十度,故黄灯亮,实现报警。(2)此时为二十度低于下限,故绿灯亮(3)此时为六十度,处于界限之内,故黄灯绿灯都不亮。21 22 6 6 总结总结本文介绍了基于 89C51 单片机的数字温度计控制系统的设计,对整个硬件电路和软件程序设计做了分析,文中介绍了数字温度计的现状及发展,介绍了仿真软件 proteus及 keil 的基本知识,学习了 proteus 的仿真方法和步骤,介绍了数字温度计的设计方案及原理介绍,加深了 51 单片机的知识了解,介绍 52 单片机的结构、特点等。 并学习了数字温度传感器 DS18B20,设计软件仿真,更直观的反应设

51、计的正确性。本文对其中的一些基本原理也做了简要的概述。其实写完了本篇论文,也仅仅是对数字温度计控制系统做出了一个简单的设计方案,数字温度计科利用在很多领域,在一些人不能直接进入的场所,利用单片机控制的数字温度计,可以设置并控制其中的温度,数字温度计还可以利用在温室中,这样就可以方便的控制温室中的温度,当温度超过所要求的温度时,可发生报警。总之数字温度计利用在很多领域。本课题只是单片机控制数字温度计系统得一种设计方法。23 参考文献参考文献1 赵建领51 系列单片机开发宝典J 电子工业出版社,2007 2 晁阳单片机 MCS-51 原理及应用开发教程J 清华大学出版社,2007,10 3 周润景

52、单片机电路设计、分析与制作J 机械工业出版社,2010,8 4 倪志莲单片机应用技术J北京理工大学出版社,2010,7 5 薛小玲单片机接口模块应用与开发实例详解J.北京航空航天大学出版社,2010,1 6 王煜东传感器应用电路 400 例.中国电力出版社,2008,8 7 孙余凯传感器应用电路 300 例.电子工业出版社,2008,3 8 李广弟单片机基础北京航空航天大学出版社,1999 9 闫 石数字电子技术 M 高等教育出版社,200510 徐惠民,安德宁单片微型计算机原理接口与应用北京邮电大学出版社, 199611 王志刚现代电子线路清华大学出版社, 2003,1012 现代电子线路清

53、华大学出版社, 2003,10 24附录附录 A A 总电路图总电路图25附录附录 B B #include#define uchar unsigned char #define uint unsigned int uchar i;sbit lcdrs=P30;sbit lcdrw=P31;sbit lcden=P32;sbit d1=P10;sbit d2=P11;uchar t0=the temperature ;uchar t1= is ;uchar wendu=0123456789; /利用一个温度表解决温度显示乱码sbit DQ = P37;/定义 ds18B20 总线 IO/液晶显

54、示模块void delay(uint z)uint x,y;for(x=100;x1;x-)for(y=z;y1;y-);void write_com(uchar com)lcdrs=0;P2=com;delay(5);lcden=1;26delay(5);lcden=0;void write_date(uchar date)lcdrs=1;P2=date;delay(5);lcden=1;delay(5);lcden=0;void init_lcd()lcden=0;lcdrw=0;write_com(0 x38);write_com(0 x01);write_com(0 x0c);writ

55、e_com(0 x06);write_com(0 x80);for(i=0;i16;i+)write_date(t0i);delay(0);write_com(0 x80+0 x40);for(i=0;i0;i-)DQ = 0; / 给脉冲信号dat=1;28DQ = 1; / 给脉冲信号if(DQ)dat|=0 x80;tmpDelay(4);return(dat);void WriteOneChar(unsigned char dat)/写一个字节unsigned char i=0;for (i=8; i0; i-)DQ = 0;DQ = dat&0 x01;tmpDelay(5)

56、;DQ = 1;dat=1; unsigned int Readtemp()/读取温度unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0 xCC); / 跳过读序号列号的操作WriteOneChar(0 x44); / 启动温度转换Init_DS18B20();WriteOneChar(0 xCC); /跳过读序号列号的操作29WriteOneChar(0 xBE); /读取温度寄存器a=ReadOneChar(); /连续读两个字节数据 /读低 8 位 b=

57、ReadOneChar(); /读高 8 位t=b;t70) d1=0;d2=1;delay(500);if(num130) d1=1;d2=0;delay(500);else d1=1;d2=1;shi=num/100;ge=num%10/10;30 xiaoshu=num%10;write_com(0 x80+0 x40+5);write_date(wendushi);write_com(0 x80+0 x40+6);write_date(wenduge);write_com(0 x80+0 x40+7);write_date(0 x2e);write_com(0 x80+0 x40+8)

58、;write_date(wenduxiaoshu);void main()init_lcd();while(1)display();delay(10); 31致致 谢谢在论文即将完成之际,我的心情无法平静,毕业设计也许是我大学生涯上交上的最后一个作业了,本设计能够顺利完成,也归功于左伟杰老师的认真负责,使我不仅能够很好的掌握和运用专业知识,而且能在设计中得以体现。正是有了他的悉心帮助和支持,才使我的毕业论文顺利完成。同时,左老师不仅从做学问更从做人方面给予我众多的启发。他严谨细致、一丝不苟的作风是我学习、工作中的榜样,他循循善诱的教导和不拘一格的思路给予我无尽的启迪。在此,谨向我的指导老师致以诚挚的谢意!论文的完成离不开许昌学院电气信息工程学院老师的支持和帮助,在此,一并向老师表示最真挚的感谢!你们不仅让我学到了专业知识,更让我学到了做人的道理以及生活的态度。最后,我由衷地感谢大学四年中教诲我、培养我的师长们,也由衷地感谢帮助过我的同学们,他们给了我很多有益的启示与帮助,也让我深深的体会到了集体的温暖与力量。在今后的学习生活中我将更加勤奋努力,不辜负老师和同学们的一片期望和关心。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!