Red de conocimiento informático - Computadora portátil - Microcontrolador C51: utiliza un tubo digital para mostrar valores de 0 a 999.

Ver programas y esquemas en lenguaje C

Microcontrolador C51: utiliza un tubo digital para mostrar valores de 0 a 999.

Ver programas y esquemas en lenguaje C

#include

#define uchar unsigned char

uchar temp;

int key1,key,disbuf; // Esta tabla es el modo de palabra del LED 0 1 1 2 3 4 5 6 7 8 9 a b c d e f

código de caracteres sin firmar LED7Code[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D , 0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

char ledx sin firmar[8];

bit?s0,s1;

retraso nulo(uchar z) { uchar i,j; for(i=0;i<120;i++) for(j=0;j

void); scan () //Si se presiona una tecla, escanea el teclado en busca del valor codificado { P1=0xF0; temp=P1; switch(temp)

{

caso 0xe0:key1=0;

romper;

for(j=0;i<120;i++) for(j=0;j

caso 0xd0: clave1=1;

ruptura;

caso 0xb0: clave1=2;

ruptura;

caso 0x70: clave1=3;

descanso;

} P1= 0x0f; temp=P1; > {

caso 0x0E: clave=clave1+0;

descanso;

caso 0x0D: clave=clave1+4;

romper ;

caso 0x0B: clave=clave1+8;

romper;

caso 0x07: clave=clave1+12;

break ;

predeterminado: clave=-1;?

} if((clave1+1)&&(clave+1)) disbuf=clave }

> void ejjc()?// Determinar si el botón está presionado { P1=0xF0; if(P1! =0xF0) { scan();s0=1;} else { s0=0; s1=1;} } }

void main() { uchar i; /p>

ejjc();

if(s0==1? && s1==1)

?{

? ;s1=0;

? para(i=0;i<8;i++)

{ ledx[i]=ledx[i+1]; disbuf; }

?

P0=0xff;

P2=LED7Code[ledx[0]];

P0=0xfe;

retardo(5);

P0=0xff;

P2=LED7Co

de[ledx[1]];

P0= 0xfd;

retraso(5);

P0=0xff;

P2 =CódigoLED7[ ledx[2]];

P0=0xfb;

retraso(5);

P0=0xff;

P2=Código LED7[ ledx[3]];

P0=0xf7;

retraso(5);

P0=0xff;

P2=LED7Code[ ledx[4]];

P0=0xef;

retraso(5);

P0=0xff;<

P2=LED7Code[ ledx[5]];

P0=0xdf;

retraso(5);

P0=0xff;

P2=LED7Code[ledx[6]];

P0=0xbf;

retardo(5 );

P0=0xff;

P2=LED7Code[ledx[7]];

P0=0x7f;

retraso(5);

} }?