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 p>
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><; 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; p>
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>
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