【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);}
	}
}
相关推荐
CQU_JIAKE6 分钟前
10.31[A]
算法·深度优先
zwc321043205510 分钟前
Day 5:threshold与inRange阈值分割
c++·图像处理·人工智能·opencv·算法·计算机视觉
笨笨饿12 分钟前
#60_# 一、Photoshop 2025 如何批量导出 PSD 文件中的所有图层为独立 PNG 图片
stm32·单片机·嵌入式硬件·物联网·ui·51单片机·photoshop
云-缩影13 分钟前
实际项目中怎么选排序算法:从面试题到工程落地
java·算法·排序算法
小徐不徐说18 分钟前
数据库存储基础:理解表结构、主键、事务与 BLOB
开发语言·数据库·c++·qt·程序设计
Pniubi25 分钟前
力扣46全排列(回溯(递归))
算法·leetcode·职场和发展
草莓熊Lotso32 分钟前
【C++ 基于微服务的即时通讯系统】网关基建:cpp-httplib 与 WebSocketpp 从入门到实战
linux·开发语言·数据库·c++·redis·微服务·云原生
中云DDoS CC防护蔡蔡9 小时前
DDOS和CC攻击谁更可怕
运维·服务器·经验分享·网络安全·ddos
Sakura_j_h_9 小时前
EasyEDA PCB 快速设计Skills
c++·python·github
上海广测检测科技有限公司10 小时前
蓝牙音箱的 BQB 认证:音频服务层组合、引用链判定与测试状态设定
经验分享