zigbee模块裸板开发之温湿度传感器DHT11_第1页
zigbee模块裸板开发之温湿度传感器DHT11_第2页
zigbee模块裸板开发之温湿度传感器DHT11_第3页
zigbee模块裸板开发之温湿度传感器DHT11_第4页
zigbee模块裸板开发之温湿度传感器DHT11_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、zigbee模块裸板开发之温湿度传感器DHT11-华丽的分界线-DHT11.C :#include #define uint unsigned int#define U8 unsigned char#define DATA_PIN P1_3 /温湿度定义U8 U8FLAG,U8temp;U8 ShiDu_H,ShiDu_L;/定义湿度存放变量U8 WenDu,ShiDu;/定义温度存放变量U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_dat

2、a_H_temp,U8RH_data_L_temp,U8checkdata_temp;U8 U8comdata;/* 延时函数*/void Delay_us() /1 us延时 asm(nop); asm(nop); asm(nop); asm(nop); asm(nop); asm(nop); asm(nop); asm(nop); asm(nop); void Delay_10us() /10 us延时 Delay_us(); Delay_us(); Delay_us(); Delay_us(); Delay_us(); Delay_us(); Delay_us(); Delay_us()

3、; Delay_us(); Delay_us(); void Delay_ms(uint Time)/n ms延时 unsigned char i; while(Time-) for(i=0;i100;i+) Delay_10us(); /* 温湿度传感*/void COM(void) / 温湿写入 U8 i; for(i=0;i8;i+) U8FLAG=2; DATA_PIN=0; DATA_PIN=1; while(!DATA_PIN)&U8FLAG+); Delay_10us(); Delay_10us(); Delay_10us(); U8temp=0; if(DATA_PIN)U8t

4、emp=1; U8FLAG=2; while(DATA_PIN)&U8FLAG+); if(U8FLAG=1)break; U8comdata=1; U8comdata|=U8temp; /- /-湿度读取子程序 - /- /-以下变量均为全局变量- /-温度高8位= U8T_data_H- /-温度低8位= U8T_data_L- /-湿度高8位= U8RH_data_H- /-湿度低8位= U8RH_data_L- /-校验 8位 = U8checkdata- /-调用相关子程序如下- /- Delay();, Delay_10us();COM(); /- void DHT11(void)

5、 /温湿传感启动 DATA_PIN=0; Delay_ms(19); /主机拉低18ms DATA_PIN=1; /总线由上拉电阻拉高 主机延时40us P1DIR &= (13); /重新配置IO口方向 Delay_10us(); Delay_10us(); Delay_10us(); Delay_10us(); /判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行 if(!DATA_PIN) U8FLAG=2; /判断从机是否发出 80us 的低电平响应信号是否结束 while(!DATA_PIN)&U8FLAG+); U8FLAG=2;/判断从机是否发出 80us 的高电平,如

6、发出则进入数据接收状态 while(DATA_PIN)&U8FLAG+); COM();/数据接收状态 U8RH_data_H_temp=U8comdata; COM(); U8RH_data_L_temp=U8comdata; COM(); U8T_data_H_temp=U8comdata; COM(); U8T_data_L_temp=U8comdata; COM(); U8checkdata_temp=U8comdata; DATA_PIN=1; /数据校验 U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_da

7、ta_L_temp); if(U8temp=U8checkdata_temp) U8RH_data_H=U8RH_data_H_temp; U8RH_data_L=U8RH_data_L_temp; U8T_data_H=U8T_data_H_temp; U8T_data_L=U8T_data_L_temp; U8checkdata=U8checkdata_temp; WenDu=U8T_data_H; ShiDu=U8RH_data_H; else WenDu=0; ShiDu=0; P1DIR |= (13); -华丽的分界线-DHT11.H:#ifndef _DHT11_H_#defin

8、e _DHT11_H_extern unsigned char WenDu,ShiDu; extern void Delay_ms(unsigned int xms); /延时函数extern void DHT11(void); /温湿传感启动#endif-华丽的分界线-main.c:#include #include UART.H #include DHT11.H /* 主函数*/void main(void) unsigned char WenDuChars2; unsigned char ShiDuChars2; Delay_ms(1000);/让设备稳定 InitUart(); /串口

9、初始化 while(1) DHT11(); /获取温湿度 if(WenDu!=0) WenDuChars0=WenDu/10+0; WenDuChars1=WenDu%10+0; Uart_Send_String(采集到的温度是:,16); Uart_Send_String(WenDuChars,2); else Uart_Send_String(Its Wrong,10); if(ShiDu!=0) ShiDuChars0=ShiDu/10+0; ShiDuChars1=ShiDu%10+0; Uart_Send_String(采集到的湿度是:,16); Uart_Send_String(S

10、hiDuChars,2); Uart_Send_String(n,1); else Uart_Send_String(Its Wrong,10); Uart_Send_String(n,1); Delay_ms(1000); /延时,使周期性2S读取1次 佳杰科技 -华丽的分界线-UART.C:#include #define uchar unsigned char#define uint unsigned intvoid InitUart(); /初始化串口void Uart_Send_String(unsigned char *Data,int len);/* 串口初始化函数 */void

11、 InitUart() CLKCONCMD &= 0 x40; / 设置系统时钟源为 32MHZ晶振 while(CLKCONSTA & 0 x40); / 等待晶振稳定 CLKCONCMD &= 0 x47; / 设置系统主时钟频率为 32MHZ PERCFG = 0 x00; /位置1 P0口 P0SEL = 0 x3c; /P0_2,P0_3,P0_4,P0_5用作串口,第二功能 P2DIR &= 0XC0; /P0 优先作为UART0 ,优先级 U0CSR |= 0 x80; /UART 方式 U0GCR |= 11; /U0GCR与U0BAUD配合 佳杰科技 U0BAUD |= 216; / 波特率设为115200 UTX0IF = 0; /UART0 TX 中断标志初始置位0 /* 串口发送字符串函数 */ void Uart_Send_String(uchar *Data,int len) int j; for(j=0;jlen;j+) U0DBUF = *Data+;

温馨提示

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

评论

0/150

提交评论