51单片机利用左移运算制作一组IO流水灯

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51单片机利用左移运算制作一组IO流水灯相关的知识,希望对你有一定的参考价值。

51单片机利用左移运算制作一组IO流水灯


  • Proteus仿真

实例代码

#include <REGX52.H>

//毫秒级延时
void delay(unsigned int z)
{
    unsigned x,y;
    for(x=z; x>>0; x--)
        for(y=110; y>>0; y--);
}
void main() {
    static int i=0;
    while(1) {
        P2=~(1<<i);
        i++;
        delay(800);
        if(i==7) {
            P2=~(1<<7);//先让i=7执行P2=0x7f(0111 1111)再执行i%=7操作,不然P27只会量一次
            delay(800);
            i%=7;//当i等于7时,让i等于0
        }
    }
}

实现左移后右移动流水灯效果

#include<reg52.h>
//毫秒级延时
void delay(unsigned int z)
{
    unsigned x,y;
    for(x=z; x>>0; x--)
        for(y=110; y>>0; y--);
}

void main() {
	
	int i = 0;
	unsigned count = 0;
	unsigned char flag = 0;
	P2 = 0x01;
	
	while(1) {
		if(flag%2 == 0) {
			P2 = ~(0x01 << count);
		} else {
			P2 = ~(0x80 >> count);
		}
		delay(800);
		count++;
		if(count >= 8) {
			count = 1;
			flag++;
		}
	}
}

  • 仿真效果

以上是关于51单片机利用左移运算制作一组IO流水灯的主要内容,如果未能解决你的问题,请参考以下文章

单片机 怎么用位移的方法实现乘除法

51单片机学习笔记5 流水灯实现及蜂鸣器控制

51单片机学习笔记5 流水灯实现及蜂鸣器控制

单片机点阵怎么实现左移右移,谢谢

51单片机按键控制流水灯

51单片机启用2个定时制作流水灯+Proteus仿真