基于AVR单片机的ds18b20的温度采集系统Word文档格式.doc

上传人:b****9 文档编号:13010274 上传时间:2022-10-02 格式:DOC 页数:4 大小:359KB
下载 相关 举报
基于AVR单片机的ds18b20的温度采集系统Word文档格式.doc_第1页
第1页 / 共4页
基于AVR单片机的ds18b20的温度采集系统Word文档格式.doc_第2页
第2页 / 共4页
基于AVR单片机的ds18b20的温度采集系统Word文档格式.doc_第3页
第3页 / 共4页
基于AVR单片机的ds18b20的温度采集系统Word文档格式.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于AVR单片机的ds18b20的温度采集系统Word文档格式.doc

《基于AVR单片机的ds18b20的温度采集系统Word文档格式.doc》由会员分享,可在线阅读,更多相关《基于AVR单片机的ds18b20的温度采集系统Word文档格式.doc(4页珍藏版)》请在冰豆网上搜索。

基于AVR单片机的ds18b20的温度采集系统Word文档格式.doc

2DS18B20的工作原理

DS18B20支持“一线总线”接口,在一定程度上提高了系统的抗干扰性。

适合于恶劣环境的现场温度测量,如:

环境控制、设备或过程控制、测温类消费产品等。

DS18B20可以程序设定为9-12位的分辨率,精度为0.50C。

其具体工作时序图如下:

图1DS18B20的初始化时序图

对于DS18B20操作时首先应将它复位。

将DQ线拉低480至960μs,再将数据线拉高15至60μs,然后,DS18B20发出60至240μs的低电平信号(存在脉冲),这时主机才能对它进行其它操作。

具体时序图如图1所示。

图2DS18B20读“1”时序图区

读操作:

主机将数据线从高电平拉至低电平1μs以上,再使数据线升为高电平,从而产生读起始信号。

从主机将数据线从高电平拉至低电平起15μs至60μs,主机读取数据。

在读时间间隙的结尾,数据线引脚被外部上拉电阻拉到高电平。

所有读时间隙必须最少60μs,包括两个读周期间者至少1μs的恢复时间。

具体时序图如图2所示。

图3DS18B20写“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。

按键控制电路

Atmega16单片机

温度采集

显示

报警

图4系统的硬件总体框图

3温度采集系统的软件部分

系统的主程序如图5所示。

图5系统主程序流程图

软件系统的主程序:

voidmain(void)//主函数

{uinti;

OSCCAL=0Xa2;

//系统时钟校准,不同的芯片和不同的频率

io_init();

//mega8初始化

convert1_1820();

//温度转换(1850us---754次)

led_row1=count*10;

//转换结果(扩大100倍)

led_assign();

//数据分配

for(i=0;

i<

200;

i++)led_list1();

//温度显示

}

部分子程序:

voidinit_1820()

{PORTB|=(1<

<

7);

PORTB&

=~(1<

delay(300);

//480us以上(仿真时可以200)

PORTB|=(1<

DDRB&

delay(15);

//15~60us(仿真时不得少于13)

DDRB|=(1<

delay(40);

//60~240us

}

write_1820(ucharx)

{ucharm;

for(m=0;

m<

8;

m++)

{PORTB&

if(x&

(1<

m))//写数据,从低位开始

else

PORTB&

delay(10);

//15~60us

PORTB|=(1<

}

ucharread_1820()

{uchartemp,k,n;

temp=0;

for(n=0;

n<

n++)

delay

(2);

DDRB&

k=(PINB&

7));

//读数据,从低位开始

if(k)

temp|=(1<

n);

temp&

delay(15);

//60~120us(仿真时不得少于15)

DDRB|=(1<

return(temp);

}

5结论

DS18B20单总线传感器硬件具有设计简单、精度高、线性度好、替代性好等优点。

经实验表明该系统可靠性高、重复性好,基本能够符合温度的实时检测,同时还能对温度进行多路的采集。

因此,该系统在温度测量环境中有一定的实用和参考价值。

本文的特点在于用ATmega单片机代替传统单片机。

参考文献

[1]金伟正.单线数字温度传感器的原理与应用.电子技术应用,2000(6):

66~68

[2]海涛.ATmega系列单片机原理及应用—C语言教程[M].机械工业出版社,2008.

[3]马忠梅.单片机的C语言应用程序设计[M].北京航空航天大学出版社,2007.

作者简介:

海涛,男,硕士生导师,高级工程师,主要研究方向为工业自动化及检测仪表。

邹鸣,男,硕士研究生,研究方向为综合自动化。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1