Utilice 8 × 8 para realizar una pantalla de matriz de puntos de 16 × 16 en Proteus8.6

1. Conocimientos preliminares

En primer lugar, no hay una pantalla de matriz de puntos integrada de 16 × 16 en Proteus8.6. Por lo tanto, necesitamos utilizar la pantalla de matriz de puntos de 8 × 8 existente para lograr

1.1 Cómo detectar usted mismo la información del pin de la pantalla de matriz de puntos de 8 × 8

Llame a una matriz de puntos de 8 × 8, conecte VCC al pin de la matriz de puntos y conecte el pin del otro extremo a GND, ejecute la simulación para ver si la matriz de puntos puede ser brillante, qué puntos son brillantes, si no Cambie VCC y GND cuando la luz esté encendida, de modo que se pueda medir la fila y la columna de la matriz de puntos, el cátodo común o la información del pin del ánodo común.


Si no desea comprobar la información de los pines usted mismo durante la simulación, aquí se proporcionan la información y los iconos de los pines de la pantalla de matriz de puntos de cuatro colores.

1.2 Información de pines de pantallas de matriz de puntos comunes de 8 × 8

Para la pantalla de matriz de puntos rojos, cuando no está rotando: la
  parte superior es la selección de columnas, el nivel alto es válido, la
  parte inferior es la selección de filas, el nivel bajo es válido;

Para otras pantallas de matriz de puntos, sin rotar: la
  parte superior es la selección de filas y el nivel bajo es válido, la
  parte inferior es la selección de columnas y el nivel alto es válido;


Sugerencia: El siguiente es el contenido de este artículo, los siguientes casos son para referencia

Dos, simulación de Proteus y explicación de principios.

2.1 Icono de simulación

2.2 Archivos de origen

Haga clic en mí para obtener la imagen de la simulación .
Código de extracción: 19WL


Tres, escritura de código C

3.1 Obtener la configuración y los enlaces del software de fuentes

Haga clic en mí para obtener el software de módulo .
Código de extracción: el
enlace TTFF proviene de Baidu Netdisk

3.2 Escritura y análisis de código C

el código se muestra a continuación:

#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define out0 P0
#define out1 P1
#define out2 P2

//这里的字模可以用上面的取模软件获得
uchar code string[]=
{
    
    
	//物
	0x10,0x00,0x10,0x02,0x14,0x02,0x7E,0x3F,
	0x91,0x50,0x10,0x58,0x7F,0x6C,0x10,0x76,
	0x10,0x5B,0x10,0x4C,0x10,0x46,0x10,0x70,
	0x10,0x60,0x10,0x00,0x00,0x00,0x00,0x00,
	//联
	0x00,0x00,0x00,0x00,0x7E,0x21,0x24,0x12,
	0x3C,0x0C,0xA4,0x7F,0x3C,0x0C,0x24,0x0C,
	0xA4,0x7F,0x7F,0x0C,0x20,0x1E,0x20,0x33,
	0xA0,0x61,0x00,0x00,0x00,0x00,0x00,0x00,
	//网
	0x00,0x00,0x00,0x00,0xFE,0xFF,0x01,0x80,
	0x01,0x80,0x45,0xA2,0x29,0x94,0x11,0x88,
	0x29,0x94,0x45,0xA2,0x01,0x80,0x01,0xC0,
	0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
	//工
	0xFC,0x3F,0x00,0x01,0x00,0x01,0x00,0x01,
	0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,
	0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,
	0x00,0x01,0x00,0x01,0xFE,0x7F,0x00,0x00,
	//程
	0x00,0x00,0x00,0x00,0x30,0x1F,0x0C,0x11,
	0x0B,0x11,0x08,0x1F,0x08,0x00,0x3F,0x00,
	0x1C,0x1F,0x1A,0x04,0x29,0x1F,0x48,0x04,
	0x08,0x04,0x88,0x3F,0x08,0x00,0x00,0x00
};
//延时函数
void delay(uint j)
{
    
    
	uchar i=250;
	for(;j>0;j--)
	{
    
    
		while(--i);
		i=100;
	}
}
//主函数
void main()
{
    
    
	uchar i, j ,n;
	while(1)
	{
    
    
		for(j=0;j<5;j++)
		//这里控制输出几个字
		{
    
    
			for(n=0;n<40;n++)
			{
    
    
				for(i=0;i<16;i++)
				//逐行来扫描,一共扫描十六行
				{
    
    
					out1=i%16;
					//利用4-16译码器来控制显示哪一行
					out0=string[i*2+j*32];
					out2=string[i*2+1+j*32];
					//该数组中,前后两个十六进制数正好为16位
					//所以,out0不需加一,out2需要加一
					delay(4);
//					out0=0xff;
//					out2=0xff;
				}
			}
		}
	}
}

final

Si hay un error, envíe un mensaje privado para señalarlo.

Supongo que te gusta

Origin blog.csdn.net/Stanford_sun/article/details/115337681
Recomendado
Clasificación