基于AVR单片机的ds18b20的温度采集系统.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实用技术 基于ATmega单片机的DS18B20温度采集系统 □海 涛1 邹鸣1 骆武宁2 陈明媛1 刘得刚1 王钧1 (1.广西大学电气工程学院,南宁 530004;2. 南宁微控高技有限责任公司)0.5 0C。其具体工作时序图如下: 图1 DS18B20的初始化时序图 对于DS18B20操作时首先应将它复位。将DQ线拉低480至960μs,再将数据线拉高15至60μs,然后,DS18B20发出60至240μs的低电平信号(存在脉冲),这时主机才能对它进行其它操作。具体时序图如图1所示。 图2 DS18B20读“1”时序图区 读操作:主机将数据线从高电平拉至低电平1μs以上,再使数据线升为高电平,从而产生读起始信号。从主机将数据线从高电平拉至低电平起15μs至60μs,主机读取数据。在读时间间隙的结尾,数据线引脚被外部上拉电阻拉到高电平。所有读时间隙必须最少60μs,包括两个读周期间者至少1μs的恢复时间。具体时序图如图2所示。 图3 DS18B20写“1”时序图 写操作:当主机将数据线从高电平拉至低电平,产生写起始信号。有两种写时间隙:写1时间隙和写0时间隙。数据线电平变低后,DS18B20在15μs到60μs这段时间内对数据线进行检测,如数据线为高电平则写1;若为低电平,则写0,完成了一个写周期。时间写周期间至少有1μs的恢复时间,所有的写间隙必须至少持续60μs。具体时序图如图3所示。 3 温度采集系统的硬件设计 该系统主要有两部分组成,一部分是温度采集部分,一部分是温度显示部分。均采用LED显示。 DS18B20数据线接AVR单片机的PB7,数据线和Vcc间接一4.7k上拉电阻。显示部分用了AVR单片机的三个I/O口,分别PB0、PB1、PB2。 在单片机与LED显示管之间有两片74LS595移位寄存器,一片控制位码操作,一片控制段码操作。寄存器的特点是能使采集到的温度能够串行输入,并行输出。先移位后通过同步时钟锁存。具体的硬件结构框图如图4。 图4 系统的硬件总体框图 温度采集系统的软件部分 系统的主程序如图5所示。 图5 系统主程序流程图 软件系统的主程序: void main(void) //主函数 {uint i; OSCCAL=0Xa2;//系统时钟校准,不同的芯片和不同的频率 io_init();//mega8初始化 convert1_1820();//温度转换(1850us---754次) led_row1=count*10;//转换结果(扩大100倍) led_assign();//数据分配 for(i=0;i200;i++)led_list1(); //温度显示 } 部分子程序: void init_1820() { PORTB|=(17); PORTB=~(17); delay(300); //480us以上 (仿真时可以200) PORTB|=(17); DDRB=~(17); delay(15); //15~60us (仿真时不得少于13) DDRB|=(17); PORTB|=(17); delay(40); //60~240us } write_1820(uchar x) { uchar m; for(m=0;m8;m++) { PORTB=~(17); if(x(1m)) //写数据,从低位开始 PORTB|=(17); else PORTB=~(17); delay(10); //15~60us PORTB|=(17); } PORTB|=(17); } uchar read_1820() { uchar temp,k,n; temp=0; for(n=0;n8;n++) { PORTB=~(17); delay(2); PORTB|=(17); DDRB=~(17); k=(PINB(17)); //读数据,从低位开始 if(k) temp|=(1n); else temp=~(1n); delay(15); //60~120us (仿真时不得少于15) DDRB|=(17); } return (temp); } 5 结论 DS18B20单总线传感器硬件具有设计简单、精度高、线性度好、替代性好等优点。经实验表明该系统可靠性高、重复性好,基本能够符合温度的实时检测,同时还能对温度进行多路的采集。因此,该系统在温度测量环境中有一定的实用和参考价值。本文的特点在于用ATmega单片机代替传统单片机。 参考文献 [1]金伟正.单线数字温度传感器的原理与应用.电子技术应用,2000

文档评论(0)

godaddy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档