毕业设计(论文)基于DS18B20的多路温度检测系统的设计与实现_第1页
毕业设计(论文)基于DS18B20的多路温度检测系统的设计与实现_第2页
毕业设计(论文)基于DS18B20的多路温度检测系统的设计与实现_第3页
毕业设计(论文)基于DS18B20的多路温度检测系统的设计与实现_第4页
毕业设计(论文)基于DS18B20的多路温度检测系统的设计与实现_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 辽宁科技大学本科生毕业设计 第i 页基于 ds18b20 的多路温度检测系统的设计与实现摘要为了达到测量和检测多处温度值,就要求主系统连接多个温度传感器,由于主系统和配件之间连接器上的空闲引脚通常极为有限,要想在不增加连接器复杂度和成本的条件下给系统增加外设识别和控制功能就成为一项极具挑战性的任务。作为拥有 1-wire 的 ds18b20 器件能够满足这些要求。本设计采用多个 ds18b20 连接在于同一条单线总线上,这可以在许多不同的地方放置多个 ds18b20 温度传感器进行温度检测。通过用单片机来实现对多个 ds18b20 的控制,从而实现温度检测,实现报警。显示部分采用了七段数码显

2、示管进行显示,可同时对时间和温度进行显示方便观察。键盘通过对 89c51 的 p1 口直接编程来实现。关键词关键词:1-wire;串行总线;七段数码显示管;温度测量 辽宁科技大学本科生毕业设计 第ii 页the design and implementation of the multi-temperature detection system based on ds18b20abstractin order to achieve measurement and testing various temperature,it requires the main system linked to

3、a number of temperature sensors,as the main system and accessories between the connector pins are usually very limited spare, not to increase the connector complexity and cost of the conditions to increase the peripheral system to identify and control has become one of the greatest challenges of tas

4、k.as with 1 - wire the ds18b20 device can meet these requirementsthis design uses a number of ds18b20,what connected with a one-way bus,which can in many different places at various ds18b20 temperature sensor to detect temperature.to achieve through the use of multiple ds18b20 control, thus realizin

5、g the temperature detection,and alarm. demonstrate a part having adopt seven section of digital display tube to carry out the convenient observation demonstrating, but carrying out display on time and the temperature at the same time.89c51 keyboard through the p1 port direct programming to achieve.k

6、ey words: 1-wire; serial bus ; seven section of digital display tube; temperature survey 辽宁科技大学本科生毕业设计 第iii 页目录摘要.iabstract.ii1 绪论.11.1 概述 i2c 总线的应用.11.2 概述单总线的应用.11.3 本设计的结构安排.22 串行总线.32.1 i2c 总线.32.1.1 i2c 总线工作原理.32.1.2 i2c 总线数据传送.32.2 单总线.42.2.1 单总线多节点系统.42.2.2 单总线数据通信.53 硬件设计.63.1 本设计系统结构框图.63.2

7、 系统的原理图.73.3 单片机及其管脚说明.73.4 用 i/o 口实现 i2c 总线协议.93.5 ds18b20 的读写程序和单总线协议的实现.103.6 单片机外围电路.143.6.1 键盘.143.6.2 报警.153.7 三极管的简介.153.8 七段数码显示管.16 辽宁科技大学本科生毕业设计 第iv 页3.9 看门狗的原理.183.10 晶振电路原理.194 软件设计.204.1 工作方案简介.204.2 主程序流程图.214.3 功能模块.224.4 由 ds18b20 完成温度检测模块.224.5 由 ds1338 完成时间读取模块.274.6 单片机外围电路元件模块.30

8、4.6.1 键盘模块.304.6.2 报警模块.32结论.33参考文献.34致谢.35附录.36 辽宁科技大学本科生毕业设计 第 1 页1 绪论在单片机应用系统中,要处理的数据不仅很多,而且很重要时,通常的做法是用并行口扩展单片机外部数据存储器芯片。近年来,随着半导体技术的不断发展,陆续出现了一些新的数据要求非常严格的芯片,比较典型的有基于 i2c 总线接口的 24 系列,基于 spi 总线的 25 系列,以及并行总线接口的 28 系列,29 系列,这些芯片的特点是芯片掉电后数据不会丢失,数据可以保存几年、甚至几十年,这些芯片采用 i2c、spi 或 microwire 串行总线协议,与单片机

9、接口通常仅占用 24 个 i/ o 口,可以最大限度地节省单片机的资源,并且数据可以反复擦写1。1.1 概述 i2c 总线的应用philips 公司开发的 i2c 总线是串行总线的一个应用,它主要应用于单片机外围芯片的扩展。它只需两根线即可实现单片机与总线上各个具有 i2c 总线接口的外围芯片进行数据交换。该协议是解决单片机 i/o 口资源紧张的有效措施,i2c 总线是目前最完善的外围器件的扩展总线,具有最完善的总线规范和最方便的用户界面,其上可挂接多达 128 个串行外围器件或设备。目前有很多半导体集成电路上都集成了 i2c 接口。带有 i2c 接口的单片机有:cygnal 的 c8051f

10、0xx 系列,philipsp87lpc7xx 系列,microchip 的 pic16c6xx 系列等。很多外围器件如存储器、监控芯片等也提供 i2c接口。1.2 概述单总线的应用单总线是一种最简单的串行总线形式, 它通过单条连接线完成了全部的控制、通信和供电, 节省了 i/o 口, 降低了系统成本并简化了设计。目前常用的微机与外设之间进行数据传输的串行总线主要有 i2c 总线、spi 总线和sci 总线。其中 i2c 总线以同步串行 2 线方式进行通信(一条时钟线,一条数据线) ,spi 总线则以同步串行 3 线方式进行通信(一条时钟线,一条数据输入线,一条数据输出线) ,而 sci 总线

11、是以异步方式进行通信(一条数据输入线,一条数据输出线)的。这些总线至少需要两条或两条以上的信号线。近年来,美国的达拉斯半导体公司(dallassemiconductor)推出了一项特有的单总线(1wire bus)技术3。该 辽宁科技大学本科生毕业设计 第 2 页技术与上述总线不同,它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的,因而这种单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。单总线适用于单主机系统,能够控制一个或多个从机设备。主机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一条信号线。当只有一个从机设备时,系统可按单节点系

12、统操作;当有多个从机设备时,系统则按多节点系统操作。本文结合以单总线温度传感器构成的温度测控系统, 详细讲述单总线 器件与常用的 8051 系列单片机的软件接口。1.3 本设计的结构安排如前所述,本设计就是采用单片机模拟串口协议实现带电子钟的温度检测系统。本设计的结构安排如下:第 2 章简单介绍两种串行协议即 i2c 总线协议和单总线协议的原理、特点、时序以及使用方法。第 3 章介绍本设计应用 i2c 总线协议和单总线协议实现带电子钟的温度检测系统的硬件。具体的芯片选择和简单的芯片介绍。并且给出了本设计所用主机 atc89c51单片机的介绍。以及 i2c 协议和单总线协议在 atc89c51

13、单片机上的实现。最后给出了人机接口的电路图,并对键盘功能和电路进行了介绍。第 4 章介绍本设计 i2c 总线协议和单总线协议的软件实现。并给出了人机接口部分的驱动程序包括键盘有液晶显示的程序。给出了设计整体的流程图。这章是设计的重点。本设计因为采用的是串行总线器件所以对于硬件设计相对简单。但软件部分就是此次设计的难点。下面,我们就逐章进入本设计的全过程。 辽宁科技大学本科生毕业设计 第 3 页2 串行总线2.1 i2c 总线2.1.1 i2c 总线工作原理i2c( inter-integrated circuit)总线是一种由 philips 公司开发的两线制总线,由一条串行数据线 sda 和

14、一条串行时钟线 scl 组成。该总线是双向、两线、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。由于其使用两线的硬件接口简单,i2c 总线的应用越来越广泛。实现i2c 总线通信协议主要有两种方法:利角 mcu 对两根 i/o 口线进行软件编程,模拟i2c 总线的 scl 和 sda 时序要求:使用专用 i2c 总线控制核,但受其主机(host)接口方式和时钟频率的限制,在有些场合应用并不方便。本设计就是对 89c51 的两个 i/o口进行编程,模拟 i2c 总线的 scl 和 sda 时序要求的。在 cpu 与被控 ic

15、之间、ic 与 ic 之间进行双向传送,最高传送速率 100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,i2c 总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。cpl 发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。2.1.2 i2c 总线数据传送在 i2c 总线上传送的一个数据字节由八

16、位数组成,总线对每次传送的字节数没有限制,但每个字节后必须跟一位应答位。传输速率可达 400k 波特。数据传送时,高位在前,低位在后,这和传统的串行通通讯不同。数据传输时,在时钟线 scl 高电平期间,数据线 sda 上的信息要保持不变,在 scl 低电平期间,sda 上的电平才允许变化。每个 scl 脉冲对应 sda 上的一位数据。如图 2.1 所示。 辽宁科技大学本科生毕业设计 第 4 页如果在时钟线 scl 高电平期间,sda 上的电平出现了下降沿,这种状态规定为起始信号(s);如果在时钟线 scl 高电平期间,sda 上的 1 电平出现上升沿,这种状态规定为终止信号(p)。2.2 单总

17、线2.2.1 单总线多节点系统美国的达拉斯半导体公司(dallas semiconductor) 推出了一项特有的单总线(1 - wire bus) 技术。它采用单根信号线, 既可传输时钟, 又能传输数据, 而且数据传输是双向的,主机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一条信号线。单总线多节点系统示意图如下图 2.2 所示。图 2.2 单总线多节点系统示意图微控制器(主机)1-wiredevice11-wire device21-wiredevicen-11-wiredevicen 允许数据变化数据线上数据有效图 2.1 i2c 总线位传输 辽宁科技大学本科生毕业设计

18、 第 5 页单总线技术是在一根总线上仅有一个主系统和若干个从系统组成的计算机应用系统,由于总线上的所有器件都通过 1 条信号线传输信息,这样,整个系统要按单总线协议规定的时序进行工作,具体的内容是初始化器件、识别器件和进行数据交换。目前,单总线器件主要有数字温度传感器(如 ds18b20)、a/d 转换器(ds2450)、门禁、身份识别器(如 ds1990a)、单总线控制器(如 ds1wm)等。本设计应用实例以ds18b20 为温度传感器,构建了多点温度检测系统。系统采用 1-wire 公众域(pd)软件应用程序接口,采用循环程序结构实现查看任何一个检测点的编号、温度值等数据指示,实现了多个检

19、测点数据的自动化监管。2.2.2 单总线数据通信单总线技术实现的硬件简单,但芯片的品种繁多,在适当的外部电路中能完成复杂的操作,这些功能的实现,则依赖良好的软件环境支持。作为一种与目前大多数标准串行数据通信方式不同的串行数据传输方式,它有自己独特的通信协议单总线协议2 (或称一线协议)。单总线协议定义了如下几种信号类型:复位脉冲、应答脉冲、写 0、写 i,读 0 和读1。所有这些信号,除了应答脉冲以外,都有由主机发出同步信号,并且所有的命令和数据都是字节低位在前,这一点与多数标准串行通信方式不同。 辽宁科技大学本科生毕业设计 第 6 页3 硬件设计本系统的硬件电路包括主机、温度与检测与控制、人

20、机对话(键盘/显示/报警)和其他扩展电路(电子日历/复位电路)4 个主要部分。图 3.1 为系统的硬件电路原理图3.1 本设计系统结构框图 图 3.1 系统的结构框图由于系统控制方案简单,数据量也不大,因此选用 89c51 作为控制系统的核心,也可视具体情况换用 8051、8052、8751、8752、80c51、89c52 等。其中,8051、8052、8751、8752 的各个引脚输入/输出电平只与 ttl 电平兼容;89c51、89c52、80c51 各引脚输入/输出电平既与 ttl 电平兼容,也与 cmos 电平兼容。温度/时间液晶显示键盘报警主机集成温度传感器ds18b20数字温度传

21、感器ds18b20串行实时时钟ds1338智能温度传感器ds18b20 辽宁科技大学本科生毕业设计 第 7 页3.2 系统的原理图ea/vp31x119x218reset9rd17wr16int012int113t014t115p101p112p123p134p145p156p167p178p0039p0138p0237p0336p0435p0534p0633p0732p2021p2122p2223p2324p2425p2526p2627p2728psen29ale/p30txd11rxd10u1jz12mc130pc230pc3104c5103c4330uf/16v1111111198765

22、432rp210kvcctxdsisorxdvcccssckc710uf/16vr610kvcck5reset98u8d74071110u8e7407s1器器器r124.7kr132kvccq99012fmqsdascl232txd232rxdc11105c12105c9105c14105c13104tx0rx0v+v-v+v-vccr24r25r26r27r28r29r30q1q2q3q4q5q6q7q8r32330r33330r34330r35330r36330r37330r38330r39330r31vccdadbdcdddedfdgdpot901281k8dadbdcdpotddded

23、fdgdedfdgdadbdcdpotdda1d6e7g8f9g10b2c3pot4g5smg1dpy 7-sega1d6e7g8f9g10b2c3pot4g5smg2dpy 7-seg12u8a740734u8b7407/cs1so2wp3vss4vcc8reset7sck6si5u2x25045cssovccsisckint0int1c1+1vs+2c1-3c2+4c2-5vs-6t2out7r2in8vcc16gnd15t1out14r1in13r1out12t1in11t2in10r2out9u4max232dadbdcdpotdddedfdga1d6e7g8f9g10b2c3pot4

24、g5smg3dpy 7-segdadbdcdpotdddedfdga1d6e7g8f9g10b2c3pot4g5smg4dpy 7-segs8s7s9s6s4s1s3s5s2jz232.768kx11x22vcc8scl6sda5vbat3ds1338gnd4u3ds1338bt1batterysdasclgnd1dq2vcc3u5ds18b20gnd1dq2vcc3u6ds18b20gnd1dq2vcc3u7ds18b20gndgndgndvccvccvccgndgndr110kr210kr310kkey1key2key3key4key5key6vccr?4.7kvccdqdqfmqrs23

25、2gnd232txd162738495j1232rxdkey4key5key6key1key2key3+5v图 3.2 系统原理图3.3 单片机及其管脚说明at89c51 是一种带 4k 字节闪烁可编程可擦除只读存储器(fperomflash programmable and erasable read only memory)的低电压,高性能 cmos8 位微处理器,俗称单片机。at89c2051 是一种带 2k 字节闪烁可编程可擦除只读存储器的单片机。 辽宁科技大学本科生毕业设计 第 8 页该器件采用 atmel 高密度非易失存储器制造技术制造,与工业标准的 mcs-51 指令集和输出管脚

26、相兼容。下面指出了各个管脚的用途。vcc:供电电压。gnd:接地。p0 口:p0 口为一个 8 位漏级开路双向 i/o 口,每脚可吸收 8 个 ttl 门电流。当p1 口的管脚第一次写 1 时,被定义为高阻输入。p0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 fiash 编程时,p0 口作为原码输入口,当fiash 进行校验时,p0 输出原码,此时 p0 外部必须被拉高。p1 口:p1 口是一个内部提供上拉电阻的 8 位双向 i/o 口,p1 口缓冲器能接收输出4ttl 门电流。p1 口管脚写入 1 后,被内部上拉为高,可用作输入,p1 口被外部下拉为低电平时,将输出电

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

28、口:p3 口管脚是 8 个带内部上拉电阻的双向 i/o 口,可接收输出 4 个 ttl 门电流。当 p3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3 口将输出电流(ill)这是由于上拉的缘故。p3 口也可作为at89c51 的一些特殊功能口, p3 口管脚 备选功如下: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(外部数据存储器写选通) 辽宁科技大学本科生毕业设计 第 9

29、 页p3.7 /rd(外部数据存储器读选通)p3 口同时为闪烁编程和编程校验接收一些控制信号。rst:复位输入。当振荡器复位器件时,要保持 rst 脚两个机器周期的高电平时间。ale/prog:当访问外部存储器,地址锁存允许的输出电平用于锁存地址地位字节。/psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen 有效。但在访问外部数据存储器时,这两次有效的/psen 信号将不出现。/ea/vpp:在 flash 编程期间,此引脚也用于施加 12v 编程电源(vpp) 。xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。xtal2:来自反向振荡器的输出

30、。3.4 用 i/o 口实现 i2c 总线协议为了记录系统每次检测温度的时间,本设计特别在温度检测的基础上增加了电子钟的功能。因为本设计主要是研究串行总线,所以选用具有 i2c 协议的 ds1338 串行实时时钟(rtc)芯片,并用单片机的两个普通 i/o 线实现 i2c 总线功能,这样可以最大限度地节省单片机的资源6。下面就 ds1338 芯片的特性进行一下介绍。ds1338 串行实时时钟(rtc)就是其中的一种,ds1338 具有低功耗、全二进制编码的十进制(bcd)时钟/日历,外加 56 字节 nv sram。地址与数据通过 i2c 总线串行传送。时钟/日历可以提供秒、分、时、日、月、年

31、信息。对于少于 31 天的月份,到每月的最后一天会自动进行调节,包括闰年修正。ds1338 采用内置晶振和表面贴封装,并为数据存储提供 56 字节电池备份的 nv ram 。ds1338 采用 i2c 串行接口协议,具有可编程方波输出功能自动电源失效检测与转换电路并通过 ul 认证等一系列特性。本设计主要应用 ds1338 串行实时时钟(rtc)来实现带电子钟的温度检测系统。ds1338的接口电路如图 3.3 所示5。 辽宁科技大学本科生毕业设计 第 10 页图 3.3 ds1338 的接口电路目前,51、96 系列的单片机应用很广,但是由于它们都没有 i2c 总线接口,从而限制了在这些系统中

32、使用具有 i2c 总线接口的器件。通过对 i2c 总线时序的分析,可以用 51 单片机的两根 i/ o 线来实现 i2c 总线的功能。本设计就是用 atc89c51 的通用 i/ o 口来作为 i2c 总线接口,并由软件控制实现数据传送的。连接电路如图 3.4 所示,具体的软件实现本设计在软件设计中将给出详细的介绍。ea/vp31x119x218reset9rd17wr16int012int113t014t115p101p112p123p134p145p156p167p178p0039p0138p0237p0336p0435p0534p0633p0732p2021p2122p2223p2324

33、p2425p2526p2627p2728psen29ale/p30txd11rxd1089c51vccjz232.768kx11x22vcc8scl6sda5vbat3ds1338gnd4u5ds1338bt1battery图 3.4 ds18b20 与单片机接口电路3.5 ds18b20 的读写程序和单总线协议的实现ds18b20 的读写程序和测温程序相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由 2s 减为 750ms。 ds18b20 测温原理中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器 1。高温度系数晶振随温度变化其振荡率明显

34、改变,所产生的信号作为计数器 2 的脉冲输入。计数器 1 和温度寄存器被预置在55所对应的一个基数值。计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当计数器 1 的预置值减到 0 时,温度寄存器的值将加 1,计数器 1 的预置将重新被装入,计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,此时 辽宁科技大学本科生毕业设计 第 11 页温度寄存器中的数值即为所测温度。图 3.5 中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器 1 的预置值。图 3.5 ds18b20 测温原理框图ds18b2

35、0 有 4 个主要的数据部件: (1)光刻 rom 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 ds18b20的地址序列码。64 位光刻 rom 的排列是:开始 8 位(28h)是产品类型标号,接着的48 位是该 ds18b20 自身的序列号,最后 8 位是前面 56 位的循环冗余校验码(crc=x8+x5+x4+1)。光刻 rom 的作用是使每一个 ds18b20 都各不相同,这样就可以实现一根总线上挂接多个 ds18b20 的目的。 (2)ds18b20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用 16 位符号扩展的二进制补码读数形式提供,以 0.0625/ls

36、b 形式表达,其中 s 为符号位。 这是 12 位转化后得到的 12 位数据,存储在 18b20 的两个 8 比特的 ram 中,二进制中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测到的数值乘于 0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的数值需要取反加1 再乘于 0.0625 即可得到实际温度。 例如+125的数字输出为 07d0h,+25.0625的数字输出为 0191h,-25.0625的数字输出为 ff6fh,-55的数字输出为 fc90h。 (3)ds18b20 温度传感器的存储器 ds18b20 温度传感器的内部存储器包括

37、一个高速暂存 ram 和一个非易失性的可电擦除的 eepram,后者存放高温度和低温度触发器 th、tl 和结构寄存器。 (4)配置寄存器 该字节各位的意义如下:表 3.1 配置寄存器结构 辽宁科技大学本科生毕业设计 第 12 页tmr1r011111 低五位一直都是1,tm 是测试模式位,用于设置 ds18b20 在工作模式还是在测试模式。在 ds18b20 出厂时该位被设置为 0,用户不要去改动。r1 和 r0 用来设置分辨率,如下表 3.2 所示:(ds18b20 出厂时被设置为 12 位)表 3.2 温度分辨率设置表r1r0分辨率温度最大转换时间009 位93.75ms0110 位18

38、7.5ms1011 位375ms1112 位750ms本设计采用多个温度传感器 ds18b20 对温度进行采样,从而进行温度的检测与控制。因为 ds18b20 是使用单总线协议的,所以具有单总线的优点,本设计通过对ds18b20 的使用,使读者对单总线协议有了更深的认识。下面就 ds18b20 芯片的特性进行一下介绍。与 dallas 公司早期生产的 ds1820 相比,ds18b20 具有如下特点4:(1) 精度:ds18b20 在-10+85范围内精度为+-0.5。(2) 分辨率:ds18b20 的分辨率由 912 位(包括 1 位符号位)数据在线编程决定。(3) 温度转换时间:ds18b

39、20 的转换时间与设定的分辨率有关,当设定为 9 位时,最大转换时间为 93.75ms;10 位时,为 187.5ms;11 位时,为 375ms;12 位时,为 750ms。(4) 电源电压范围:在保证温度转换精度为+-0.5的情况下,电源电压可为+3.0v+5.5。(5) 程序设置寄存器:该寄存器主要用来设置分辨率位数的。(6) 64 位 rom 编码:从高位算起,该 rom 有一个字节的 crc 校验码,6 个 辽宁科技大学本科生毕业设计 第 13 页字节的产品序号和一个字节的家族代码。对于家族代码, ds18b20 是 28h。(7) 温度数据寄存器:寄存器由两个字节组成,ds18b2

40、0 对于 12 位的分辨率为 2-4,如图 3.6 所示4。232221202-12-22-32-4msb 单位= lsbsssss262524符号位图 3.6 ds18b20 的分辨率(8) 内部存储器分配:ds18b20h 高速暂存寄存器是 ds18b20 高速暂存寄存器的存储分配温度值低位字节温度值高位字节th/用户字节 1(报警上限)tl/用户字节 2(报警下限)程序设置字节保留保留保留 ds18b20 采用 to92 封装或 8 脚 soic 封装。其引脚排列及含义如下图 3.8 所示。nc 1nc 2th/用户字节 1tl/用户字节 2程序设置字节e2romcrc图 3.7 ds1

41、8b20 高速暂存寄存器的存储分配dallasds18b201 gnd 2 dq 3 vddvdd 3nc 18 nc7 nc6 nc5 gndgnd:地 vdd:电源dq:数据输入/输出 nc:空脚低位字节高位字节 辽宁科技大学本科生毕业设计 第 14 页ds18b20 的供电方式有两种: 一种是寄生电源;另一种为外电源供电,因为多个器件挂在总线上,为了识别不同的器件,在程序设计中一般有四个步骤:初始化命令;传送 rom 命令;传送 ram 命令;数据交换命令。本设计在软件介绍部分会就ds18b20 温度传感器件具体介绍其每一部分的时序。本系统利用 ds18b20 完成温度采集及转换工作,而

42、单片机 89c51 起实时控制及通讯作用.可以将多个 ds18b20 与单片机一位总线相连,形成多点测温, 本设计研究多片ds18b20 与单片机构成的测温系统。dss18b20 与单片机接口电路如图 3.9 所示.图 3.9 ds18b20 与单片机接口电路3.6 单片机外围电路3.6.1 键盘本设计采用 89c51 单片机的 p1 口来实现。本设计键盘的连接如下图 3.10 所示。图 3.8 ds18b20 的封装 辽宁科技大学本科生毕业设计 第 15 页图 3.10 键盘的连接将全部行线置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与

43、 3 根行线相交叉的 3 个按键之中。若所有列线均为高电平,则键盘中无键按下。在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。3.6.2 报警本设计的报警功能由蜂鸣器实现。当由于意外因素导致 ds18b20 温度高于设置温度时,p1.7 口送出的低电平经反向器驱动蜂鸣器鸣叫报警。3.7 三极管的简介三极管是一种控制元件,三极管的作用非常的大,可以说没有三极管的发明就没有现代信息社会的如此多样化,电子

44、管是他的前身,但是电子管体积大耗电量巨大,现在已经被淘汰。三极管主要用来控制电流的大小,以共发射极接法为例(信号从基极输入,从集电极输出,发射极接地),当基极电压 ub 有一个微小的变化时,基极电流 ib 也会随之有一小的变化,受基极电流 ib 的控制,集电极电流 ic 会有一个很大的变化,基极电流 ib 越大,集电极电流 ic 也越大,反之,基极电流越小,集电极电流也越小,即基极电流控制集电极电流的变化。但是集电极电流的变化比基极电流的变化大得多,这就是三极管的电流放大作用。 辽宁科技大学本科生毕业设计 第 16 页刚才说了电流放大是晶体三极管的作用,其实质是三极管能以基极电流微小的变化量来

45、控制集电极电流较大的变化量。这是三极管最基本的和最重要的特性。我们将ic/ib 的比值称为晶体三极管的电流放大倍数,用符号“”表示。电流放大倍数对于某一只三极管来说是一个定值,但随着三极管工作时基极电流的变化也会有一定的改变。根据三极管的作用我们分析它可以把微弱的电信号变成一定强度的信号,当然这种转换仍然遵循能量守恒,它只是把电源的能量转换成信号的能量罢了。三极管有一个重要参数就是电流放大系数 。当三极管的基极上加一个微小的电流时,在集电极上可以得到一个是注入电流 倍的电流,即集电极电流。集电极电流随基极电流的变化而变化,并且基极电流很小的变化可以引起集电极电流很大的变化,这就是三极管的放大作

46、用。三极管的作用还有电子开关,配合其它元件还可以构成振荡器,此外三极管还有稳压的作用。3.8 七段数码显示管七段数码管在工业控制中有着很广泛的应用,例如用来显示温度、数量、重量、日期、时间,还可以用来显示比赛的比分等,具有显示醒目、直观的优点.无论是共阴极还是共阳极的数码管,都分段码和位码,要想让它亮必须驱动它! 以共阳极 4 位数码管为例,即首先要选中你想要电亮的数码管的位,要想让 4 个数码管全亮须 4 个位全选中,所谓选中的含义就是给高电平(共阳极) 。数码管分 8 个段,即段码,每个段的亮灭都对应着一个数字或字母,想让哪一段亮就给哪段送低电平。其中扫描分静态扫描和动态扫描! 静态扫描比

47、动态扫描简单些。动态扫描他在没个时间只能点亮一位数码管,但是由于扫描频率的设置,单片机的速度是很快的,但几十 ms 内就能让 4 位数码管循环亮灭很多次,这些人的肉眼是分辨不出来的,数码管的亮度可以通过软件设置(扫描频率的设置)调整。每个数码管都有 a、b、c、d、e、f、g 七个笔划和一个小数点 dp,这八个联对应二极管阳极,阴极都联在一起(称共阴极) 。以四位数码管矩阵为例,四个数码管的a、b、c、d、e、f、g 七个笔划和一个小数点 dp 电极分别并联在一起。当 c 行高电平,3 列低电平,其他行列都为高阻态时,第三个数码管的 c 笔划亮,通过扫描方式在1/20 秒内四个数码管的笔划该亮

48、的都亮一次,由于视觉暂留,就会看到结果。 辽宁科技大学本科生毕业设计 第 17 页本设计是通过三极管来驱动数码管显示,当基极电流很小时,无论基极电流如何变化,集电极电流都接近为 0,集电极电流不随基极电流而变化,也就是管子不导通;当基极电流增大到一定值以后,集电极电流此后大于 0,且集电极电流随着基极电流而变化,这是放大状态;当基极电流继续增大,达到一定值以后,集电极电流此后再也大不上去了,此后即便是基极电流再增加,集电极电流也不能增大,即饱和了。对于单片机端口通过晶体管驱动负载的情况,无论负载是数码管还是继电器,晶体管都只能工作在截止状态或饱和状态,是不能工作在放大状态的。本设计每个三极管负

49、责一段,最后那个三极管负责小数点位。当置于低电平时才有效,每个数码管都会显示一个相同的数字,所以然后需把其他三个数码管置高电平。通过这种方法就能把温度测出来。数码管连接如下图 3.11 所示。图 3.11 数码管与单片机接口电路 辽宁科技大学本科生毕业设计 第 18 页3.9 看门狗的原理在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,

50、俗称看门狗。看门狗电路电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个 i/o 引脚相连,该 i/o 引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段不进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。本设计采用 x25045 芯片的看门狗定时器功能,

51、实现对系统进行复位的。看门狗定时器对微控制器提供了独立的保护系统。它提供了三种定时时间,可用编程选择200us、600us 和 6.4s,本设计采用 6.4s 对看门狗进行监测。在设定的时间内如果没有对 x25045 进行访问,则看门狗以 reset 信号做输出响应,即变为高电平,延时约200ms 以后 reset 由高电平变位低电平,实现对系统进行复位。复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。图 3.12 所示的 rc 复位电路可以实现上述基本

52、功能。 辽宁科技大学本科生毕业设计 第 19 页图 3.12 rc 复位电路3.10 晶振电路原理 晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄,所以即使其他元件的参数变化很大,这个振荡器的频率也不会有很大的变化。

53、 晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。 一般的晶振振荡电路都是在一个反相放大器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于负载电容,请注意一般 ic 的引脚都有等效输入电容,这个不能忽略。 辽宁科技大学本科生毕业设计 第 20 页4 软件设计4.1 工作方案简介程序处理是整个系统的关键,即简洁的硬件结构是靠复杂的软件来支持的。本设计采用的是基于 i2c 总线协议和单总线协议的温度测控系统。系统上电复位后先处于停止状态,等待输入初始时间和报警温

54、度。显示器显示输入的时间和温度;时间和报警温度设定好后就可以按确定键启动系统工作了。温度检测系统不断定时检测当前温度,并送往显示器显示,达到报警值时启动报警电路报警。并显示当前时间;启动后不能再修改报警温度,必须使电路复位回到初始状态再重新设定报警温度。 辽宁科技大学本科生毕业设计 第 21 页4.2 主程序流程图开始各数据缓冲区、各标志位初始化调用键盘管理子程序确定键闭合时返回调温度检测子程序当前温度检测缓冲区调显示子程序调时钟程序调报警子程序访问看门狗子程序调显示子程序图 4.1 主程序流程图 辽宁科技大学本科生毕业设计 第 22 页4.3 功能模块根据上面对工作流程的分析,系统软件可以分

55、为以下几个功能模块:(1)温度检测及温度值变换:由单总线温度传感器 ds18b20 完成(2)时间的读取:由具有 i2c 总线协议的传行实时时钟 ds1338 完成(3)键盘管理:监测键盘输入,接收初始时间设置,接收报警温度设置,启动系统工作。(4)报警:当检测到的温度超越报警温度时,蜂鸣器发出报警信号。 4.4 由 ds18b20 完成温度检测模块运用单总线协议(一线协议)构建的单总线指令系统是单总线网络运行的软件基础,典型的单总线指令序列如下:第一步 :初始化第二步 :rom 命令(跟随需要交换的数据)第三步 :功能命令(跟随需要交换的数据)每次访问单总线器件,必须严格遵守这个命令序列,如

56、果出现序列混乱,则单总线器件不会响应主机。但是,这个准则对于搜索 rom 命令和报警搜索命令例外,在执行两者中的任何一条命令之后,主机不能执行其后的功能命令,必须返回至第一步。(1) 初始化基于单总线上的所有传输过程都是以初始化开始的,初始化过程由主机发出复位脉冲和从机响应的应答脉冲组成。应答脉冲使主机知道,总线上有从机设备,且准备就绪。(2) rom 命令基于单总线上的所有传输过程都是以初始化开始的,初始化过程由主机发出复位脉冲和从机响应的应答脉冲组成。应答脉冲使主机知道,总线上有从机设备,且准备就绪。在主机检测到应答脉冲后,就可以发送 rom 命令。这些命令与各个从机设备的唯一的 64 位

57、 rom 有关。这些命令还允许主机能检测到总线上有多少个从机设备以及其设备类型,或者有没有设备处于报警状态。从机设备可能支持 5 种 rom 命令(实际情 辽宁科技大学本科生毕业设计 第 23 页况与具体型号有关),每种命令长度为 8 位。主机在发出功能命令之前,必须送出合适的 rom 命令。具体的传送 rom 命令格式如表 4.1 所示。表 4.1 ds18b20 的 rom 命令表指令说明读 rom 命令(33h)读总线上 ds18b20 命令匹配 rom 命令(55h)对总线上 ds18b20 寻址跳过 rom 命令(cch)该命令执行后,将省去每次与 rom有关的操作搜索 rom 命令

58、(f0h)控制机识别总线上多个器件的 rom编码报警搜索命令(ech)控制机搜索有报警的器件(3) 功能命令表 4.2 ds18b20 功能命令表注 释 :在温度转换和复制暂存器数据至 eeprom 期间,主机必须在单总线上允许强上拉,并且在此期间,总线上不能进行其它数据传输。通过发送复位脉冲,主机能够在任何时候中断数据传输。在复位脉冲发送以前,必须写入全部的三个字节。命令描述命令代码发送命令后,单总线上的响应信息注释温度转换命令转换温度启动温度转换44h无存储器命令读暂存器读出全部暂存器的内容,包括 crc 字节behds18b20 传输多达9 字节至主机写暂存器写暂存器第 2、3 和 4

59、个字节的数据(即 th、tl 和配置寄存器)4eh主机传送 3 个字节的数据至 ds18b20复制暂存器将暂存器中的 th、tl 和配置字复制到 eeprom 中48h无回读将 th、tl 和配置字从b8hds18b20 传回读状 辽宁科技大学本科生毕业设计 第 24 页eepromeeprom 中回读至暂存器中态至主机主机发送 rom 指令,以访问某个指定的 ds18b20,接着就可以发送 ds18b20支持的某个功能命令。这些命令允许主机写入或读出 ds18b20 暂存器、启动温度转换以及判断从机的供电方式。ds18b20 的功能命令如表 4.2 所示。不同类型的单总线芯片有不同的功能命令

60、,也有的芯片无功能命令(如可寻址开关芯片 ds2405),在实际应用中可根据设计的需要加以选择。n开始调初始化子程序init_1820设置 rom 命令,调用写命令子程序 write_1820调用延时子程序(1 秒)设置读数据命令 beh调用写命令子程序 write_1820设置温度数据存放位置,调用读命令子程序 r-dat显示一个器件的温度值结束调初始化子程序init_1820 辽宁科技大学本科生毕业设计 第 25 页温度检测子程序:ds18b20 初始化程序:init_1820: setb p1.6; 总线置 1 nop clr p1.6; 总线置 0 mov r0,#250tsr1: d

温馨提示

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

最新文档

评论

0/150

提交评论