按键一接单片机P3_1,按键2接P3_0
8个流水灯接P2口
以下是代码:
#include <regx52.H>
#include <INTRINS.H>
//延时函数,xms等于1,此函数延时一毫米
void DelayMs(unsigned int xms)
{
unsigned char i, j;
while(xms){
i=2;
j=239;
do{
while(--j);
}while(--i);
xms--;
}
}
//单片机不一样的自行理解,或者问我
void main(){
unsigned char i;
unsigned int temp;
while(1){
//如果按键1按下
if(P3_1==0){
temp=0xfe;
DelayMs(20);
while(P3_1==0);
for(i=0;i<8;i++){
//先点亮P2端口的一个led灯,二进制值为:11111110
P2=temp;
//需要引入头文件:#include <INTRINS.H>,第一个变量用来控制位,第二个用来控制每次移动的位数。及流水灯向左移动
temp=_crol_(temp,1);
//每次移动一个,延时500毫秒
DelayMs(500);
}
//移动完,将P2口赋0
P2=0xff;
}else if(P3_0==0){
temp=0x7f;
DelayMs(20);
while(P3_0==0);
for(i=0;i<8;i++){
P2=temp;
temp=_crol_(temp,-1);
DelayMs(500);
}
P2=0xff;
}
}
}