这是我在STC89C52RC普中单片机上烧录的程序,对于代码中对数据类型为unsigned char的LEDNum进行自增自减运算不是很理解,据说是unsigned char这个数据类型是八位二进制数据?那又是怎么实现我按下独立按键LED灯逐个变亮
#include <REGX52.H>
void Delay(unsigned int xms)
{
unsigned char data i, j;
while(xms)
{
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
xms--;
}
}
unsigned char LEDNum;
void main()
{
P2 =~ 0x01;
while(1)
{
if(P3_1 == 0)
{
Delay(20);
while(P3_1 == 0);
Delay(20);
LEDNum++;
if(LEDNum >= 8)
{
LEDNum = 0;
}
P2 = ~(0x01 << LEDNum);
}
if(P3_0 == 0)
{
Delay(20);
while(P3_0 == 0);
Delay(20);
if(LEDNum == 0)
{
LEDNum = 7;
}
else
{
LEDNum--;
}
P2 = ~(0x01 << LEDNum);
}
}
}