接线:
代码:
main.c文件
/*
使用DHT11模块,检测温湿度,在lcd1602上面显示,因为1602显示不是每次都能出来,所以加了串口打印,会更加直观。
*/
#include <reg51.h>
#include "lcd.h"
#include <intrins.h>
#include <stdio.h>
sbit Temp_data=P3^6; //信号引脚
unsigned int rec_dat[4];
unsigned char rec_dat_lcd0[6];
unsigned char rec_dat_lcd1[6];
unsigned char rec_dat_lcd2[6];
unsigned char rec_dat_lcd3[6];
void DHT11_delay_us(unsigned char n);
void DHT11_delay_ms(unsigned int z);
void DHT11_start();
unsigned char DHT11_rec_byte();
void DHT11_receive();
void InitUART(void);
//主函数
void main()
{
InitUART(); //串口中断初始化
P1=0xf0;
InitLcd1602();
LcdShowStr(0,0,"Shidu:");
LcdShowStr(0,1,"Wendu:");
while(1)
{
DHT11_delay_ms(150);
DHT11_receive();
//这个函数是打印字符函数,应该是起到数值转化的作用。
sprintf(rec_dat_lcd0,"%d",rec_dat[0]);
sprintf(r