• 大小: 34KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: 其他
  • 标签: 温湿度  LCD602  

资源简介

基于51单片机的dht11温度湿度测量,用的是LCD1602显示

资源截图

代码片段和文件信息

#include 
#include 
#define uint unsigned int 
#define uchar unsigned char
sbit dht=P2^0;    
sbit P2_1=P2^1;

sbit RS=P2^4;
sbit RW=P2^5;
sbit E=P2^6;
sbit dula=P3^7;

uchar num;
uchar tab[]=“0123456789“;
uchar LCD_tab[]=“HUMI:  .  %“;
uchar LCD_tab1[]=“TEMP:  .   C“;


uchar ij;    
uchar dht_data;   //存储DHT11发来的一个字节的数据
uchar d1d2d3d4d5; //存放DHT11发来的一个字节的数据
uchar dht_tab[5];   //存放DHT11发来的数据

void delay(uint x)     //延时2us,误差 0us
{
uchar ab;
while(x--) 
{
    for(b=9;b>0;b--)
        for(a=1;a>0;a--);
}
}  

void delay_20ms()
{
    uchar abc;
    for(c=57;c>0;c--)
        for(b=138;b>0;b--)
            for(a=29;a>0;a--);
}


void DHT11()
{
P2_1=1;
dht=0;
dht_data=0;
delay_20ms(); //主机至少拉低18ms
dht=1; //拉高并延时
while(dht); //等待主机开始信号结束
// P1=~1;
while(!dht); //输出相应信号延时
// P1=~2;
while(dht); //拉高后延时
// P1=~4;
for(j=0;j<5;j++)  //五个字节,共四十位
{
for(i=0;i<8;i++) //一个字节数据
{
//dht=1;
dht_data<<=1;//左移一位,最低位存储DHT11发来的数据
while(!dht); //1bit开始(延时12-14us)
delay(30);  //延时60us后
P1=~8;
if(dht==1)  //判断总线信号的高低(高:数据为1)
{
dht_data|=0x01;//存储发来的数据
while(dht);
// P1=~(1<<5);
}
if(dht==0)
{
dht_data|=0x00;
while(!dht);
// P1=~(1<<5);
}

}
dht_tab[j]=dht_data;//存储到数组中
}
delay(30);
d1=dht_tab[0];    //湿度整数部分
d2=dht_tab[1];   //湿度小数部分
d3=dht_tab[2];   //温度整数部分
d4=dht_tab[3];   //温度小数部分
d5=dht_tab[4];   //校检部分
}


void Wr_com(uchar com)
{
RS=0;
RW=0;
delay(200);
P0=com;
delay(100);
E=1;
delay(100);
E=0;
}
void Wr_data(uchar dat)
{
RS=1;
RW=0;
delay(200);
P0=dat;
delay(100);
E=1;
delay(100);
E=0;
}
void init()
{
P0=0;
dula=0;
Wr_com(0x38);        //功能设置,8位接口,两行显示,5*10点阵字符

Wr_com(0x0c);  //显示开关控制

Wr_com(0x06);  //输入方式设置

Wr_com(0x01);  //清屏

}


void main()
{
init();
while(1)
{
DHT11();
Wr_com(0x80);

for(num=0;num<11;num++)
{
Wr_data(LCD_tab[num]);

}
Wr_com(0x80+0x40);

for(num=0;num<12;num++)
{
Wr_data(LCD_tab1[num]);

}

Wr_com(0x80+0x40+0x0a);
Wr_data(0xdf);

Wr_com(0x80+0x05);
Wr_data(tab[d1/10]);
Wr_data(tab[d1%10]);

Wr_com(0x80+0x08);
Wr_data(tab[d2/10]);
Wr_data(tab[d2%10]);

Wr_com(0x80+0x40+0x05);
Wr_data(tab[d3/10]);
Wr_data(tab[d3%10]);

Wr_com(0x80+0x40+0x08);
Wr_data(tab[d4/10]);
Wr_data(tab[d4%10]);
// P1=~0;
}    
}















 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      11482  2015-10-26 12:13  1602温湿度显示的\1602温湿度

     文件       2181  2015-10-26 12:13  1602温湿度显示的\1602温湿度.hex

     文件         98  2015-10-26 12:13  1602温湿度显示的\1602温湿度.lnp

     文件      16560  2015-10-26 12:13  1602温湿度显示的\1602温湿度.M51

     文件        358  2015-10-26 12:17  1602温湿度显示的\1602温湿度.plg

     文件      55525  2015-10-26 12:17  1602温湿度显示的\1602温湿度.uvopt

     文件      13452  2015-10-25 12:25  1602温湿度显示的\1602温湿度.uvproj

     文件      55527  2015-10-25 22:27  1602温湿度显示的\1602温湿度_uvopt.bak

     文件      13448  2015-10-25 10:14  1602温湿度显示的\1602温湿度_uvproj.bak

     文件       2771  2011-09-29 22:26  1602温湿度显示的\DHT11.c

     文件      15065  2015-10-26 12:13  1602温湿度显示的\DHT11.lst

     文件      12831  2015-10-26 12:13  1602温湿度显示的\DHT11.obj

     文件       6376  2009-05-07 14:37  1602温湿度显示的\STARTUP.A51

     文件      14077  2015-10-26 12:13  1602温湿度显示的\STARTUP.LST

     文件        775  2015-10-26 12:13  1602温湿度显示的\STARTUP.obj

     目录          0  2015-10-26 12:18  1602温湿度显示的

----------- ---------  ---------- -----  ----

               220526                    16


评论

共有 条评论