求89C52单片机控制32个LED流水灯的C语言程序
要求一开始全亮,然后只有第一灭,其他全亮,然后只有第二灭,其他全亮,如此类推到最后一个灭,其他全亮,最后全亮全灭交替闪烁5次,每一个单灯灭的步骤用一个代码控制,以方便随时...
要求一开始全亮,然后只有第一灭,其他全亮,然后只有第二灭,其他全亮,如此类推到最后一个灭,其他全亮,最后全亮全灭交替闪烁5次,每一个单灯灭的步骤用一个代码控制,以方便随时更改哪个灯灭,每个步骤延迟200ms,求这个程序!谢谢!!
展开
2个回答
展开全部
#include<reg51.h>
#define uchar unsigned char
uchar led1,led2,led3,led4;
void delay(uchar a)
{
uchar i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
main()
{ uchar num;
unsigned long int led;
P0=0xff;
P0=0xff;
P0=0xff;
P0=0xff;
delay(200);
while(1)
{
led=0x00000001;
num=0;
while(num<32)
{
led1=(led<<num)>>24;
led2=(led<<num)>>16;
led3=(led<<num)>>8;
led4=led<<num;
P0=led1;
P1=led2;
P2=led3;
P3=led4;
delay(200);
num++;
}
for(num=0;num<5;num++)
{
P0=0x00;
P1=0x00;
P2=0x00;
P3=0x00;
delay(200);
P0=0xff;
P0=0xff;
P0=0xff;
P0=0xff;
delay(200);
}
}
}
#define uchar unsigned char
uchar led1,led2,led3,led4;
void delay(uchar a)
{
uchar i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
main()
{ uchar num;
unsigned long int led;
P0=0xff;
P0=0xff;
P0=0xff;
P0=0xff;
delay(200);
while(1)
{
led=0x00000001;
num=0;
while(num<32)
{
led1=(led<<num)>>24;
led2=(led<<num)>>16;
led3=(led<<num)>>8;
led4=led<<num;
P0=led1;
P1=led2;
P2=led3;
P3=led4;
delay(200);
num++;
}
for(num=0;num<5;num++)
{
P0=0x00;
P1=0x00;
P2=0x00;
P3=0x00;
delay(200);
P0=0xff;
P0=0xff;
P0=0xff;
P0=0xff;
delay(200);
}
}
}
更多追问追答
追问
如果再加上“P0.4,P1.4,P2.4,P3.4亮,再到P0.3,P0.5,P1.3,P0.5,P2.3,P2.5,P3.3,P3.5亮,再到P0.2,P0.6亮”该如何改?
追答
说清楚点,什么时候做什么事
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
STM32产品广泛应用于工业控制、消费电子、物联网、通讯设备、医疗服务、安防监控等应用领域,其优异的性能进一步推动了生活和产业智能化的发展。意法半导体致力于引领单片机技术和产品的创新,推动生态系统的建设,为用户提供满意的产品和技术服务。意法...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询