DS1820-C51 necesarias para ejemplos!

O

onde

Guest
Hola,

¿Alguien sabe o tiene un vínculo mismo ejemplos de la programación de la DS1820 en C51?
gracias de antemano,
onde

 
/ / DS1820 C51

/ / SBIT DQ = p2 ^ 1;

typedef unsigned char byte;
typedef unsigned int palabra;

demora vacío (palabra useconds)
(
for (; useconds> 0; useconds -);
)

byte ow_reset (void)
(
presencia de bytes;
DQ = 0; / / DQ tire línea baja
retraso (29) / / para dejarlo bajo 480us
DQ = 1 / / permite a la línea de alto rendimiento
retraso (3) / / esperar a que la presencia
DQ = presencia; / / obtener la presencia de señal
retraso (25) / / esperar a final de horario
return (presencia); /
o la presencia de señales devueltas
) / / 0 = presencia, 1 = ninguna parte

byte read_byte (void)
(
byte i;
valor de byte = 0;
for (i = 8; i> 0; i -)
(
valor>> = 1;
DQ = 0; / / tirar DQ baja de tiempo para iniciar
DQ = 1 / / volver de alta
retraso (1) / / for (i = 0; i <3; i );
if (DQ) valor | = 0x80;
retraso (6) / / esperar para el resto de horario
)
return (valor);
)vacío write_byte (char val)
(
byte i;
for (i = 8; i> 0; i -) / / escribe bytes, un poco a la vez
(
DQ = 0; / / tirar DQ baja de tiempo para iniciar
DQ = val &0x01;
retraso (5) / / mantener el valor por el resto del horario
DQ = 1;
val = val / 2;
)
retraso (5);
)char Read_Temperature (void)
(
union (
c byte [2];
int x;
Temp);

ow_reset ();
write_byte (0xCC); / / Pasar ROM
write_byte (0xBE); / / Leer el bloc de
temp.c [1] = read_byte ();
temp.c [0] = read_byte ();
ow_reset ();
write_byte (0xCC); / / Pasar ROM
write_byte (0x44); / / Inicio de conversión
volver temp.x / 2;
)

 

Welcome to EDABoard.com

Sponsor

Back
Top