Quiero usar la interrupción externa 0 para realizar la función de agregar 1 al tubo digital, es decir, presionar un botón aumentará el valor del tubo digital en uno, pero falla. ?
#includelt; reg51.hgt;
#define uint unsigned int
#define uchar unsigned char
sbit P27=P2^ 7; //Selecciona el último tubo digital
uchar n;
uchar code a[]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80 , 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e}; //0-9
retraso nulo1ms(uint i)//programa de retraso de 1ms
{
uchar j;
while(i--) { for(j=0;jlt;115;j) {;} }
}
void main(void)
{
EA = 1;
EX0 = 1
IT0 = 1; p>
n = 0;
mientras(1) {
P0 = a[n];
retraso1ms(100);
}
}
void t(void) interrupción 0
{
n
n=10;
}
Eso es.