毕业设计(DS18B20温度传感器)_第1页
毕业设计(DS18B20温度传感器)_第2页
毕业设计(DS18B20温度传感器)_第3页
毕业设计(DS18B20温度传感器)_第4页
毕业设计(DS18B20温度传感器)_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、I / 43摘摘 要要近年来随着科技的飞速发展, “定时器”总的来说有两种类型。一种是基于模拟技术的传统产品,这种定时器功能简单,尽管曾被广泛用过,但已进入淘汰之列。另一种是基于数字技术的新一代产品,这种产品功能强,是前者的替代之物。本设计开发了一种基于单片机的多用途定时器。它造价低,功能全,整体功能性价比高,可适应各种场合的定时预警之用。本设计是经典的单片机定时功能应用设计。设计中应用了单片机定时器的设计功能、单片机的中断使用方法与 LED 显示等技术。可以实现任意时间和日期的显示,而且每个时间的初值可以改变,并且可以有闹铃定时的功能和加之数码管的闪烁的提示功能。本设计的硬件电路主要包括:S

2、TC89S52 单片机、DS18B20 温度传感器。在硬件的设计的基础上,通过软件进行发光二极管指示程序、键扫描程序和数码管的显示程序的设计,最终完成本设计。关键词:关键词:定时器;STC89S52 单片机;DS18B20 温度传感器;目目 录录1 引言 11.1 温度传感器的发展 21.2 温度数据采集与监测 22 系统任务与总体方案论证 42.1 设计任务 42.2 方案设计 42.3 方案选择 63 硬件电路设计 73.1 STC 单片机简介 103.1.1 复位电路 103.1.2 晶振电路 113.2 LED 显示与单片机接口 113.3 按键 123.4 DS18B20 数字温度计

3、 133.4.1 DS18B20 的新性能 13II / 433.4.2DS18B20 的外形和部结构 143.4.3 高速暂存存储器 163.4.4 DS18B20 的使用方法 183.4.5 DS18B20 工作原理 194 软件设计 204.1 系统软件介绍 204.2 总程序流程图 215 设计调试 225.1 应用 ISIS 软件仿真电路 225.2 应用 KEIL 软件进行程序调试 235.3 实物调试 23结 论 24参考文献 25附录一:源程序 26附录二:电路原理图 36附录三:资料 371 / 431 引言含有微处理器、存储器、输入/输出电路与一些诸如中断控制器、定时器/计

4、数器等资源的集成电路芯片,它包含了作为一个计算机所必需的基本部件,在外部只需添加少许的外围器件就可以组成完整的计算机实现控制目的,这样的器件通常称为单片机或微型控制器。单片机是通过部总线把计算机的各主要部件接为一体,其部总线包括地址总线、数据总线和控制总线。其中,地址总线的作用是在进行数据交换时提供地址,CPU 通过它们将地址输出到存储器或 I/O 接口;/数据总线的作用是在 CPU 与存储器或 I/O 接口之间,或存储器与外设之间交换数据;控制总线包括CPU 发出的控制信号线和外部送入 CPU 的应答信号线等。单片机诞生于 20 世纪 70年代末,经历了单片微型计算(SCM)、微控制器(MC

5、U)、单片应用系统(SOC)三大阶段。单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大围推广,广泛应用于工业控制系统、通讯设备、日常消费类产品和玩具等。单片机由于其体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,普遍运用在智能仪器仪表上,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大,例如精密的测量设备(功率计,示波器,各种分析仪);在工业控制中的应用上,用单片机可以构成形式多样的控制系

6、统、数据采集系统,例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等;在计算机网络和通信领域中,现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动,集群移动通信,无线电对讲机等,特别在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备与病床呼叫系统等等。在日新月异的 21 世纪里,家用电子产品得到了迅速发展。现在的家用电器基本上都

7、采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。许多家电设备都趋于人性化、2 / 43智能化,正是因为这些电器设备大部分都含有 CPU 控制器或者是单片机。用单片机来控制的小型家电产品具有便携实用,操作简单的特点。本文设计了一种基于单片机的多用途定时器。它造价低,功能全,整体功能价格比高,可适应各种场合的定时预警之用。因而,此设计具有相当重要的现实意义和实用价值。1.1 温度传感器的发展温度传感器是最早开发,应用最广的一类传感器。根据美国仪器学会的调查,19

8、90 年,温度传感器的市场份额大大超过了其他的传感器。从 17 世纪初伽利略发明温度计开始,人们开始利用温度进行测量。真正把温度变成电信号的传感器是1821 年由德国物理学家赛贝发明的,这就是后来的热电偶传感器。五十年以后,另一位德国人西门子发明了铂电阻温度计。在半导体技术的支持下,本世纪相继开发了半导体热电偶传感器、PN 结温度传感器和集成温度传感器。与之相应,根据波与物质的相互作用规律,相继开发了声学温度传感器、红外传感器和微波传感器。温度传感器使用围广、数量多,居各种传感器之首。温度传感器的发展大致经历了以下 3 个阶段:传统的分立式温度传感器(含敏感元件)、模拟集成温度传感器/控制器、

9、智能温度传感器。温度传感器按传感器与被测介质的接触方式可分为两大类:一类是接触式温度传感器,一类是非接触式温度传感器。接触式温度传感器的测温元件与被测对象要有良好的热接触,通过热传导与对流原理达到热平衡。这种测温方法精度比较高,并可测量物体部的温度分布。但对于运动的、热容量比较小的与对感温元件有腐蚀作用的对象,这种方法将会产生很大的误差。最新推出一种型号是 TS-18B20 的数字温度传感器,采用美国 DALLAS 公司生产的 DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。1.2 温度数据采集与监测最早的

10、也是最简单的实现对温度的监测是采用人工的方式,这种方式不仅效率低,劳动时间长,而且会由于抽样的不具代表性使得监测结果失去其原有的意义。该方式还有一个弊端就是其应用场所有很大的局限性。后来随着电子技术的出现与进步,科研人员开始采用温度传感器代替原始的温度计,开发了以单片机为核心的监测系统,并佐以接口芯片将结果显示在LED数码显示管上,单片机可直接控制打印监测数据。这种方式在很大程度上提高了工作效率,并扩展了应用围。但其中所采用的温度传感器直接输出为模拟电压信号,该信号在传输过程中易损耗,影响系统精度,且传输距离较近,需要经过A/D转换芯片才能被单片机接收。每个测试点都需要各自独立的信号线,为了实

11、现多点监测不仅需要成3 / 43百上千条信号线,还需要多路模拟转换开关电路轮流对多个测试点进行连续监测,从而增加了整个系统的环节,使其难于维护,价格昂贵。近年来,伴随微处理器芯片和网络通信技术的发展,为了简化系统设计并降低成本,各公司与科研机构开始致力于相关领域的探索,使得温度数据监测数字化、网络化的实现成为可能。其中美国DALLAS半导体公司推出了1-Wire(单总线)接口协议,单总线技术与其它总线不同,它采用单根信号线,既可传输时钟又能传输数据,而且数据传输是双向的。因此单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。该公司所提供的适用于单总线微网技术的单总线器件具

12、有无需另附电源、在测试点直接将模拟信号数字化等特点,一方面减少了系统环节,另一方面保证了系统的精度。同时各软件公司开发的可视化软件开发工具,更是向着效率高、功能强大的方向努力,从而为获得良好的用户界面奠定了基础。不仅如此,为了使温度值的采集的精度更加准确,许多公司制造出了输出频率信号的温度传感器。例如:美国DALLAS公司生产的DS18B20温度传感器。本设计主要用温度传感器DS18B20来显示温度。4 / 432 系统任务与总体方案论证2.1 设计任务按照系统设计功能的要求,初步确定设计系统由主控模块、存储模块、键盘接口模块、显示模块、报时和闹铃模块共6个模块组成。可以实现时间的显示,而且每

13、个时间的初值可以改变,独立完成系统的分析、设计和程序编写,记录开发过程中的问题与解决办法,有原理图。设计主要技术指标参数:1.主控模块:以AT89S52单片机为核心。2.存储模块:采用 AT24C02。 AT24C02是美国ATMEL公司的低功耗CMOS串行EEPROM,它是含2568位存储空间,具有工作电压宽(2.55.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。3键盘接口模块:本设计共采用按键16个,分别与单片机的三个I/O管脚相连,分别对应复位、可以任意时间的调整和退出,任意设定一个时间,到闹铃开关键的功能。4.显示模块:显示器部分是六段数码管组成。5.闹铃

14、模:用蜂鸣器代替闹铃。基于单片机系统的定时器电路包含了如下的功能模块:(1) 基本的单片机系统(2) 单片机的定时中断(3) 单片机的外围电路(4) 外部按键输入装置(5) 数码管 LED 显示装置2.2 方案论证方案一:利用单片机的定时器完成定时要求。利用单片机定时输出 Y1、Y2、Y3,定时时间分别为 T1、T2、T3,并用发光二极管表示其时间长短,用 LED 显示定时的剩余时间。时间长短通过按键调节。继电器是定时后的具体应用器件。串口用来对单片机在线编程。方案一的原理框图如下:5 / 43单片机驱动六位数码管显示电路按 键位选报 警语 音图 2.1 方案一原理框图方案二:高频脉冲信号作为

15、定时器的时间基准,计数器实现定时。该系统的工作原理是:振荡器产生的稳定的高频脉冲信号,作为定时器的时间基准,经分频器输出标准脉冲。T1 减计数器计时时通过 T1 预置数显示 T1 的剩余时间,同时使 T1 的时间和指示灯工作,当 T1 计数满之后 T2 计数器开始工作,并对 T2 预置数。T2 减计数器工作方式同 T1。当 T2 计数满之后 T3 减计数器开始工作。工作方式同 T1、T2,如此循环,便能实现该设计功能。方案二原理框图如下:T3显示译码器T1显示T2显示T3时间输出和指示T3减计数器译码器译码器T2时间输出和指示T1时间输出和指示T1减计数器T2减计数器T2预置数T3预置数T1预

16、置数分频器振荡器6 / 43图 2.2 方案二原理框图2.3 方案选择对以上两个方案进行论证,并加以选择,确定该设计的总体方案框图以便进一步设计。方案一:优点是利用单片机的定时器定时,时间精确、稳定、可靠,并可以利用单片机的功能很好地进行时间的显示、指示,输出。原理简单,使用的元器件少,相对来说在实物调试时出现的问题就少。该方案还有一个好处就是成本低。此外,经过无数人的证明,用单片机完全可以实现定时功能,失败的风险小。缺点是使用单片机要求写程序。对于不熟悉软件的人来说要单独完成该设计有一定的难度。方案二:优点是该方案应用稳定的高频脉冲信号作为定时器的时间基准,可以说也有同单片机一样的精确、稳定

17、、可靠的输出时间,且对软件编写要求不高,能很好地实现设计要求的功能。缺点是该方案复杂,一般不容易弄明白它的原理,而且应用的元器件较多,在实物调试时出现的问题可能比较多。由于元器件比较多,所以相对来说实物的成本也比较高。由于原理复杂,所以成功完成该设计的概率较低。通过对以上设计方案比较,该设计选用方案一进行设计。7 / 433 硬件电路设计该设计选用 STC 单片机,STC 单片机的部框图如下示。图 3.1 STC 单片机的部框图STC89S52 微处理器低功耗,高速(090MHZ), 高可靠掉电模式:0.1UA,空闲模式:2mA看门狗可擦除存储器DataFlash专用复位电路集成MAX810U

18、RT(串口)3 个定时器双数据指针A/DA/D(高速)可做按键扫描电池电压检测掉电检测音量和频谱检测等四个 8 位并行端口和P4.0P4.3 四个附属 IO 端口1280B SRAM8163264KB内存内置系统ISP 监控系统P0 口地址0E8HINT2/P4.3INT3/P4.2P4 口均可位寻址P00000P111111111111P2P3TAP8 / 43STC89S52 系列单片机是兼容 8051 核的单片机,是高速、低功耗的新一代 8051单片机,12 时钟/机器周期可反复设置,最新的 D 版本部集成 MAX810 专用复位电路。用 STC 提供的 STC-ISP.exe 工具将原

19、有的代码下载进 STC 相关的单片机即可,或用通用编程器编程。RC/RD+系列为真正的看门狗,默认为关闭(冷启动),启动后无法关闭,可放心省去外部看门狗。部 Flash 擦写次数为 100000 次以上,STC89S52RC/RD+系列单片机出厂时就已完全加密,无法解密。用户程序是用ISA/IAP 机制写入,一边校验一边写,无读出命令,彻底无法解密。选用 STC89S52单片机的理由:加密性强,无法解密;超强抗干扰,轻松过 4KV 快速脉冲干扰(EFT):高抗静电(ESD),6KV 静电可直接承受在芯片管脚上:超低功耗,PowerDown0.1uA,可外部中断唤醒;中断优先级可设置成 4 级;

20、PLCC-44、PQFP-44封装,有P4 口(可位寻址)。P4.2;6 时钟/机器周期或 12 时钟/机器周期可任意设置;在系统可编程,无需编程器,可远程升级;可供应部集成 MAX810 专用复位电路,原复位电路可以保留,也可以不用,不用时 RESET 引脚直接短接到地。STC89 系列单片机大部分具有在系统可编程(ISP)特性,ISP 的好处是省去了购买通用编程器的开销,单片机在用户系统上即可下载/烧录用户程序,无须将单片机从生产好的产品上拆下,再用通用编程器将程序代码烧录进单片机部。由于可以将程序直接下载进单片机查看运行结果,故也可以不用仿真器。STC89S52 的引脚图如下示:图 3.

21、2 STC89S52 的引脚图1. 外接晶体引脚XTAL1和XTAL29 / 43XTAL1 接外部晶体的一个引脚。在单片机部,它是构成片振荡器的反相放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接接到部时钟发生器的输入端。XTAL2 接外部晶体的另一个引脚。在单片机部,它是上述振荡器的反相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。2. 控制或与其它电源复用引脚RESET、ALE/PROG、/PSEN和/EA/VPPRESET 复位输入端。当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。ALE/PROG 当访问外部存储器时,ALE(地址锁

22、存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE 端仍以不变的频率(此频率为振荡器频率的 1/6)周期性地出现正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是:每当访问外部数据存储器时,将跳过一个 ALE 脉冲。在对Flash 存储器编程期间,该引脚还用于输入编程脉冲(/PROG)。 如果需要的话,通过对专用寄存(SFR)区中 8EH 单元的 D0 位置数,可禁止 ALE 操作。该位置数后,只有在执行一条 MOVX 或 MOVC 指令期间,ALE 才会被激活。另外,该引脚会被微弱拉高,单片机执行外部程序时,该设定禁止 ALE 位无效。/PSEN 程序存

23、储允许(/PSEN)输出是外部程序存储器的读选通信号。当AT89S51/LV51 由外部程序存储器取指令(或常数)时,每个机器周期两次/PSEN 有效(既输出 2 个脉冲)。但在此期间,每当访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/Vpp 外部访问允许端。要使 CPU 只访问外部程序存储器(地址为0000HFFFFH),则/EA 端必须保持低电平(接到 GND 端)。然而要注意的是,如果位 LB1 被编程,复位时在部会锁存/EA 端的状态。当/EA 端保持高电平(接 Vcc 端)时,CPU 则执行部程序存储器中的程序。 在 Flash 存储器编程期间,该引脚也用于施加

24、 12V 的编程允许电源 Vpp(如果选用 12V 编程)。P0 端口(P0.0 P0.7)P0 是一个 8 位漏极开路型双向 I/O 端口。作为输出口用时,每位能以吸收电流的方式驱动 8 个 TTL 输入,对端口写 1 时,又可作高阻抗输入端用。在访问外部程序和数据存储器时,它是分时多路转换的地址(低 8 位)/数据总线,在访问期间激活了部的上拉电阻。 在 Flash 编程时,P0 端口接收指令字节;而在验证程序时,则输出指令字节。验证时,要求外接上拉电阻。3输入/输出引脚 (P0.0 P0.7、P1.0P1.7、P2.0 P2.7 和P3.0P3.7)P1 端口(P1.0 P1.7)P1

25、是一个带有部上拉电阻的 8 位双向 I/O 端口。P1 的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写 1 时,通过部的上拉电阻把端口拉到高电位,这时可用作输入口。作输入口时,因为有部的上拉10 / 43电阻,那些被外部信号拉低的引脚会输出一个电流。 在对 Flash 编程和程序验证时,P1 接收低 8 位地址。P2 端口(P2.0P2.7)P2 是一个带有部上拉电阻的 8 位双向 I/O 端口。P2 的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写 1 时,通过部的上拉电阻把端口拉到高电位,这时可用作输入口。P2 作输入口使用时,因为有部的上拉电

26、阻,那些被外部信号拉低的引脚会输出一个电流。在访问外部程序存储器和 16 位地址的外部数据存储器(如执行 MOVX DPIR 指令)时,P2 送出高 8 位地址在访问 8 位地址的外部数据存储器(如执行 MOVX RI 指令)时,P2 口引脚上的容(就是专用寄存器(SFR)区中 P2 寄存器的容),在整个访问期间不会改变。在对Flash 编程和程序验证期间,P2 也接收高位地址和一些控制信号。P3 端口(P3.0P3.7)P3 是一个带有部上拉电阻的 8 位双向 I/O 端口。P3 的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写 1 时,通过部的上拉电阻把端口拉到高电位

27、这时可用作输入口。P3 作输入口使用时,因为有部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。作为第一功能使用时,就作为普通 I/O 口使用,功能和操作方法与 P1 口一样。3.1 STC 单片机简介3.1.1 复位电路从原理上,一般采用上电复位电路。这种复位电路的工作原理是:通电时,电容两端相当于短路,于是 RST 引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降到一定程度,即为低电平,单片机开始正常工作。该设计中复位电路选用由 10uF 的电容和 10k 的电阻与 IN4148 二极管组成。在满足单片机可靠复位的前提下该复位电路的优点在于降低复位引脚的对地阻抗,可以显

28、著增强单片机复位电路的抗干扰能力。二极管可以实现快速释放电容电量功能,满足短时间复位要求。具体如下所示:D6IN414810UFC110KR7VCCREST图 3.3 复位电路11 / 433.1.2 晶振电路单片机的晶振电路是一种典型的电路,分为部时钟和外部时钟两种方式。部时钟方式如下示:部时钟电路的晶振频率一般选择在 4MHZ12MHZ 之间(该设计选用 12MHZ),外接两个谐振电容。该电容的典型值为 30Pf,该设计选用 22PF.P1.01P1.12P1.23P1.34P1.45P1.5/MOSI6P1.6/MOSO7P1.7/SCK8RST9P3.0/RXD10P3.1/TXD11

29、P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17XTAL218XTAL119VCC20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PROG30EA/VPP31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC40STC89S52U122pFC222pFC312MHZX1图 3.4 晶振电路3.2 LED 显示与单片机接口常用的 LED 显示器有七段(或 8 段,8 段比 7 段多了一个小数点“dp”段)。

30、这种显示器有共阳极和共阴极两种。该设计中选用的是共阴极。 共阴极 LED 显示器的发光二极管的阴极连接在一起,通常该共阴极接地。当某个发光二极管的阳极为高点平时,发光二极管点亮,相应的段被显示。12 / 43abcdefdpgf7g8e5d4c3dp9b2a1LED图 3.5 共阴极 LED 的部结构使用 LED 显示器时,为了显示数字或符号,要为 LED 显示器提供代码,因为这些代码是通过段的亮与灭来显示不同字形的,因此称之为段码。7 段发光二极管,再加上一个小数点位,共计 8 段,因此提供给 LED 显示器的段码正好一个字节。3.3 按键按键使用上拉电阻方式接入单片机。未按下时对单片机输入

31、一个高电平, 按下后输入一个低电平。它在这个设计中的作用是调节作用。键的闭合与否,反映在行线输出电压上就是呈现出高电平或低电平,如果高电平表示断开的话,那么低电平则表示闭合,所以通过对行线电平的高低状态的检测,便可以确认按键按下与否。为了确保 CPU 对一次按键动作只确认一次按键,必须消除抖动的影响。前十个按键分别表示 0-9,第十一个按键为确定键,第十二个按键为左移键可以用来调时间,第十三个按键为调时,第十四个按键为调闹铃键,第十五个按键为闹铃开,第十六个按键为调温度键。13 / 43Y111.0592MC130PC230PSRST+C322uVCCR2010kVCCP1.0 (T2)1P1

32、.1 (T2EX)2P1.23P1.34P1.45P1.56P1.67P1.78P3.3 (INT1)13P3.2 (INT0)12P3.4 (T0)14P3.5 (T1)15EA/VPP31XTAL018XTAL119RESET9P3.6 (WR)16P3.7 (RD)17PSEN29ALE (PROG)30(RXD) P3.010(TXD) P3.111VCC40VSS20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.73289C52U189S52VC

33、CS1S2S3S4S5S6S7S8S9S10S11S12S13S14S15S16abcdefghvccBELLwendud1d2d3d4d5d6图 3.6 键盘与单片机的连接3.4 DS18B20 温度传感器DS1820 是世界上第一片支持 一线总线接口的温度传感器。一线总线特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20、 DS1822 一线总线数字化温度传感器 同 DS1820 一样,DS18B20 也 支持一线总线接口,测量温度围为 -55C+125C,在-10+85C 围,精度为0.5C。DS1822 的精度较差为 2C 。现场温度直接以一线

34、总线的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V5.5V 的电压围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 DS18B20、 DS1822 的特性 DS18B20 可以程序设定 912 位的分辨率,精度为0.5C。可选更小的封装方式,更宽的电压适用围。分辨率设定,与用户设定的报警温度存储在 EEPROM 中,掉电后依然保存。DS18B20 的性能是新一代产品中最好的!性能价格比也非常出色! DS1822 与 DS18B20 软件兼容,是 DS18B20 的简化版本

35、。省略了存储用户定义报警温度、分辨率参数的 EEPROM,精度降低为2C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。 继一线总线的早期产品后,DS1820 开辟了温度传感器技术的新概念。DS18B20 和 DS1822 使电压、特性与封装有更多的选择,让我们可以构建适合自己的经济的测温系统。 3.4.1DS18B20 的新性能(1) 可用数据线供电,电压围:3.05.5V; (2) 测温围:-55+125,在-10+85时精度为0.5; (3) 可编程的分辨率为 912 位,对应的可分辨温度分别为 0.5、0.25、0.125和 0.0625; 14 / 43(4) 负压特性:电

36、源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 3.4.2DS18B20 的外形和部结构 DS18B20 部结构主要由四部分组成:64 位光刻ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。DS18B20 的管脚排列如下: 图 3.7 DS18B20 外形图 引脚定义: (1) DQ 为数字信号输入/输出端; (2 GND 为电源地; (3) VDD 为外接供电电源输入端(在寄生电源接线方式时接地)。 部结构 图 3.8 DS18B20 部结构图 DS18B20 有 4 个主要的数据部件: (1)光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是

37、该 DS18B20 的地址序列码。64 位光刻 ROM 的排列是:开始 8 位(28H)是产品类型标号,15 / 43接着的 48 位是该 DS18B20 自身的序列号,最后 8 位是前面 56 位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻 ROM 的作用是使每一个 DS18B20 都各不一样,这样就可以实现一根总线上挂接多个 DS18B20 的目的。 (2) DS18B20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用16 位符号扩展的二进制补码读数形式提供,以 0.0625/LSB 形式表达。 这是 12位转化后得到的 12 位数据,存储在 18B20 的两个 8

38、 比特的 RAM 中,二进制中的前面5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测到的数值乘于 0.0625即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的数值需要取反加 1 再乘于0.0625 即可得到实际温度。 例如+125的数字输出为 07D0H,+25.0625的数字输出为 0191H,-25.0625的数字输出为 FF6FH,-55的数字输出为 FC90H。 表 3-1 DS18B20 温度数据表 TEMPERATUREDIGITALOUTPUT(binary) DIGITALOUTPUT(hex)+1250000 0111 1101 000007D0

39、h+850000 0101 0101 00000550h+25.06250000 0001 1001 00010191h+10.1250000 0000 1010 001000a2h+0.50000 0000 0000 10000008h00000 0000 0000 00000000h-0.51111 1111 1111 1000 FFF8h-25.06251111 1110 0110 1111FE6Fh-551111 1110 1001 0000 FC90h(3)DS18B20 温度传感器的存储器 16 / 43DS18B20 温度传感器的部存储器包括一个高速暂存 RAM 和一个非易失性的

40、可电擦除的 EEPRAM,后者存放高温度和低温度触发器 TH、TL 和结构寄存器。 (4)配置寄存器 该字节各位的意义如下:表 3-2 配置寄存器结构TMR1R011111 低五位一直都是 1 ,TM 是测试模式位,用于设置 DS18B20 在工作模式还是在测试模式。在 DS18B20 出厂时该位被设置为 0,用户不要去改动。R1 和 R0 用来设置分辨率,如下表所示:(DS18B20 出厂时被设置为 12 位)分辨率设置表: 表 3-3 温度值分辨率设置表R1R0分辨率温度最大转换时间009 位93.75ms0110位187.5ms1011位375ms1112位750ms3.4.3 高速暂存

41、存储器高速暂存存储器由 9 个字节组成,其分配如表 5 所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第 0 和第 1 个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如17 / 43表 1 所示。对应的温度计算:当符号位 S=0 时,直接将二进制位转换为十进制;当S=1 时,先将补码变为原码,再计算十进制值。表 2 是对应的一部分温度值。第九个字节是冗余检验字节。 表 3-4 DS18B20 暂存寄存器分布寄存器容字节地址温度值低位0温度值高位1高温限值TH2低温限值TL3配置寄存器4保留5保留6保留7CRC 检验8根据 DS1

42、8B20 的通讯协议,主机控制 DS18B20 完成温度转换必须经过三个步骤:每一次读写之前都要对 DS18B20 进行复位,复位成功后发送一条 ROM 指令,最后发送 RAM 指令,这样才能对 DS18B20 进行预定的操作。复位要求主 CPU 将数据线下拉 500 微秒,然后释放,DS18B20 收到信号后等待 1660 微秒左右,后发出 60240 微秒的存在低脉冲,主 CPU 收到此信号表示复位成功。 表 3-5 ROM 指令表指 令约定代码功 能读 ROM33H读 DS1820ROM 中的编码(即 64 位地址)符合 ROM55H发出此命令之后,接着发出 64 位 ROM 编18 /

43、 43码,访问单总线上与该编码相对应的 DS1820使之作出响应,为下一步对该 DS1820 的读写作准备。搜索 ROM0F0H用于确定挂接在同一总线上 DS1820 的个数和识别 64 位 ROM 地址。为操作各器件作好准备。跳过 ROM0CCH忽略 64 位 ROM 地址,直接向 DS1820 发温度变换命令。适用于单片工作。告警搜索命令0ECH执行后只有温度超过设定值上限或下限的片子才做出响应。表 3-6 RAM 指令表指 令约定代码功 能温度变换44H启动 DS1820 进行温度转换,转换时最长为 500ms(典型为 200ms)。结果存入部 9字节 RAM 中。读暂存器0BEH部 R

44、AM 中 9 字节的容写暂存器4EH发出向部 RAM 的 3、4 字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。复制暂存器48H将 RAM 中第 3、4 字节的容复制到EEPROM 中。重调0B8H将 EEPROM 中容恢复到 RAM 中的第 3、419 / 43EEPROM字节。读供电方式0B4H读 DS1820 的供电模式。寄生供电时DS1820 发送“0”,外接电源供电 DS1820 发送“1”。3.4.4DS18B20 的使用方法由于 DS18B20 采用的是 1Wire 总线协议方式,即在一根数据线实现数据的双向传输,而对 AT89S51 单片机来说,硬件上并不支持

45、单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对 DS18B20 芯片的访问。由于 DS18B20 是在一根 I/O 线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20 有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。对于 DS18B20 的读时序分为读 0 时序和读 1 时序两个过程。对

46、于 DS18B20 的读时隙是从主机把单总线拉低之后,在 15 秒之就得释放单总线,以让 DS18B20 把数据传输到单总线上。DS18B20 在完成一个读时序过程,至少需要60us 才能完成。对于 DS18B20 的写时序仍然分为写 0 时序和写 1 时序两个过程。对于 DS18B20 写 0 时序和写 1 时序的要求不同,当要写 0 时序时,单总线要被拉低至少 60us,保证 DS18B20 能够在 15us 到 45us 之间能够正确地采样 IO 总线上的“0”电平,当要写 1 时序时,单总线被拉低之后,在 15us 之就得释放单总线。3.4.5DS18B20 工作原理DS18B20 是

47、直接数字式高精度温度传感器,其部含有两个温度系数不同的温敏振荡器,其中低温度系数振荡器相当于标尺,高温度系数振荡器相当于测温元件,通过不断比较两个温敏振荡器的振荡周期得到两个温敏振荡器在测量温度下的振荡频率比值。根据频率比值和温度的对应曲线得到相应的温度值。这种方式避免了测温过程中的 A/D 转换,提高了温度测量的精度。DS18B20 测温原理如图所示。图中低温度系数晶振的振荡频率受温度影响很小,用来向计数器 1 提供固定频率的脉冲信号。高温度系数晶振的振荡频率受温度影响较大,随温度的变化而明显改变,其产生的信号作为计数器 2 的脉冲输入,用于控制20 / 43闸门的关 闭时间。初态时,计数器

48、 1 和温度寄存器被预置在与-55 相对应的一个基值 上。计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,在计数器 2 控制的闸门时间到达之前,如果计数器 1 的预置值减到 0,则温度寄存器的值将作加1 运算,与此同时,用于补偿和修正测温过程中非线性的斜率累加器将输出一个与温度变化相对应的计数值,作为计数器 1 的新预置值,计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环,直到计数器 2 控制的闸门时间到达亦即计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。在默认的配置中,DS18B20 的测温分辨率为 00625 ,以 12 位有效数据

49、表示,其中,高位的 s 表示符号位,其数据格式如表 1 所示。如:0000 0001 1001 0001表示 +250625 21 / 434 软件设计对于一个电子控制系统来说,程序开始的初始化,控制信号的输入输出与其时序的先后,以与系统逻辑功能在程序中体现,都必须经过非常严密思考,才能在程序上微妙不差的表现出来。下面简单介绍一下本课题程序的设计思想和功能。4.1 系统软件介绍对于一个控制系统来说,软件部分就是其“思维”过程,就是其工作时序关系的体现,并且规定该系统的功能实现,而本设计的软件部分主要用来实现的功能如下:1、能够显示当天的温度; 2、六位数码管显示 24h 任意想要得到的时间;

50、3、闹铃由蜂鸣器代替,并且有发光二极管伴随闪烁;4、能够现实正确的年历日期;22 / 434.2 总程序流程图开始开定时器中断初始化键盘处理调时函数时间处理函数判断闹铃是否开启闹铃响中断控制加 1 秒闹钟调时函数是否响铃显示图 4.1 总程序流程图23 / 435 设计调试调试容包括应用 ISIS 软件仿真电路和应用 KEIL 软件进行程序调试。5.1 应用 ISIS 软件仿真电路在 ISIS 软件中画出原理图,向单片机中加入需要调试的程序的 HEX 文件,便可以进行调试了。首先向单片机中加发光二极管指示灯程序。电路中的发光二极管指示灯便根据设计设定的方式进行指示:图 5.1 发光二极管的电路

51、仿真24 / 43图 5.2 总体电路仿真图5.2 应用 KEIL 软件进行程序调试软件的调试必须在开发系统的支持下进行。先分别调试通过各个模块程序,然后调试中断服务程序,最后调试主程序,将各部分连接进行调试。调试的围可以由小到大、逐步增加,必要的中间信号可以先作设定。通常交叉使用单步运行、断点运行、连续运行等多种方式,每一次执行完毕后,检查 CPU 执行现场、RAM 的有关容、IO 接口的状态等。发现一个问题,解决一个问题,直至全部通过。5.3 实物调试首先,用逻辑笔、万用表等工具对硬件电路作脱机检查,看连线是否与逻辑图一致,有无短路、虚焊等现象。器件的型号、规格、极性是否有误,插接方向是否

52、正确。检查完毕,用万用表测量一下电路板正负电源端之间的电阻,排除电源短路的可能性。25 / 43然后,向硬件中写入程序并调试硬件,解决问题。可以对各个子程序分别写入,分别解决硬件的每个部分的程序和硬件问题。26 / 43结 论本设计硬件电路模块清晰,整个电路中使用了 AT89S52 单片机、74HC573 等主要芯片。在对芯片的管脚功能和用法有充分的了解后,根据设计要求设计硬件电路,包括单片机控制电路、数码管显示电路,然后通过软件编程,实现了对时间的自动调整,用按键进行控制,用数码管进行显示。专用定时器可以正常显示时间并进行时间调整,基本完成了预期要实现的目标。27 / 43参考文献1 广弟

53、单片机基础 航空航天大学 1996.2 涵芳 MCS-51/96系列单片机原理与应用 航空航天大学 1996.3 王福瑞 单片微机测控系统设计大全 航空航天大学 1997.4 余永权 89系列FLASH单片机原理与应用 电子工业 2000.5 楼然苗、光飞 51系列单片机设计实例 航空航天 2003.6 何立民 单片机高级教程-应用与设计 航空航天大学 2000.7 蔡美琴 MCS-51单片机系统与其应用 高等教育 1992.8 华 单片机原理与接口技术 清华大学 1992.9 公茂法 单片机人机接口实例集 航空航天大学 1998. 10 光潭 中外集成电路简明速察手册 电子工业 1991.1

54、1 王伟 高性能、低功耗带RAM实时时钟芯片DS1302(上)电子世界(第一期) 1995 .12 王伟 高性能、低功耗带 RAM 实时时钟芯片 DS1302(下)电子世界(第四期) 1995.13 宏,家田 液晶显示器件应用技术 机械工业 2004 .14 利 液晶显示原理 电子工业 2002. 15 一九九九年产品目录(第一期) 力源股份 1999.16 MAXIMNEW RELEASES DATA BOOK (VOLUME V),AMERICA,199628 / 43附录一:源程序#include#include#include#define uint unsigned int#defi

55、ne uchar unsigned charunsigned char code Select=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf;unsigned char code LED_CODES= 0 xc0,0 xF9,0 xA4,0 xB0,0 x99,/0-4 0 x92,0 x82,0 xF8,0 x80,0 x90,/5-9 ;uchar hour,minute,second,number,nhour,nminute;uint flash=200,wei=4,de=0,flag=1,button,C100us=20000,flag_18B20;sbit

56、beer=P10;sbit led=P11; /18B20 单线温度检测的应用样例程序/*/sbit seg1=P20;sbit seg2=P21;sbit seg3=P22;sbit DQ=P12;/ds18b20 端口sfr dataled=0 x80;/显示数据端口/*/ uchar temp;uchar str3;/*/unsigned char ReadTemperature(void);29 / 43void Init_DS18B20(void);unsigned char ReadOneChar(void);void WriteOneChar(unsigned char dat)

57、;void delay(unsigned int i);/*/void wait(uint i) /延时函数 for(;i0;i-);void T0Int(void) interrupt 1 using 0 /T0 中断服务函数if(flag!=1&flag_18B20=0) C100us-; if(C100us=0) /100us 计数器为 0,重置计? C100us=20000; second+; if(second=60)second=0;minute+; if(minute=60)minute=0;hour+; if(hour=24)hour=0; void display() uch

58、ar mi,ho;if(flag_18B20=0)if(flag!=3) mi=minute; ho=hour; if(flag=3) mi=nminute; ho=nhour; 30 / 43 P0=LED_CODESsecond%10; P2=Select0; wait(30); P2=0 xff; P0=LED_CODESsecond/10; P2=Select1; wait(30); P2=0 xff; P0=LED_CODESmi%10; if(wei=1&flag0) if(flash100) P0=0 xff; P2=Select2; wait(30); P2=0 xff; P0

59、=LED_CODESmi/10; if(wei=2&flag0) if(flash100) P0=0 xff; P2=Select4; wait(30); P2=0 xff; P0=LED_CODESho%10; if(wei=3&flag0) if(flash100) P0=0 xff; P2=Select3; wait(30); P2=0 xff; P0=LED_CODESho/10; if(wei=4&flag0) if(flash100) P0=0 xff; P2=Select5;31 / 43 wait(30); P2=0 xff; flash-; if(flash=0) flash

60、=200; uchar anjian(void) unsigned scode ,recode; P3=0 xf0; if(P3&0 xf0)!=0 xf0) wait(100); if(P3&0 xf0)!=0 xf0) scode=0 xfe; while(scode&0 x10)!=0) P3=scode; if(P3&0 xf0)!=0 xf0) recode=(P3&0 xf0)|0 x0f; return (scode)+(recode); else scode=(scode1)|0 x01; return 0;void pan(uchar x)number=10;32 / 43

温馨提示

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

评论

0/150

提交评论