C 言語コース デザイン プロジェクト-51 シングル チップ マイコン-デジタル チューブ

  (作成は簡単ではありません、ありがとうございます、あなたのサポートは私が前進するための最大の動機です。それを読んで役に立ったら、足跡を残してください)

目次

静的ニキシー管

1.デジタルチューブはどのように文字を表示しますか

ディスプレイとそのインターフェース

コモンカソードデジタル管コード表 

開発ボードデジタル管回路図  

2.デジタルチューブスタティックディスプレイの原理

3. 74HC573 チップの使用

4. プログラムを書く 

ダイナミック デジタル チューブ

1.デジタルチューブダイナミックディスプレイの原理

2. チップの使用

74HC245チップ

74HC138 チップ 

3. 動的なデジタル チューブ プログラムを作成する


静的ニキシー管

1.デジタルチューブはどのように文字を表示しますか

ディスプレイとそのインターフェース

シングルチップ マイコン システムで一般的に使用されるディスプレイには、発光ダイオード (Light Emitting Diode) ディスプレイ、液晶 LCD (Liquid Crystal Display) ディスプレイ、TFT 液晶ディスプレイなどがあります。

LEDディスプレイには、セグメント表示(7セグメント、ライスフォントなど)とドットマトリックス表示(5×8、8×8ドットマトリックスなど)の2つの表示構造があります。    

LED デジタル管は、LED の異なる接続方法に応じて、共通カソードと共通アノードの 2 つのタイプに分けることができます。

上の写真 (a) はデジタル管、(b) は 2 つの接続方法です。左はコモン カソード接続、右はコモン アノード接続、開発ボードはコモン カソード接続を使用します。

コモンカソードデジタル管コード表 

LED ディスプレイを使用する場合は、これら 2 つの異なる接続方法を区別するように注意してください。数字または文字を表示するには、数字または文字をエンコードする必要があります。7 セグメント デジタル チューブと小数点、合計 8 セグメント。そのため、LED ディスプレイに提供されるエンコーディングは正確に 1 バイトです。我々の実験ボードはコモンカソードのLEDディスプレイを使用しており、回路接続図によると、16進数のエンコードは下の表のとおりです。

例として 0 を使用できます. 下の図に示すように、デジタル管が 0 を表示する場合: g と dp を除いて、残りは点灯する必要があります. コモンカソード接続のバイナリ表現は 11111100 であり、それはに変換されます16 進数. 0x3f _

                                            

開発ボードデジタル管回路図  

2.デジタルチューブスタティックディスプレイの原理

LED 表示には、静的表示モードと動的表示モードの 2 つの動作モードがあります。

静的表示の特徴は、表示されたフォント コードを保持するために、各ニキシー管のセグメント選択を 8 ビット データ ラインに接続する必要があることです。一度フォントコードを送信すると、新しいフォントコードが送信されるまで、表示されているフォントを保持することができます。この方法の利点は、CPU 時間が少なくて済むことと、表示の監視と制御が容易なことです。欠点は、ハードウェア回路がより複雑になり、コストが高くなることです。

  

3. 74HC573 チップの使用

1. OEはイネーブル端子で、ローレベルのときラッチが働き始めます

2. VCC と GND は電源とグランド

3. LE はラッチ端子です. LE がハイ レベルの場合、Q0~Q7 は D0~D7 と同じ状態になります. LE がロー レベルの場合、Q0~Q7 はすべてラッチ データです, D0~D7 がどのように変化しても、Q0 ~Q7 はすべてラッチ前の状態を維持します。

4. プログラムを書く 

8ビットデジタルチューブの最後の表示を0にする

//让8位一体的数码管最后一个显示为0
#include"reg51.h"
typedef unsigned char u8;
typedef unsigned int u16;

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

u8 code smgduan[]={0x3f,0x05,0x5b,0x4f,0x66,0x6d,
					0x7d,0x07,0x7f,0x6f,0x77,
					0x7c,0x39 , 0x5e , 0x79 , 0x71};
void main()
{	
	//选择最后一个数码管显示  
	LSA=0;
	LSB=0;
	LSC=0;
	P0=smgduan[0]; //  输入字码,使其显示为0
 	while(1);  //通过循环实现按键控制LED
}

ダイナミック デジタル チューブ

1.デジタルチューブダイナミックディスプレイの原理

ダイナミック表示の特徴は、すべてのデジタル管のセグメント選択線が並列に接続され、デジタル管のどのビットが有効かをビット選択線で制御することです。選択されたデジタル チューブは、ダイナミック スキャン表示を採用しています。いわゆるダイナミック スキャン ディスプレイは、フォント コードと対応する位置の選択を各ニキシー管に順番に迅速に送信し、発光管の残光と人間の目の残光を利用して、あたかも各ニキシー管が表示されているかのように感じさせます。同時に。動的表示の輝度は静的表示よりも悪いため、電流制限抵抗を選択するときは、静的表示回路の輝度よりもわずかに小さくする必要があります。

2. チップの使用

74HC245チップ

これは、主に大画面ディスプレイやその他の家電製品で駆動力を高めるために使用される、3状態出力の8チャンネル信号トランシーバーです。

CMOSテクノロジーの使用

広い電圧動作範囲: 3.0V-5.0V

双方向スリーステート出力

8線式双方向トランシーバー

パッケージ形態:SOP20、SOP20-2、TSSOP20、DIP20

ディスプレイやその他のデジタル回路のドライバー

74HC138 チップ 

これは、主に家電製品で使用される 3 チャンネル入力、8 チャンネル出力のデコーダーです。

CMOSテクノロジーの使用

低消費電力

動作電圧: 3.0V-5.0V

梱包形態:SOP16

デジタル回路の3-8デコード機能に最適

3. 動的なデジタル チューブ プログラムを作成する

//实现数码管的动态显示
#include"reg51.h"
typedef unsigned char u8;
typedef unsigned int u16;

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

u8 code smgduan[]={0x3f,0x05,0x5b,0x4f,0x66,0x6d,
					0x7d,0x07,0x7f,0x6f,0x77,
					0x7c,0x39 , 0x5e , 0x79 , 0x71};

void delay(u16 i)
{
 	while(i--);
}


void DigDisplay()
{
 	u8 i;
	for(i=0;i<8;i++)
	{
	 	switch(i)
		{
		 	case 0:	 //点亮第一个
				LSA=0;
				LSB=0;
				LSC=0;
				break;
			case 1:	 //点亮第二个
				LSA=1;
				LSB=0;
				LSC=0;
				break;
			case 2:
				LSA=0;
				LSB=1;
				LSC=0;
				break;
			case 3:
				LSA=1;
				LSB=1;
				LSC=0;
				break;
			case 4:
				LSA=0;
				LSB=0;
				LSC=1;
				break;
			case 5:
				LSA=1;
				LSB=0;
				LSC=1;
				break;
			case 6:
				LSA=0;
				LSB=1;
				LSC=1;
				break;
			case 7:
				LSA=1;
				LSB=1;
				LSC=1;
				break;
		}
		P0=	smgduan[i];//点亮后显示相应的字码
		delay(100);//短暂延迟,实现动态效果
		P0=0x00;  //对P0口清零,防止重影
	}
}

void main()
{	

	P0=~smgduan[0]; //  输入字码,使其显示为0
 	while(1)  //通过循环实现按键控制LED
	{
	 	DigDisplay();
	}
}

おすすめ

転載: blog.csdn.net/weixin_73295475/article/details/130024902