Problema de interrupción de programación del microcontrolador C51 Después de la interrupción, no puede continuar para regresar a la función principal. ¿Puede algún experto echar un vistazo a mi programa?
void?int1_srv()?interrupt?2//Función de servicio de interrupción INT1, etiqueta de vector de interrupción 2
{? my_delay_10ms(1);//Retraso en el rebote KEY_BIT?= ?1 ;//Antes de leer el puerto IO de MCS51, configúrelo primero en 1 if(KEY_BIT?==?0)//El botón aún está presionado { // while(KEY_BIT?==?0);//Esperando levantamiento del botón
Esta pieza no es necesaria. Al utilizar la activación por flanco, no es necesario esperar a que se levante el botón, porque el primer flanco descendente ya activó la interrupción. Si el hardware es una placa de desarrollo ya preparada, no hay necesidad de ser tan problemático. Si se trata de una placa de circuito casera, recuerde agregar un condensador antivibración de 10 uF a P3.3. Consulte la imagen para ver el antivibración. -Circuito de vibración.
Puede que mi consejo no sea correcto, pero inténtalo.