单片机流水灯程序 16

单片机流水灯程序 16,第1张

#include<reg52h>

#include <intrinsh>

void delayms(unsigned char ms) // 延时子程序

{

unsigned char i;

while(ms--)

{

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

}

}

main()

{

unsigned char LED;

LED = 0xff;

P0 = LED;

while(1)

{

delayms(1000);

LED = LED<<1; //循环右移1位,点亮下一个LED

if(LED==0x00)

{

LED=0xff;

}

P0 = LED;

}

}

简单点的,用表格,事先计算好,放到ROM中,用的时候逐行编译输出就可以。

复杂点的,开一个缓冲区,用循环程序,根据花样的不同,每次填充一行,并输出,然后再计算一下行。除非表格太大,不建议这样用。

#define len 8

char tablelist[][len] =

{

"",

"",

"",

"",

"",

}

outline( char s )

{

int i;

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

{

if ( s[i] == '0' )

{

// 对应的灯亮

}

else

{

// 对应的灯灭

}

}

}

main()

{

for(;;)

{

outline( tablelist[i]);

delay();

}

}

#include<reg52h>

#include<intrinsh>

#define uint unsigned int

#define uchar unsigned char

uchar temp;

void delay(uint z);

void main( )

{

temp=0xfe;

P1=0xfe;

while(1)

{

delay(600);

temp=_crol_(temp,1);

P1=temp;

}

}

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

若有不理解的地方可以继续问

以上就是关于单片机流水灯程序 16全部的内容,包括:单片机流水灯程序 16、51单片机c语言编写一个流水灯程序,要求如下(不能用数组,8个led指示灯从两边往中间移动,然后再分开)、单片机流水灯编译程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存