【51单片机2个按键控制流水灯运行与暂停】2023-9-6

缘由捡钱活:按键控制流水灯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);}
	}
}
相关推荐
小小晓.几秒前
C++小白记:vector
开发语言·c++·算法
tkevinjd2 分钟前
力扣72-编辑距离
算法·leetcode·职场和发展
Lhappy嘻嘻10 分钟前
网络(四)|全网最细网络层原理:IP 协议、IP 地址分类、子网划分、路由转发、NAT 穿透详解
java·笔记·网络协议·计算机网络
小刘学技术11 分钟前
AI人工智能决策树分类器:原理、实现与应用
开发语言·人工智能·python·算法·决策树·机器学习·数据挖掘
脱胎换骨-军哥12 分钟前
C++ 嵌入式编程实例:从寄存器操作到底层驱动开发
开发语言·c++·驱动开发
鱼子星_33 分钟前
【C++】vector
开发语言·c++·笔记·stl
吃着火锅x唱着歌37 分钟前
Effective C++ 学习笔记 条款38 通过复合塑模出has-a或“根据某物实现出”
c++·笔记·学习
syagain_zsx41 分钟前
库制作与原理 · 链接知识笔记
c语言·c++·笔记·动态库·静态库
qz5zwangzihan141 分钟前
题解:Atcoder Beginner Contest abc467 A~D
c++·题解·atcoder·abc467
caimouse1 小时前
mm学习笔记_04:VAD树算法与地址空间分配
笔记·学习·算法·reactos