//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语言程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)