3.基础实验16温度传感器ds18b_第1页
3.基础实验16温度传感器ds18b_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、16.温度传感器DS18B201实验目的Zigbee很容易建立起无线传感网,低成本是研究zigbee的目的。传感器介绍: DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。实验中2实验设备选用不锈钢封装的DS18B20,精度较高。硬件:PC 机EB2530(底板、一台一套一个板、仿真器、US

2、B线)DS18B20(不锈钢封装):2000/XP/win7 系统,IAR 8.10 集成开发环境、串口助手3实验相关电路图DS18B20 输出引线:红色(VCC),白色(DATA),黑色(GND),焊接时 DS18B20 白色数据引线在 3Pin 座子中间哦,然后将 DS18B20 的黑色线对准开发板 P10 的 GND 插上去就可使用了。4实验相关寄存器实验中用到了串口和 P0_7,前面已详细讲解了串口相关寄存器的配置与使用,此实验就不再重复讲串口配置了。DS18B20 程序采用模块化编程,只需调用温度函数即可,相当方便,移植到其它P0SEL &= 0 x7f;#define Ds18b2

3、0IO P0_7也非常容易。重点讲 P0_7 的配置和 DS18B20 使用 P0_7 的方法:/DS18B20 的 io 口初始化/温度传感器引脚,在 ds18b20.c 修改,不同IO 修改此处即可5源码分析/*文作修件名:者:订:main.c Andy2013-01-08*版描本:述:1.0设置串口调试助手波特率:115200bps 8N1DS18B20的温度通过串口传给电脑显示*/#include #include#include ds18b20.htypedef typedef#defineunsigned char uchar;unsignedu;(sizeof(arr) / si

4、zeof(arr)0)ARRAY_SIZE(arr)/#define FLOAT_TEMP1/输出更高精度时打开此注释extern void Delay_ms(unsignedk);/外部函数 ms 的/*名功称:能:参数:InitCLK()设置系统时钟源无无出口参数:*/ void InitCLK()CLKCONCMD &= 0 x40;while(CLKCONSTA & 0 x40); CLKCONCMD &= 0 x47;/设置系统时钟源为 32MHZ 晶振/等待晶振稳定为 32M/设置系统主时钟频率为 32MHZ/*名功称:能:参数:InitUart()串口初始化函数无无出口参数:*/

5、 void InitUart()PERCFG = 0 x00;P0SEL = 0 x0c;/位置 1 P0 口/P0 用作串口P2DIR U0CSRU0GCR&=|=|=0 xc0; 0 x80;11;/P0 优先作为 UART0/串口设置为 UART 方式U0BAUD |= 216; U0CSR |= 0 x40;UTX0IF = 0;/波特率设为 115200/UART使能/UART0 TX 中断标志初始置位 0/*名功称:能:参数:UardString()串口发送函数Data:发送缓冲区无len:发送长度出口参数:*/void UardString(char *Data,len)ui;f

6、or(i=0; ilen; i+)U0DBUF = *Data+; while(UTX0IF = 0);UTX0IF = 0;/* 程序函数*/ void main()char str9=DS18B20:; char strTemp6;uchar ucTemp;float fTemp;InitCLK();InitUart();/设置系统时钟源/串口初始化P0SEL &= 0 x7f;/DS18B20 的 io 口初始化while(1)memset(strTemp, 0, ARRAY_SIZE(strTemp);UardString(str, 8);/输出提示信息/厂家提供的程序温度值不带小数,Ds18B20 本身是支持 1 位小数位的,修改后精度更高#if defined(FLOAT_TEMP)fTemp sprUar= floatReadDs18B20(); f(strTemp, %.01f, fTemp);dString(strTemp, 5);/温度函数 带 1 位小数位/将浮点数转成字符串/通过串口发送温度值到电脑显示#elseucTemp = ReadDs18B20(); strTemp0 = ucTemp/10+48;strTemp1 = ucTemp%10+48;/温度函数/取出十位

温馨提示

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

评论

0/150

提交评论