Red de conocimiento informático - Aprendizaje de programación - Programación C51 para DS18B20

Programación C51 para DS18B20

No, en tu caso lee dos veces y saca el promedio. Si desea mostrarlo, agregue

temp.x=(temp.x/2)*0.625; *0.625 es la temperatura real

return temp.x;

El programa que usé antes:

#include "reg52. h"

#include lt;intrins.hgt;

# define DQ P0_0 //DS18B20 bit de puerto de datos P0.0

#define INT8U unsigned char

#define INT16U unsigned int

void DelayXus(INT8U n);

void DS18B20_Reset();

void DS18B20_WriteByte(INT8U dat);

INT8U DS18B20_ReadByte();

INT8U TPL;

INT8U TPH;

Pestaña código INT8U[16]={0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62, 0x63, 0x64 , 0x65, 0x66};

void delay_lcd(int ms); //retraso

unsigned int t //Valor de temperatura de 16 bits

void main (void )

{ lcdinit();

while(1)

{

DS18B20_Reset() //Restablecimiento del dispositivo

DS18B20_WriteByte(0xCC); // Saltar comando ROM

DS18B20_WriteByte(0x44);