51单片机用左右库移函数点亮流水灯
时间: 2024-06-12 11:00:45 浏览: 73
基于51单片机在工程中包含intrins.h头文件,使用循环右移函数_cror_(a,b)实现流水灯。
5星 · 资源好评率100%
以下是使用左右移函数点亮流水灯的51单片机代码:
```c
#include <reg52.h> // 引入头文件
void main()
{
unsigned char i, j; // 定义变量i和j为无符号字符型
while (1) // 循环执行
{
i = 0x01; // 将i赋值为00000001,即第一盏灯亮
for (j = 0; j < 8; j++) // 循环8次
{
P1 = i; // 将i的值赋给P1口
i <<= 1; // 左移一位,即将i的值乘以2
Delay(50000); // 延时一段时间
}
}
}
void Delay(unsigned int t) // 定义延时函数
{
unsigned int i;
for (i = 0; i < t; i++);
}
```
在上述代码中,我们使用了左移运算符<<,它可以将一个二进制数向左移动一定的位数,相当于将这个数乘以2的n次方,其中n为左移的位数。我们还使用了一个for循环来循环8次,每次将i左移一位,即将灯的位置向左移动一位,实现流水灯的效果。同时,我们还定义了一个Delay函数来实现延时的功能。
阅读全文