Red de conocimiento informático - Descarga de software - Utilice luces LED para mostrar la cuenta regresiva durante 10 segundos. Programación en lenguaje C de 51 microcontroladores.

Utilice luces LED para mostrar la cuenta regresiva durante 10 segundos. Programación en lenguaje C de 51 microcontroladores.

¡¡¡Es difícil conseguir tus puntos = =!!!!

#include

#define uchar unsigned char//Definición de macro

#define uint unsigned int

sbit dula=P2^6; //Bit de control de segmento

sbit wela=P2^7 //Bit de control de bit

uchar miao,fen,aa,n1,n2,n3,n4;

tabla de códigos uchar[]={ //Mostrar código

0x3f,0x06, 0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71} ;

void delay(uint z); //Declaración del programa de retraso

void init(void);//Declaración del programa de inicialización

void display(uchar n1, uchar n2,uchar n3,uchar n4); //Mostrar declaración del programa

void main() //Programa principal

{

init() / /Llame al programa de inicialización

while(1) // Ingrese al bucle grande

{

if(aa==20) // Juzgue si tiene alcanzó 1S

{

miao++; //Agrega 1 al segundo

if(miao==60) //Determina si han pasado 60 segundos

{

miao=0; //Borrar segundos a 0

fen++; //Agregar 1 a la puntuación

if(fen== 60) //Juzga si llega a 60 puntos

{

fen=0; //Borra 0 cuando la puntuación llega a 60

}

n1=fen/ 10; //El primer tubo digital muestra las decenas del minuto

n2=fen%10; //El segundo tubo digital muestra las unidades del minuto

n3=miao/ 10; //El tercer tubo digital muestra las decenas del segundo

n4=miao%10; //El cuarto tubo digital muestra las unidades del segundo.

}

display(n1,n2,n3,n4);

}

}

}

void delay(uint z) //Retraso del programa

{

uint x,y

for(x=z; x>0;x--)

p>

for(y=110;y>0;y--);

}

visualización vacía( uchar n1,uchar n2,uchar n3,uchar n4)

{

dula=1; //Abrir selección de segmento

P0=table[n1]; //Diez dígitos para enviar puntos

dula=0; //Selección de segmento fuera

P0=0xff //Blanqueamiento

wela=1; Abrir selección de segmento

P0 =0xfe; //El dígito de las decenas de la puntuación estroboscópica

wela=0; //Selección de bits desactivados

P0=0xff; //Blanqueamiento

retraso (1); //Retraso

dula=1; //Abrir selección de sección

P0=table[n2]; El único dígito de los puntos de envío

dula

=0; //Selección de sección desactivada

P0=0xff; //Blanqueamiento

wela=1; //Selección de sección activada

P0=0xfd; /El dígito de las unidades del divisor estroboscópico

wela=0; //Selección de dígitos desactivados

P0=0xff; //Blanqueamiento

delay(1); //Retraso

dula=1; //Abrir selección de segmento

P0=table[n3] //Enviar el décimo dígito del segundo

dula =0; //Fuera de selección de sección

P0=0xff; //Blanqueo

wela=1; //En selección de sección

P0=0xfb; /Dígito de decenas del segundo estroboscópico

wela=0; //Selección de bit desactivado

P0=0xff; //Blanqueamiento

retraso(1) // Retraso

dula=1; //Abrir selección de segmento

P0=table[n4] //Enviar el dígito único del segundo

dula =0 ; //Selección de sección desactivada

P0=0xff; //Blanqueamiento

wela=1; //Selección de sección activada

P0=0xf7; dígito de unidades del segundo estroboscópico

wela=0; //Selección de bit apagado

P0=0xff; //Blanking

retraso(1) // Retraso

}

void init(void)

{

}

void timer0 (void) interrupción 1 usando 1

{

TH0=(65536-50000)/256; //Módulo

TL0=(65536-50000) %256; Encontrar el resto

aa++;

}