基于ATmega单片机的DS18B20温度采集系统

基于ATmega单片机的DS18B20温度采集系统

ID:38711125

大小:358.00 KB

页数:4页

时间:2019-06-18

基于ATmega单片机的DS18B20温度采集系统_第1页
基于ATmega单片机的DS18B20温度采集系统_第2页
基于ATmega单片机的DS18B20温度采集系统_第3页
基于ATmega单片机的DS18B20温度采集系统_第4页
资源描述:

《基于ATmega单片机的DS18B20温度采集系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实用技术基于ATmega单片机的DS18B20温度采集系统摘要:本文提出利用ATmega单片机控制DS18B20工作对实时的温度进行采集并显示,介绍DS18B20温度传感器的工作原理以及AVR单片机如何对该传感器进行控制。由于该系统对环境温度能够实时显示,所以该系统有一定的推广价值。关键词:AVR单片机DS18B20温度传感器1前言在工农业生产中,温度是重要的物理量之一,DS18B20作为新一代的数字式传感器可以直接把温度转化为相应的数字量,这种测温方式可靠方便,ATmega单片机在速度和效率方面要好于PIC及8051单片机,这款

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

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

4、平变低后,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移位

5、寄存器,一片控制位码操作,一片控制段码操作。寄存器的特点是能使采集到的温度能够串行输入,并行输出。先移位后通过同步时钟锁存。具体的硬件结构框图如图4。按键控制电路Atmega16单片机温度采集显示报警图4系统的硬件总体框图2温度采集系统的软件部分系统的主程序如图5所示。图5系统主程序流程图软件系统的主程序:voidmain(void)//主函数{uinti;OSCCAL=0Xa2;//系统时钟校准,不同的芯片和不同的频率io_init();//mega8初始化convert1_1820();//温度转换(1850us---754次

6、)led_row1=count*10;//转换结果(扩大100倍)led_assign();//数据分配for(i=0;i<200;i++)led_list1();//温度显示}部分子程序:voidinit_1820(){PORTB

7、=(1<<7);PORTB&=~(1<<7);delay(300);//480us以上(仿真时可以200)PORTB

8、=(1<<7);DDRB&=~(1<<7);delay(15);//15~60us(仿真时不得少于13)DDRB

9、=(1<<7);PORTB

10、=(1<<7);delay(40);//6

11、0~240us}write_1820(ucharx){ucharm;for(m=0;m<8;m++){PORTB&=~(1<<7);if(x&(1<

12、=(1<<7);elsePORTB&=~(1<<7);delay(10);//15~60usPORTB

13、=(1<<7);}PORTB

14、=(1<<7);}ucharread_1820(){uchartemp,k,n;temp=0;for(n=0;n<8;n++){PORTB&=~(1<<7);delay(2);PORTB

15、=(1<<7);DDRB

16、&=~(1<<7);k=(PINB&(1<<7));//读数据,从低位开始if(k)temp

17、=(1<

18、=(1<<7);}return

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。