• 大小: 46KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: 其他
  • 标签: STC15F2K60S2  DHT11  

资源简介

STC15F2K60S2读取DHT11温湿度数据串口输出代码实例工程,解压即用,完美运行

资源截图

代码片段和文件信息

//**************************
//程序说明:stc15f2k60s2采集dht11温湿度传感器数据,并从串口输出
//采用的是22.1184M晶振
//**************************

#include //调用stc15f系列头文件下载地址:  http://pan.baidu.com/s/1eRUbjLS

//IO口声明

#define dht11_io P20   //P2.0口作为数据读取接口

//常量声明

#define MAIN_Fosc 22118400L //主时钟
#define baud_rate 115200L //波特率
#define Timer1_Reload (65536UL -(MAIN_Fosc / 4 / baud_rate)) //Timer1重装值

//变量定义

u16 U8FLAG;
u8  U8temp;
u8  U8T_data_HU8T_data_LU8RH_data_HU8RH_data_LU8checkdata;
u8  U8T_data_H_tempU8T_data_L_tempU8RH_data_H_tempU8RH_data_L_tempU8checkdata_temp;
u8  U8comdata;
u8 datas=0;


//函数声明

void  Delay30us(); //22.1184M晶振精确延时30微秒
void  Delay40us(); //22.1184M晶振精确延时40微秒
void  Delay18ms(); //22.1184M晶振精确延时30毫秒
void  Delay1000ms(); //22.1184M晶振精确延时1000毫秒

void  read_byte(); //读取一字节的数据并赋值给U8comdata
u8    read_temp(); //读取温度,返回温度值
u8    read_humi(); //读取湿度,返回湿度值

void  serial_init(); //串口初始化
void  serial_send_byte(u8 dat); //串口发送一个字节的数据
void  serial_send_string(u8 *dat);//串口发送字符串

void main()
{
Delay1000ms();
serial_init();//串口初始化
dht11_io = 1;
while(1)
{
datas=read_temp();
serial_send_string(“温度:“);
serial_send_byte(datas%100/10+‘0‘);//十位
serial_send_byte(datas%10+‘0‘);  //个位
serial_send_byte(‘ ‘);
datas=read_humi();
serial_send_string(“湿度:“);
serial_send_byte(datas%100/10+‘0‘);//十位
serial_send_byte(datas%10+‘0‘);  //个位
serial_send_string(“\r\n“);
Delay1000ms();
}


}

void read_byte()
{
u8 i;
for(i=0;i<8;i++)
{
U8FLAG=2;
while((!dht11_io)&&U8FLAG++);//超时3毫秒跳出
Delay30us();
U8temp=0;
if(dht11_io)U8temp=1;
U8FLAG=2;
while((dht11_io)&&U8FLAG++);//超时3毫秒跳出
if(U8FLAG==1)break;
U8comdata<<=1;
  U8comdata|=U8temp;
}
}

u8 read_temp()
{
dht11_io=0;
Delay18ms();
dht11_io=1;
Delay40us();
dht11_io=1;
if(!dht11_io)
{
U8FLAG=2;
while((!dht11_io)&&U8FLAG++);//超时3毫秒跳出
U8FLAG=2;
while((dht11_io)&&U8FLAG++);//超时3毫秒跳出
read_byte();
  U8RH_data_H_temp=U8comdata;
  read_byte();
  U8RH_data_L_temp=U8comdata;
  read_byte();
  U8T_data_H_temp=U8comdata;
  read_byte();
  U8T_data_L_temp=U8comdata;
  read_byte();
  U8checkdata_temp=U8comdata;
  dht11_io=1;

U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
  if(U8temp==U8checkdata_temp)
  {
    U8RH_data_H=U8RH_data_H_temp;
    U8RH_data_L=U8RH_data_L_temp;
U8T_data_H=U8T_data_H_temp;
    U8T_data_L=U8T_data_L_temp;
    U8checkdata=U8checkdata_temp;
  }
}
return U8T_data_H;
}

u8 read_humi()
{
dht11_io=0;
Delay18ms();
dht11_io=1;
Delay40us();
dht11_io=1;
if(!dht11_io)
{
U8FLAG=2;
while((!dht11_io)&&U8FLAG++);//超时3毫秒跳出
U8FLAG=2;
while((dht11_io)&&U8FLAG++);//超时3毫秒跳出
read_byte();
  U8RH_data_H_temp=U8comdata;
  read_byte();
  U8RH_data_L_temp=U8comdata;
  read_byte();
  U8

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-06-17 15:47  DHT11\
     文件       31158  2017-06-17 15:41  DHT11\dht11
     文件        2353  2017-06-17 15:41  DHT11\dht11.hex
     文件          41  2017-06-17 15:41  DHT11\dht11.lnp
     文件       15572  2017-06-17 15:41  DHT11\dht11.M51
     文件        2264  2017-06-17 15:41  DHT11\dht11.plg
     文件       71319  2017-06-17 15:47  DHT11\dht11.uvgui.Administrator
     文件        5371  2017-06-17 15:47  DHT11\dht11.uvopt
     文件       13413  2017-06-17 15:47  DHT11\dht11.uvproj
     文件        5149  2017-06-17 15:41  DHT11\main.c
     文件       10428  2017-06-17 15:41  DHT11\main.LST
     文件       33522  2017-06-17 15:41  DHT11\main.OBJ
     文件       32846  2017-06-17 14:59  DHT11\STC15Fxxxx.H

评论

共有 条评论