两个单片机通信时数码管不能正常显示

2019-07-16 01:28发布

发送单片机
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^2;      //两个独立键盘
sbit key2=P3^4;
uchar a;
void delayms(uint x)   //延时程序
{
uint i,j;
for(i=x;i>0;i--)
  for(j=110;j>0;j--);
}
void keyscan()      //键盘扫描
{

if(key1==0)
{
  delayms(10);       //去除抖动延时
  if(key1==0)
  {
   a=0;
   while(!key1);
  }
}
if(key2==0)
{
  delayms(10);
  if(key2==0)
  {
   a=1;
   while(!key2);
  }
}
SBUF=a;   //信息传输给SBUF寄存器
}
void main()
{
TMOD=0x20; // 计时器1的设定
TH1=0xfd;
TL1=0xfd;
TR1=1;
EA=1;  //  中断的设定
ES=1;
SM0=0;  //  中断工作方式1
SM1=1;
while(1)
  keyscan();
}
void ser() interrupt 4 //   进入中断,把ti置零
{
TI=0;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。