#include <reg51.h> void Init(); void Send(unsigned char* pstr,unsigned int len); void main(){ Init(); while(1){ } } void Init(){ SCON=0x50; //设置为工作方式1 TMOD=0x20; //设置计数器工作方式2 PCON=0x80; //波特率加倍 TH1=0xf3; //计数器初始值设置,注意波特率是4800的 TL1=0xf3; ES=1; //打开接收中断 EA=1; //打开总中断 TR1=1; //打开计数器 } void Send(unsigned char* pstr,unsigned int len){ for(;len>0;len--){ SBUF = *(pstr++); //将要发送的数据放入到发送寄存器 while(!TI); //等待发送数据完成,发送前、中 TI = 0,发送完毕后 TI = 1 TI = 0; //清除发送完成标志位 } } void Receive() interrupt 4 { if(RI){ unsigned char data = SBUF; RI = 0; //清除接收中断标志位,接收完毕 RI = 1 } }