缘由捡钱活:按键控制流水灯51单片机_编程语言-CSDN问答
51单片机:
8个LED接在P1口,两个按键无所谓,随便接哪,
用C语言实现:
要求实现以下功能:
两个按键分别为KEY1(启动)和KEY2(停止)
1、当按下KEY1:流水灯正向流动一次后停止,不管流水灯走到哪,只要中途按下KEY2,流水灯立刻停止
2、流水灯走完一遍停止后,再次按下KEY1,流水灯能继续从头开始流动(必须是从头开始流动,不能从中间流)
cpp
#include "reg52.h"
sbit k0=P3^0;
sbit k1=P3^1;
void main()
{//缘由https://ask.csdn.net/questions/7995942
unsigned char ys=0,sy=0,xd=0,ls=0;
bit t=0;
while(1)
{
if(++ys==0)if(++sy==0)if(t){//延时
if(ls==0)ls=1;else ls*=2;//流水灯方向
// if(ls==0)ls=128;else ls/=2;//流水灯方向
P1=255-ls;}
if(k0==0&&++xd==0){t=1;ys=sy=0;while(k0==0);}//按键消抖与控制
if(k1==0&&++xd==0){t=ys=sy=0;while(k1==0);}
}
}
