串口通讯程序求解

2020-02-05 09:27发布

思路是这样的,第一次发送数据给BUSF传个a,P0=~address[a],P0输出,马上发第二次数据SBUF传给b;P2=~_data[b],P2输出,如此重复。程序如下:
void URAT_init()
{
SCON=0X50; //串口工作方式1,8位,波特率T1溢出。
TMOD=0X20;
TH1=0XFD;
TL1=0XFD;
TR1=1;
ES=1;
//EA=1;
void main()
{
URAT_init();
   while(1)
  {
  if(RI)
  {
  RI=0;
  a=SBUF;
  }
P0=~address[a]; /
EA=1;
  }
}
void send() interrupt 4 using 1
{   
if(RI==1)
{
b=SBUF;
P2=~_data[b];
while(RI==0);
RI=0;
}
}
这么些总之是没成功,不知道是思路不对还是哪有错误求解啊大侠们。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
wlxsg521
1楼-- · 2020-02-06 11:45
sniper.q 发表于 2012-4-19 21:04
这个改的?无语
while(RI==0);//RI需要手动置0的,你在这傻等

谢谢你的指导了,我的程序已经完成的差不了,改了很多。我觉得的确要好好看看基础,我C语言是和单片机一起学的,一个一个例程学下来的,用到哪学到哪。这样的确学的快,但是学的的确不扎实。
几点不弄就忘了很多。等我的东西弄完了把完整的程序放上来希望你再好好的指导下。

一周热门 更多>