Espero que los expertos puedan ayudarme a resolver este problema.
El diseño del reloj digital requiere un diagrama de circuito más detallado. Envíe el diagrama de circuito a mi correo electrónico 961571181@qq.com.
#includelt;reg51.hgt;
#define?uchar?unsigned?char
#define?uint?unsigned?int
sbit?le=P1^0;
sbit?key1=P3^7;
sbit?key2=P3^6;
sbit?key3= P3^5;
uchar?hora, minuto, segundo, t0, a8, a7, a5, a4, a2, a1
void?init();
void?display(uchar?a8, uchar?a7, uchar?a5, uchar?a4, uchar?a2, uchar?a1);
uchar?discode[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x67};
void?delay(uint?z)
{ uint?x, y; 0; xlt; z (); mientras(1) {? si(clave1==0)?
{? > si(clave1== 0)?
?{
si(clave1==0)?
segundo ;?
si(segundo==60 )?
?{
si(segundo==60)?
segundo=0;?
?}
?
a1=segundo10;?
a2=segundo/10
?} while(clave1== 0);? p>
?}? si(clave2==0)?
retraso(10);
si(clave2==0)?
{?
minuto ;?
si(minuto==60)?
{?
}?
a4=minuto10;?
a5=minuto/10;?
}mientras(clave2==0) ; }?
if(key3==0) {?
retraso(10);
if(key3==0)
{?
p>hora ;?
if(hora==24)
{? ;?
}
a7=hora10;?
?a8=hora/10;
}mientras(clave3==0 } } } mostrar(a8, a7, a5, a4, a2, a1 }
}
}
void?init()); p>
{ hora= 12;< TMOD=0x01; TH0=(65536
-50000)/256; TL0=(65536-50000)256; EA=1; ET0=1;
}
void?timer0()?interrupción?
{ TH0=(65536-50000)/256; TL0=(65536-50000)256; si(t0==20) {
?t0=0;
segundo ;
if(segundo==60)
{
segundo=0;
minuto ;
if(minuto==60)
{
?minuto=0
?hora; > ?if (hora==24)
?{
? hora=0
?}
}
}
a2=segundo/10
a1=segundo10
a5=minuto/10; =minuto10;
a8=hora/10;
a7=hora10;?10;?
}?
} p>
void?display(uchar?a8, uchar?a7, uchar?a5, uchar?a4, uchar?a2, uchar?a1)
{ P2=0x7f; =discod[a8];? le=0; retraso(1);
P2= 0xdf; le=1; P0=0x40; < le=0; P2=0xf7; 1; P0=discode[a4]; le=0;?retraso(1);
P2=0xfb; le=0x40; p>
p>
P2=0xfd; le=1; P0=descodificar[ a1]; =0; retardo( 1);
}?
Nota: J16 está conectado al puerto P2 del microcontrolador y J12 está conectado al puerto P0 del microcontrolador.