新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于ZigBee的无线温度监控系统的设计

基于ZigBee的无线温度监控系统的设计

作者:时间:2013-01-24来源:网络收藏

3 AVR单片机控制模块
AVR单片机控制模块由2部分组成:单片机最小系统以及DS18B20温度采集模块,如图3中虚线框所示。其中,单片机系统的RX、TX两个引脚和的TX、RX引脚相连,负责UART的通讯。单片机的PCI引脚与DS18B20的数据端相连,接收来自温度传感器的温度数据。此外,单片机上的PA0和PA1两个引脚分别引出,用来指示不同的温度控制响应。

本文引用地址:http://www.eepw.com.cn/article/153600.htm

e.JPG


3.1 温度采集模块
温度采集模块由温度传感器DS18B20构成。由于DS18B20采用1-WIRE数据传输协议,仅使用1根数据线即可实现与单片机芯片的双向通讯(包括传输温度信息),接线方便,非常适用于农业大棚、洁净室、机房等多种非极限测温场合。设计采用寄生电源供电方式,电路连接如图4所示,由ATMega16的PCI采集温度数据。

f.JPG


DS18B20的内部有64位的ROM单元和9字节的RAM单元。64位的ROM包含了DS18B20唯一的序列号,因此DS18B20支持多点组网功能,多至阶DS18B20可以同时存在一条总线上,实现多点测温,由ROM读取操作来判断选择某点的DS18B20温度数据。在9字节RAM单元中,字节0-1是温度寄存器,用来保存转换好的温度,共16bits。其中,bit0-bit7为LSB,分别保存权值为2-4至23的数据;bit8-bit15为MSB,bit8-bit10保存权值为24至26的数据,bit11-bit15为符号位,DS18B20的分辨率为0.0625,温度计算公式为:temperature=(MSB+LSB)×256x0.062。DS18 B20内部还有2个E2PROM字节TH和TL,用于配置温度最高界限和温度最低界限,用户通过设置这2个寄存器的值可以设定温度报警的上下限。
3.2 单片机控制系统
单片机控制系统使用Atmel公司的ATMega16L芯片作为主控芯片,实现温度数据的采集、串行数据的发送与接收,以及根据上位机的设定温度和当前温度比对结果做出加热或降温响应。数据传输和温度信号采集部分的主要程序如下。
1 UART数据接收模块
h.JPG
利用单片机内部自带的接收中断来完成数据接收模块。在此之前,需要对UART寄存器进行如下配置:异步模式、8位数据位、无校验位、1位停止位。波特率设置函数为:UBRRL=(CRYSTAL/BAUD/16-1)%256和UBRRH=(CRYSTAL/BAUD/16-1)/256。
2 UART数据发送模块
i.JPG
当系统调用字符发送函数时,会先判断发送寄存器是否为空,如果为空,则函数会向UART的I/O数据寄存器UDR写入待发送的字符,格式为char型(8bits)。单片机接收到来自DS18B20的温度数据,分别取出温度的整数位和小数位,添加小数点后,将所有的整数位和小数点后两位数据发送给UART。温度数据以字符数组的形式保存,因此发送时以字符串的形式发送数据。
3.DS18B20温度数据接收模块
j.JPG



评论


相关推荐

技术专区

关闭