求个C语言写的 ATMEGA8的流水灯程序 灯接在B端口 (PB7-PB0)

来源:百度知道 编辑:UC知道 时间:2024/09/24 08:27:24

void Delay()
{
unsigned char a, b;

for (a = 1; a; a++)
for (b = 1; b; b++)
;
}

void LED_On(int i)
{
PORTB=~(1<<i); /* 输出低电平,使LED发光 */
Delay();
}

void main()
{
int i;
DDRB = 0xFF; /* 定义B口为输出*/
PORTB = 0xFF; /* 关闭全部LED */

while (1)
{
for (i = 0; i < 8; i++)
PORTB=0xFF;/关闭PORTB所有输出
LED_On(i);
}
}
我忘记了流水灯是不是一个一个顺序点亮。上面程序是这个效果,不过点亮前会有一下全灭。

还有一种就是设置一个数组,数组内容是流水的所有状态,然后设置一个FOR循环,利用i去得到数组的每一项,分别给端口,得到效果。