Red de conocimientos turísticos - Información de alquiler - ¿Qué hermano o hermana tiene un programa C51 para hacer un reloj electrónico con una pantalla de matriz de puntos de 16*64? Envíeme una copia. Después de pensarlo durante mucho tiempo, todavía siento que es demasiado engorroso para escribir. Yo mismo. ¡Gracias!

¿Qué hermano o hermana tiene un programa C51 para hacer un reloj electrónico con una pantalla de matriz de puntos de 16*64? Envíeme una copia. Después de pensarlo durante mucho tiempo, todavía siento que es demasiado engorroso para escribir. Yo mismo. ¡Gracias!

*El uso comercial está estrictamente prohibido, los infractores serán responsables de las consecuencias*

* Q Q: 513696765 *

* *

* *

* Entorno operativo: microcontrolador STC89C52, oscilador de cristal de 12 M*

* Descripción del programa: *

************ ************************************************* /

#includelt;reg52.hgt;

#include lt;intrins.hgt;

#define uchar unsigned char

# define uint unsigned int

char a, b, c, sec=56, min=34,

hora=12, sec1, sec2, min1, min2, hora1, hora2,

sec11, sec22, min11, min22, hora11, hora22, temp;

int k, n, m //Defina K para calcular el número de dígitos para mover caracteres (si hay más) es necesario mover los dígitos, defina K como int; de lo contrario, pueden aparecer caracteres confusos)

uchar taxe[94]; //definir una carga de matriz variable, sec1, sec2, min1, min2, hora1, hora2 modo palabra

sbit sclk=P3^4; //Definir el flanco ascendente del puerto de reloj 74HC595 para escribir datos

sbit rclk=P3^5 //Definir la salida 74HC595; puerto de reloj

sbit ser=P3^6; //Definir los datos de salida del flanco ascendente del puerto de entrada de datos de 74HC595

/******* Número de dígitos 0-9, año, mes, día matriz de modo de palabra** *******/

tabla de códigos de caracteres[14][8]=

{

{0x7c, 0x8a, 0x92, 0xa2, 0x7c , 0x00, 0x00, 0x00,}, //0

{0x00, 0x42, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,}, //1

{0x42, 0x86, 0x8a, 0x92, 0x62,

}

}

}

void main()

{

TMOD=0X01

TH0=0X3C

TL0=0XB0; ;

EA=1;

p>

ET0=1

TR0 =1;

{

for(c= 0;clt;60;c) //se usa para regular qué tan rápido o lento fluyen los personajes

{

P1=0xff; //Procesamiento de desenfoque de matriz de puntos

for(b=24;bgt;0;b--) //Debido a que 3 74HC595 están en cascada, cada línea debe usar la serie analógica puerto para enviar datos de 24 bits

{

sclk=0; // La escritura de datos requiere el flanco ascendente de 74HC595, así que bájelo primero

_nop_();

_nop_() ;

if(taxe[b k]amp; yu[a]) //Enviar datos para una línea determinada

ser=1 //escribir 1 a los datos si una de las líneas en la palabra modelo es 1 else escribe 0

else

ser=0; //escribe 0 en los datos

sclk=1; generar un flanco ascendente para escribir datos

_nop_()

_nop_()

}

rclk=0; Baje el nivel del puerto de entrada de datos 74HC595 y espere a que el flanco ascendente genere datos

_nop_()

_nop_()

rclk=; 1; // Sube el nivel del puerto de entrada de datos 74HC595 para generar un flanco ascendente

_nop_()

_nop_()

rclk=; 0; //Baja el nivel del puerto de entrada de datos 74HC595 para retener los datos

P1=~yu[a 1] //Selección de fila (nivel bajo activo)

retardo(5) ;

a ;

si(agt; 6)

a=0

}

a; =0 ;

k ; //definimos k para contar el número de bits para mover el carácter

if(kgt;=70) //si el carácter se desplaza asigna 0 para empezar de nuevo

{

k=0

}

}

}

void T0_TIME()interrupción 1

{

TH0=0X3C

TL0=0XB0

n ;

if(ngt;=10)

{

n=0;

qushu();

m ;

{

if(mgt;=2)

{

m=0;

shizhong () ;

}

}

}

}