#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar DHT11[5],RTflag=0;
uchar FLAG; //超时标志位
uchar a;
sbit dat=P1^0;
sbit RS=P2^0;
sbit RW=P2^1;
sbit EN=P2^2;
uchar table[5];
uint wd,sd;
void Delay_t(uint j)
{ uchar i;
for(;j>0;j--)
{
for(i=0;i<27;i++);
}
}
void Delay_10us(void) //10us延时函数
{
uchar i;
i--;
i--;
i--;
i--;
i--;
i--;
}
void delay(uint z)//1毫秒延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void lcd_write_com(uchar com) //1602写指令
{
RS=0;
RW=0;
EN=1;
P0=com;
delay(1);
EN=0;
}
void lcd_init() //1602初始化
{
lcd_write_com(0x38);
delay(1);
lcd_write_com(0x08);
delay(1);
lcd_write_com(0x01);//1602清屏指令
delay(1);
lcd_write_com(0x06);
delay(1);
lcd_write_com(0x0C);
delay(1);
}
void lcd_write_data(uchar date)//1602写数据
{
RS=1;
RW=0;
EN=1;
P0=date;
delay(1);
EN=0;
}
void write_str(uchar x,uchar y,uchar *s)//在任意地址写符号字母或数字
{
if(y==0)
lcd_write_com(0x80+x);
else
lcd_write_com(0xc0+x);
while(*s)
{
lcd_write_data(*s);
s++;
}
}
void write_shu(uchar x,uchar y,uchar num)//数据显示函数
{
uchar s,g;
if(y==0)
lcd_write_com(0x80+x);
else
lcd_write_com(0xc0+x);
s=num/10;// 数据分离显示
lcd_write_data(0x30+s);
g=num%10;//数据分离显示
lcd_write_data(0x30+g);
}
uchar write_byte1() //读一个字节
{
uchar i,comdata,temp1;
for(i=0;i<8;i++)
{
FLAG=2;
while((!dat)&&FLAG++);//判断数据位是0还是1
Delay_10us();
Delay_10us();
Delay_10us();
temp1=0;
if(dat)temp1=1; // 如果高电平高过预定0高电平值则数据位为 1
FLAG=2;
while((dat)&&FLAG++);//flag先与后加1 如果dat一直为1 uchar型变量 flag 溢出变为0 再自加1
if(FLAG==1)break; //超时则跳出for循环
comdata<<=1;//左移一位 高位在前 低位在后
comdata|=temp1;
}
return (comdata);
}
void DHT11_5() //读5个字节数据 两个字节为温度数据 两个字节为湿度数据 最后一个字节为校验
{
uchar i,temp;
//主机拉低18ms
dat=0;
Delay_t(180);
dat=1;
//总线由上拉电阻拉高 主机延时20us
Delay_10us();
Delay_10us();
Delay_10us();
Delay_10us();
//主机设为输入 判断从机响应信号
dat=1;
//判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行
if(!dat) //T !
{
FLAG=2; //超时标志位
while((!dat)&&FLAG++);//判断从机是否发出 80us 的低电平响应信号是否结束
FLAG=2;
wh
C51_温湿度传感器DHT11驱动_LCD1602显示程序_电子/电路_工程科技_专业资料。DHT11.c 文件 #include<reg52.h> #include<Time_Delay.h> //the main only ...
DHT11温湿度传感器51单片机在LCD1602显示程序_电子/电路_工程科技_专业资料。51单片机控制温湿度传感器DHT11//51 单片机控制温湿度传感器 DHT11 ?然后在 LCD1602...
{"TRH T: "}; sbit TRH = P2^0;//温湿度传感器DHT11数据接入 sbit LCD_RS = P2^7; sbit LCD_RW = P2^6; sbit LCD_EN = P2^5; uchar TH_...
//51 单片机控制温湿度传感器 DHT11 LCD1602 YL-9 最小系统。 # include <reg51.h> # include <intrins.h> typedef unsigned char BYTE; typedef unsigned ...
C51_温湿度传感器DHT11驱动_LCD1602显示程序 隐藏>> 分享到: X 分享到: 使用一键分享,轻松赚取财富值, 了解详情 嵌入播放器: 普通尺寸(450*500pix) ...
DHT11数字温湿度传感器(附1602显示程序)已验证ok_IT/计算机_专业资料。DHT11数字温湿度传感器 LCD1602显示 C语言编程1、DHT11 产品概述 DHT11 数字温湿度传感...
51单片机控制温湿度传感器...//51 单片机控制温湿度传感器 DHT11,然后在 LCD1602 上显示当前的温湿度及...
DHT11测温湿度程序lcd1602显示_电子/电路_工程科技_专业资料。自己写的用1602... 温度传感器DS18B20ATC89... 14页 免费 基于51单片机的lcd1602显... 8页...
DHT11_LCD1602温湿度检测与显示程序_计算机硬件及网络_IT/计算机_专业资料。/... C51_温湿度传感器DHT11驱... 9页 免费 DHT11温湿度传感器51单片... 9...
1602的DHT11温湿度显示程序_电子/电路_工程科技_专业资料。温湿度传感1603液晶显示程序/*** DHT11 使用范例 单片机: STC89C52RC 功能:1602 实时显示温湿度 硬件连...
热门文档