专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
TI
Msp430驱动dht11温湿度传感器
2019-07-22 17:18
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
7912
10
1179
Msp430驱动dht11温湿度传感器.pdf
(389.23 KB, 下载次数: 485)
2013-9-22 21:28 上传 点击文件名下载附件
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
firstblood
1楼-- · 2019-07-23 10:47
温湿度的采集的方案,我这正好用的上的,谢谢啦
加载中...
丁永亮
2楼-- · 2019-07-23 14:12
不负责任,,这种也上传 。。。错的程序
加载中...
gaoyang9992006
3楼-- · 2019-07-23 14:28
丁永亮 发表于 2014-1-2 11:10
不负责任,,这种也上传 。。。错的程序
#include <ioCC2530.h>
#include "OnBoard.h"
#define uint unsigned int
#define U8 unsigned char
#define DATA_PIN P0_6
/*******函数声明*********/
void Delay_us(void); //1 us延时
void Delay_10us(void); //10 us延时
void Delay_ms(uint Time);//n ms延时
void COM(void); // 温湿写入
void DHT11(void) ; //温湿传感启动
//温湿度定义
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_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
U8 U8comdata;
/****************************
//延时函数
*****************************/
void Delay_us(void) //1 us延时
{
MicroWait(1);
}
void Delay_10us(void) //10 us延时
{
MicroWait(10);
}
void Delay_ms(uint Time)//n ms延时
{
unsigned char i;
while(Time--)
{
for(i=0;i<100;i++)
Delay_10us();
}
}
/***********************
温湿度传感
***********************/
void COM(void) // 温湿写入
{
U8 i;
for(i=0;i<8;i++)
{
U8FLAG=2;
DATA_PIN=0;
DATA_PIN=1;
while((!DATA_PIN)&&U8FLAG++);
Delay_10us();
Delay_10us();
Delay_10us();
U8temp=0;
if(DATA_PIN)U8temp=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) //温湿传感启动
{
DATA_PIN=0;
Delay_ms(19); //主机拉低18ms
DATA_PIN=1; //总线由上拉电阻拉高 主机延时40us
P0DIR &= ~0x40; //重新配置IO口方向
Delay_10us();
Delay_10us();
Delay_10us();
Delay_10us();
//判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行
if(!DATA_PIN)
{
U8FLAG=2; //判断从机是否发出 80us 的低电平响应信号是否结束
while((!DATA_PIN)&&U8FLAG++);
U8FLAG=2;//判断从机是否发出 80us 的高电平,如发出则进入数据接收状态
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_data_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;
}
P0DIR |= 0x40;
}
/***********************这个也是TI的MCU,肯定能用,我都在项目中使用两年了*****用到430上修改一下#内容/
加载中...
公子小白兔
4楼-- · 2019-07-23 17:43
精彩回答 2 元偷偷看……
加载中...
上一页
1
2
一周热门
更多
>
相关问题
CPLD的方波输出
4 个回答
11个版本Quartus II 软件下载,安装包网盘合集,附教程,47G!
20 个回答
请大家帮忙到21IC发展大家谈支持我申请新版面
20 个回答
【通知】21ic中国电子网服务条款 (所有人员必读)
1 个回答
满载而归乙亥年,大展鸿途庚子年---集签赢好礼
20 个回答
携手ADI,踏上电子工程师之巅—车辆电气化视频,答题领奖!
1 个回答
如何提升论坛质量,看你了!
20 个回答
【最终名单】二姨家喊你来拿100份新年大礼啦~
20 个回答
相关文章
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
TI
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
#include <ioCC2530.h>
#include "OnBoard.h"
#define uint unsigned int
#define U8 unsigned char
#define DATA_PIN P0_6
/*******函数声明*********/
void Delay_us(void); //1 us延时
void Delay_10us(void); //10 us延时
void Delay_ms(uint Time);//n ms延时
void COM(void); // 温湿写入
void DHT11(void) ; //温湿传感启动
//温湿度定义
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_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
U8 U8comdata;
/****************************
//延时函数
*****************************/
void Delay_us(void) //1 us延时
{
MicroWait(1);
}
void Delay_10us(void) //10 us延时
{
MicroWait(10);
}
void Delay_ms(uint Time)//n ms延时
{
unsigned char i;
while(Time--)
{
for(i=0;i<100;i++)
Delay_10us();
}
}
/***********************
温湿度传感
***********************/
void COM(void) // 温湿写入
{
U8 i;
for(i=0;i<8;i++)
{
U8FLAG=2;
DATA_PIN=0;
DATA_PIN=1;
while((!DATA_PIN)&&U8FLAG++);
Delay_10us();
Delay_10us();
Delay_10us();
U8temp=0;
if(DATA_PIN)U8temp=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) //温湿传感启动
{
DATA_PIN=0;
Delay_ms(19); //主机拉低18ms
DATA_PIN=1; //总线由上拉电阻拉高 主机延时40us
P0DIR &= ~0x40; //重新配置IO口方向
Delay_10us();
Delay_10us();
Delay_10us();
Delay_10us();
//判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行
if(!DATA_PIN)
{
U8FLAG=2; //判断从机是否发出 80us 的低电平响应信号是否结束
while((!DATA_PIN)&&U8FLAG++);
U8FLAG=2;//判断从机是否发出 80us 的高电平,如发出则进入数据接收状态
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_data_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;
}
P0DIR |= 0x40;
}
/***********************这个也是TI的MCU,肯定能用,我都在项目中使用两年了*****用到430上修改一下#内容/
一周热门 更多>