微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 串口发送接收程序,求解释。

串口发送接收程序,求解释。

时间:10-02 整理:3721RD 点击:
/*中断法控制串行口通信
接收上位机数据,并送回上位机*/
#include<reg52.h>
#define uchar unsigned char
char flag,m,k,a;
uchar code table[5]="i get";
uchar code table1[8]="12345678";
char  test[8]={0};
void main()
{
TMOD=0x20;//设置定时器1为工作方式2
TH1=0xfd;//T1定时器装初值
TL1=0xfd;//T1定时器装初值
TR1=1;//启动T1定时器
REN=1;//允许串口接收
SM0=0;//设定串口工作方式1
SM1=1;//设定串口工作方式1
EA=1;//开总中断
ES=1;//开串口中断
     while(1)
    {
       if(test[0]==table1[0]&&test[1]==table1[1]
          &&test[2]==table1[2]&&test[3]==table1[3]
          &&test[4]==table1[4]&&test[5]==table1[6]
          &&test[7]==table1[7]&&flag==1)
      {
      ES=0;
      for(k=0;k<5;k++)
      {
      SBUF=table[k];
      while(!TI);
      TI=0;
      }
       flag=0;
       ES=1;
       SBUF='a';
      }
   }
}
void ser() interrupt 4 //串行口中断
{
   RI=0;
   flag=1;
   test[m]=SBUF;
   m++;
   if(m=8)
   m=0;
}
我的想法是当输入12345678时,上位机输出“i get”。但是运行不了。求大神帮助。怎么改?

沙发

uchar code table[5]="i get";
uchar code table1[8]="12345678";
这个不对,自己翻一下书,看一下数组赋值

,,,,,,,,,,,,,,,,,,,,,,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top