学自b站江科大自化协
软件:keil5 STC-ISP
#include <REGX52.H>
#include <INTRINS.H>
unsigned char LEDNum;//定义全局变量初始默认是0
void Delay(unsigned int xms);
void main()
{
//unsigned char LEDNum=0; 定义局部变量初始需赋0
P2=~0x01;//赋一个初始值
//0x01左移取反可以实现,0xfe左移-空位补零
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为0时,再减就溢出了,变成最大了,所以检验一下。
LEDNum=7;
else
LEDNum--;
P2=~(0x01<<LEDNum); //还是左移是因为,假如第一个按键左移5,此时按第二个按键(--)-左移4
}
}
}
#include <INTRINS.H>
void Delay(unsigned int xms) //@11.0592MHz
{
unsigned char i, j;
while(xms--)
{
_nop_();
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
//xms--;
}
}
纯小白
希望大佬指出错误