#include <reg51.h>
#include <LCD1602.h>
#include <DHT11.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
void UartInit(); //9600bps@11.0592MHz
void UART_SendByte(unsigned char Byte);
void send(uchar *pa,uchar n);
uchar dat[14]={0xa5,0x5a,4,4,0x31,0x31,0x2e,0x30,0x31,0x31,0x2e,0x30,0xb5,0x5b};
uchar wendu [4];
uchar sidu [4];
uchar i;
int j;
void main()
{
LCD1602_Init();
SetRowCol(2,0);
DispString("shidu:");
SetRowCol(2,1);
DispString("wendu:");
UartInit();
while(1)
{
DHT11_delay_ms(100);
DHT11_receive();
for(i=0;i<7;i++)
{
if(i<=2)
{
sidu[i]= rec_dat[i]; //读取湿度
}
else
{
wendu[i-4] = rec_dat[i];
}
}
SetRowCol(10,0);
DispString(sidu);
DispString("%");
SetRowCol(10,1);
DispString(wendu);
SetRowCol(12,1);
DispString(" C");
dat[4]=wendu[0];
dat[5]=wendu[1];
dat[8]=sidu[0];
dat[9]=sidu[1];
delayms(100);
send(dat,14);
}
}
void UartInit() //9600bps@11.0592MHz
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x40; //8位数据,可变波特率
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xFD; //设定定时初值
TH1 = 0xFD; //设定定时器重装值
TR1 = 1; //启动定时器1
ET1 = 0; //禁止定时器1中断
}
//串口发送一个字节数据
void UART_SendByte(unsigned char Byte){
SBUF=Byte;
//检测是否完成
while(TI==0);
TI=0;//TI复位
}
void send(uchar *pa,uchar n)
{
uchar i=0;
for(i=0;i<n;i++)
{
UART_SendByte(*(pa+i));
}
}
基础labview的51单片机温湿度检测(模块DHT11)
需积分: 5 189 浏览量
2024-04-18
08:31:39
上传
评论
收藏 47KB 7Z 举报
weixin_40805561
- 粉丝: 9
- 资源: 74
最新资源
- 猫咪和汤58.apk
- 浏览器.apk
- 基于matlab实现是一个matlab中的power system 中搭建的一个模型
- 基于JSP毕业设计-教学管理系统(源代码+论文).zip
- 基于JSP毕业设计-家政管理系统-毕业设计.zip
- 基于Python实现淘宝商品评论采集(含逆向)源代码
- 基于matlab实现多目标进化算法NSGAⅡ&Matlab讲解.rar
- 基于matlab实现多车辆车辆路径问题,用遗传算法编程,保证可用.rar
- 基于matlab实现多层极限学习机实现手写体识别,准确率超过99%.rar
- 基于matlab实现电力系统最优潮流程序,可以应用于电力市场下的最优潮流计算 适合电力系统专业的同仁使用.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈