Red de conocimiento informático - Conocimiento informático - Una niña principiante quiere escribir un programa en lenguaje C que inicie y detenga el cronómetro usando un control de interrupción externo. Solo hay un botón para controlar el inicio y la parada. Han pasado dos días y aún no se ha activado. .

Una niña principiante quiere escribir un programa en lenguaje C que inicie y detenga el cronómetro usando un control de interrupción externo. Solo hay un botón para controlar el inicio y la parada. Han pasado dos días y aún no se ha activado. .

#include

cargo sin firmar,shi,num,count,t;

código de carbón sin firmar Tab[]={0xC0,0xF9,0xA4,0xB0,0x99 ,0x92,0x82.0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};

void main()

{

TMOD=0x01; //T0, modo de trabajo 1

TH0=0xb1; //Tiempo de 20 ms

TL0=0xe0;

t=2;

EA=1; //Habilitar asignación total de interrupciones

ET0=1; //Permitir interrupción del temporizador T0

EX0=1; /p>

IT0=1;

IP=0x01; //La prioridad de interrupción externa es alta

P2=Tab[0];

P0=Tab[ 0];

num=0;

while(1) //Continúa llamando a la pantalla y espera la interrupción T0 para modificar los datos de la pantalla

{

shi=num/10; //Obtener dígitos de decenas

ge=num%10; //Obtener dígitos de unidades

P2=Tab[shi]; /P2 El puerto envía un código de visualización de datos de decenas de dígitos

P0=Tab[ge]; //El puerto P1 envía un código de visualización de datos de un solo dígito

}

}

void timer0() interrupción 1

{

TH0=0xb1;

TL0=0xe0;

count++ ;

if(count==50) //Suma a 50, que es 0. e.1 segundo

{ count=0;

num++;

if(num==60)

{num =0 ;}

}

}

void extern0(void) interrupción 0

{

t++;

if(t%2==0)

{

TR0=0;

P2=Tab[shi]

p>

P0=Tab[ge];

}

else

{

TR0= 1;

}

}

He depurado el programa anterior y es exactamente lo que quieres. ¡Pruébalo! La interrupción externa 0 debe utilizar el puerto P3.2, no el puerto P1.1. Buena suerte. ¡Me entristece mucho responder a sus preguntas en este momento! jeje.