Red de conocimientos turísticos - Conocimientos sobre calendario chino - MCU c52 está escrito en lenguaje c para implementar un programa de conversión de anuncios

MCU c52 está escrito en lenguaje c para implementar un programa de conversión de anuncios

#include

#include

#definir uchar unsigned char

#definir uint unsigned int

sbit CS=P3^0;

sbit CLK=P3^1; //reloj

sbit DIO=P3^2; Pin de salida

sbit din=P0^7

código uchar tab1[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90, 0x88,0x83,0xA7,0xA1,0x86,0x8E}; //*** Tabla digital Yang

pestaña de código uchar[4]={0xfe,0xfd,0xfb,0xf7} //Bit de tubo digital tabla de selección

retraso nulo(uint k)

{

uint i,j;

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

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

}

uint A_D() // Función de conversión A/D

{

unsigned char i,dat;

CS=0; // Selección de chip

CLK=0; para el primer pulso

CLK=1; //El primer pulso

DIO=1; //DI se establece en 1, la señal de inicio especificada

_nop_();_nop_();

CLK=0; //El flanco descendente del primer pulso

CLK=1 //El segundo pulso DIO=1; // DI se establece en 1, señal de selección de canal: 1

_nop_();_nop_();

CLK=0; un pulso

CLK=0; //El tercer pulso

DIO=1; //DI se establece en 0, señal de selección de canal: 0, seleccione el canal 0

_nop_();_nop_();

// CLK=0; //El tercer pulso de flanco descendente, comienza la conversión

// _nop_();_nop_ () ; //Después del tercer pulso,

// CLK=1

for(i=0;i<8;i++) //Primer bit alto<; p> {

CLK=1; //El cuarto pulso

if(DIO)

dat=(dat<<1)| La prioridad de lectura "|" del bit alto al bit bajo es mayor que ">>"

else

dat=(dat<<1)|0x00;

CLK=0;

}

for(i=0;i<8;i++) // Bit alto primero

{

CLK=1; //Nº 4

pulsos

if(DIO)

dat=(dat>>1)|0x80;//La lectura de "|" de bit alto a bit bajo tiene mayor prioridad que ">> "

más

dat=(dat>>1)|0x00;

CLK=0;

}

CS=1;

CLK=1;

devolver dat

}

visualización nula (uint k)

{

P2=tab[1];

P0=tab1[k/100];

din=0;

p>

retraso(3);

P2=0xff;

P2=tab[2];

P0=tab1 [k/10% 10];

retraso(3);

P2=0xff;

P2=tab[3];

P0=tab1 [k%10];

retraso(3);

P2=0xff;

}

nulo main(void) / /Función principal

{

uint temp;

while(1)

{

temp=A_D ()*5.0/256*100; // Encuentra el valor de voltaje según el resultado de la conversión

display(temp);

}

}

La placa de programa ADC0832 está lista para usar