Flèche protue la conception de simulation basée sur 51 vols à puce unique

Table des matières

1. Introduction de l'écran à matrice de points LED

2. Principe d'affichage

3. Démonstration de simulation

4. Programme source


1. Introduction de l'écran à matrice de points LED

L'écran à matrice de points LED a une forte luminosité lumineuse et un bon effet d'indication.Il peut créer des graphiques et des textes lumineux en mouvement, ce qui attire plus facilement l'attention des gens.Il contient une grande quantité d'informations et peut être mis à jour à tout moment.Il a de très bons publicité et effets d'annonce. Voici une brève introduction à l'affichage à balayage dynamique de l'écran à matrice de points LED. 1. Le principe de l'affichage de l'écran à matrice de points LED est résumé par un schéma de circuit équivalent interne d'un module d'anode commune à rangée monochromatique à matrice de points LED 8x8. Pour les LED rouges, sa tension directe de travail est d'environ 1,8 V et son courant direct de travail continu Généralement environ 10ma, le courant de crête peut être plus grand. Comme le montre la figure ci-dessous, lorsqu'une certaine ligne de ligne est haute et qu'une certaine ligne de colonne est basse, le point d'intersection de la ligne et de la colonne s'allume. Lorsqu'une certaine ligne de ligne est basse, quelle que soit la ligne de colonne, tous les points dans la rangée correspondante s'allume pour s'assombrir. L'affichage de l'écran à matrice de points LED doit balayer progressivement à travers une certaine fréquence, et le terminal de données entre en continu des données pour l'affichage. Les écrans matriciels à LED sont largement utilisés dans divers lieux publics, tels que les annonceurs de stations de voiture, les écrans publicitaires et les tableaux d'affichage.Les écrans matriciels à LED sont classés par couleur : simple couleur, double couleur, couleur complète, par pixel : 8*8, 16 *16 etc. (La matrice de points LED à grande échelle est généralement épissée par de nombreuses petites matrices de points).

2. Principe d'affichage

  • La structure de l'écran à matrice de points LED est similaire à celle du tube numérique, sauf que le tube numérique organise les pixels de chaque colonne en forme de "8".
  • L'écran à matrice de points LED est le même que le tube numérique, il existe deux méthodes de connexion de cathode commune et d'anode commune, et différentes méthodes de connexion correspondent à différentes structures de circuit.
  • L'écran à matrice de points LED doit être scanné ligne par ligne ou colonne par ligne, afin que toutes les LED puissent être affichées en même temps.

3. Démonstration de simulation

Grâce à la matrice de points LED 16*16, 15 images d'images sont affichées dynamiquement de manière circulaire et l'affichage dynamique de la flèche qui survole est réalisé.

 4. Programme source

#include "reg52.h"

#define MATRIX_Column_Front		P0
#define MATRIX_Column_Back		P1
#define MATRIX_Data_Front		P2
#define MATRIX_Data_Back		P3

unsigned char i = 0;
unsigned char count = 0;
unsigned char offset = 0;

//点阵显示画面,共有15帧
unsigned int code MatrixLED[] = {
0xfffe,0xfffe,0xfffe,0xfffe,0xfffe,0xfffe,0xfffe,0xfffe,
0xfffc,0xfffc,0xfffc,0xfffc,0xfffc,0xfffc,0xfffc,0xfffc,
0xfff8,0xfff8,0xfff8,0xfff8,0xfff8,0xfff8,0xfff8,0xfff8,
0xfff0,0xfff0,0xfff0,0xfff0,0xfff0,0xfff0,0xfff0,0xfff0,
0xffe0,0xffe0,0xffe0,0xffe0,0xffe0,0xffe0,0xffe0,0xffe0,
0xffc8,0xffc0,0xffc0,0xffc1,0xffc0,0xffc0,0xffc8,0xffc0,
0xffb8,0xff90,0xff80,0xff81,0xff83,0xff81,0xff80,0xffb8,
0xfffb,0xff71,0xff20,0xff01,0xff03,0xff07,0xff03,0xff01,
0xfbff,0x71ff,0x20ff,0x01ff,0x03ff,0x07ff,0x03ff,0x01ff,
0xf7ff,0xe3ff,0x41ff,0x03ff,0x07ff,0x0fff,0x07ff,0xf7ff,
0xefff,0xc7ff,0x83ff,0x07ff,0x0fff,0x1fff,0xefff,0xc7ff,
0xdfff,0x8fff,0x07ff,0x0fff,0x1fff,0xdfff,0x8fff,0x07ff,
0xbfff,0x1fff,0x0fff,0x1fff,0xbfff,0x1fff,0x0fff,0x1fff,
0x7fff,0x3fff,0x1fff,0x7fff,0x3fff,0x1fff,0x7fff,0x3fff,
0x7fff,0x7fff,0x7fff,0x7fff,0x7fff,0x7fff,0x7fff,0x7fff
};

//每帧画面LED组成位置序号
unsigned int code MatrixORD[] = {
0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,0x0001,
0x0001,0x0002,0x0001,0x0002,0x0001,0x0002,0x0001,0x0002,
0x0001,0x0002,0x0004,0x0001,0x0002,0x0004,0x0001,0x0002,
0x0001,0x0002,0x0004,0x0008,0x0001,0x0002,0x0004,0x0008,
0x0001,0x0002,0x0004,0x0008,0x0010,0x0002,0x0004,0x0008,
0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0001,0x0002,
0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0001,
0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080,
0x0100,0x0200,0x0400,0x0800,0x1000,0x2000,0x4000,0x8000,
0x0200,0x0400,0x0800,0x1000,0x2000,0x4000,0x8000,0x0200,
0x0400,0x0800,0x1000,0x2000,0x4000,0x8000,0x0400,0x0800,
0x0800,0x1000,0x2000,0x4000,0x8000,0x0800,0x1000,0x2000,
0x1000,0x2000,0x4000,0x8000,0x1000,0x2000,0x4000,0x8000,
0x2000,0x4000,0x8000,0x2000,0x4000,0x8000,0x2000,0x4000, 
0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,0x8000,
};

//毫秒级延时,用于点阵动态显示
void delay_us(unsigned char t)
{
	while(t--);
}

//点阵显示函数
void MatrixLED_ShowColumn(unsigned int Column,unsigned int Data)
{
  MATRIX_Column_Front = (unsigned char)((Column >>8)&0xFF); //高8位:
  MATRIX_Column_Back = Column&0xFF;    //低8位:
	MATRIX_Data_Front = (unsigned char)((Data >>8)&0xFF); //高8位:
  MATRIX_Data_Back = Data&0xFF;    //低8位:
	delay_us(50);
}

void main()
{
	while(1)
	{
		for(i=0;i<8;i++)	//循环8次,显示8列数据
		{
			 MatrixLED_ShowColumn(MatrixORD[i+offset], MatrixLED[i+offset]);
		}
		count++;			//计次延时
		if(count>50)
		{
			count=0;
			offset+=8;		//偏移+8,切换下一帧画面
			if(offset>112)
			{
				offset=0;   //15帧画面播放完,重新开始播放
			}
		}
	}
}

 Fichier source de simulation de flèche volante et programme source basé sur le lien du disque réseau Baidu à 51 microcontrôleurs : Lien : https://pan.baidu.com/s/1rIWxLJG-ELPN_njIYVJKDA Code d'extraction : j3kf 
 

Je suppose que tu aimes

Origine blog.csdn.net/weixin_53402301/article/details/129449174
conseillé
Classement