一、正序流水
具体任务:
LED1~LED4逐个亮起并保持亮起状态,再从LED1~LED4逐个熄灭;
代码:
#include<reg52.h>
//位定义LED
sbit LED1=P2^4;
sbit LED2=P2^5;
sbit LED3=P2^6;
sbit LED4=P2^7;
//延时函数
static void DelayNms(int nms)
{
unsigned int i,j;
for(i=0;i<nms;i++)
{
for(j=0;j<123;j++)
{
}
}
}
//主函数
void main()
{
while(1)
{
LED1=0; //亮起LED1
DelayNms(100);
LED2=0; //亮起LED2
DelayNms(100);
LED3=0; //亮起LED3
DelayNms(100);
LED4=0; //亮起LED4
DelayNms(100);
LED1=1; //熄灭LED1
DelayNms(100);
LED2=1; //熄灭LED2
DelayNms(100);
LED3=1; //熄灭LED3
DelayNms(100);
LED4=1; //熄灭LED4
}
}
二、倒序流水
具体任务:
LED4~LED1逐个亮起并熄灭;
代码:
#include<reg52.h>
//延时函数
static void DelayNms(int nms)
{
unsigned int i,j;
for(i=0;i<nms;i++)
{
for(j=0;j<123;j++)
{
}
}
}
//主函数
void main()
{
unsigned char i;//定义循环计数变量i
while(1)
{
P2=0x78; //01111000的十六进制转换,点亮LED4
for(i=0;i<4;i++)
{
DelayNms(100);
P2=P2<<1; //右移一位
}
}
}