【最新编排】基于51单片机的DHT11串口通讯

  • 格式:doc
  • 大小:7.10 KB
  • 文档页数:7

下载文档原格式

  / 20
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

//****************************************************************//

//

DHT 使用范例

//单片机 AT89S5 或 STC89C5 RC

// 功能 串口发送温湿度数据波特率 9600

//硬件连接 P .0口为通讯口连接DHT ,DHT 地电源和地连接单片机地

电源和地 单片机串口加MAX 3 连接电脑

// 公司 济南联诚创发科技有限公司

//****************************************************************//

#include

#include

//

typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 无符号8位整型变量 */

typedef signed char S8; /* defined for signed 8-bits integer variable 有符号8位整型变量 */

typedef unsigned int U 6; /* defined for unsigned 6-bits integer variable 无符号 6位整型变量 */

typedef signed int S 6; /* defined for signed 6-bits integer variable 有符号 6位整型变量 */

typedef unsigned long U3 ; /* defined for unsigned 3 -bits integer variable 无符号3

位整型变量 */

typedef signed long S3 ; /* defined for signed 3 -bits integer variable 有符号3 位整型变量 */

typedef float F3 ; /* single precision floating point variable (3 bits) 单精度浮点数 3 位长度 */

typedef double F64; /* double precision floating point variable (64bits) 双精度浮点数 64位长度 */

//

#define uchar unsigned char

#define uint unsigned int

#define Data_0_time 4

//----------------------------------------------//

//----------------IO口定义区--------------------//

//----------------------------------------------//

sbit P _0 = P ^0 ;

sbit P _ = P ^ ;

sbit P _ = P ^ ;

sbit P _3 = P ^3 ;

//----------------------------------------------//

//----------------定义区--------------------// //----------------------------------------------//

U8 U8FLAG,k;

U8 U8count,U8temp;

U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;

U8

U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8ch

eckdata_temp;

U8 U8comdata;

U8 outdata【5】; //定义发送地字节数

U8 indata【5】;

U8 count, count_r=0;

U8 str【5】={"RS 3 "};

U 6 U 6temp ,U 6temp ;

SendData(U8 *a)

{

outdata【0】 = a【0】;

outdata【 】 = a【 】;

outdata【 】 = a【 】;

outdata【3】 = a【3】;

outdata【4】 = a【4】;

count = ;

SBUF=outdata【0】;

}

void Delay(U 6 j)

{ U8 i;

for(;j>0;j--)

{

for(i=0;i< 7;i++);

}

}

void Delay_ 0us(void)

{

U8 i;

i--;

i--;

i--;

i--;

i--;

i--;

}

void COM(void)

{

U8 i;

for(i=0;i<8;i++)

{

U8FLAG= ;

//----------------------

P _ =0 ; //T

P _ = ; //T

//----------------------

while((!P _0)&&U8FLAG++);

Delay_ 0us();

Delay_ 0us();

// Delay_ 0us();

U8temp=0;

if(P _0)U8temp= ;

U8FLAG= ;

while((P _0)&&U8FLAG++);

//----------------------

P

_ =0 ; //T

P _ = ; //T

//----------------------

//超时则跳出for循环

if(U8FLAG== )break;

//判断数据位是0还是

// 如果高电平高过预定0高电平值则数据位为

U8comdata<<= ;

U8comdata|=U8temp; //0

}//rof

}

//--------------------------------

//-----湿度读取子程序 ------------

//--------------------------------