单片机控制 LED 流水灯从中间向两边,从两边向中间 这个就是把 先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;不过这个程序实现的 应该是这样的 先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动;再从中间往两边流动;#include〈 reg52。h>#include〈 intrins。h>#define uint unsigned int#define uchar unsigned char void delay();void main(){ uchar temp,temp1,temp2,a,b; P3=0xff; while(1){ for(b=3;b〉0;b—-) { temp=0xaa; P1=temp; delay(); temp=0x55; P1=temp; delay(); } for(a=3;a>0;a—-) { temp=0xfe; for(b=7;b〉0;b—-) { P1=temp; temp=_crol_(temp,1); delay(); P1=temp; delay(); } } temp1=0xfe; temp2=0x7f; for(a=8;a〉0;a—-) { temp=temp1&temp2; P1=temp; delay(); temp1=_crol_(temp1,1); temp2=_cror_(temp2,1); } }}void delay(){ uint a,b; for(a=100;a>0;a——) for(b=600;b>0;b--);} 程序实现的第 2 种方法:下面是 http://www。51hei.com 单片机 12 群里的朋友木信大侠提出的,实现单片机 led 流水灯从中间向两边,从两边向中间的效果,下面的程序就是实现思路,这个是直接调用,应该明白吧,数组那其实也可以改一下,如采纳一维数组,在多次调用;也可以采纳二维数组。主要看个人喜好。—---—--———-—-—-----—---—----——--—————---—--———---—---#include< reg52。h〉 unsigned char code TABLE[]={ 0xFF,0xE7,0xC3,0x81,0x00, //从中间向两侧点亮0xFF,0xE7,0xC3,0x81,0x00, 0xFF,0xE7,0xC3,0x81,0x00, 0xFF,0x7E,0x3C,0x18,0x00, //从两侧向中间点亮 0xFF,0x7E,0x3C,0x18,0x00, 0xFF,0x7E,0x3C,0x18,0x00}; unsigned char i; DELAY() { unsigned int s; for(s=0;s<30000;s++); }main() { while(1) { if(TABLE[i]!=0x01) { P1=TABLE[i]; i++; DELAY(); } else { i=0; } } } 汇编程序如下:; 花样流水灯(8 个发光二极管以各种形式循环点亮); 功能:流水灯(8 个发光二极管循环以 1S 间隔以各种形式循环点亮) ORG 0000H ;伪指令,指定程序从 0000H 开始存放 LJMP MAIN ;跳转指令,程序跳转至...