Red de conocimiento informático - Aprendizaje de código fuente - Programación de minutos de la visualización del reloj

Programación de minutos de la visualización del reloj

Sé una buena persona, dame una rutina y haz tu propia investigación.

# incluir ltreg52.h gt

código char duma[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x 40} ; //0-9 tubo digital, * * * Yin

código de carácter wema[]={0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf 7}; 1-8 tubos digitales

char j;

char h_num, m_num, s_num//define horas, minutos y segundos respectivamente.

char h_shi, h_ge, m_shi, m_ge, s_shi, s_ge

sbit fm=p3^4;

Retraso no válido (char x)

p>

{

char a, b;

for(a = x; a gt0; respuesta-)

for(b = 100; b gt0; b-);

}

void inter_init()

{

EA = 1; Activar la interrupción del host

ET0 = 1; //En este ejemplo, se utiliza el temporizador T0. Si usa T1. ET1=0, TMOD=0x10.

TMOD = 0x 01; //Modo de trabajo del temporizador 1

TH0 = (65535-50000)/256; //Porque el oscilador de cristal usa 11.0592MHZ. se define aproximadamente como una interrupción de 50 milisegundos.

TL0 = (65535-50000) 256;

TR0 = 1;

}

Pantalla vacía (char h_shi, h_ge, m_shi, m_ge, s_shi, s_ge)

{

P2 = Duma[h_Shi];

p 1 = wema[0];

p >

retraso(8);

P2 = duma[h_ge];

p 1 = wema[1];

retraso (8);

P2 = duma[10];

p 1 = wema[2];

Retraso(8);

P2 = Duma[m_Shi];

p 1 = wema[3];

Retraso(8);

P2 = Du caballo[m_ge];

p 1 = wema[4];

retraso(8);

P2 = duma[10];

p 1 = wema[ 5];

Retraso(8);

P2 = Duma[s_Shi];

p 1 = wema[6];

Retraso(8);

P2 = Duma[s_ge];

p 1 = wema[7 ];

Retraso(8);

}

void main()

{

inter _ init();

s _ num = 55 / /Configuración de hora inicial. Son segundos, minutos y horas.

m _ num = 59

h _ num = 10

mientras(1)

{

Si (j==20)

{

j = 0;

si (s_num==59)

{

s_núm=-1;

if(m_num==59)

{

m_núm=-1;

if(h_num==24)

h_num =-1

h_num

FM = 0;/ /El timbre sonará después de la hora.

Retraso(50);

FM = 1;

}

m_num;

}

s_num;

}

h_Shi = h_num/10;

h_ge = h_num 10;

m_Shi = m_num/10;

m_ge = m_num 10;

s_Shi = s_num/ 10;

s_ge = s_num 10;

display(h_shi, h_ge, m_shi, m_ge, s_shi, s_ge);

}

}

Voidtime() interrupción 1 usa 1 // Si se usa t 1, debería ser la interrupción 3.

{

TH0 =(65535-50000)/256; //Debido a que el oscilador de cristal usa 11.0592MHZ, al tomar el valor inicial, se define aproximadamente como una interrupción de 50. milisegundos.

TL0 =(65535-50000) 256

j

}