废物先不说, 上图上代码才能有图有真相
#include <reg51.h>
#include "../time/Delay.h"
// 定义矩阵键盘I/O P2 口控制矩阵键盘
#define GPIO_KEY P2
// 定义静态数码管变量
#define GPIO_DIG P0
unsigned char code GPIO_S[6] = {0x3F, 0x06, 0x59, 0x4F, 0x67, 0x6D};
// ~ 0 1 2 3 4 5
void main()
{
unsigned char KeyValue;
GPIO_KEY = 0x0F;
while (1)
{
if (GPIO_KEY != 0x0F)
{
DelayMs_24M(10);
if (GPIO_KEY != 0x0F)
{
// 测试列
switch(GPIO_KEY)
{
case 0x07 : KeyValue = 0; break;
case 0x0B : KeyValue = 1; break;
case 0x0D : KeyValue = 2; break;
case 0x0E : KeyValue = 3; break;
}
// 测试行
GPIO_KEY = 0xF0;
switch(GPIO_KEY)
{
case 0x70 : break;
case 0xB0 : KeyValue = KeyValue + 4; break;
case 0xD0 : KeyValue = KeyValue + 8; break;
case 0xE0 : KeyValue = KeyValue + 12; break;
}
// 根据按下的按钮在静态数码管中显示对应数字
switch(KeyValue)
{
case 0x07 : GPIO_DIG = ~GPIO_S[0]; break;
}
}
}
}
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
下面是板子的接线图
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
下面是电路原理图
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
整个实验效果:按下矩阵键盘中的一个键然后静态数码管中显示一个数字
目前程序状况:按下矩阵键盘中的任意一个键,然后,然后就没有然后了
看在新手和上帝的份上, 各路大神帮我解答下吧