【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);}
	}
}
相关推荐
rou8 分钟前
Attention(注意力机制)
算法
信奥卷王28 分钟前
[GESP202609 六级] 数组划分
数据结构·算法
Xudde.42 分钟前
CVE-2017-9993漏洞复现
笔记·学习·安全·web安全
大鹏的NLP博客1 小时前
C++ 内存安全的未来:从 Safety Profiles 到 Safe C++
c++·内存安全
牧羊人.3331 小时前
动手学深度学习 07|Resnet网络与迁移学习
网络·人工智能·深度学习·神经网络·算法·cnn·迁移学习
程序员zgh1 小时前
C++ erase() 函数用法
c语言·开发语言·c++·学习
FakeOccupational1 小时前
【电路笔记 STM32】Cortex-M7 UART 中断模式(串口接收中断+串口空闲中断)
笔记·stm32·单片机
小李不想当小白1 小时前
USART串口协议(STM32标准库学习笔记)
经验分享·笔记·stm32·单片机·嵌入式硬件·学习
All for pursuit.2 小时前
【并查集-2】399.除法求值
数据结构·c++·算法·leetcode
迪丽热爱2 小时前
一、C语言概述与程序结构
c语言·开发语言·算法