⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tx1.c

📁 串口通信
💻 C
字号:
#include "reg51.h"

//预定义
#define		 _Rdy_	0x06;
#define		_Busy_  0x15;
#define		_Ok_	0x00;
#define		_Suss_	0x0f;
#define		_Err_	0xf0;
#define		_Max_Len_ 	64;
void int_serial();
void send_data(unsigned char *buf);


//初始化
char buf[_Max_Len_];
unsigned char i=0;
unsigned char tmp=_Busy_;
//缓冲区赋值
P0=0xff;
while(P0!=0)
	{
		*(buf+i)=P0;
		delay10ms(10);
		P0=0xff;
		i++;
	}
*(buf+i)=0;
//串口初始话
int_serial();
EA=0;

//初始化串口
void int_serial()
	{
		TMOD=0x20;//0010 0000
		TH1=0xfa; //1111 1010 
		TL1=0xfa; //1111 1010  ;9.6KBit/s
		TR1=1;
		PCON=0x80;//1000 0000
		SCON=0x50;//0101 0000
	}
//通信;
TI=0;
SBUF=_RDY_;
while(!TI);
TI=0;
//接受应答信息
while(tmp!=_Ok_)
	{
		RI=0;
		while(!RI);
		tmp=SBUF;
		RI=0;
	}
//接受检验信息
tmp=_Err_;
while(temp!=_Succ_)
	{
		send_data(buf);
		RI=0;
		while(!RI)
		temp=SBUF;
		RI=0;
	}
while(1);
//-----------------
void send_data(unsigned char *buf)
	{
		unsigned char len;
		unsigned char ecc;
		len=strlen(buf);
		ecc=len;
		//
		TI=0;
		SBUF=len;
		while(!=TI);
		TI=0;
		for(i=0;i<len;i++)
			{
				ecc=ecc^(*buf);
				SBUF=*buf;
				buf++;
				while(!TI);
				TI=0;
			}
		//
		SBUF=ecc;
		while(!=TI);
		TI=0;
	}
































		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -