LED灯显示问题:
void DisplayKeyNum(unsigned char value)
{
SelectHC573(6);
P0 = 0x01;
SelectHC573(6);
P0 = value;
}
不知道你用的板子是否和官方的相同,根据原理图,选择LED锁存器为Y4,而你这里选择的是Y6,建议你看一下卖家给你的原理图
按键检测问题
else if(C4 == 0)
{
while(C4 == 7);
key_num = 3;
DisplayKeyNum(SMG_duanma[key_num]);
}
你这个应该是不小心写错了
将LED显示与数码管显示弄混了
unsigned char code SMG_duanma[18]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,0xbf,0x7f};
DisplayKeyNum(SMG_duanma[key_num]);
SMG_duanma这个数组存放的是数码管显示的代码,为什么用到LED显示
存在部分逻辑错误
void DisplayKeyNum(unsigned char value)
{
SelectHC573(6);
P0 = 0x01;
SelectHC573(6);
P0 = value;
}
如果要用某个按键控制某个LED灯,应该让某一位为1,而不是直接将数据写入
可改为:
void DisplayKeyNum(unsigned char value)
{
SelectHC573(4);
P0 = 0x01<<value;
}
总结:你应该对矩阵按键和LED显示还不是很熟,建议参考我之前写过的文章,在加强一下这方面的知识吧