资源预览内容
第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
亲,该文档总共4页全部预览完了,如果喜欢就下载吧!
资源描述
实用技术基于 ATmega 单片机的 DS18B20 温度采集系统海 涛 1 邹鸣 1 骆武宁 2 陈明媛 1 刘得刚 1 王钧 1(1.广西大学 电气工程学院,南宁 53000;2. 南宁微控高科技有限责任公司,南宁 53000;)摘要:本文提出利用 ATmega 单片机控制 DS18B20 工作对实时的温度进行采集并显示,介绍 DS18B20 温度传感器的工作原理以及 AVR 单片机如何对该传感器进行控制。由于该系统对环境温度能够实时显示,所以该系统有一定的推广价值。关键词:AVR 单片机 DS18B20 温度传感器 1 前言在工农业生产中,温度是重要的物理量之一, DS18B20作为新一代的数字式传感器可以直接把温度转化为相应的数字量,这种测温方式可靠方便,ATmega单片机在速度和效率方面要好于PIC及8051单片机,这款单片机在海尔等公司得到了广泛的应用。该测温方式外围线路少、可靠性高、性价比好。2 DS18B20的工作原理DS18B20支持“ 一线总线”接口,在一定程度上提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费产品等。DS18B20可以程序设定为 9-12位的分辨率,精度为 0.5 0C。其具体工作时序图如下:控制器 T X 复位脉冲 4 8 0 u s m i n 9 6 0 u s m a x 等待1 5 - 6 0 u sD S 1 8 2 0存在脉冲6 0 - 2 4 0 u s控制器 R X 4 8 0 u s m i nV C CG N D单线总线图1 DS18B20的初始化时序图对于DS18B20操作时首先应将它复位。将DQ线拉低480至 960s,再将数据线拉高15至60s ,然后,DS18B20 发出 60至240s 的低电平信号(存在脉冲) ,这时主机才能对它进行其它操作。具体时序图如图1所示。G N D控制器采样 1 u s1 5 u s1 5 u s 3 0 u s 1 5 u s控制器读 0 时间隙控制器采样控制器读 1 时间隙1 u s 1 u s1 5 u s1 5 u s3 0 u s1 5 u sD S 1 8 2 0M I N T Y P M A XD S 1 8 2 0 采样M I N T Y P M A X1 5 u s3 0 u s图3 DS18B20 写“1”时序图写操作:当主机将数据线从高电平拉至低电平,产生写起始信号。有两种写时间隙:写1时间隙和写0时间隙。数据线电平变低后,DS18B20在15s到60s这段时间内对数据线进行检测,如数据线为高电平则写1;若为低电平,则写0,完成了一个写周期。时间写周期间至少有1s的恢复时间,所有的写间隙必须至少持续60s。具体时序图如图3所示。3 温度采集系统的硬件设计该系统主要有两部分组成,一部分是温度采集部分,一部分是温度显示部分。均采用LED显示。DS18B20数据线接AVR单片机的PB 7,数据线和Vcc间接一4.7k上拉电阻。显示部分用了AVR单片机的三个I/O口,分别PB 0、PB 1、PB 2。在单片机与LED显示管之间有两片74LS595移位寄存器,一片控制位码操作,一片控制段码操作。寄存器的特点是能使采集到的温度能够串行输入,并行输出。先移位后通过同步时钟锁存。具体的硬件结构框图如图4。Atmega16 单片机温度采集 显示报警图4 系统的硬件总体框图3 温度采集系统的软件部分系统的主程序如图5所示。按键控制电路否是 是否检测到 D S 1 8 B 2 0单片机的初始化D S 1 8 B 2 0 初始化读取温度温度转换送 L E D 显示图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 delay(300); /480us 以上 (仿真时可以 200)PORTB|=(17); DDRB delay(15); /1560us (仿真时不得少于 13) DDRB|=(17); PORTB|=(17); delay(40); /60240us write_1820(uchar x) uchar m; for(m=0;m8;m+) PORTB if(x&(1m) /写数据,从低位开始 PORTB|=(17); else PORTB delay(10); /1560us PORTB|=(17); PORTB|=(17); uchar read_1820() uchar temp,k,n; temp=0; for(n=0;n8;n+) PORTB delay(2); PORTB|=(17); DDRB k=(PINB /读数据,从低位开始 if(k) temp|=(1n); else temp delay(15); /60120us (仿真时不得少于 15) DDRB|=(17); return (temp); 5 结论DS18B20 单总线传感器硬件具有设计简单、精度高、线性度好、替代性好等优点。经实验表明该系统可靠性高、重复性好,基本能够符合温度的实时检测,同时还能对温度进行多路的采集。因此,该系统在温度测量环境中有一定的实用和参考价值。本文的特点在于用 ATmega 单片机代替传统单片机。参考文献1金伟正.单线数字温度传感器的原理与应用.电子技术应用,2000(6):66682海涛. ATmega系列单片机原理及应用C 语言教程M. 机械工业出版社 ,2008.3马忠梅. 单片机的C语言应用程序设计 M.北京航空航天大学出版社 ,2007.作者简介:海涛,男,硕士生导师,高级工程师,主要研究方向 为工业自动化及检测仪表。邹鸣,男,硕士研究生,研究方向为综合自动化。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号