用c语言写一个程序使led流水灯从右往左移动点亮,然后从左往右依次点亮(P2接led流水灯,低电平点亮)
需要完整代码实现上述功能,急急急,大神快来,谢谢(单片机)
最佳答案
第一个比较简单,但是比较长,第二个比较简洁
#include <reg51.h>
unsigned int a;//定义整型变量a
void main( )
{while(1)//while循环语句
{P2=0XFE;//1111 1110
for(a=50000;a>0;a--);//for循环语句
P2=0XFD;//1111 1101
for(a=50000;a>0;a--);//for循环语句
P2=0XFB;//1111 1011
for(a=50000;a>0;a--);//for循环语句
P2=0XF7;//1111 0111
for(a=50000;a>0;a--);//for循环语句
P2=0XEF;//1110 1111
for(a=50000;a>0;a--);//for循环语句
P2=0XDF; //1101 1111
for(a=50000;a>0;a--);//for循环语句
P2=0XBF;//1011 1111
for(a=50000;a>0;a--);//for循环语句
P2=0X7F;//0111 1111
for(a=50000;a>0;a--);//for循环语句 //
P2=0XBF;//1011 1111
for(a=50000;a>0;a--);//for循环语句
P2=0XDF; //1101 1111
for(a=50000;a>0;a--);//for循环语句
P2=0XEF;//1110 1111
for(a=50000;a>0;a--);//for循环语句
P2=0XF7;//1111 0111
for(a=50000;a>0;a--);//for循环语句
P2=0XFB;//1111 1011
for(a=50000;a>0;a--);//for循环语句
P2=0XFD;//1111 1101
for(a=50000;a>0;a--);//for循环语句
}
}
//78.5ms=50000
第二个
#include<reg51.h>
#define uint unsigned int
void main()
{ void delay(uint k);
uint a[15]={0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F,
0XBF,0XDF,0XEF,0XF7,0XFB,0XFD,0XFE};
while(1)
{ uint i;
for(i=0;i<15;i++)
{
P2=a[i];
delay(100); //100为闪烁时间长短
}
}
}
void delay(uint k)
{
uint i,j;
for(i=0;i<=k;i++)
{
for(j=0;j<=1000;j++)
{;}
}
}
这是51单片机的程序,是C语言的
其他回答
暂无其它回答!