单片机编程控制8个LED,先逐个点亮,再逐个熄灭,再逐个点亮,如此循环,变化间隔为1秒左右,用软件循环实现

2024-12-28 20:46:10
推荐回答(1个)
回答1:

假如:P0口接8个LED,
程序可以这样:

#include
#define uchar unsigned char
#define uint unsigned int
sbit led1= P2^0;
uchar num;
/**********************************************************
延时t毫秒
11.0592MHz时钟,延时约1ms
**********************************************************/
void delay(uint s)
{
uchar k;
while(--s)
{
for(k=0; k<125; k++) ;

}
}
void main()
{
uchar i,j;
j=0x01;//假如高电平灯亮
while(1)
{
j=0x01;//假如高电平灯亮
for(i=0;i<8;i++)
{
P0=j;
delay(1000);//逐个循环点亮
j<<=1;
}
j=0xfe;
for(i=0;i<8;i++)
{
P0=j;
delay(1000); // 逐个循环熄灭
j<<=1;
}

}
}