51单片机c语言程序控制,51单片机C语言控制led流水灯程序(移位法+数组法)

#include

sbit led1=P0^0;

sbit led2=P0^1;

sbit led3=P0^2;

sbit led4=P0^3;

sbit led5=P0^4;

sbit led6=P0^5;

sbit led7=P0^6;

sbit led8=P0^7;

void delay(int x);

void main()

{

while(1)

{

led1=1,led3=1,led5=1,led7=1,led2=0,led4=0,led6=0,led8=0;

delay(30000);

led2=1,led4=1,led6=1,led8=1,led1=0,led3=0,led5=0,led7=0;

delay(30000);

}

}

void delay(int x)

{

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

}

此方法适合刚刚接触单片机和C语言的童鞋

缺点是控制的LED灯少,定义繁琐

在后面移位和数组用到的更频繁

用段选和位选的方法可以控制更多的LED灯

数组法控制8个LED灯程序如下:

#include

unsigned char table[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};

void delay (1000)

{

unsigned char a,b;

for(a=0;a<200;a++)

for(b=0;b<200;b++);

}

void main()

{

unsigned char i;

while(1)

{

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

{

P0=table[ i];

delay();

}

}

}

可见相对于第一种方法,数组的程序更加简短

#include

void delay(int x);

void main()

{

unsigned char A=0xfe;

while(1)

{

P1=A;

delay(1000);

A=(A<<1)|1;

}

}

void delay(int x)

{

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

}

}

这种是移位法,相对于C语言的初学者用这种方法写程序可能不习惯,但是这种方法较好理解。

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值