Red de conocimientos turísticos - Conocimientos sobre calendario chino - Programa de programación matricial de puntos MCU 88

Programa de programación matricial de puntos MCU 88

//Si aquí se muestran números y letras, bastaría con definir el código para cada letra. Los caracteres chinos son terribles. La matriz de puntos de 16*16 está bien, pero la de 8*8 no es tan buena.

# include ltreg 51.h gt;

# include ltintrins.h gt

#Definir carácter uchar sin firmar

#Definición uint entero sin signo

código uchar table_of_Digits[]=

{

0x00, 0x3e, 0x41, 0x41, 0x41, 0x3e, 0x00, 0x00, //0

0x00, 0x00, 0x00, 0x21, 0x7f, 0x01, 0x00, 0x00, //1

0x00, 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, 0x00, // 2

0x00, 0x22, 0x49, 0x49, 0x49, 0x36, 0x00, 0x00, //3

0x00, 0x0c, 0x14, 0x24, 0x7f, 0x04, 0x00, 0x00, //4

0x00, 0x72, 0x51, 0x51, 0x51, 0x4e, 0x00, 0x00, //5

0x00, 0x3e, 0x49, 0x49, 0x49, 0x26, 0x00, 0x00, //6

0x00, 0x40, 0x40, 0x40, 0x4f, 0x70, 0x00, 0x00, //7

0x00, 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, 0x00, //8

0x00, 0x32, 0x49, 0x49, 0x49, 0x3e, 0x00, 0x00, //9

0xff, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xff

};

código uchar xdat[8]={0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x 01} ;

uchar código ydat[8]={0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x 80};

uchar i=0, j=0, t=0, Num_Index, key,, yi;

//Programa principal

void main()

{

p 1 = 0x 80;

num _ Index = 0; //Comenzar a mostrar desde 0

TMOD = 0x 01; //T0 modo 0

TH0 =( 65536-2000) /256; //temporización de 2 milisegundos

TL0 = (65536-2000) 256;

IE = 0x82

clave = 0;

Xi = 0;

yi = 0;

EX0 = 1;

IT0 = 1; //Iniciar T0

while(1);

}

//Función de interrupción T0

void text_int0( ) interrupción 0

{

tecla;

tecla y clave.

= 0x03

}

void LED_Screen_Display() interrupción 1

{

TH0 =(65536-2000)/256; Temporización de 2 milisegundos

TL0 =(65536-2000) 256;

Interruptor (tecla)

{

Caso 0: p>

P0 = 0xff//Código de bits de salida y código de segmento

P0 = ~Tabla de números [Índice de números * 8 I];

P1=_crol_(P1 , 1 );

if( I = = 8)I = 0; // Cada número en la pantalla consta de 8 bytes.

If( t==250) //Cada dígito se actualiza y se muestra durante un período de tiempo.

{

t = 0;

if(Num _ Index = = 10)Num _ Index = 0 //Mostrar el siguiente número

}

Rotura;

Caso 1:

P0 = ~ xdat[Xi];

p 1 = 0x ff;

p 1 = ydat[yi];

If( t==250) //Cada dígito se actualiza y se muestra durante un período de tiempo.

{

t = 0;

yi;

si (yi gt7) { yi = 0;}

Si (Xi gt; 7)Xi = 0;

}

Romper;

Caso 2:

P0 = 0xff//Código de bits de salida y código de segmento

P0 = ~ Tabla _ de _ dígitos[80 j];

if(j = = 0)p 1 = 0x 80 ;

P1=_crol_(P1, 1);

if( j = = 8)j = 0; //Un número en cada pantalla consta de 8 bytes.

Romper;

Valor predeterminado:

clave = 0;

I = 0

j =; 0;# include ltreg 51.h gt;

# include ltintrins.h gt

#Definir carácter uchar sin signo

#Definir uint entero sin signo

uchar código table_of_Digits[]=

{

0x00, 0x3e, 0x41, 0x41, 0x41, 0x3e, 0x00, 0x00, //0

0x00, 0x00, 0x00, 0x21, 0x7f, 0x01, 0x00, 0x00, //1

0x00, 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, 0x00, //2

0x00, 0x22, 0x49, 0x49, 0x49, 0x36, 0x00, 0x00, //3

0x00, 0x0c, 0x14, 0x24, 0x7f, 0x04, 0x00, 0x00,/ /4

0x00, 0x72, 0x51, 0x51, 0x51, 0x4e, 0x00, 0x00, //5

0x00, 0x3e, 0x49, 0x49, 0x49, 0x26, 0x00, 0x00, //6

0x00, 0x40, 0x40, 0x40, 0x4f, 0x70, 0x00, 0x00, //7

0x00, 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, 0x00, / /8

0x00, 0x32, 0x49, 0x49, 0x49, 0x3e, 0x00, 0x00, //9

0xff, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xff

};

uchar código xdat[8]={0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x 01};

uchar código ydat[8]={0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x 80};

uchar i=0, j=0, t=0, Num_Index ,key,, yi;

//Programa principal

void main()

{

p 1 = 0x 80;

num _ Index = 0; //Comenzar a mostrar desde 0

TMOD = 0x 01; //T0 modo 0

TH0 =(65536-2000)/ 256; Temporización de 2 milisegundos

TL0 = (65536-2000) 256;

IE = 0x82

key = 0;

Xi = 0 ;

yi = 0;

EX0 = 1;

IT0 = 1;

TR0 = 1;/ /Iniciar T0

while(1);

}

//Función de interrupción T0

void text_int0() interrupción 0

{

clave;

Claves y claves.

= 0x03

}

void LED_Screen_Display() interrupción 1

{

TH0 =(65536-2000)/256; Temporización de 2 milisegundos

TL0 =(65536-2000) 256;

Interruptor (tecla)

{

Caso 0: p>

P0 = 0xff//Código de bits de salida y código de segmento

P0 = ~Tabla de números [Índice de números * 8 I];

P1=_crol_(P1 , 1 );

if( I = = 8)I = 0; // Cada número en la pantalla consta de 8 bytes.

If( t==250) //Cada dígito se actualiza y se muestra durante un período de tiempo.

{

t = 0;

if(Num _ Index = = 10)Num _ Index = 0 //Mostrar el siguiente número

}

Rotura;

Caso 1:

P0 = ~ xdat[Xi];

p 1 = 0x ff;

p 1 = ydat[yi];

If( t==250) //Cada dígito se actualiza y se muestra durante un período de tiempo.

{

t = 0;

yi;

si (yi gt7) { yi = 0;}

Si (Xi gt; 7)Xi = 0;

}

Romper;

Caso 2:

P0 = 0xff//Código de bits de salida y código de segmento

P0 = ~ Tabla _ de _ dígitos[80 j];

if(j = = 0)p 1 = 0x 80 ;

P1=_crol_(P1, 1);

if( j = = 8)j = 0; //Un número en cada pantalla consta de 8 bytes.

Romper;

Valor predeterminado:

clave = 0;

I = 0

j =; 0;

t = 0;

Xi = 0;

yi = 0;

num _ Índice = 0;

p>

P0 = 0xff

p 1 = 0x 80

Romper

}

}

t = 0;

Xi = 0;

yi = 0

núm _ Índice = 0; >

P0 = 0xff

p 1 = 0x 80;

Rotura;

}

}

html>