Red de conocimiento informático - Conocimiento del nombre de dominio - Necesito usar urgentemente el microcontrolador stc12c5a60s2 para mostrar el programa del sensor de temperatura y humedad dht11. Los programas básicos de lectura y sincronización son suficientes.

Necesito usar urgentemente el microcontrolador stc12c5a60s2 para mostrar el programa del sensor de temperatura y humedad dht11. Los programas básicos de lectura y sincronización son suficientes.

sbit DHT11_1 = P2^4

void COM1()

{

U8 i; for(i=0;ilt;8;i)

{

U8FLAG=2

mientras((!DHT11_1)amp;amp;U8FLAG) ;

Retraso_10us();

Retraso_10us();

Retraso_10us()

U8temp=0; p> if(DHT11_1)U8temp=1;

U8FLAG=2;

mientras ((DHT11_1)amp; amp; U8FLAG

//Tiempo de espera Luego salga del bucle for

if(U8FLAG==1)break;

//Determine si el bit de datos es 0 o 1

// Si el nivel alto es alto Si excede el valor predeterminado de nivel alto 0, el bit de datos es 1

U8comdatalt;lt;=1;

U8comdata|=U8temp //0;

}/ /rof

}

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

//-----Subrutina de lectura de humedad------------

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

//----Las siguientes variables son todas las variables globales--------

//----Los 8 bits superiores de temperatura == U8T_data_H------

//-- --Los 8 bits más bajos de temperatura == U8T_data_L---- --

//----8 bits altos de humedad == U8RH_data_H-----

//----Baja 8 bits de humedad == U8RH_data_L--- --

//----Comprueba 8 dígitos == U8checkdata-----

//----Llama las subrutinas relevantes de la siguiente manera----- -----

//---- Delay();, Delay_10us();, COM(); /p>

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

void RH1( )

{

//El host baja durante 18 ms

DHT11_1=0;

Retraso(180); >

DHT11_1=1;

// El bus consta de La resistencia pull-up aumenta el retardo del host 20us

Delay_10us()

Delay_10us();

Delay_10us();

Delay_10us ();

//El host se configura como entrada para determinar la señal de respuesta del esclavo

DHT11_1=1;

// Juzga si el esclavo tiene una señal de respuesta de bajo nivel. Si no responde, saltará. Si responde, correrá hacia abajo.

if(!DHT11_1) / /T !

{

U8FLAG=2;

//Determina si el esclavo envía un 80us de baja frecuencia. señal de respuesta de nivel y si finaliza

while((!DHT11_1)amp;amp;U8FLAG);

U8FLAG=2;

//Determina si la el esclavo envía un nivel alto de 80us, si es así, ingrese el estado de recepción de datos

while((DHT11_1)amp; amp; U8FLAG);

//estado de recepción de datos

COM1();

U8RH_data_H_temp=U8comdata;

COM1();

U8RH_data_L_temp=U8comdata;

COM1() ;

U8T_data_H_temp=U8comdata;

COM1();

U8T_data_L_temp=U8comdata

COM1(); p> U8checkdata_temp=U8comdata

DHT11_1=1;

//Verificación de datos

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;

}//fi

}//fi

}