微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 51单片机proteus串口仿真问题

51单片机proteus串口仿真问题

时间:10-02 整理:3721RD 点击:
第一个单片机控制第二个单片机的灯,按一下不亮,按两下第一个亮,按三下第二个亮,按四下都亮。
单片机1的程序:
#include<reg51.h>
#define uchar unsigned char
sbit K1=P1^0;
uchar num=0;
void send(uchar);
void main()
{
    SCON=0X40;
TMOD=0x20;
PCON=0X00;
TH1=0XE8;
TL1=0XE8;
TI=0;
TR1=1;
while(1)
{
if(K1==0)
  {
  while(K1==0);
  num=(num+1)%4;
  if(num==0)
  {
   send(1);
   P0=0XFF;
  }
  else if(num==1)
  {
   send(2);
   P0=0XF0;
  }
  else if(num==2)
  {
   send(3);
   P0=0X0F;
  }
  else
  {
   send(4);
   P0=0X00;
  }
  }
  }
}
void send(uchar i)
{
SBUF=i;
while(TI==0);
TI=0;
}
单片机2的程序:
#include<reg51.h>
#define uchar unsigned char
uchar state;
void main()
{
SCON=0X50;
TMOD=0x20;
PCON=0X00;
TH1=0XE8;
TL1=0XE8;
RI=0;
TR1=1;
while(1)
{
if(RI==1)
{
  state=SBUF;
  if(state==1)
  {
   P0=0XFF;
  }
  else if(state==2)
  {
   P0=0XF0;
  }
  else if(state==3)
  {
   P0=0X0F;
  }
  else
  {
   P0=0;
  }
  RI=0;
  }
  }
  }
求救:为何无论如何单片机2收到的都是00呢?程序哪里的错误呢,谢谢!

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

网站地图

Top