谁能帮我解释一下这个程序每一步都是什么意思??是关于单片机流水灯的

#include<reg52.h>
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit led5=P1^4;
sbit led6=P1^5;
sbit led7=P1^6;
sbit led8=P1^7;
void delay()
{
unsigned int i;
for(i=0;i<9000;i++);
}
void main()
{
while(1)
{
led1=0;
delay();
led1=1;
delay();
led2=0;
delay();
led2=1;
delay();
led3=0;
delay();
led3=1;
delay();
led4=0;
delay();
led4=1;
delay();
led5=0;
delay();
led5=1;
delay();
led6=0;
delay();
led6=1;
delay();
led7=0;
delay();
led7=1;
delay();
led8=0;
delay();
led8=1;
delay();
}
}

我帮你答。
#include<reg52.h>
sbit led1=P1^0;//定义LED1为P1.0引脚,下面也一样
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit led5=P1^4;
sbit led6=P1^5;
sbit led7=P1^6;
sbit led8=P1^7;
void delay()//延时程序
{
unsigned int i;
for(i=0;i<9000;i++);
}
void main()
{
while(1)//这是一个死循环,就是程序一直走
{
led1=0;1#灯亮(假设是阴极接单片机I/O)
delay();延时
led1=1;1#灯灭
delay();延时
led2=0;2#灯亮(以下同)
delay();
led2=1;
delay();
led3=0;
delay();
led3=1;
delay();
led4=0;
delay();
led4=1;
delay();
led5=0;
delay();
led5=1;
delay();
led6=0;
delay();
led6=1;
delay();
led7=0;
delay();
led7=1;
delay();
led8=0;
delay();
led8=1;
delay();
}
}
温馨提示:内容为网友见解,仅供参考
无其他回答

单片机流水灯汇编求指教,请大神解释每行代码的意思
A ;01h循环左移一位,变成00000010b LCALL DELAY 调用延时程序,使小灯亮一会儿,让人眼辨别出小灯是依次循环点亮的 MOV P0,A ;把00000010b送p0口,使左边第二个小灯亮 LCALL DELAY ;调用延时 SJMP LOOP ;跳到loop ,这样循环下来,依次从右往左点亮小灯 DELAY:MOV R6,#255 ;延时程序 D1...

谁能帮我解释以着这个51单片机的c语言程序,说的详细些,谢谢!
估摸着是点亮流水灯的代码吧,首先delay();是延时这能明白吧!while(1){ temp=0xfe;P1=temp; \/\/先让P1口值为0xfe,估计是先点亮一个LED灯 delay();for(i=1;i<8;i++){ a=temp<>(8-i); \/\/temp右移8-i位 P1=a|b; \/\/P1赋值,实际上就是让P1=(temp循环左移i位),...

单片机流水灯怎么实现的?
单片机流水灯是一种常见的电子装置,通过单片机控制多个LED灯以一定的顺序逐个亮起,形成流水般的效果。其原理是通过编写程序来控制单片机的输出端口,从而控制LED灯的亮灭状态。在实际应用中,可以使用不同的单片机型号和开发环境来实现流水灯功能,具体的实现方法会因硬件环境和软件工具的不同而有所差异。...

单片机流水灯程序
sbit led1 = P2^0;sbit led2 = P2^1;sbit led3 = P2^2;sbit led4 = P2^3。让电子信息技术与单片机技术相融合,有效提高了单片机应用效果。作为计算机技术中的一个分支,单片机技术在电子产品领域的应用,丰富了电子产品的功能,也为智能化电子设备的开发和应用提供了新的出路,实现了智能化电子...

单片机流水灯程序
char uchar j,temp;void delay(unsigned int ms){ uchar t;while(ms--)for(t=0;t<123;t++);} void main(){ P1=0xff;delay(500);temp=0xfe; \/\/有点怪,led接在P2.3~P2.6 for(j=0;j<4;j++){ P1=temp;delay(500);temp=_crol_(temp,1);} P1=0xff;while(1);} ...

单片机流水灯?
P0口控制,先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;不过这个程序实现的应该是这样的 先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动;再从中间往两边流动(延时0.1s)include< reg52.h> include< intrins.h>...

单片机控制流水灯程序注释
l1:inc a;累加器加1 mov p1,a;P1=A lcall dl;延时 djnz r4,l1;R4减1不为0转l1 ljmp k0;转k0 mov r2,#07h;R2=07H mov a,#80h;累加器=80H l4:mov p1,a;P1=A dl:mov r7,#0c8h;R7=C8H延时外层循环 dl1:mov r6,#7dh;R6=7DH延时内存循环 dl2:djnz r6,dl2;内存循环 djnz ...

急求单片机流水灯程序及详解
我的 急求单片机流水灯程序及详解 100 第一步:8个发光二极管同时亮并且闪烁2次,闪烁间隔为0.3秒。第二步:8个发光二极管一个一个亮,间隔时间为0.5秒。第三步:开始时,8个发光二极管全部熄灭,0.3秒后一个被点亮,间隔0... 第一步:8个发光二极管同时亮并且闪烁2次,闪烁间隔为0.3秒。第二步:8个发光二极管一个...

流水灯单片机程序代码
2、它是由无数个LED灯组成的,而LED就是发光二极管的简称,它有个特性:就是它只允许电流单一方向流过。如果让LED灯亮起来,他需要连接一个高电平和一个低电平,当它遇到低电平时它会亮起来而遇到高电平它就会熄灭。由于他只能单方向流过电流,所以也就会一亮一暗。

51单片机流水灯程序
程序如下:include <reg52.h> sbit led1 = P2^0;sbit led2 = P2^1;sbit led3 = P2^2;sbit led4 = P2^3;sbit led5 = P2^4;sbit led6 = P2^5;sbit led7 = P2^6;sbit led8 = P2^7;void main(){ int i,j;\/\/点亮第一个灯 led1 = 1;led2 = 0;led3 = 0;led4 = ...

相似回答