Red de conocimiento informático - Conocimiento informático - Ayude a escribir un lenguaje 51c que agregue automáticamente del 0 al 9999. Presione la tecla k1 una vez para detenerse y luego continuar, y k2 regresa a 0. Intente hacerlo lo más simple posible.

Ayude a escribir un lenguaje 51c que agregue automáticamente del 0 al 9999. Presione la tecla k1 una vez para detenerse y luego continuar, y k2 regresa a 0. Intente hacerlo lo más simple posible.

//Oscilador de cristal de 12M.

Tubo digital de 4 dígitos, código de segmento P0, control de bits P1.0~P1.3, inicio/pausa P1.4 reinicio P1.5

//Pantalla 0000~9999

//2012 02 13

#include

#define uchar unsigned char

sbit P10=P1^0;

bit P11=P1^1;

bit P12=P1^2;

bit P13=P1^3;

bit KS= P1^4 ; //Inicio/Pausa

sbit KR=P1^5; //Restablecer

uchar time,xs,ge,shi,bai,qian;

pestaña código uchar[ ]= {

0x3F,/*0*/

0x06,/*1*/

0x5B,/*2 */

0x4F,/*3*/

0x66,/*4*/

0x6D,/*5*/

0x7D, /*6*/

0x07,/*7*/

0x7F,/*8*/

0x6F,/*9*/

};

void delay_ms(unsigned int ms) //1ms de retraso

{

uchar a;

while (ms--)

for(a=123;a>0;a--);

}

void display()

void T0intinit( ) //Inicialización del temporizador T0

{

TMOD=0x01;

TH0=(65536-50000 )/256; /Tiempo de 50 ms

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0 =1;

}

void main()

{

T0intinit( );

while( 1)

{

display( );

while(!KS) // Tecla Inicio/Pausa

{

mostrar( );

if(KS)

TR0=!TR0;

}

while(!KR ) //Borrar tecla

{

display( );

if(KR)

TR0= 0;

qian=0;

bai=0;

shi=0;

ge=0;

}

if(bai==10)

{

bai=0;

qian++;

}

if(qian==10)

{

qian=0;

TR0=0;

}

}

}

visualización nula ( )

{

P13=0;

P0=tab[ge];

delay_ms(1);

P13=1; p>

P12=0;

P0=tab[shi];

delay_ms(1);

P12=1;

P11=0;

P0=tab[bai];

delay_ms(1);

P11=1;

P10=0;

P0=tab[qian];

delay_ms(1);

P10=1;

}

void T0int( ) interrupción 1 //Temporizador T0 modo de interrupción 1

{

uchar t;

TH0=( 65536 -50000)/256; //Reinstalar la constante de temporización de 50 ms

TL0=(65536-50000)%256;

t++;

if(t = =10)

{

t=0;

ge++;

if(ge==10)

{

ge=0;

shi++;

}

si(shi==10)

{

shi=0;

bai++;

}

}

}