¿Cómo programo esto?
El microcontrolador AT89C51 PC presiona una tecla (envía un carácter) y genera 4 tubos digitales para sumar 1 o restar 1 al número original.
¿Cómo programo esto?
#includelt; reg51.hgt;
#define uchar unsigned char
uchar LED1, LED2
uchar distab[] ={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
uchar num=0; sec, clave;
retraso nulo (sin firmar) int a)
{
unsigned int i,j;
for(i=0;ilt;a;i)
for(j=0;jlt;120;j);
}
pantalla vacía()
{
LED1=seg /10;
LED2=seg10;
P2=0x01;
P0=distab[LED1];
retraso(3) ;
P2=0x02;
P0=distab[LED2];
retraso(3);
}
void t0isr() interrupción 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)256;
num;
if(numgt;=20)
{
num=0;
seg ;
}
}
principal()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)256;
TR0=1;
ET0=1 ;
EA=1;
LED1=0;
LED2=0;
mientras(1)
{
clave=P1;
if((keyamp;0x0f)!=0x0f)
{
retraso(10 );
key=P1amp;0x0f;
if(key!=0x0f)
{
cambiar(key) p>
{
caso 0x0e: TR0=0;
caso 0x0d: segundo
caso 0x0b: seg--; romper;
caso 0x07: TR0=1; romper
predeterminado: romper
}
}
}
)
display();
}
}