单片机的流水灯怎么用C语言来编程,最好有解释。

2024-12-19 10:15:29
推荐回答(3个)
回答1:

/* 程序详细功能介绍:
*做单一灯的左移右移,八个发光二极管L0-L7分别接在单片机的P0.0-P0.7接口上,
*输出“0”时,发光二极管亮,开始时P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→┅→P0.0亮,重复循环。
*/

#include
unsigned char i;
unsigned char temp;
unsigned char a,b;

void delay(void)
{
unsigned char m,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}

////////////////主程序/////////////////////
void main(void)
{
while(1)
{
temp=0xfe;
P0=temp;
delay();

for(i=1;i<8;i++)
{
a=temp< b=temp>>(8-i);
P0=a|b;
delay();
}

for(i=1;i<8;i++)
{
a=temp>>i;
b=temp<<(8-i);
P0=a|b;
delay();
}
}
}

回答2:

#include
#define uchar unsigned char
#define uint unsigned int
uchar a, temp;
uint x,y,z;
void delay(uint);//延时函数
void main()
{
a=0xfe;
while(1)
{
P1=a;
temp=a<<1;
a=a>>7;
a=temp|a; //循环左移
delay(100);
}
}
void delay(uint z)
{

for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
程序不长,但是足够顺利运行,已自己顺利模拟

回答3:

建议 去 我的领地 5d6d 的 proteus 论坛看看

那里有很多 单片机仿真实例,包括仿真图 和 源码
搜 5d6d 和 proteus 2个关键词