温湿度传感器驱动模块
来源:互联网 发布:主食 知乎 编辑:程序博客网 时间:2024/06/02 13:52
/*********************************************************** ** 温湿度传感器驱动程序 ** ***********************************************************/#include <reg52.h>#include <intrins.h>#include <stdio.h>#include "delay.h"#include "wenshi.h"#include "main.h" unsigned char idata TH_temp,TL_temp,RH_temp,RL_temp,CK_temp; char idata com_data,untemp,temp; char idata respond;/****************************************************************************///收发信号检测,数据读取/****************************************************************************/char receive(){ int i; // ST=0; com_data=0; for(i=0;i<=7;i++) { respond=2; while((!TRH)&&respond++); delay_us(); delay_us(); delay_us(); if(TRH) { temp=1; respond=2; while((TRH)&&respond++); } else temp=0; com_data<<=1; com_data|=temp; } return(com_data); }/****************************************************************************//****************************************************************************///湿度读取子程序 //温度高8位== TL_data//温度低8位== TH_data//湿度高8位== RH_data//湿度低8位== RH_data//校验 8位 == CK_data//调用的程序有 delay();, Delay_5us();,RECEIVE(); /***************************************************************************/void read_TRH(){ //主机拉低18ms TRH=0; delay_ms(18); TRH=1; //DATA总线由上拉电阻拉高 主机延时20us delay_us(); delay_us(); delay_us(); delay_us(); //delay_us(); //delay_us();delay_us();delay_us();delay_us(); //主机设为输入 判断从机响应信号 TRH=1; //判断DHT11是否有低电平响应信号 如不响应则跳出,响应则向下运行 if(!TRH) { respond=2; //判断DHT11发出 80us 的低电平响应信号是否结束 while((!TRH)&& respond++); respond=2; //判断从机是否发出 80us 的高电平,如发出则进入数据接收状态 while(TRH && respond++); //数据接收状态 RH_temp = receive(); RL_temp = receive(); TH_temp = receive(); TL_temp = receive(); CK_temp = receive(); TRH=1;//ST=1; //数据校验 untemp=(RH_temp+RL_temp+TH_temp+TL_temp); if(untemp==CK_temp) { RH_data = RH_temp; RL_data = RL_temp; TH_data = TH_temp; TL_data = TL_temp; CK_data = CK_temp; } } //湿度整数部分 shi[0] = (char)(0X30+RH_data/10); shi[1] = (char)(0X30+RH_data%10); shi[2] = 0x2e; //小数点 //湿度小数部分 shi[3] = (char)(0X30+RL_data/10); shi[4] = 0X25; //"%" shi[5] = 0X52; //"R" shi[6] = 0X48; //"H" //温度整数部分 wen[0] = (char)(0X30+TH_data/10); wen[1] = (char)(0X30+TH_data%10); wen[2] = 0x2e; //小数点 //温度小数部分 wen[3] = (char)(0X30+TL_data/10); wen[4] = 0X27; //"'" wen[5] = 0X43; //"C"}
0 0
- 温湿度传感器驱动模块
- STM32驱动DHT11温湿度传感器
- STM32F1驱动AM2302温湿度传感器
- SRM32fx103驱动AM2302温湿度传感器
- Arduino 温湿度传感器DHT11模块实验
- Linux的温湿度传感器DHT11驱动
- STM32 AM2305高精度温湿度传感器驱动
- 温湿度传感器si7020-a20 linux驱动编写
- 温湿度传感器SHT20的驱动与使用
- 温湿度传感器si7020-a20 linux驱动编写
- DHT12温湿度传感器STM32驱动IIC
- STM32 模块篇-温湿度传感器模块(DHT11)实验
- [嵌入式Linux驱动]S5PV210的DHT11温湿度传感器Linux驱动
- Arduino简单实例之九_温湿度传感器模块
- NodeMCU文档中文翻译 7 DHT温湿度传感器模块
- 基于C8051F410的DHT11温湿度传感器驱动编写
- 基于C8051F410的am2305温湿度传感器的驱动编写
- STM32外设驱动篇——DHT11温湿度传感器
- phonegap3.0 本地android 环境命令配置
- phonegap3.0 本地blackberry(bb10) 环境命令配置
- phpcms首页调用内容,如简介
- python 函数重载
- OpenCV中图像旋转(warpAffine)算法的实现过程
- 温湿度传感器驱动模块
- Linux内核中的IPSEC实现(4)
- java笔记之IO流
- zImage的生成过程
- Mary Meeker
- UIAlertView 开发笔记
- mfc包含的头文件
- Linux内核中的IPSEC实现(3)
- This file is needed to run this program