首页 > 其他分享 >蓝桥杯单片机入门(8)—按键控制LED流水灯,加速,减速,暂停,开始

蓝桥杯单片机入门(8)—按键控制LED流水灯,加速,减速,暂停,开始

时间:2024-08-27 17:23:07浏览次数:11  
标签:case break LED Time 蓝桥 单片机 Flag 按键

这回我们讲的是,按键对LED灯的控制,这次是基于上次按键模块的基础上进行了进一步的加工,处理。通过按键,实现对LED流水灯的对应的各种功能。

首先,在这里先介绍一个概念,标志位,标志位可以理解为设置的一个变量,这个变量作为标志位去使用,给标志位赋不同的值,执行不同的任务。比如标志位Flag=0,去执行LED灯的加速,让Flag = 1,则去执行LED灯减速。

按键控制LED流水灯的暂停,开始。

        基于上次按键模块的基础上,再次增加了以下几个改动的地方,代码如下,以下代码的功能是通过按键实现对流水灯的开始,暂停操作

unsigned char LED = 0XFE;//给8位灯赋的一个初始值
unsigned int Time = 600;//类似于宏定义,给Time一个固定的600毫秒的值
bit Flag;//设置一个标志位

		if(Flag = 1)//设置一个标志位
		{
			LED = _crol_(LED,1);//进行移位
			Delay(Time);//延时600毫秒
		}
		
		switch(Key_Down)
		{
			case 1:Flag = 1;break;//如果SW1按下,让标志位为1,则执行LED流水灯开始的操作
			case 2:Flag = 0;break;//如果SW1按下,让标志位为0,停止执行LED流水灯开始的操作
		}

接着,我们实现一下通过按键对流水灯的加速减速操作,我们可以通过对延时函数的延长时间进行加速减速,这样子我们即可完成按键对LED流水灯的操作加速减速

		if(Flag = 1)//设置一个标志位
		{
			LED = _crol_(LED,1);//进行移位
			Delay(Time);
		}
		else if(Flag = 2)
		{
			Time = Time+100;
			LED = _crol_(LED,1);//进行移位
			Delay(Time);

		}
		else if(Flag = 3)
		{
			Time = Time-100;
			LED = _crol_(LED,1);//进行移位
			Delay(Time);
		}		
		switch(Key_Down)
		{
			case 1:Flag = 1;break;
			case 2:Flag = 0;break;
			case 3:Flag = 2;break;
			case 4:Flag = 3;break;
		}
	}

标签:case,break,LED,Time,蓝桥,单片机,Flag,按键
From: https://blog.csdn.net/2301_80399461/article/details/141607711

相关文章

  • 【python3.8安装报错】lmportError: DLL load failed while importing ft2font: 找不
    客户需求背景:安装python3.8无法运行,报错lmportError:DLLloadfailedwhileimportingft2font:找不到指定的模块 考虑兼容性问题这个问题首先需要考虑的是是否是python版本太高了,因为python3.9不支持win7,而python3.8版本对win7的兼容性也有一定的限制。解决:首先考......
  • module verification failed: signature and/or required key missing - tainting ker
    不同的机器编译同一个版本的内核源码生成的签名密钥(`signing_key.pem`)是不相同的。以下是原因和详细解释:签名密钥(`signing_key.pem`)的生成过程当你在编译内核时,默认情况下,内核编译过程会生成一个新的签名密钥对(包括`signing_key.pem`和`signing_key.x509`)。这个过程......
  • STM32 - 按键控制LED灯
    功能:按键控制LED的亮灭。两个按键:PE3和PE2两个LED:PE5和PB5按键PE3控制LED2-PE5;按键PE2控制LED3-PB5main.c:#include"stm32f10x.h"//Deviceheader#include"Delay.h"#include"LED.h"#include"Key.h"uint8_tKeyNum;i......
  • Request processing failed:MyBatisSystemException 黑马web开发课程P152中可能出现的
    该异常的最后一句,通过翻译,大概是:   [dispatcherServlet]:servlet.service()forservlet[dispatcherServlet]在路径[]的上下文中抛出异常[请求处理失败:MyBatisSystemException]    经过对代码的检查,发现controller,sevice,dao层业务逻辑都没有问题dao层的map......
  • AlphaGo Zero论文《Mastering the game of Go without human knowledge》阅读笔记
    AlphaGoZero论文阅读笔记原论文:《MasteringthegameofGowithouthumanknowledge》简述:论文提出了一种新的围棋人工智能算法AlphaGoZero,该算法可以在完全无监督的情况下进行训练,并且超越了之前的AlphaGoFan和AlphaGoLee的表现。该算法具有如下特点:在无监督的情况......
  • 已解决:`javax.security.auth.RefreshFailedException` 刷新失败的正确解决方法,亲测有
    在Java开发中,javax.security.auth.RefreshFailedException异常通常涉及到安全认证和授权机制。这个异常通常在尝试刷新或更新认证凭证时出现问题,可能会影响到应用的安全性和稳定性。本文将详细分析该异常的原因,并提供有效的解决方法。1.问题描述javax.security.auth.R......
  • 网站提示412 Precondition Failed:服务器未满足请求的先决条件怎么办
    当遇到“412PreconditionFailed”错误时,这意味着服务器没有满足客户端在请求中设置的一个或多个先决条件。这种错误通常与HTTP请求中的条件控制头字段(如 If-Unmodified-Since, If-Match, If-None-Match 等)有关。解决方案检查条件控制头确认请求中是否包含了条件控制......
  • 蓝桥杯单片机入门(4)—编写代码的主函数框架
    这回,我们要讲的是代码编写的大体框架图中注释写的已经很清楚了,一般情况下,我们在最开始的顶部进行头文件的引入其次,主函数一般是不需要有返回值的,如果需要那就定义成int类型,这里我定义的是void没有返回值的类型的函数。voidmain下面就是代码执行的区域了,while(1)是一个死循环......
  • 蓝桥杯单片机入门(6)—LED灯模块
    这回我们讲,蓝桥杯中LED模块1.点亮一颗LED灯    在写代码之前我们必须要先明确自己的目的,然后根据需求去写对应的代码功能。首先我们要实现点亮一颗LED灯,在此之前我们要先了解一下LED灯的工作原理,    首先我们看一下,LED灯的原理图,图中写LED1的地方就是LED灯,......
  • 新建一个基于标准新建一个基于标准固件库的工程模板固件库的工程模板(实现LED单灯闪烁)
    实验报告原件在资源可选择性下载一、实验目的:1.了解STM32固件库;2.掌握STM32固件库关键子目录及固件库关键文件;3.能够新建一个基于标准固件库的工程模板并完成编译二、实验器材:笔记本或电脑。三、实验内容:1.构建proteus8LED构图。2.STM32构建适应于keil5的编译器格式......