单片机的跑马灯C程序如何编写八个LED灯依次点亮而且速度渐变的代码

单片机的跑马灯C程序如何编写八个LED灯依次点亮而且速度渐变的代码,第1张

//P1外接8

LED

低电平发光

//

程序

PROTEUS

仿真

#include<reg52h>

//-----------------------------

void

delay_ms(unsigned

int

s)

{

unsigned

int

x;

for(s;

s

>

0;

s--)

{

x

=

98;

while(x--);

}

}

//-----------------------------

void

main()

{

char

i,

j;

while(1)

{

for(j

=

0;

j

<

8;

j++)

{

P1

=

255;

//全灭,

P1外接LED,

低电平发光

delay_ms(500);

//稍等片刻

for(i

=

0;

i

<

8;

i++)

{

P1

<<=

1;

delay_ms(900

-

100

j);

//延

渐短

}

}

}

}

//-----------------------------

如下程序:

if(ledi==8)

{

ledi=0; //到了最后一个灯就换到第一个

//每跑一圈灯就根据预定设置的表格来决定下一圈的跑马速度

speed=speedcode[i];

i++;if(i==2)i=0; ?你的速度设置不仅仅就2个呀(10个预定义的速度)

}

有两种解决办法:

一个就是将预定的速度加2倍

speedcode[30]={3,3,3,1,1,1,5,5,5,12,12,12,、、、、、、}

二是增加一全局变量uchar z=0;在i++前加上如下,前后不改:

、、、、、if(++z==3){z=0;i++;}、、、、、、、、、、、

int runlinght()

{int i,j;

j=1;

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

{P[i]=(j<<i); //假设输出高点亮

timedelay();

};

时间的问题,这里你只要在延时函数里解决就OK了,你在主函数里面计算调用点灯函数的次数,再用这个标志去改变延时函数的参数。

以上就是关于单片机的跑马灯C程序如何编写八个LED灯依次点亮而且速度渐变的代码全部的内容,包括:单片机的跑马灯C程序如何编写八个LED灯依次点亮而且速度渐变的代码、用C语言编写简单跑马灯程序(4个灯的)、求STC89C52的单片机跑马灯C语言程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/10097449.html

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

发表评论

登录后才能评论

评论列表(0条)

保存