Red de conocimiento informático - Aprendizaje de código fuente - Programación de simulación de reloj

Programación de simulación de reloj

El diagrama esquemático es el siguiente:

Parte del mapa (1):

Parte del dibujo (2):

Parte del dibujo (3 ):

Código de la siguiente manera:

# include ltreg 51. h gt

# include ltintrins.h gt

#Define; uchar carácter sin signo

#Definir uint entero sin signo

sbit st=p2^0; //Iniciar bit de conversión

sbit oe=p2^2; Bit de habilitación de salida

sbit ale=p2^3;? //Bit de bloqueo de habilitación de dirección

sbit eoc=p2^1; //Bit de fin de conversión

sbit clk=p2^4 //Reloj

Long int datas, white, she, Ge;

Uchar·Duan;

número de código uchar []={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07 , 0x7f, 0x6f}; //Números sin puntos

uchar code num_dot[]={0xbf, 0x86, 0xdb, 0xcf, 0xe6, 0x ed} //Números con puntos

uchar code Wei[]={0x0d, 0x0b, 0x 07}; //código de bits

Retraso no válido (unidad z)

{

Uchar I ;

while(z -)

for(I = 0; I lt120; i

}

Pantalla vacía( )

{

uchar I = 0;

White=(datas * 500/255)/100 //Cálculo y obtenemos el bit más alto

Ella = (datos * 500/255)/10 10; // Calcula el bit medio

ge = (datos * 500/255) 10 // Calcula el bit más bajo

p>

for(I = 0;ilt3;i)

{

=Wei[i];

si(I = = 0) { Duan = num _ punto[Bai];}

si no(I = = 1){ Duan = num[ella];}

si no(I = = 2) { Duan = num[ge];}

P0 = segmento;

Retraso(2);

}?

p>

}

void main()

{

TMOD = 0x 02; //Definir T0 y modo de trabajo 2

TH0 = 0x 216; //valor inicial TH0

TL0 = 0x 216;? //valor inicial de TH1

EA = 1;? //Activar la interrupción del host

ET0 = 1; //Activar el bit de habilitación de interrupción

TR0 = 1;? //Abrir T0

while(1)

{

ST = OE = 0 //Primero establezca START y EO en 0.

ALE = 1; //Establece ALE y ST en 1 y tira hacia arriba.

ST = 1;

ALE = 0; //Establezca ALE y START en 0 para iniciar la conversión de datos.

ST = 0;

Y (!EOC);? // Espere a EOC, ECO es 1, lo que indica que la conversión se completó.

OE = 1; //Abrir OE y leer datos.

datos=p 1;? //Guarda los datos en los datos.

Display();

}

}

void inter_1() interrupción 1

{

CLK = ~ CLK;

}

Los resultados de la ejecución son los siguientes