51单片机项目开发教程1流水灯的5种制作方法(51单片机流水灯教程)

下图为主控芯片和流水灯模块的原理图。流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯。相反,如果要LED灯熄灭,就要把P1口的电平变为高电平即可。要实现流水灯功能,我们只要将LED1~LED8依次点亮、熄灭,依始类推,8只LED变会一亮一暗的做流水灯了。

51单片机流水灯教程(51单片机项目开发教程1流水灯的5种制作方法)(1)

51单片机流水灯教程(51单片机项目开发教程1流水灯的5种制作方法)(2)

1、通过改变赋值实现流水灯

void main()

{ while(1) {

P2=0xfe;

delay1ms(500); P2=0xfd; delay1ms(500); P2=0xfb;

delay1ms(500); P2=0xf7; delay1ms(500); P2=0xef; delay1ms(500); P2=0xdf;

delay1ms(500); P2=0xbf; delay1ms(500); P2=0x7f;

delay1ms(500); } }

2、通过公式运算实现流水灯

void main() {

while(1) {

uinta,b=1; P2=0xfe; delayms(500); for(a=0;a<7;a )

P2-=b; // P2=P2-b delayms(500); b=b*2; //都化为同一类型进制运算 } } }

3、通过操作符<<与“|”实现流水灯 (通过移位实现流水灯)

void main() {

uchara,i;

while(1) {

a=0xfe; //点亮第一位LED灯 for(i=0;i<8;i )

{ P2=a;

a=a<<1; //左移一位

a=a|0x01; //左移一位后与0x01相或,保证左移后最低位为1 delay_ms(500); } } }

4、通过库函数_crol_(字符左移)实现流水灯

void main()

{

uint a; a=0xfe; while(1) {

P2=a;a=_crol_(a,1); delay_ms(500); } }

5、采用数组实现流水灯

uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void main(void) {

uchari;

while (1) {

for(i=0;i<8;i ) //循环点亮8只LED灯 {

P2=table[i];

delay_ms(500); //延时500毫秒 } } }

〖特别声明〗:本文内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。如有侵犯您的原创版权或者图片、等版权权利请告知 wzz#tom.com,我们将尽快删除相关内容。

赞 ()
打赏 微信扫一扫 微信扫一扫

相关推荐