Red de conocimiento informático - Consumibles informáticos - Calificaciones altas, solicite el código del programa C para la conversión AD utilizando el microcontrolador 51 AD7731.

Calificaciones altas, solicite el código del programa C para la conversión AD utilizando el microcontrolador 51 AD7731.

# include & ltreg52.h & gt# include & ltintrins.h & gt# define uchar unsigned char # define uint unsigned ints bit ds=p3^3; //Define la interfaz de DS18B20 int tempuchar flag 1; * lp, unsigned char LC); // Función de visualización del número; Lp es la dirección que apunta a la matriz, lc es el número mostrado void delay(); // Subfunción de retardo, cinco códigos de instrucción vacíos unsigned chartable [] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0xBF, 0x86, 0xdb, 0xcf, 0xe6, 0xed, 0xfd, 0x87, 0xed.

/* * *El tubo digital catódico muestra números de "0-9" "0-9" "c" "tabla vacía" unsigned char l_tmpdate [8] = {0, 0, 10, 0, 0, 0} ;/ /Defina variables de matriz y asigne valores 1, 2, 3, 4, 5, 6, 7, 8. Estos son los ocho números que muestra este programa int tmp(void); uchar dat); uchar tmpread(void); bit tmpreadbit(void); void dsreset(void); void delayb(recuento de unidades); change ();//Conversión de temperatura l_tmp = tmp();//Leer valor de temperatura if (l_tmp

} void ds reset(void)//ds 18b 20 inicialización { uint I; DS = 0; I = 103; mientras (I & gt; 0)I-; DS = 1; I = 4; mientras (I & gt; 0)I-; datDS = 0; i++; // un poco retrasado, DS = 1; i++; dat = DSI = 8; mientras (I & gt; 0) I-; Leer un byte {uchar i, j, datdat = 0; for (I = 1; i<=8;i++){ j = tmpreadbit(); dat =(j<<7) |(dat & gt;& gt1);} return(dat);}Suplemento de respuesta

void tmpwritebyte(uchar dat){ uint I;uchar j;bit testbfor(j = 1;j & lt= 8;j++){ testb = dat & 01; dat = dat & gt& gt1; si (pruebab) { DS = 0; i++; I = 8; 8; mientras (yo > 0) I-; i++; i++; void tmp change(void){ ds resetb( 1);tmpwritebyte(0x cc); 44);}Suplemento de respuesta

Int tmp() //Recopilar temperatura {floating TT; uchar a, b; dsreset(); retrasob(1);tmpwritebyte(0x cc); ; //Enviar comando de lectura de datos a = tmpread(); //Leer continuamente dos bytes de datos b = tmpread(); temp = b; lt& lt= 8;temp = temp | en una variable entera. TT = temp * 0.0625; //Obtiene el valor de temperatura decimal real, porque DS18B20 // puede tener una precisión de 0,0625 grados, por lo que el bit más bajo de los datos de lectura representa // 0,0625 grados. temp = TT * 10.5; //Ampliar diez veces. El propósito de esto es convertir el primer dígito después del punto decimal // en un número visualizable mientras se realizan operaciones de redondeo.

Temperatura de retorno; //Valor de temperatura de retorno}Suplemento de respuesta

void read rom()//Lee el número de serie del sensor de temperatura a través del puerto serie {//Esta función uchar sn1, sn2 es inútil en esto programa para; dsreset(); retardob(1); tmpwritebyte(0x 33); sn 1 = tmpread(); sn2 = 10; a & gt0 ;a-)for(b = 60;b & gt0;b-);} ¡Guau! Estoy tan cansado. . . Esto se puede utilizar. . . Compruébalo tú mismo con esa boca. Si quieres leerlo en lenguaje ensamblador:/% B6 % E0 % B9 % A6 % C4 % DC % B3 % B4 % BB % F5 % BB % FA/blog/item/1 F4 f 0 ed 876141462799.