单片机同一按键实现长按开关机,短按换挡,并带有记忆功能
前言
极简,注意看解释。话不多说,上代码!
一、解释
代码用到的一端口为单片机上的,调用一下,完成功能。
二、代码
1.调用以及定义
代码如下:
(PB0)11|------------NC //此为调用的端口,开关机标志
(PA4)15|------------NC //此为端口,相当于KEY
NC------------|3(PC0) //此为端口,相当于LED1(红灯)
NC------------|2(PC1) //此为端口,相当于LED2(蓝灯)//以下为定义
int h=0; //记忆红灯 标志位
int l=1 ; //记忆蓝灯 标志位
int a; //判断长按//主函数定义灯的初始状态
PC0=1;PC1=1; //初始化灯的状态
2.KEY代码
void KEY_Init(void)
{ if(PA4==1)return; if(PA4==0) //检测按键是否按下{ a++;DelayMs(10); //去抖if(b==1){if(PA4==0&&a>30){a=0 ;PB0=~PB0;b=0;if(h==1){PC0=~PC0;} //记忆开红灯挡else if(l==1){PC1=~PC1;} //记忆开蓝灯挡 }else if(PB0==1){if(PA4==1) //调档{ a=0 ; if(h==1){PC0=~PC0;PC1=~PC1; l=1;h=0;} //红换蓝挡并记忆蓝灯else if(l==1){PC1=~PC1;PC0=~PC0; h=1;l=0;} //蓝换红挡并记忆红灯 }}else if(PA4==1){a=0;b=1;return;} }else if(PA4==1){b=1;return;}} }
总结
以上就是今天的内容,本文仅仅简单实现了功能,代码写的比较生涩,海涵!
单片机同一按键实现长按开关机,短按换挡,并带有记忆功能相关推荐
- 应广单片机长按开关机_单片机单键开关机电路,模仿手机电源键功能 - 实现长按开机、长按关机、轻触开关锁屏...
分享一个自己电路中的 单键开关机电路,需要与单片机的I/O配合,可实现手机电源键功能,如长按开机.长按关机.轻触开关锁屏或其他自定义功能.并且静态功耗极低,最大uA级,非常适合电池供电. 电路需求 电 ...
- 一种单键开/关机电路,实现手机电源键功能:长按开机、长按关机、轻触开/锁屏
分享一个自己电路中的 单键开关机电路,需要与单片机的I/O配合,可实现手机电源键功能,如:长按开机.长按关机.轻触开关锁屏或其他自定义功能.并且静态功耗极低,最大uA级,非常适合电池供电. 一.电路如 ...
- 【电子电路】五款单按键开关机电路图
(一) 单按键开关机电路图 本例电路可实现通过按一次按键S1实现开机,再按一次S1实现关机的功能. 整个电路的工作过程: 电路中连接器P1是一个电源连接器,电源+从1,2脚输入,电源地从3,4脚输入. ...
- NVIDIA Jetson Xavier NX禁用上电自启,使用按键开关机
NVIDIA Jetson Xavier NX禁用上电自启,使用按键开关机 文章目录 NVIDIA Jetson Xavier NX禁用上电自启,使用按键开关机 前言 一.原理 二.拓展 前言 NX默 ...
- 51单片机——按键,定时器消抖,短按,长按,三行代码,状态机
0. 序 今天太晚了,先不写介绍了,代码中注释非常详细,很方便移植 双击,三击等操作,可以在状态机的短按操作中做更改. 组合键需要重新构思,在扫描中确定被按下和被抬起的是哪个键. 1. 分析 (1)按 ...
- 按键控制电源通断,实现各种设备/电脑开关机低功耗IC
一.前言 今天记录一下一些硬件开关电的低功耗控制ic,代替物理机械开关,后续有新的更好用的芯片会继续更新此博. 目录 一.前言 二.环境 三.正文 1.5BE1-2C72 2.1489-EBD7 3. ...
- 计算机管理任务类别103,win7系统如何查看电脑的历史开关机时间|win7系统怎么查询电脑开机后运行多长时间...
win7系统如何查看电脑的历史开关机时间 为了避免自己的电脑被他人盗用,可以通过电脑自带的程序软件查看电脑的历史开关机时间,以此来判断是否有人在你不在的情况下动过你的电脑.接下来小烟就给大家介绍一下w ...
- 51单片机——矩阵按键逐行扫描短按长按一直按方案1.2
1.删减了<51单片机--独立按键.矩阵按键多种方案1.1>里的一些不怎么用的代码. 2.添加了逐行扫描按键(需要定时器20毫秒配合使用). 3.支持按键短按.长按.一直按,代码里只做了短 ...
- 单片机独立按键模块(含短按,长按,连发功能)
最近看了很多按键扫描的文章,发现各有长处,后来自己花了一点时间做了一个单片机独立按键扫描的模块,此模块优点颇多,支持短按,长按,连发功能,只要配置相关结构体就可以实现这些功能,唯一的缺点是不支持多按键 ...
最新文章
- LeetCode Majority Element
- 剑指offer(34-40题)详解
- hdu 1014 Uniform Generator 数论
- C语言strftime()函数 (格式化时间)(注意第二个参数size_t maxsize一定要大于第三个参数const char *format指向字符串的长度)
- 加拿大达内科技_美股继续暴跌模式 达内教育却“暴走”股价近翻倍
- 使用mac以来的一些认识
- 又一大波机械动图来了,工作原理都能看明白!
- go实现文件服务器,golang文件服务器的两种方式(可以访问任何目录)
- 什么是 Linux 中的显示管理器?
- self._handle = _dlopen(self._name, mode) OSError: [WinError 126] 找不到指定的模块
- linux服务器通过代理连接网络
- python爬虫:利用BeautifulSoup爬取链家深圳二手房首页的详细信息
- 实战技巧-学会这一招让前端工程师都刮目相看
- csv,tsv,txt文件类型区别
- 关键点检测之直接回归(逐行手撕Pytorch)
- 模糊数学 4、模糊模式识别
- TerraBuilder 操作制作MPT
- c语言中?:是什么意思?
- html表格标签以及CSS基础
- Android Native代码中的status_t定义