单片机求救。

[复制链接]
查看11 | 回复7 | 2021-1-27 07:17:19 | 显示全部楼层 |阅读模式
在学单片机矩阵键盘检测,4*4的。但是始终第一排的四个按键显示不出,望高人指教



#include
#defineucharunsignedchar
#defineuintunsignedint
sbitdula=P2^6;
sbitwela=P2^7;
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
voiddelayms(uintxms)
{
uinti,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
voiddisplay(ucharnum)
{
P0=table[num];
dula=1;
dula=0;
}
voidmatrixkeyscan()
{
uchartemp,key;
P3=0xfe;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delayms(10);
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case0xee:
key=0;
break;
case0xde:
key=1;
break;
case0xbe:
key=2;
break;
case0x7e:
key=3;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
display(key);
}
}
P3=0xfd;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delayms(10);
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case0xed:
key=4;
break;
case0xdd:
key=5;
break;
case0xbd:
key=6;
break;
case0x7d:
key=7;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
display(key);
}
}
P3=0xfb;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delayms(10);
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case0xeb:
key=8;
break;
case0xdb:
key=9;
break;
case0xbb:
key=10;
break;
case0x7b:
key=11;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
display(key);
}
}
P3=0xf7;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delayms(10);
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case0xe7:
key=12;
break;
case0xd7:
key=13;
break;
case0xb7:
key=14;
break;
case0x77:
key=15;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
display(key);
}
}
}
voidmain()
{
P0=0;
dula=1;
dula=0;
P0=0xc0;
wela=1;
wela=0;
while(1)
{
matrixkeyscan();
}
}
分 -->
回复

使用道具 举报

千问 | 2021-1-27 07:17:19 | 显示全部楼层
好长,楼主你按住第一排的一个键单步仿真就会很容易发现问题的
回复

使用道具 举报

千问 | 2021-1-27 07:17:19 | 显示全部楼层
对对对对。加断点仿真看看
回复

使用道具 举报

千问 | 2021-1-27 07:17:19 | 显示全部楼层
嘿,你将第一排的线和第二排的线换下,首先看看是代码问题还是电路问题。
若确定是代码问题,咱再看代码,先不看了
回复

使用道具 举报

千问 | 2021-1-27 07:17:19 | 显示全部楼层
嘿,你将第一排的线和第二排的线换下,首先看看是代码问题还是电路问题。
若确定是代码问题,咱再看代码,先不看了
回复

使用道具 举报

千问 | 2021-1-27 07:17:19 | 显示全部楼层
不知道大家了解天祥板不,所有操作时不需要连线的。另外用仿真软件倒是个不错的注意。谢谢各位了
回复

使用道具 举报

千问 | 2021-1-27 07:17:19 | 显示全部楼层
引用1楼的回复:好长,楼主你按住第一排的一个键单步仿真就会很容易发现问题的
++
回复

使用道具 举报

千问 | 2021-1-27 07:17:19 | 显示全部楼层
贴一下硬件电路
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行