Red de conocimiento informático - Material del sitio web - Lenguaje C de monitoreo de ruido basado en 51 microcontroladores, envíeme un programa, ¡gracias!

Lenguaje C de monitoreo de ruido basado en 51 microcontroladores, envíeme un programa, ¡gracias!

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

* Nombre de archivo: Adquisición de temperatura DS18B20.c

* Descripción: Este archivo implementa el uso El dispositivo sensor de temperatura DS18B20 recoge la temperatura y la muestra en el tubo digital.

* Creado por: Dongliu, 10 de abril de 2009

* Versión: 2.0

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

## include

#define uchar unsigned char

# define uint unsigned int

#define jump_ROM 0xCC

#define start 0x44

#define read_EEROM 0xBE

sbit DQ = P2^3 ; //DS18B20 Puerto de datos

Caracteres sin firmar TMPH, TMPL

tabla de códigos uchar [10] = {0x3f,0x06.0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f };

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

* Nombre retraso()

* Función: Retraso, el tiempo de retraso es de aproximadamente 140US.

* Entrada: Ninguna

* Salida: Ninguna

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

void delay_1()

{

int i,j;

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

for(j=0; j<=2; j++)

}

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

* Nombre: retardo()

* Función: Función de retardo

* Entrada: Ninguna

* Salida: Ninguna

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

retraso nulo( uint N)

{

int i;

for(i=0; i

;

}

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

* Nombre: Retraso_1ms( )

* Función: Subrutina de retardo, el tiempo de retardo es 1 ms * x

* Entrada: x (número de milisegundos que se retrasarán)

* Salida: Ninguna

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

void Delay_1ms(uint i)//1ms de retraso

{

uchar x,j;

for(j=0;j

for(x=0;x <=148;x++);

}

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

* Nombre: Reset()

* Función:Reset DS18B20

* Entrada: Ninguna

* Salida:

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

uchar Restablecer(void)

{

uchar engaño_listo;

DQ = 0;

retraso(29);

DQ = 1;

retraso(3);

deceive_ready = DQ;

demora( 25);

retorno(deceive_ready);

}

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

* Nombre: read_bit()

* Función: de DS

18B20 Leer un bit

* Entrada: Ninguna

* Salida: Leer el valor de bit de DS18B20

************ ************************************************** * **********/<

uchar read_bit(void)

{

uchar i;

DQ = 0;

DQ = 1;

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

retorno(DQ);

}

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

* Nombre: write_bit()

* Función: Escribir bit en DS18B20

* Entrada .bitval (el valor de bit que se escribirá en DS18B20)

* Salida: Ninguna

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

void write_ bit(uchar bitval)

{

DQ=0; si(bitval==1)

DQ=1;

retraso(5);

DQ=1;

}

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

* Nombre: read_byte()

* Función: Desde DS18B20 Leer un byte

* Entrada: Ninguna

* Salida: Leer valor desde DS18B20

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

uchar read_byte(void)

{

uchar i,m, recibir_datos;

m = 1;

recibir_datos = 0;

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

{

if(read_bit())

{

recibir_datos = recibir_datos + (m << i);

}

retraso(6 );

}

retorno(recibir_datos);

}

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

* Nombre: write_byte()

* Función: Escribir un byte en DS18B20

* Entrada: val (para escribir Ingrese el valor del comando de DS18B20)

* Salida: Ninguna

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

void write_byte(uchar val)

<

p>{

uchar i,temp;

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

{

temp = val >> i;

temp = temp & 0x01;

write_bit(temp);

retardo(5); > }

}

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

* Nombre: Principal()

* Función: Función principal

* Entrada: Ninguna

* Salida: Ninguna

: Ninguna

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

void main()

{

float tt;

uint temp;

P2 = 0x00;

while(1)

{

Reset() ;

write_byte(start_ROM);

write_byte(start).

Reset()

write_byte(jump_ROM)

p>

write_byte(read_EEROM);

TMPL = leer_byte()

TMPH = leer_byte(); > temp = TMPL / 16 + TMPH * 16;

P0 = tabla[temp/10%10];

P2 = 6;

Retraso_1ms(5 );

P0 = tabla[temp%10];

P2 = 7;

Retraso _1ms(5);

}

}