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流水灯的主要内容,如果未能解决你的问题,请参考以下文章