#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 } }