#include#define uint unsigned int#define uchar unsigned char void init(){TMOD=0x20;//定時(shí)器1方式2作為波特率發(fā)生器TH1=0XF3; //裝初值 波特率為4800bps的初值TL1=0XF3;TR1=1; //啟動(dòng)定時(shí)器1SCON=0X50; //設(shè)置串口工作方式為方式1PCON=0X80; //加倍波特率后為4800TI=0;//清發(fā)送中斷標(biāo)志位RI=0;//清接收中斷標(biāo)志位}void main(){ uchar temp;init();while(1){ for(;RI==0;); //或者while(!RI);RI為0數(shù)據(jù)沒接收完,一直循環(huán)等待RI=0;temp=SBUF;//CPU讀入數(shù)據(jù),并非SUBF接收數(shù)據(jù),接收數(shù)據(jù)由接收SBUF接收緩存器自動(dòng)執(zhí)行P0=temp;SBUF=temp;//CPU發(fā)送數(shù)據(jù)給發(fā)送SBUF,發(fā)送緩存器SBUF處理并負(fù)則向外發(fā)送while(TI==0); // 或者while(!TI) TI為0數(shù)據(jù)沒發(fā)送完,一直循環(huán)等待TI=0;}}
評論