c51单片机从串口接收发送字符串
#include 〈reg52。h>
#define uchar unsigned char
#define uint unsigned int
uchar data table[10]; //暂存数组,可以将10改为你需要的数值
/***********************************************
串行口初始化波特率9600,定时器1,工作方式2 *************************************************/
void serial_init(void)
{
TMOD=0x20;//计时器1作为比特率发生器,方式2
TH1=0xfd;
TL1=0xfd; //装入初值
TR1=1;//计时中断允许
SM0=0;
SM1=1;//串行口工作于方式2
ES=1;//串行口中断允许
REN=1;//接收允许
EA=1;// 总中断允许
}
/********************* **************************
串行口传送数据
传送显示数组各字符给计算机
*************************************************/
void send(uchar *dis)
while(*dis!='\0’)
SBUF=*dis;
dis++;
while(!TI);
TI=0; //软件请发送中断
}
void main()
{
serial_init();//初始化
while(SBUF!=0x0d);//计算机键盘按下回车键,则开始将接收到的数据回传给计算机
send(table);
/***********************************************
c51中字符串函数串行中断服务函数
单片机接收数据,存入table数组
*************************************************/
void serial() interrupt 4
{
int i;
ES=0; //关串口中断
table[i++]=SBUF;//命令存到命令数组
RI=0; //软件清除接收中断
ES=1;//开串口中断
已经通过proteus仿真如下

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。