- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
#includereg52.h
#include12864.h
#includeintrins.h
sbit DHT = P0^0; //管脚定义,DHT11总线输入输出;
uchar data_byte;
uchar Tem_Z,Tem_X,Hum_Z,Hum_X,Check;
void LCD_Display(); //声明LCD_Display液晶显示函数;
void Rec_DHT(); //声明Rec_DHT,DHT11接收数据函数;
void receive();
//主函数
void main()
{
lcd_init();
while(1)
{
Rec_DHT();
LCD_Display();
delayms(1000);
}
}
//延时函数,//延时ms
void delays()//@12.000MHz
{
uchar i, j, k;
i = 1;
j = 234;
k = 113;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
//延时ius
void delay10us()
{
uchar i;
for(i=0;i6;i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
}
/********主机发出开始信号*******/
void DHT11_Start()
{
DHT=1;
delay10us();
DHT=0;
delays(); //保持电平时间大于18ms,延时20ms
DHT=1;
delay10us(); //延迟等待20-40us,延时20us
delay10us();
delay10us();
delay10us();
DHT=1; //拉高等待DHT11响应
}
//DHT11接收一个字节数据
uchar receive_data()
{
uchar i,temp,count;
data_byte=0;
for(i=0;i8;i++)
{
count=2;
while((!DHT)count++); //等待50us低电平结束
delay10us(); //等待40us高电平,后判断电平高低,高:DHT为1,低:DHT为0
delay10us();
delay10us();
delay10us();
temp=0;
if(DHT==1) temp=1; //DHT为高:1,位为1
count=2;
while((DHT)count++); //等待DHT高电平结束
if(count==1) break; //DHT为低:0,位为0
data_byte=1; //字节左移
data_byte|=temp;
}
return data_byte; //返回读取值
}
//DHT11接收数据
void Rec_DHT()
{
uchar flag;
uchar T_H,T_L,H_H,H_L,check,num_check; //定义采集参数中间变量
DHT11_Start(); //主机发出开始信号
if(!DHT) //等待从机响应信号输出低电平
{
flag = 2;
while((!DHT) flag++); //判断从机是否发出 80us 的低电平响应信号是否结束
flag = 2;
while(DHT flag++); //判断从机是否发出 80us 的高电平,若发出则开始采集数据
H_H=receive_data(); //采集湿度整数部分
H_L=receive_data(); //采集湿度小数部分
T_H=
您可能关注的文档
最近下载
- 静疗标准解读课件.pptx VIP
- 集装箱检验指南IICL-6(中文版).pdf VIP
- 火力发电厂制粉系统设计计算技术规定.pdf VIP
- (完整版)小学生必背古诗300首 .pdf VIP
- 物业承接查验标准-附全套表格)(-65页).pdf VIP
- 急诊常见首发症状的鉴别与诊疗思路题库答案-2025年华医网继续教育.docx VIP
- 松下nv-f55维修手册英文全本.pdf
- 第11课 以社会主义核心价值观引领文化建设【2023年秋最新版】.pptx VIP
- 华医继续教育常见消化系统急症的急诊评估与处置题库答案.docx VIP
- 第10课 文化自信与文明交流互鉴【2023年秋最新版】.pptx VIP
原创力文档


文档评论(0)