|
我輸入1后但是回來的卻是亂碼,原本應(yīng)該是i get 1,對吧!
#include<reg52.h>
#define uchar unsigned char
uchar flag,a,i;
uchar code table[]={'I',' ','g','e','t',' '};
void main()
{
TMOD=0X20; //開定時(shí)器2
TH1=0XFD; //自動八位重裝
TL1=0XFD;
TR1=1; //開啟定時(shí)器
REN=1; //允許串行接收
EA=1; //開總中斷
ES=1; //串行口中斷允許位
SM1=1; //選擇模式1
SM0=0; //選擇模式1
while(1)
{
/*if(RI==1)
RI=0;
P0=SBUF;
*/
if(flag==1) //標(biāo)志位
{
ES=0;
for(i=0;i<6;i++)
{
SBUF=table[i];
while(!TI);
TI=0;
}
flag=0;
SBUF=a; //再將a送給SBUF ??????
while(!TI); //送數(shù)據(jù)。。。。。檢測TI是否為1,串行發(fā)送停止位的中間時(shí) 由內(nèi)部硬件使RI置1,開中斷,后人工置0
TI=0;
ES=1;
}
}
}
void ser() interrupt 4 //進(jìn)入串行中斷
{
RI=0; // 接收時(shí)。。。。。 串行發(fā)送停止位的中間時(shí) 由內(nèi)部硬件使RI置1,開中斷,后人工置0
P1=SBUF; //P1接收SBUF中的數(shù)據(jù)
a=SBUF; //將SBUF送給a
flag=1; //開啟標(biāo)志位
}
|
|