您的位置 首页 FPGA

根据89C52的DH11 C言语测验程序

单片机:AT89S52或STC89C52RC功能:串口发送温湿度数据波特率9600单片机教程之DH11的测试程序includereg51h>i

//单片机 : AT89S52 或 STC89C52RC

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

//单片机教程之DH11的测验程序

#include

#include

typedefunsigned charU8;// defined for unsigned 8-bits integer variable 无符号8位整型变量 */

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

typedefunsigned intU16;// defined for unsigned 16-bits integer variable 无符号16位整型变量 */

typedef signed intS16;//defined for signed 16-bits integer variable 有符号16位整型变量 */

typedefunsigned longU32;// defined for unsigned 32-bits integer variable 无符号32位整型变量 */

typedef signed longS32;// defined for signed 32-bits integer variable 有符号32位整型变量 */

typedef floatF32;// single precision floating point variable (32bits) 单精度浮点数(32位长度)

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

#define uchar unsigned char

#define uint unsigned int

#define Data_0_time 4

//———————————————-//

//—————-IO口界说区——————–//

//———————————————-//

sbit P2_0 = P2^0 ; //DH11

//———————————————-//

//—————-界说区——————–//

//———————————————-//

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,U8checkdata_temp;

U8 U8comdata;

U8 outdata[5];//界说发送的字节数

U8 indata[5];

U8 count, count_r=0;

U8 str[5]={“RS232”};

U16 U16temp1,U16temp2;

SendData(U8 *a)

{

outdata[0] = a[0];

outdata[1] = a[1];

outdata[2] = a[2];

outdata[3] = a[3];

outdata[4] = a[4];

count = 1;

SBUF=outdata[0];

}

voidDelay(U16 j)

{ U8 i;

for(;j>0;j–)

{

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

}

}

voidDelay_10us(void)

{

U8 i;

i–;

i–;

i–;

i–;

i–;

i–;

}

voidCOM(void)

{

U8 i;

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

{

U8FLAG=2;

//———————-

P2_1=0 ;//T

P2_1=1 ;//T

//———————-

while((!P2_0)&&U8FLAG++);

Delay_10us();

Delay_10us();

// Delay_10us();

U8temp=0;

if(P2_0)U8temp=1;

U8FLAG=2;

while((P2_0)&&U8FLAG++);

//———————-

P2_1=0 ;//T

P2_1=1 ;//T

//———————-

//超时则跳出for循环

if(U8FLAG==1)break;

//判别数据位是0仍是1

// 假如高电平高过预订0高电平值则数据位为 1

U8comdata<=1;

U8comdata|=U8temp;//0

}//rof

}

//——————————–

//—–湿度读取子程序 ————

//——————————–

//—-以下变量均为全局变量——–

//—-温度高8位== U8T_data_H——

//—-温度低8位== U8T_data_L——

//—-湿度高8位== U8RH_data_H—–

//—-湿度低8位== U8RH_data_L—–

//—-校验 8位 == U8checkdata—–

//—-调用相关子程序如下———-

//—- Delay();, Delay_10us();,COM();

//——————————–

voidRH(void)

{

//主机拉低18ms

P2_0=0;

Delay(180);

P2_0=1;

//总线由上拉电阻拉高 主机延时20us

Delay_10us();

Delay_10us();

Delay_10us();

Delay_10us();

//主机设为输入 判别从机呼应信号

P2_0=1;

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/fpga/255817.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部