单片机的温度采集系统_第1页
单片机的温度采集系统_第2页
单片机的温度采集系统_第3页
单片机的温度采集系统_第4页
全文预览已结束

下载本文档

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

文档简介

1、实用技术基于ATmega单片机的DS18B20温度采集系统 海涛1 邹鸣1 骆武宁2 陈明媛1 刘得刚1 王钧1(1.广西大学电气工程学院,南宁 53000;2. 南宁微控高科技有限责任公司,南宁 53000;)摘要:本文提出利用ATmega单片机控制DS18B20工作对实时的温度进行采集并显示,介绍DS18B20温度传感器的工作原理以及AVR单片机如何对该传感器进行控制。由于该系统对环境温度能够实时显示,所以该系统有一定的推广价值。关键词:AVR单片机 DS18B20 温度传感器 1 前言 在工农业生产中,温度是重要的物理量之一, DS18B20作为新一代的数字式传感器可以直接把温度转化为相

2、应的数字量,这种测温方式可靠方便,ATmega单片机在速度和效率方面要好于PIC及8051单片机,这款单片机在海尔等公司得到了广泛的应用。该测温方式外围线路少、可靠性高、性价比好。2 DS18B20的工作原理DS18B20支持“一线总线”接口,在一定程度上提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费产品等。DS18B20可以程序设定为9-12位的分辨率,精度为0.5 0C。其具体工作时序图如下:图1 DS18B20的初始化时序图对于DS18B20操作时首先应将它复位。将DQ线拉低480至960s,再将数据线拉高15至60s,然后,DS18B20发

3、出60至240s的低电平信号(存在脉冲),这时主机才能对它进行其它操作。具体时序图如图1所示。图2 DS18B20读“1”时序图区读操作:主机将数据线从高电平拉至低电平1s以上,再使数据线升为高电平,从而产生读起始信号。从主机将数据线从高电平拉至低电平起15s至60s,主机读取数据。在读时间间隙的结尾,数据线引脚被外部上拉电阻拉到高电平。所有读时间隙必须最少60s,包括两个读周期间者至少1s的恢复时间。具体时序图如图2所示。图3 DS18B20写“1”时序图 写操作:当主机将数据线从高电平拉至低电平,产生写起始信号。有两种写时间隙:写1时间隙和写0时间隙。数据线电平变低后,DS18B20在15

4、s到60s这段时间内对数据线进行检测,如数据线为高电平则写1;若为低电平,则写0,完成了一个写周期。时间写周期间至少有1s的恢复时间,所有的写间隙必须至少持续60s。具体时序图如图3所示。3 温度采集系统的硬件设计 该系统主要有两部分组成,一部分是温度采集部分,一部分是温度显示部分。均采用LED显示。DS18B20数据线接AVR单片机的PB7,数据线和Vcc间接一4.7k上拉电阻。显示部分用了AVR单片机的三个I/O口,分别PB0、PB1、PB2。在单片机与LED显示管之间有两片74LS595移位寄存器,一片控制位码操作,一片控制段码操作。寄存器的特点是能使采集到的温度能够串行输入,并行输出。

5、先移位后通过同步时钟锁存。具体的硬件结构框图如图4。按键控制电路Atmega16单片机温度采集显示报警 图4 系统的硬件总体框图3 温度采集系统的软件部分系统的主程序如图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;i<200;i+)led_

6、list1(); /温度显示 部分子程序:void init_1820() PORTB|=(1<<7); PORTB&=(1<<7); delay(300); /480us以上 (仿真时可以200) PORTB|=(1<<7); DDRB&=(1<<7); delay(15); /1560us (仿真时不得少于13) DDRB|=(1<<7); PORTB|=(1<<7); delay(40); /60240us write_1820(uchar x) uchar m; for(m=0;m<8;m+)

7、 PORTB&=(1<<7); if(x&(1<<m) /写数据,从低位开始 PORTB|=(1<<7); else PORTB&=(1<<7); delay(10); /1560us PORTB|=(1<<7); PORTB|=(1<<7); uchar read_1820() uchar temp,k,n; temp=0; for(n=0;n<8;n+) PORTB&=(1<<7); delay(2); PORTB|=(1<<7); DDRB&=(1

8、<<7); k=(PINB&(1<<7); /读数据,从低位开始 if(k) temp|=(1<<n); else temp&=(1<<n); delay(15); /60120us (仿真时不得少于15) DDRB|=(1<<7); return (temp); 5 结论 DS18B20单总线传感器硬件具有设计简单、精度高、线性度好、替代性好等优点。经实验表明该系统可靠性高、重复性好,基本能够符合温度的实时检测,同时还能对温度进行多路的采集。因此,该系统在温度测量环境中有一定的实用和参考价值。本文的特点在于用ATmega单片机代替传统单片机。参考文献1金伟正.单线数字温度传感器的原理与应用.电子技术应用,2000(6):66682海涛. ATmega系

温馨提示

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

评论

0/150

提交评论