「シングルチップマイクロコンピュータ」実験-実験78255パラレルポート実験

「シングルチップマイクロコンピュータ」実験-実験78255パラレルポート実験

1.実験の目的

(1)タイマーの使用方法とプログラミング方法をさらに習得する
(2)7セグメントデジタル表示番号の原理と応用を習得する

2.実験内容

(1)回路を設計し、8255Aを使用して、発光ダイオードのオンとオフを制御するスイッチを実現します。(パラレルポートはモード0で動作します)
(2)デジタルストップウォッチの設計。ストップウォッチの10と1をそれぞれ表示するには、2つのデジタルチューブが必要です。表示時間は0〜59秒です。60秒が経過すると、ストップウォッチは自動的にクリアされ、0から再び表示を開始します。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

注:
オフチップメモリ​​にデータを書き込むときに使用される形式は次のとおりです。XBYTE[address] = data;
注:
(1)6桁のデジタルチューブはすべて共通のカソードであり、その中でLED1〜LED6は共通の端子です。ビット選択には選択が必要です。低レベルに接続します。LEDA〜LEDGとLED-DPは8セグメントのデジタルチューブです。高レベルに接続すると、各セグメントを点灯させることができます。
(2)使用する場合は、基板上のデジタルチューブ右側のジャンパーを外してください。

#include<reg51.h>
#include<absacc.h>
#define pa8255 0x7cff
#define pb8255 0x7dff
#define pc8255 0x7eff
#define con8255 0x7fff

char led[]={
    
    0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x3f};

int i=0;
int j=0;
int num=0;

void main(){
    
    
	
	XBYTE[con8255]=0x80;

	TMOD=0x01;
	TH0=0x3c;
	TL0=0xb0;
	TR0=1;
	EA=1;
	ET0=1;
	XBYTE[pa8255]=led[9];
	XBYTE[pb8255]=led[9];
	while(1){
    
    
				while(TF0==0);
				TF0=0;
				TH0=0x3c;
				TL0=0xb0;
	}
}

shuma() interrupt 1{
    
    
	
	num++;
	if(num%20==0){
    
    
		XBYTE[pb8255]=led[j%10];
		j++;
		
		if(num%200==0){
    
    
			XBYTE[pa8255]=led[i%10];
			i++;
		}
	}
}

おすすめ

転載: blog.csdn.net/weixin_44652589/article/details/114904729