#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char flag;
unsigned char s1[]="ABCDEFG HIJKLMN OPQRST UVWXYZ",i;
unsigned char slen=sizeof(s1);
void delay(uint x)
{
while(x--);
}
void main()
{
TMOD=0x20; //設置T1為工作方式2
TH1=0xfd; //裝入初值,比特率為9600bps
TL1=0xfd;
TR1=1; //開啟T1
REN=1; //接收允許
SM0=0; //方式1
SM1=1;
EA=1; //開全局中斷
ES=1; //開串口中斷
flag=0;
while(1)
{
if(flag==1)
{
ES=0;
flag=0;
for(i=0;i<slen;i++)//若接收到,則發送相關字符串
{
SBUF=s1[i];
while(!TI);
TI=0;
}
ES=1; //串口中斷允許
}
}
}
void ser() interrupt 4
{
RI=0; //清除標誌
P2=~P2; //LED閃爍
//P0=SBUF;
flag=1; //發送標誌
}
這只是壹個簡單的串口發送字符串程序,通過串口助手發送任意數據,單片機接收到數據後即返回事先定義的字符串內容