Red de conocimiento informático - Problemas con los teléfonos móviles - La programación en lenguaje C del modo de interrupción general del microcontrolador stc12c5a60s2 lee el botón S1, registra el número de veces que se presiona S1 y genera el número a través del puerto P2.

La programación en lenguaje C del modo de interrupción general del microcontrolador stc12c5a60s2 lee el botón S1, registra el número de veces que se presiona S1 y genera el número a través del puerto P2.

#includelt;at89x51.hgt;

unsigned?char?cont;//Definir variable de recuento de claves

void?delayms(unsigned?char?time) //stc?1t?12MHz?1ms de retraso

{

unsigned?char?a, b, c; while (time--)?

for (c=1;cgt;0;c--)

for(b=222;bgt;0;b--)

for(a=12;agt; 0 ; a--);

}

void?main(void)

{

P2=cont=0;< / p>

IT0=1; //Establece el modo de disparo en disparo de flanco descendente

EX0=1; //Activa la interrupción externa 0

EA=1; Activar Interrupción total

while(1)

{

if(!P3_5)//S2 se detecta pulsación

{

p>

P2=cont=0; //Borrar valor

delayms(200);

}

}

}

void?EXinterrupt0(void)interrupt?0//Interrupción externa 0

{

//Apagar; interrupciones para evitar activaciones repetidas

IE0=0; //Borrar el indicador de interrupción externa 0

cont; //Recuento de claves 1

P2=cont; /Salida a P2 para visualización

delayms(200); //Tiempo de retardo

EX0=1; //Restaurar interrupción externa 0

}