用switch刷新数码管 锁存器原因导致数码管显示受影响 在此提供 蓝桥杯15单片机led小灯刷新函数
void change(int outputNumber) //138译码器控制函数
{
P2 &= 0x1f; // 清空 P2.5、P2.6 和 P2.7
P2 |= ((outputNumber & 0x7) << 5); // 设置 P2.5、P2.6 和 P2.7
}
// 显示指定编号的数码管
void displayDigit()
{
static unsigned char i=0;
change(6);
P0 = 0X00;
change(0);
// 显示该数码管
P0 = 0xFF;
change(7);
P0 = seg_buf[i];
change(0);
change(6);
P0 = 0X01 << i;
change(0);
i++;
if(i > 7)
{
i=0;
}
}