半夏乄微凉 2019-12-04 19:34 采纳率: 0%
浏览 323

单片机串口通信与矩阵按钮冲突

#include<AT89X52.H>
#define uchar unsigned char 
#define uint unsigned int
void chuansonghangshu();
void jieshouhangshu();
uchar d=0;
unsigned char code a[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char b;
unsigned char c;
unsigned char i,j;
sbit P14=P1^4;
sbit P15=P1^5;
sbit P16=P1^6;
sbit P17=P1^7;
void delay()
{for(i=0;i<=50;i++);
}
void main(void)
{ 
TMOD=0X20;
TH1=0XE8;
TL1=0XE8;
SCON=0X50;
TR1=d;
P1=0XFF;
while(1)
{
P1=0xff;
P14=0;
b=P1;
b=b&0x0f;
if(b!=0x0f)
{
delay();
b=P1;
b=b&0x0f;
if(b!=0x0f)
{
b=P1;
b=b&0x0f;
switch(b)
{
case 0x0e:c=3;break;
case 0x0d:c=2;break;
case 0x0b:c=1;break;
case 0x07:c=0;break;
}
b=P1;
P2=a[c];
b=b&0x0f;
while(b!=0x0f)
{
b=P1;
b=b&0x0f;
}
}
}

P1=0xff;
P15=0;
b=P1;
b=b&0x0f;
if(b!=0x0f)
{
delay();
b=P1;
b=b&0x0f;
if(b!=0x0f)
{
b=P1;
b=b&0x0f;
switch(b)
{
case 0x0e:c=7;break;
case 0x0d:c=6;break;
case 0x0b:c=5;break;
case 0x07:c=4;break;
}
b=P1;
P2=a[c];
b=b&0x0f;
while(b!=0x0f)
{
b=P1;
b=b&0x0f;
}
}
}

P1=0xff;
P16=0;
b=P1;
b=b&0x0f;
if(b!=0x0f)
{
delay();
b=P1;
b=b&0x0f;
if(b!=0x0f)
{
b=P1;
b=b&0x0f;
switch(b)
{
case 0x0e:c=11;break;
case 0x0d:c=10;break;
case 0x0b:c=9;break;
case 0x07:c=8;break;
}
b=P1;
P2=a[c];
b=b&0x0f;
while(b!=0x0f)
{
b=P1;
b=b&0x0f;
}
}
}

P1=0xff;
P17=0;
b=P1;
b=b&0x0f;
if(b!=0x0f)
{
delay();
b=P1;
b=b&0x0f;
if(b!=0x0f)
{
b=P1;
b=b&0x0f;
switch(b)
{
case 0x0e:c=15;break;
case 0x0d:c=14;break;
case 0x0b:c=13;break;
case 0x07:c=12;break;
}
b=P1;
P2=a[c];
b=b&0x0f;
while(b!=0x0f)
{
b=P1;
b=b&0x0f;
}
}
}
d=P2;
SBUF=d;
while(T1==0);
T1=0;
while(RI==0)
RI=0;
d=SBUF;
P2=d;
}
} 
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-09 15:33
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图2.0 版本点聚合中Marker的位置无法实时更新,如何解决呢?
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题