51單片機(jī)串口通信測(cè)試程序
unsigned char flag,a;
void delay();
void main()
{
TMOD=0x20;//設(shè)置定時(shí)器1為工作方式2
TH1=0xfa; //TH1=256-2^0*22118400/32/12/9600 波特率為9600,晶振為22.1184Mhz
TL1=0xfa;
TR1=1; //定時(shí)器1打開(kāi)
REN=1; //允許串行接收位。由軟件置REN=1,則啟動(dòng)串行口接收數(shù)據(jù)
SM0=0; //選擇串行口工作方式1
SM1=1;
EA=1; //開(kāi)總中斷
ES=1; //開(kāi)串口中斷
while(1)
{
if(flag==1)
{
ES=0;
flag=0;
while(!TI);
TI=0;
ES=1;
}
}
}
void ser() interrupt 4
{
RI=0;
a=SBUF; //計(jì)算機(jī)向51發(fā)送數(shù)據(jù)
flag=1;
}
評(píng)論