第十二讲DS18B20与多功能电子钟_第1页
第十二讲DS18B20与多功能电子钟_第2页
第十二讲DS18B20与多功能电子钟_第3页
第十二讲DS18B20与多功能电子钟_第4页
第十二讲DS18B20与多功能电子钟_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、AVR单片机软硬件设计教程-入门篇 学单片机就要学AVR!主 讲: 尹延辉策 划:张 勇 学习板:LT-Mini-M16 力天电子版权所有技术交流QQ群: 2008年 9月1第十二讲项目实例:多功能电子钟本讲内容:项目设计要求项目规划DS18B20的使用方法程序流程项目设计要求设计要求:设计制作一个多功能电子钟,具备年月日时分秒显示功能,掉电后时钟信息不会丢失。具备显示当前环境温度功能。显示器可以在字符液晶与数码管之间切换选择。电子钟通过USART与PC机通讯,通过串口调试助手设置时间。通过四个按键切换显示模式与数码管显示内容。具有数字电压表功能,能够测量02.5V范围内的电压并在字符型液晶上

2、显示。采用AVR单片机ATmega16。项目规划时钟功能的实现:AVR单片机自带RTC功能,但C语言实现日历功能比较复杂, 且ATmega16的功耗不够低(ATmega48V是典型的低功耗AVR),而时钟芯片DS1302掉电功耗很低,操作方便,因此时钟功能选择DS1302+备份电池实现。字符液晶的选择:选择最常用的字符型液晶1602。上位机通讯:采用TTL-232电平转换芯片MAX232A,DB9接口。温度测量功能:采用常用的温度测量芯片DS18B20电压表功能:片上自带的10位ADC,片内2.56V参考电压源,测量电压直接输入。DS18B20简介DS18B20简介美国美信(Maxim)公司生

3、产的单线数字温度传感器DS1820,可把温度信号直接转换成串行数字信号供微机处理。 DS18B20的主要特性适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内温范围55125,在-10+85时精度为0.5可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测

4、温在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。DS18B20内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。 4个主要的数据部件光刻ROM与存储器光刻ROM中的64位

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

6、号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。 4个主要的数据部件存储器DS18B20温度传感器的存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPROM,后者存放高温度和低温度触发器TH、TL和结构寄存器。高速暂存存储器 高速暂存存储器由9个字节组成,其分配如右表所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后

7、,数据格式如表1所示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。表 2是对应的一部分温度值。第九个字节是冗余检验字节。 寄存器内容字节地址温度值低位(LS Byte)0温度值高位(MS Byte)1高温限值(TH)2低温限值(TL)3配置寄存器4保留5保留6保留7CRC校验值84个主要的数据部件配置寄存器 配置寄存器 该字节各位的意义如右表:低五位一直都是“1”,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如右表所示:(DS18

8、B20出厂时被设置为12位) TMR1R011111R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms操作步骤根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作复位成功后发送一条ROM指令最后发送RAM指令这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。ROM指令表指 令约定代码功 能读R

9、OM0 x33读DS1820温度传感器ROM中的编码(即64位地址)符合 ROM0 x55发出此命令之后,接着发出 64 位 ROM 编码,访问单总线上与该编码相对应的 DS1820 使之作出响应,为下一步对该 DS1820 的读写作准备。搜索 ROM0 xF0用于确定挂接在同一总线上 DS1820 的个数和识别 64 位 ROM 地址。为操作各器件作好准备。跳过 ROM0 xCC忽略 64 位 ROM 地址,直接向 DS1820 发温度变换命令。适用于单片工作。告警搜索命令0 xEC执行后只有温度超过设定值上限或下限的片子才做出响应。RAM指令表指 令约定代码功 能温度变换0 x44启动DS1820进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节RAM中。读暂存器0 xBE读内部RAM中9字节的内容写暂存器0 x4E发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是

温馨提示

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

评论

0/150

提交评论