Red de conocimiento informático - Material del sitio web - Temporizador de cuenta regresiva en lenguaje C basado en el microcontrolador at89C52

Temporizador de cuenta regresiva en lenguaje C basado en el microcontrolador at89C52

/************************************

Requiere la capacidad de realizar una cuenta regresiva a 9999 segundos

Implementado en lenguaje C

****************************** ******* *****/

##includelt;at89X51.hgt;

#define uchar unsigned char

#define uint unsigned int

uchar num_qian, num_bai, num_shi, num_ge; // Definir miles, centenas, decenas y dígitos.

uint time; // Hora a mostrar 0~9999

uint tcnt; // Unidad de tiempo

//******** *********//

/ La siguiente es la definición del puerto

//**************** ********/ /

}

//************************ ********* *******************

// Aquí está el controlador de contenido de la pantalla del tubo digital de actualización del temporizador 0

//**** ***************************************** ****

/*************************************** ********* ***

** Descripción funcional: controlador de tubo digital de 7 segmentos

*** Recursos de pin ocupados: selección de segmento de tubo digital, digital selección de broca de tubo

** Ocupa el recurso del sistema T0

*************************** *************** *******************/

void t0(void) interrupción 1 // utilizar 0

{

TH0= (65536-5000)/256; //interrupción de 5 ms

TL0=(65536-5000)256; -modo de temporizador de bits

WEI=0xff; //Selección de bit apagado

DUAN=dispcode[dispbuf[dispcount]] //selección de segmento

WEI= dispbitcode[dispcount]; //en la selección de bits

dispcount;

if(dispcount==5)

dispcount=0; > tcnt; //cuenta el número más uno

if( tcnt ==5*200)//satisface 1S ahora

{

tcnt=0; /cuenta número cero

tiempo--; //tiempo menos uno

if(time==0)//tiempo

while(1);

}

if(time lt; 10)//tiempo menos de 10

laba=~laba;//alarma sonora

}

¡Eso es!