「シングルチップマイクロコンピュータ」実験-実験6MCS-51内部シリアルポート実験

「シングルチップマイクロコンピュータ」実験-実験6MCS-51内部シリアルポート実験

1.実験の目的

1.シリアル通信の特性と分類を理解する
2.シングルチップマイクロコンピュータの内部シリアルポートの3つの動作モードの特性とアプリケーションを
把握する3.デュアルコンピュータ通信のプログラミングとシンプレックス伝送の特性を把握する
4 。全二重通信の特性を理解する
5.マスタースレーブマルチマシン通信の作業プロセスを理解し、シリアルポートの作業方法2および3の特性を習得する

2、知識のポイント

(1)8051内には、データをシリアルで同時に送受信できるプログラム可能な全二重シリアルインターフェイスがあります。シリアルポートには4つの動作モードがありますが、シリアル非同期通信を実現できるのはモード1、2、および3のみです。違いボーレートとデータフレーム形式にあります。
(2)シリアルポートに関連する制御ワードには、主にSCONとPCONが含まれます。
(3)シリアルポートの動作モード2と3は、マスタースレーブマルチマシン通信、つまり1つのマスター、複数のスレーブを実現でき、スレーブはマスターの送信制御を受け入れます。

3.実験内容

(1)8051内部シリアルポートを使用して自発的な送受信のデータ通信を実現し、ボーレートとフレームフォーマットは自己決定し、送信データはLEDのオンとオフを制御するために必要です。

#include<reg51.h>
void main(){
    
    
	int led[]={
    
    1,2,4,8,16,32,64,128};
	int i,j;

	TMOD=0X20;
	TH1=0XF8;
	TL1=0XF8;
	TR1=1;
	SCON=0X50;
	PCON=0;
	
	while(1){
    
    
		for(i=0;i<8;i++){
    
    
			RI=0;
			SBUF=~led[i];
			while(TI==0);
			TI=0;
			while(RI==0);
			P1=SBUF;
			for(j=0;j<20000;j++);
		}
	}
}

(2)8051内部シリアルポートを使用して、デュアルコンピュータ通信、ボーレートおよびフレームフォーマットの自己決定を実現します。送信側は照会制御方式を採用し、受信側は割り込み制御方式を採用しています。

a。送信終了:

#include<reg51.h>
void delay(){
    
    
	int j;
	for(j=0;j<20000;j++);
}

void main(){
    
    
	int led[]={
    
    1,4,16,64,2,8,32,128};
	TMOD=0x20;
	TH1=0xf8;
	TL1=0xf8;
	SCON=0X50;
	PCON=0;
	TR1=1;
	while(1){
    
    
		int i;
		for(i=0;i<8;i++){
    
    
			SBUF=~led[i];
			while(TI==0);
			TI=0;
			delay();
		}
	}
}

b。受信終了:

#include<reg51.h>

void delay(){
    
    
	unsigned int j;
	for(j=0;j<20000;j++);
	
}

void main(){
    
    
	TMOD=0x20;
	TH1=TL1=0xf8;
	SCON=0X50;
	PCON=0X00;
	TR1=1;
	EA=1;
	ES=1;
	while(1){
    
    
			while(RI==0);
			delay();
	}
}

void ppp() interrupt 4{
    
    	
	P1=SBUF;
	RI=0;
	
}

上記の2つの質問の回路図は同じです
ここに画像の説明を挿入します

おすすめ

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