51單片機串口的使用有兩種方法,一個是查詢法,還有就是中斷法,查詢法相對簡單就是不斷查詢是否有數據,而中斷就是利用串口中斷interrupt 4,這里給出中斷法,大家參考!
#include
unsigned char a,flag;
void main()
{
TMOD=0X20;//設置定時器1為方式2
TH1=0XFD;// 裝入初值(由軟件計算一下)
TL1=0XFD;
TR1=1;//啟動定時器1
SM0=0;//設置為方式1
SM1=1;
REN=1;//允許接受
EA=1;//打開總中斷開關
ES=1;//打開串口中斷開關
while(1)
{
if(flag==1)
{
flag=0;//將標志位置0
SBUF=a;
while (TI==0);
TI=0;
ES=1;//發送數據時關閉串口中斷
}
}
}
void serial()interrupt 4 //串口中斷用于接收數據
{
RI=0; //軟件使RI置0
P1=SBUF;//數據送入緩沖區(SBUF)哪個口需要哪個口在這里取數據
a=SBUF;//將緩沖區的數據保存到a中以便以后使用
flag=1;//標志位
ES=0;//發送數據時關閉串口中斷
}