C语言进行串口设置的代码如下
void init(void)
{
TMOD|=0x20;
SCON=0x50;
PCON|=0x80;
TH1=0xfa;
TL1=0xfa;
TR1=1;
ET1=1;
}
C语言收发串口数据的代码如下
void uart(void) interrupt 4
{
char i;
if(RI)
{
RI=0;
i=SBUF;
}
if(TI)
{
TI=0;
SBUF=i;
}
}
- 主机发送程序
include
define uchar unsigned char //定义数据类型 void init(); //定义子程序 void send();
ucharTAB[16]
={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,
0x71}; //定义数码表 uchar i,sum; //定义变量 int j;
void send(void) //发送子程序 {do
{ SBUF=0xaa; //主机送AAH给从机
发送结束 while(!TI); //等待一帧
TI=0; //发送完后清零
while(!RI); //等待一帧接收结束
RI=0; //接收完后清零
}
while((SBUF^0xbb)!=0); //等待从机回答,返回BBH后继续
do
{ sum=0; //清校验和
for(i=0;i<=15;i++)
{ SBUF=TAB[i]; //主机发送数据
sum+=TAB[i]; //求检验和
while(!TI);
TI=0;
}
SBUF=sum; //发送校验和
while(!TI);
TI=0;
while(!RI);
RI=0;
}
while(SBUF!=0); //等待 }
2. 从机接收程序