シリアル - 送信シーケンス番号に値を追加

、送信された受信バイト数のいずれかとMCUプラスシリアル番号は255の最大値を含む後に送り返さ

コード

#include"reg51.h"
typedef unsigned int u16;
typedef unsigned char u8;
u16 a;
u16 i=0;


void usart_init()    //串口初始化函数
{
	SCON=0x50;       //scon寄存器 sm1=1 REN=1
	EA=1;            //中断总允许位
	ES=1;            //串口中断允许位
	TMOD=0x20;       //TMOD寄存器  定时器T1 方式2
	TH1=TL1=0XF4;    //波特率为2400
	TR1=1;           //开启定时器
}

void main()      
{
	usart_init();
	while(1);
}

void usart() interrupt 4   //中断服务函数
{
	
	RI=0;
	a=SBUF;
	if(i<256)
	{
		SBUF=i;
		while(!TI);
		TI=0;
		i++;
		if(i==255)i=0;		
	}
	SBUF=a;
	while(!TI);
	TI=0;
}

シミュレーション図

ここに画像を挿入説明

シリアルアシスタント

ここに画像を挿入説明

コンポーネント名

COMPIM

AT89C51(AT89C52)

公開された11元の記事 ウォンの賞賛3 ビュー274

おすすめ

転載: blog.csdn.net/weixin_44871327/article/details/104647655