
位选P2 = 0x06,不该是从左到右第二个灯吗

#include <REGX52.H>
// 数码管段码表 0-9
unsigned char code segTable[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned int Num = 0; // 计数器变量
void Delay_ms(unsigned char ms);
void Key_Scan();
void NiXie();
void main()
{
while(1)
{
Key_Scan(); // 修正:使用英文分号
NiXie(); // 修正:使用英文分号
}
}
void Key_Scan()
{
if(P3_1 == 0) // 加按键
{
Delay_ms(20);
while(P3_1 == 0); // 等待按键释放
if(Num < 9) Num++; // 防止超过9
}
if(P3_0 == 0) // 减按键
{
Delay_ms(20);
while(P3_0 == 0); // 等待按键释放
if(Num > 0) Num--; // 防止小于0
}
}
void NiXie()
{
P2 = 0x06; // 位选,选择数码管
P0 = segTable[Num]; // 段选,显示数字
}
void Delay_ms(unsigned char ms)
{
unsigned char i, j;
for(i=0; i<ms; i++)
for(j=0; j<123; j++);
}
