键控流水灯51c语言程序,2个 按键控制单片机的流水灯左右移动程序怎么加入循环程序啊?...
时间: 2024-02-15 14:05:18 浏览: 173
您好!以下是一个使用2个按键控制单片机流水灯左右移动的简单代码,已经包含了循环程序:
```
#include <reg51.h>
sbit LED = P0^0; //LED引脚
sbit Key1 = P3^0; //按键1引脚
sbit Key2 = P3^1; //按键2引脚
void delay(unsigned int i) //延时函数
{
while(i--);
}
void main()
{
unsigned char dir = 0; //方向标志,0为左,1为右
unsigned char speed = 100; //速度控制,数字越大速度越慢
unsigned char cnt = 0; //计数器,用于控制流水灯的移动
while(1)
{
if(Key1 == 0) //按键1按下,切换方向
{
dir = !dir;
delay(1000); //延时去抖动
}
if(Key2 == 0) //按键2按下,加速
{
speed += 20;
if(speed > 200) speed = 200; //限制速度最大值
delay(1000); //延时去抖动
}
cnt++;
if(cnt == speed) //根据速度控制流水灯移动速度
{
cnt = 0;
if(dir == 0) LED <<= 1; //向左移动
else LED >>= 1; //向右移动
if(LED == 0x01 || LED == 0x80) dir = !dir; //到达两端时切换方向
}
}
}
```
代码中使用了一个 `while(1)` 循环,使程序一直运行。同时在循环中使用了两个 `if` 语句来检测按键的按下,并进行相应的操作。这样就可以实现按键控制流水灯的左右移动,并且在循环中不断重复这个过程。
阅读全文