Red de conocimiento informático - Computadora portátil - El microcontrolador 51, programado en lenguaje C, controla el zumbador y el tubo digital estático a través de un teclado independiente.

El microcontrolador 51, programado en lenguaje C, controla el zumbador y el tubo digital estático a través de un teclado independiente.

1. Los primeros tres dígitos del tubo digital muestran el cronómetro, que va de 000 a 999 a una velocidad del 1% por segundo. El cronómetro se detiene cuando se presiona el teclado independiente y continúa funcionando cuando se suelta la manecilla. (Diseño de temporizador de correa de reloj).

código:

#include

#define uchar unsigned char

#define uint unsigned int

sbit key1 = P3^4;

sbit dula = P2^6;

sbit wela = P2^7;

tabla de códigos uchar[ ]={

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

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

0x7f,0x6f ,0x77,0x7c, p>

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

uint num;

uchar bai, shi, ge, flag = 0,t0 = 0

retraso nulo(uchar z);

visualización nula(nulo);

nulo principal(nulo)

{

num = 0;

P3 = 0xff;

TMOD = 0x01;

TH0 = (65536-10000) / 256;

TL0 = (65536-10000) % 256;

EA = 1;

ET0 = 1;

TR0 = 1;

while(1) {

if(clave1 == 0) {

retraso(5);

if(clave1 == 0) {

bandera = 1;

if(clave1 == 0) {

bandera = 1;

}

mientras (!key1);

retraso(5);

mientras(!key1);

}

visualización() ;

}

}

visualización vacía(void)

{

dula = 1;

P0 = tabla[núm/100];

dula = 0;

P0 = 0xff;

wela = 1;

P0 = 0xfe;

wela = 0;

retraso(1);

dula = 1;

P0 = tabla [núm % 100 / 10];

dula = 0;

P0 = 0xff;

wela = 1;

P0 = 0xfd;

wela = 0;

retraso(1);

dula = 1;

P0 = tabla[núm % 10 ];

dula = 0;

P0 = 0xff;

wela = 1;

P0 = 0xfb;

wela = 0;

retraso(1);

}

retraso nulo(uchar z)

{

uchar