Red de conocimiento informático - Espacio del host - Utilicé 74LS595 como controlador de fila y 74LS154 como controlador de columna. Hice una matriz de puntos de dos colores de 16 × 32. Necesito urgentemente un programa en lenguaje C que pueda mostrar texto de forma arbitraria. Gracias.

Utilicé 74LS595 como controlador de fila y 74LS154 como controlador de columna. Hice una matriz de puntos de dos colores de 16 × 32. Necesito urgentemente un programa en lenguaje C que pueda mostrar texto de forma arbitraria. Gracias.

Varias funciones de visualización, hora, temperatura y otras.

Te doy una referencia:

Puedes descargarla de mi blog:

Pantalla de visualización de caracteres chinos de matriz de puntos LED

Descripción general

p>

Debido al corto tiempo de producción, para reducir la dificultad de la producción, solo se muestran cuatro caracteres en secuencia en el uso real, la cantidad de caracteres mostrados se puede ampliar según este principio.

El diseño y la producción se utilizan principalmente para paneles publicitarios escolares, tales como: información diversa sobre evaluaciones de pregrado, avisos importantes de escuelas y universidades, pronósticos meteorológicos y otra información.

Diseño del sistema

Circuito de hardware

(1) Composición del sistema:

Circuito de hardware principal: la pantalla de barra de matriz de puntos LED consta de 16 Consta de bloques de matriz de puntos LED de 8*8, que forman una matriz de puntos rectangular de 16*64, con AT89S51 como núcleo de control. El otro hardware principal de la pantalla de visualización es:

① Registro de desplazamiento de 8 bits 74HC595, la salida del pestillo se utiliza como entrada del controlador de línea de columna del LED

② Los cuatro; -seis decodificadores 74LS154 se utilizan como selección de decodificación LED de líneas de fila (teniendo en cuenta el costo en la producción real, cambiado a una combinación de dos 74HC138

③Transistor 9012, conectados a los 16 terminales de salida de); El decodificador 46, utilizado para controlar el interruptor de líneas de fila de LED.

Figura 2 Sistema mínimo del microcontrolador at89s 51

Los pines de los dispositivos relacionados con AT89S51 son los siguientes: PA0-PA3 están conectados a los puertos de entrada A, B, C y D del 4-16 decodificador; PB0 -PB3 está conectado al puerto de entrada S1, SCK y RCK; PD6-PD7 utiliza el terminal de 16 salidas compuesto por dos 38 decodificadores 74LS138 conectados a RXD y TXD para conectar la base B del transistor 16. 9012, y el emisor E está conectado a una fuente de alimentación de 5 V, el colector C está conectado al terminal de control de 16 líneas de la matriz de puntos de tres caracteres chinos. El controlador de línea de datos de 48 columnas de la matriz de puntos se compone de 6 74HC595 en cascada. El pin Q'H de la pieza anterior de 74HC595 está conectado al pin SI de la siguiente pieza, y los pines SCK, RCK, SRCLR y G de cada pieza están conectados en paralelo.

(2)Bloque de celosía LED

Figura 3 Bloque de celosía LED

La celosía de 8*8 LED es una línea de un solo color * * * módulo madre, de un solo color tensión de funcionamiento puntual directa (Vf) = 1,8 v, corriente directa (IF) = 8-10 mA. Cuando el dispositivo está iluminado estáticamente (64:00), la corriente total, el voltaje total y la potencia total son 640 mA, 1,8 V y 1,15 W respectivamente. Dependiendo de la frecuencia de escaneo (1/8 o 1/16 segundos), la corriente instantánea en un solo punto puede alcanzar 80-160 mA. Tiempo estático de rejilla 16*16 16*16*100 mA, corriente de punto único de tiempo dinámico 80-160 mA.

Prueba real: La corriente de toda la máquina es de 700 mA.

(2) Registro de desplazamiento 74HC595

Figura 4 Diagrama lógico interno del 74hc 595

74HC595 es un registro de desplazamiento de 8 bits con salida de pestillo. como se muestra en la figura siguiente, donde SI es el terminal de entrada de los datos en serie VCC y GND son la fuente de alimentación y tierra respectivamente, RCK es el reloj de entrada del registro de almacenamiento, SCK es el reloj de entrada del registro de desplazamiento; SCLR es la entrada del registro de desplazamiento. Clear, Q'H es la salida de datos en serie, G es la salida de datos de entrada de control de habilitación, QA~QH son la salida en paralelo de datos en serie. La entrada de datos desde el puerto SI se ingresa al 74HC595 en el flanco ascendente del pin SCK del registro de desplazamiento, y los datos de entrada se bloquean en el 74HC595 en el flanco ascendente del pin RCK. Cuando G es de nivel bajo, los datos se emiten en paralelo. SCLR es el terminal de borrado de entrada del registro de desplazamiento.

(3) 74HC138 y circuito conductor.

Figura 5 Esquema físico del 74HC138 y circuito controlador.

Decodificador de 4-16 líneas (compuesto por dos 74HC138), sus pines son como se muestra en la figura, A, B, C, D son los terminales de entrada de decodificación, el rango de valores es 0000-111, Y 65438.

El transistor de conducción es 16 9012, placa universal para soldar.

En segundo lugar, diseño de software

Diseño del programa MCU En el sistema de visualización de caracteres chinos de matriz de puntos LED, el microcontrolador es el principal responsable de recibir, almacenar y escanear la pantalla de matriz de puntos LED. Diseño de subrutina para movimiento en serie. Esta es una subrutina general que debe llamarse en la subrutina de visualización. Su función es que el registro de desplazamiento 74HC595 reciba los datos de la fila de la matriz de puntos enviados desde el microcontrolador y luego bloquee la salida bit a bit. Al mismo tiempo, cambia el decodificador 46 para controlar la visualización de la pantalla.

Parte del programa: Programa de inicialización:

# include ltAT892051. H gt

#Definir carácter sin signo uchar

#Definir entero sin signo uint

#Definir velocidad 3

Pase Uchar, disro;

palabra uint

código uchar HZ[];

uchar BUFF[6];

void loadoneline( void);

void sendoneline(void);

Enviar algunos programas:

void sendoneline(void)

{

char s ;uchar empresa;

if(col lt;8)Inc = 0;else Inc = 1;

for(s = 4 Inc;s gt= 0 Inc;s -)

{

SBUF=two_onebyte(BUFF[s],BUFF[s 1]);

Y (!TI); TI = 0;

p>

}

}

La tercera depuración

La depuración se divide principalmente en depuración de hardware y depuración de software:

p >

Depuración de hardware: al soldar placas de circuito, comience desde el sistema mínimo más básico y realice pruebas de soldadura una por una en los módulos. Al probar cada módulo de hardware, debemos asegurarnos de que el software sea correcto para probar el hardware; de ​​lo contrario, cuando ocurra un error, no sabremos qué lado está mal. Por supuesto, también existen errores y deficiencias en el proceso de diseño.

Depuración de software: la parte de software comienza con los ejemplos del libro de referencia y luego escribo el programa basado en el circuito de hardware. Como aprendí el lenguaje C antes, este sistema se escribió en lenguaje C durante el proceso de programación. Cuando comencé a escribir, no pude pasarlo ni una vez. Después de un cuidadoso análisis y modificación, la compilación fue exitosa. Pero en escritura real, como S51, aparecen varios caracteres confusos en la pantalla LED. Después de un análisis cuidadoso y modificaciones repetidas al programa, el programa puede ejecutarse normalmente.

Cuatro resumen

Durante el proceso de diseño de la pantalla de visualización de caracteres chinos de matriz de puntos LED, aprendí mucho y básicamente entendí todo el proceso de desarrollo integrado. Por ejemplo, antes del diseño general, primero debe seleccionar un microcontrolador según el análisis de la demanda y luego probar cada módulo de hardware. Al dibujar una placa de circuito PCB, preste atención a los principios básicos de diseño. Por ejemplo, al realizar el diseño de la PCB, el condensador del filtro no está lo suficientemente cerca de las clavijas de alimentación y de las clavijas del chip. Cuando se configuran los bloques de la matriz piloto, los bloques de la red se dañan debido al alto voltaje. Esta primera vez en el diseño y producción electrónicos me ha beneficiado mucho y definitivamente aprenderé de ello en el futuro.

Materiales de referencia:

[1] He Limin. Aplicaciones de microcontrolador seleccionadas [M]. Beijing: Prensa de la Universidad de Beihang.

Du Chunlei. Cómo utilizar Visual Basic 6.0 DP3 ~ [M]. Beijing: Machinery Industry Press, 1999.

[3]Sun Yucai. Nuevo microcontrolador de la serie AT89S51 y sus aplicaciones [M] Beijing: Tsinghua University Press. 2005.

Resumen de la experiencia:

1. Agregar la declaración "#pragma SRC (LED.ASM)" al archivo de encabezado puede generar un archivo ensamblador, lo cual es muy importante para la comprensión.

Los programas en lenguaje ensamblador tienen grandes beneficios.

2. Durante el proceso de producción de placas PCB, es difícil hacer placas de doble cara en su tiempo libre. Cuando no lo esté haciendo, considere cómo distribuirlas.

Los hilos pueden hacer lo mejor.

3. En ""; se instala el software Keil C51 y se muestra el software.

Puedes obtener una compilación ilimitada de programas instalándolo. Porque en el proceso de escribir el programa, descubrí que solo KEIL C51 tiene.

Puede compilar código de programa de 2K, lo cual no es suficiente. Escrito en C, parece fácil de entender. En el proceso de programación, es mejor

consultar primero los programas de otras personas, luego modificar los requisitos de su propio programa para ver si se pueden aplicar y luego escribirlo usted mismo.

Todos sus programas propios.

4. El software de simulación de microcontrolador PROTEUS también es muy bueno. En él se pueden simular muchas cosas.

Imagínese:

Se puede colgar 1 en la intersección de la escuela para proporcionar fecha, hora, temperatura, humedad y otra información meteorológica para servir a la mayoría de los estudiantes.

2. Se puede conectar a una computadora para lograr una visualización sincrónica. Haz un sistema completo.

Estudiar más a fondo el siguiente software o lenguaje (conocimiento):

Valor biológico

protel 99 se

keil c51

Proteus; personas cambiantes (cosas); Plutis (dios griego del mar)

c/c

Simple isp 51

Easy 51Pro .exe

2007-5-25

El siguiente es el programa que todavía muestra las palabras "Universidad Agrícola y Forestal":

# include ltreg 51. h gt ;

p>

#Definir carácter sin signo uchar

#Definir entero sin signo uint

Uchar Disro;

código uchar HZ[ ];

uchar BUFF[9];

void loadonelineandsend(void);

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

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

Director general no válido (no válido)

{

while(1)

{

for(disrow = 0; disrow lt16; disrow )

{

loadonelineandsend();

p 1 = 0x 10 disrow;

p 1 = 0x 20 disrow;

}

}

}

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

void loadonelineandsend(void)

{

uchar s;

int q

q = 0; >

for(s = 0; s lt4; s )

{

BUFF[q]= HZ[32 * s disrow * 2];

BUFF[q 1]= HZ[ 32 * s disrow * 2 1];

SBUF = 255-BUFF[q 1];

Y (!TI); = 0;

SBUF = 255-BUFF[q];

Y (! TI); TI = 0;

}

}

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

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *, Agricultura y Silvicultura Universidad

código uchar HZ[]=

{

0x01, 0x00, 0x01, 0x00, 0x7F, 0xFE, 0x41, 0x02, 0x81, 0x04, 0x02 , 0x00, 0x02, 0x08, 0x05, 0x18,

0x09, 0x20, 0x18, 0xC0, 0x28, 0x80, 0x48, 0x40, 0x88, 0x30, 0x0A, 0x0E, 0x0C,

0x04, 0x08, 0x00,

0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x24, 0xFE, 0xFE, 0x08, 0x20, 0x18, 0x60, 0x1C, 0x70,

0x2a, 0xa8, 0x28, 0xae, 0x49, 0x24, 0x8a, 0x20, 0x08, 0x20, 0x08, 0x20, 0x08, 0x20, 0x20, 0x08, 0x 20, 0x 08, 0x 20,

0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80,

0x02, 0x80, 0x02, 0x40, 0x04, 0x40 , 0x04, 0x20, 0x08, 0x10, 0x10, 0x0E, 0x60, 0x04, 0x00, 0x00,

0x22, 0x08, 0x11, 0x08, 0x11, 0x10, 0x00, 0x20, 0x7F, xFE, 0x40, 0x02,0x80,0x04,0x1F,0xE0,

0x00,0x40,0x01,0x84,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,

};