51個のシングルチップフライングに基づいた矢印突起シミュレーション設計

目次

1. LEDドットマトリクススクリーンの導入

2. 表示原理

3. シミュレーションデモンストレーション

4. ソースプログラム


1. LEDドットマトリクススクリーンの導入

LED ドットマトリックス スクリーンは、強い発光輝度と優れた表示効果を備えており、動く発光グラフィックスやテキストを表示することができ、人々の注意を引き付けやすくなっています。情報量が多く、いつでも更新できます。非常に優れています。広告と通知の効果。LEDドットマトリックススクリーンのダイナミックスキャン表示について簡単に紹介します。1. LED ドットマトリックス画面表示の原理は、8x8 LED ドットマトリックス単色行共通アノード モジュールの内部等価回路図として要約されており、赤色 LED の場合、その動作順電圧は約 1.8 V、その連続動作順電流は一般に約10ミリアンペアの場合、ピーク電流はさらに大きくなる可能性があります。下図のように、ある行の線が高く、ある列の線が低い場合、その行と列が交差する点が点灯し、ある行の線が低い場合は、列の線に関係なく、すべての点が点灯します。暗い場合は、対応する行の が点灯します。LED ドットマトリックス画面表示は一定の周波数で徐々に走査し、データ端子は表示用のデータを連続的に入力します。LED ドットマトリックス スクリーンは、自動車駅のアナウンサー、広告スクリーン、掲示板などのさまざまな公共の場所で広く使用されており、色別: 単色、二色、フルカラー、画素別: 8*8、16 に分類されます。 ※16など(通常、大型LEDドットマトリクスは多数の小さなドットマトリクスでつなぎ合わされています)。

2. 表示原理

  • LED ドットマトリックス スクリーンの構造はデジタル チューブと似ていますが、デジタル チューブでは各列のピクセルが「8」の字型に配置されています。
  • LED ドットマトリックス スクリーンはデジタル管と同じで、カソード共通とアノード共通の 2 つの接続方法があり、異なる接続方法は異なる回路構造に対応します。
  • すべての LED を同時に表示できるように、LED ドットマトリックス スクリーンを行ごとまたは列ごとにスキャンする必要があります。

3. シミュレーションデモンストレーション

16×16個のLEDドットマトリクスにより、15コマの映像を円形にダイナミックに表示し、矢が飛び交うダイナミックな表示を実現します。

 4. ソースプログラム

#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帧画面播放完,重新开始播放
			}
		}
	}
}

 51 マイクロコントローラー Baidu ネットワーク ディスク リンクに基づく飛行矢シミュレーション ソース ファイルとソース プログラム: リンク: https://pan.baidu.com/s/1rIWxLJG-ELPN_njIYVJKDA 抽出コード: j3kf 
 

おすすめ

転載: blog.csdn.net/weixin_53402301/article/details/129449174