【 DHT11 温湿度传感器】使用STC89C51读取发送到串口、通过时序图编写C语言
文章目录
- DHT11 温湿度传感器
- 概述
- 接线
- 数据传送
- 通讯过程时序图
- 检测模块是否存在
- 代码实现
- 总结
- 对tmp = tmp AUXR = 0x01; SCON = 0x40; //配置串口工作方式1,REN不使能接收 TMOD &= 0xF0; TMOD |= 0x20;//定时器1工作方式位8位自动重装 TH1 = 0xFD; TL1 = 0xFD;//9600波特率的初值 TR1 = 1;//启动定时器 } void sendByte(char data_msg) { SBUF = data_msg; while(!TI); TI = 0; } void sendString(char* str) { while( *str != '\0'){ sendByte(*str); str++; } } void Delay30ms() //@11.0592MHz { unsigned char i, j; i = 54; j = 199; do { while (--j); } while (--i); } void Delay60us() //@11.0592MHz { unsigned char i; i = 25; while (--i); } void Delay1000ms() //@11.0592MHz { unsigned char i, j, k; _nop_(); i = 8; j = 1; k = 243; do { do { while (--k); } while (--j); } while (--i); } void DHT11_Start() { dht = 1; dht = 0; //延时30ms Delay30ms(); dht = 1; while(dht); while(!dht); while(dht); } void Delay40us() //@11.0592MHz { unsigned char i; _nop_(); i = 15; while (--i); } void Read_Data_From_DHT() { int i;//轮 int j;//每一轮读多少次 char tmp; char flag; DHT11_Start(); for(i= 0;i
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。