《DSB数字温度计的设计方案 .docx》由会员分享,可在线阅读,更多相关《DSB数字温度计的设计方案 .docx(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结单片机课程设计报告设计课题: DS18B20 数字温度计的设计专业班级: 09 通信工程小组成员: 金双凤 066 谭晓平 153 朱传毅指导老师:田茂设计时间: 2021-11-20 2021-12-25DS18B20数字温度计的设计一、功能要求数字温度计测温范畴在 -55+125,误差在0.5以内,接受四位一体七段数码显示管直接显示。二、方案论证在日常生活及工农业生产中,经常要用到温度的检测及把握,传统的测温元件有热电偶和热电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持。其缺点如下:硬件电路复杂。软件调试复杂。制作成本高。本数字温度计
2、设计接受温度传感器DS18B20 作为检测元件,测温范畴 55 125,最高辨论率可达0.0625 。DS18B20 可以直接读出被测温度值,而且接受三线制与单片机相连,削减了外部的硬件电路,具有低成本和易使用的特点。依据系统设计功能的要求,确定系统由3 个模块组成:主把握器、测温电路和显示电路。数字温度计总体结构框图如图1 所示。可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结(1) )主把握器图 2设计原理图可编辑资料 - - - 欢迎下载精品名师归纳总结图 1 数字温度计总体结构框图三、 系统硬件电路的设计温度计电路的设计原理图如图2 所示
3、,把握器使用单片机AT89C2051,温度传感器使用 DS18B20,用 4 位共阳七段数码显示管以动态扫描法实现温度显示。单片机 AT89C2051 具有低电压供电和小体积等特点,两个端口刚好中意电路系统的设计需要,很适合便携手持式产品的设计使用。系统可用两节电池供电。(2) )显示电路显示电路接受 4 位共阳七段数码显示管,从P1口输出段码,列扫描用 P3.0 P3.3 口来实现,列驱动用 9012 三极管。(3) )温度传感器工作原理a. DS18B20的性能特点DS18B20 温度传感器是一种改进型智能温度传感器。与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可依据实际需要
4、通过简洁的编程可编辑资料 - - - 欢迎下载精品名师归纳总结实现 9 12 位的数字值读数方式。 DS18B20 的性能特点如下:特别的单线接口仅需要一个端口引脚进行通信。多个 DS18B20 可以并联在唯独的三线上,实现多点组网功能。不需要外部器件。可通过数据线供电,电压范畴为3.0 5.5V。零待机功耗。温度以 9 12 位数字量读出。用户可定义的非易失性温度报警设置。报警搜寻命令识别并标志超过程序限定温度的器件。负电压特性,电源电压接反时,温度计不会因发热而烧毁,只是不能正常工作。b. DS18B20 的内部结构DS18B20 接受 3 脚 PR 35 封装或 8 脚 SOIC 封装,
5、其内部结构框图如图 3 所示。图 3 DS18B20 内部结构框图64 位 ROM 的位结构如图 4 所示。开头 8 位是产品类型的编号。接着是每个器件的唯独的序号,共有 48 位。最终 8 位的前面 56 位的 CRC 检验码,这也是多个 DS18B20 可以接受单线进行通信的缘由。非易失性温度报警触发器TH 和TL,可通过软件写入用户报警上下限数据。可编辑资料 - - - 欢迎下载精品名师归纳总结图 4 DS18B20 的 64 位 ROM 的位结构DS18B20 温度传感器的内部储备器仍包括一个高速暂缓RAM 和一个非易失性的可电擦除的 EEPROM。高速暂缓 RAM 的结构为 9 字节
6、的储备器,其结构如图 5 所示。前 2 字节包含测得的温度信息。第 3 和第 4 字节是 TH 和 TL 的拷贝,是易失的,每次上电复位时被刷新。第 5 字节为配置寄存器,其内容用于确定温度值的数字转换辨论率, DS18B20 工作时按此寄存器中的辨论率将温度转换为相应精度的数值。图 5 DS18B20 高速暂缓 RAM 的结构图该字节各位的定义如图 6 所示,其中,低 5 位始终为 1。 TM 是测试模式位,用于设置 DS18B20 在工作模式仍是在测试模式,在DS18B20 出厂时,该位被设置成 0,用户不要去改动。 R1 和 R0 准备温度转换的精度位数,即用来设置辨论率,其定义方法见下
7、表。图 6 高速暂缓 RAM 各位字节的定义可编辑资料 - - - 欢迎下载精品名师归纳总结由表可见, DS18B20 温度转换的时间比较长,而且设定的辨论率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要将辨论率和转换时间 权衡考虑。高速暂存 RAM 是第 6、7、8 字节保留未用,表现为全规律 1。第 9 字节是前面所以 8 字节的 CRC 码,可用来检验数据,从而保证通信数据的正确性。当 DS18B20 接受到温度转换命令后,开头启动转换。转换完成后的温度值就以 16 位带符号扩展的二进制补码形式储存在高速暂缓RAM 的第 1、2 字节中。单片机可以通过单线接口读出该数据,读数
8、据时,低位在先,高位在后,数据格式以 0.0625/LSB 形式表示。温度值格式如图 7 所示。图 7DS18B20 温度值格式图中, S 表示符号位。当 S=0 时,表示测得的温度值为正值,可以直接将二进制位转换为十进制。当 S=1 时,表示测得的温度值为负值,要先将补码变为原码,再运算十进制值。DS18B20 完成温度转换后,就把测得的温度值与RAM 中的 TH、TL 字节内容作比较,如 TTH 或 T0 。 t-。/*scan显示扫描函数*/char k 。fork=0。k0 。 i- /DQ=1。_nop_ 。_nop_ 。DQ = 0 。_nop_ 。_nop_ 。_nop_ 。_n
9、op_ 。 _nop_ 。/5us DQ = val&0x01 。/最低位移出delay6。/66usval=val/2。/右移一位DQ = 1 。delay1。/可编辑资料 - - - 欢迎下载精品名师归纳总结/*18B20读 1 个字节函数 */ 从总线上读取一个字节uchar read_bytevoiduchar i。uchar value = 0。for i=8。i0 。i-DQ=1。_nop_ 。_nop_ 。value=1 。DQ = 0 。/_nop_ 。_nop_ 。_nop_ 。_nop_ 。 /4usDQ = 1 。_nop_ 。_nop_ 。_nop_ 。_nop_ 。
10、/4us ifDQvalue|=0x80。delay6。/66usDQ=1。returnvalue。/*读出温度函数 */ read_tempow_reset。/总线复位write_byte0xCC。 /发 Skip ROM 命令write_byte0xBE。 /发读命令temp_data0=read_byte。 /温度低 8 位temp_data1=read_byte。 /温度高 8 位ow_reset。write_byte0xCC。 / Skip ROM write_byte0x44。 /发转换命令/*温度数据处理函数*/ work_tempuchar n=0 。/ iftemp_data
11、1127temp_data1=256-temp_data1。 temp_data0=256-temp_data0。 n=1。 /负温度求补码display4=temp_data0&0x0f。 display0=ditabdisplay4。display4=temp_data0&0xf04|temp_data1&0x0f4。/ display3=display4/100。可编辑资料 - - - 欢迎下载精品名师归纳总结display1=display4%100。display2=display1/10。display1=display1%10。if.display3display3=0x0A。
12、if.display2display2=0x0A。/最高位为0 时都不显示ifndisplay3=0x0B。/负温度时最高位显示 -/*主函数 */ mainDisdata=0xff。 /初始化端口discan=0xff。forh=0。h4。h+displayh=8。/开机显示 8888 ow_reset。/开机先转换一次 write_byte0xCC。 / Skip ROMwrite_byte0x44。 /发转换命令forh=0。h500。 h+scan。/开机显示 88882秒while1read_temp。/读出 18B20 温度数据work_temp。/处理温度数据 forh=0。 h
13、500。h+scan。/显示温度值 2 秒六、 调试及性能分析系统调试以程序调试为主。硬件检查比较简洁,第一检测电路的焊接是否正确,然后可以用万用表检测或通电检测。软件调试可以先编写显示程序并进行硬件的正确性检测,然后分别进行主程序,读出温度子程序,温度转换命令主程序,运算温度子程序仍有显示数据刷子程序等的编程和调试。由于 DS18B20 与单片机接受串口数据传输,因此,对DS18B20 进行读/写编程时必需严格的保证读写时序,否就将无法读取测量结果。本程序接受c 语言编写,用 Keil c51 编译器编译测试。可编辑资料 - - - 欢迎下载精品名师归纳总结软件测试到能显示温度值,而且是在用
14、温度变化时有(例如用手去接触) 显示温度转变,就基本完成。性能测试可以制作的温度计和已有的成品温度计同时进行检测比较,由于DS18B20 精度很高,所以误差指标可以限制在 0.5以内。另外-55 +125的测温范畴是的该温度计完全适合一般的应用场合,其低电压供电的特性可做成用电池供电的手持式电子温度计。DS18B20温度计仍可以在高低温时报警、远距离多点测温把握等方面进行应用开发,但是在实际应用中应留意一下几个方面:DS18B20工作是电流高达 1.5mA,总线上挂接点数较多且同时进行转换时要考虑增加总线驱动,可以用单片机端口在温度转换时导通一个MOSFE供T 电。连接 DS18B20的总线电
15、缆是有长度限制的,因此在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配等问题。在 DS18B20测温程序设计中,向 DS18B20发出温度转换命令后,程序总要等待 DS18B20的返回信号。一旦某个 DS18B20接触不好或断线,当程序读该 DS18B20时,将没有返回信号,程序进入死循环。这一点在进行DS18B20硬件连接和软件设计时要赐予确定的重视。七、终止语学习了一个学期的单片机,起初学习的时候,觉得单片机很难学,好多的 指令要把握,什么定时器 . 计数器,什么中断系统,仍有一些协议不同的通信方式。这些都让我感觉到单片机的复杂与难懂,即使有一些程序可以弄明白,但 是轮到自己去编写,去设计时,无论怎么做都达不到所要求的那样,经常是掉 了一些东西。等到学习单片机试验的时候,可能是资料太过详细,依着原理图 连接好硬件,转变程序中对应的接口,调试,下载,一切就变得理所当然了。通过单片机的设计,我才把书本上呆板的指令化为有用的,可以显示的实物。让我们学习起来,又有了爱好,学习的热忱又提高了。也学到了以前不曾留意和没弄懂的学问。可编辑资料 - - - 欢迎下载
限制150内