八盏跑马灯循环点亮后 怎样让它再循环依次点亮~~~

八盏跑马灯循环点亮后 怎样让它再循环依次点亮~~~,第1张

循环一次的话可以:

for(i=0;i<8;i++)

{;}

要实现多次循环的话,就需要在适当的时候把i在赋值为0,这样就会在for中一直循环下去。

for(i=0;i<8;i++)

{

循环点亮led的代码

if(i<7) break; i=7的时候,程序执行第8次,这时只要在led循环后把i赋值为0,这样就可以再次进入到for循环中

i=0;

}

大概思路就这样,办法还有好多,可以自己想想 然后编程试试,多动手

害人害到底,帮你写一个吧。

ORG 00H

AJMP MAIN

ORG 30H

MAIN:

MOV R0,#5

MOV R1,#8

MOV R2,#2

MAIN0:

MOV P1,#0

ACALL  D05S

MOV P1,#0FFH

ACALL D05S

DJNZ R0,MAIN0

MOV A,#01H

MAIN1:

MOV P1,A

ACALL D05S

RL A

DJNZ R1,MAIN1

MOV R1,#8

DJNZ R2,MAIN1

AJMP MAIN

D05S:

MOV R7,#10

MOV R6,#100

MOV R5,#250

DJNZ R5,$

DJNZ R6,$-4

DJNZ R7,$-8

RET

END

#include <REGX52H>

void Delay1ms(unsigned int count) /延时函数,延迟时间为count×1ms)/

{

unsigned int i,j;

for(i=0;i<count;i++)

for(j=0;j<120;j++);

}

main()

{

unsigned char LEDIndex = 0; /声明8位变量LEDIndex,用来指示8个LED中哪个被点亮,初始值为00000000/

bit LEDDirection = 1; /声明位变量LEDDirection,用来指示点亮的方向,初始值为1/

while(1) /一直循环执行大括号里面的语句/

{

if(LEDDirection) /当LEDDirection=1时,0000 0001左移LEDIndex位,取反后送给P2端口,点亮一个LED/

P2 = ~(0x01<<LEDIndex);

else /当LEDDirection=0时,1000 0000右移LEDIndex位,取反后送给P2端口,点亮一个LED/

P2 = ~(0x80>>LEDIndex);

if(LEDIndex==7) /当一次循环结束时,把LEDDirection取反,下次循环时将以相反的顺序点亮/

LEDDirection = !LEDDirection;

LEDIndex = (LEDIndex+1)%8; /LEDIndex+1对8取余,保证LEDIndex在0~7之间/

Delay1ms(500); /延时500ms,即LED的点亮间隔为05s/

}

}

电路很简单八个led灯接在p1口运行后看到的效果是 从第一个灯开始 随着时间变化 二进制数的递减 所有的灯都会依次的点亮,当全部的灯都被点亮后再重新开始这个过程 一直循环下去 单片机是不是很有趣?

下面是c语言程序源码

#include <reg51h>

void delay100ms();   //如果函数是在主函数后面定义,那么一定要在主函数前面声明                                      

void main()

{

int i;

i=0xfe;

while(1)

{P1=i;

i--;

delay100ms();

if(i==0)

i=0xfe;

}

}

void delay100ms(void)//

{

unsigned char a,b,c;

for(c=19;c>0;c--)

for(b=20;b>0;b--)

for(a=230;a>0;a--)

以上就是关于八盏跑马灯循环点亮后 怎样让它再循环依次点亮~~~全部的内容,包括:八盏跑马灯循环点亮后 怎样让它再循环依次点亮~~~、用keil编写一个跑马灯的程序,要求效果8个跑马灯闪烁五次,然后再循环两圈,接着再闪烁五次后循环两圈、用AT89C51单片机的P2口控制8个Led的流水灯的C程序看不懂等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10097701.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存