Programación de minutos de la visualización del reloj
# 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;
} p>
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
}