一、代码部分
代码如下(示例):
#include <REGX52.H>
void Delay(unsigned int xms);
unsigned char LEDNum;//全局变量,初始值默认0
void main()
{
P2=~0x01; //上电默认LED1点亮
while(1)
{
if(P3_1==0) //如果K1按键按下
{
Delay(20);
while(P3_1==0);
Delay(20);
LEDNum++; //LEDNum自增
if(LEDNum>=8) //限制LEDNum自增范围
LEDNum=0;
P2=~(0x01<<LEDNum); //LED的第LEDNum位点亮
}
if(P3_0==0) //如果K2按键按下
{
Delay(20);
while(P3_0==0);
Delay(20);
if(LEDNum==0) //LEDNum减到0后变为7
LEDNum=7;
else //LEDNum未减到0,自减
LEDNum--;
P2=~(0x01<<LEDNum); //LED的第LEDNum位点亮
}
}
}
void Delay(unsigned int xms)
{
unsigned char i, j;
while(xms--)//同while(xms)xms--;
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
}
}
总结
完成独立按键控制LED移位操作,局部变量是定义在main函数里面的,全局变量是定义在main函数外面的,如果不给全局变量赋值,默认初始值为0,但是局部变量如果不赋值,不一定是初始值0.关于定义变量名字,首字母不能是数字,然后是有数字字母和下划线的组合。