张飞软硬开源基于STM32 BLDC直流无刷电机驱动器开发视频套件,👉戳此立抢👈

用一条IO口实现两个按键功能

聚丰开发 2018-10-24 11:24 次阅读

注:本文是作者以前发表在其个人博客,现在发布到“聚丰开发”专栏



之前去到一个朋友那里,提到现在客户对成本要求非常之高,尤其是玩具行业,已经是一分一厘的去计算产品成本。朋友感慨为了省成本,方案商是绞尽脑汁地去想各种实现方法,说遇到过为了节省成本,硬是用单片机一条IO实现了两个按键的功能,让他颇为诧异,好久都没想明白原理。


一条IO实现两个按键,听上去确实挺新奇,既然别人能够实现,我想我也应该可以做到,看来得找找实现的方法。我有一个习惯,遇到某些问题的时候,会在睡觉前想解决方法,想着想着就会睡着了,问题的答案有没有找到则不一定。

t01c602919566465db9.jpg



我知道有用一条IO实现多个按键的方法,这样的方法大多是选用的IO支持ADC功能,用电阻分压后通过读电压判断键值。如果IO不支持ADC功能,也不是不行,可以用电容充放电的方法实现ADC,从而用普通IO间接进行测量。(参见我之前关于键盘扫描的文章)

这样用一条IO实现两个按键给我的第一感觉是可能需要利用到电容充放电原理,于是在半梦半醒之中找到了实现的方法。



先看上图左边部分,如果MCU_IO1为双向IO口,假设单片机程序按以下流程处理,看看会得到什么样的结果?

1.MCU_IO1设定为输出,输出高电平一段时间,此时电容C1会充电,最后C1上的电压接近电源电压。


2.MCU_IO1设定为输入,如果J1、J2均不按下,此时MCU_IO1可以理解成一个阻值很大的电阻接地,电容C1上的电荷会通过这个电阻逐渐释放掉,这样C1上的电压会逐渐降低到零。因为C1上的电压下降需要一个过程,当MCU_IO1设为输入后马上读一下MCU_IO1的状态,此时会读到什么结果?显然是高电平状态1。


3.再将MCU_IO1设定为输出,输出低电平一段时间,显然不管电容C1处于什么状态,只要MCU_IO1输出低电平时间足够长,最后C1上的电压应该接近零。


4.再将MCU_IO1设定为输入,如果J1、J2同样不按下,MCU_IO1读到的是低电平状态0。

如果J1按下,再来看看这四步,此时电容C1已经被强制接到电源上,MCU_IO1对其的充放电已经不起作用,在步骤2中MCU_IO1读到的状态依然是1,但在步骤4中MCU_IO1读到的状态就不再是0,而是变为1。

如果J2按下,同样看这四步,此时电容C1被强制接到地,MCU_IO1对其充放电也失去作用,在步骤2中MCU_IO1读到的状态变为0,但在步骤4中MCU_IO1读到的状态保持为1。

到这里我想大家应该已经明白了实现方法,根据此四步中读到的MCU_IO1状态,就可以判断出J1、J2是否按下。

既然已经找到方法,是不是就万事大吉了呢?不然,我们还得回过头去看看此方法是不是足够可靠。如果J1按下,电容C1直接接到电源上,当MCU_IO1输出低时,MCU_IO1输出的低电平直接与电源短路,弄不好就会烧坏MCU_IO1,同理当J2按下时MCU_IO1输出高也存在同样的问题。


还有比这更严重的问题,如果用户同时按下J1和J2,哈!居然是电源和地直接短路,这样的后果很可能就是整个产品的电源部分一股青烟了事,就别想产品还能不能工作了。

不用担心,看一看前面电路图中的右半部分,在开关J3和J4上分别串联了一个220欧的电阻,这个电路不管J3和J4如何按,都不会出现短路的情况,按前面的四个步骤即可判断出J3和J4有没有按下,不过如果J3和J4同时按下并不能进行识别判断。

t017908bec8218d5b33.gif

收藏 人收藏
分享:

评论

相关推荐

玩单片机到千万身家,“技术型老总”需要哪些神技能?

中国硬件创新大赛网络培训会—技术培训篇如果你就干这行,毫无疑问你不能错过这次直播;如果不是,可能你不一定喜欢单片机,也不
发表于 05-16 00:00 585次 阅读
玩单片机到千万身家,“技术型老总”需要哪些神技能?

使用电流采样反馈调整控制技术设计数控直流电流源系统的论文

本系统采用电流采样反馈调整控制技术,控制过程是利用LM741组成恒流源,结合放大电路,A/D转换电路....
发表于 08-22 16:08 12次 阅读
使用电流采样反馈调整控制技术设计数控直流电流源系统的论文

怎么看待CKS32单片机能取代ST32单片机问题

怎么看待中科芯CKS32单片机,能取代ST32单片机吗?你会选择CKS32的单片机吗?谢谢! ...
发表于 08-22 15:03 62次 阅读
怎么看待CKS32单片机能取代ST32单片机问题

PIC单片机,16F690用PICKIT3烧录程序,MPLAB显示程序烧录成功,但是单片机程序不运行,像没有程序一样

OUTPUT界面如下Connecting to PICkit 3...Firmware type......................MidrangeTarget Detected Progra...
发表于 08-22 10:37 72次 阅读
PIC单片机,16F690用PICKIT3烧录程序,MPLAB显示程序烧录成功,但是单片机程序不运行,像没有程序一样

想要免费领取FPGA学习资料吗?视频课程,论文,学习笔记,书籍样样都有!

近期许多用户希望学院可以分享一些FPGA的学习资料,综合了大家的意见,今天特意为大家整理了一份FPGA资料大礼包,这里...
发表于 08-22 10:11 98次 阅读
想要免费领取FPGA学习资料吗?视频课程,论文,学习笔记,书籍样样都有!

单片机串口转USB芯片-CP2102资料与使用心得

CP2102包括USB 2.0全速功能控制器、USB收发器、振荡器、EEPROM和UART。不需要其他的外围元件。Silicon La...
发表于 08-22 09:33 94次 阅读
单片机串口转USB芯片-CP2102资料与使用心得

怎么利用CAN总线进行MEGA8远距离在线升级?

CAN(Controller Area Network)即控制器局域网,是目前广泛应该的总路线之一。CAN总线通信距离限制小,它的直接通信距离最...
发表于 08-22 08:21 37次 阅读
怎么利用CAN总线进行MEGA8远距离在线升级?

AT89C52怎么实现PC非标准键盘?

随着嵌入式系统的飞速发展,嵌入式PC在工业控制、测量仪器等领域得到了广泛应用,如ADVANTECH公司的PC/104、 AMD...
发表于 08-22 07:58 34次 阅读
AT89C52怎么实现PC非标准键盘?

怎么设计基于单片机和FPGA的人机交互系统?

在现代各类仪器的开发中,人机交互功能正起着无可替代的作用。人机交互界面友好的仪器将更容易操作和使用,从而提高工作效率。液...
发表于 08-22 07:50 13次 阅读
怎么设计基于单片机和FPGA的人机交互系统?

雷达发射机安装调试要注意什么?

新一代雷达装备都设计有比较完善的机内测试(BIT)系统,它能对雷达的各功能模块进行实时监测,及时发现故障,将故障定位到现场...
发表于 08-22 07:00 17次 阅读
雷达发射机安装调试要注意什么?

请问F1系列和F7系列的单片机抗干扰能力有什么不同?

F7系列的单片机主频168M会不会比较容易受干扰?...
发表于 08-22 04:35 35次 阅读
请问F1系列和F7系列的单片机抗干扰能力有什么不同?

STC15F2K61S2读写初始化SD卡无法响应是怎么回事?

SD卡的输出口一直保持为低电平,SD卡无响应,SD卡的SPI模式,单片机的IO口要设置什么模式吗,能响应的情况很少,一共...
发表于 08-22 01:41 63次 阅读
STC15F2K61S2读写初始化SD卡无法响应是怎么回事?

实现LPC单片机双通道AD转换的功能的详细资料说明

随着移动设备的流行和发展,嵌入式系统已经成为一个热点。具有体积大、成本、功耗低和可靠性强的突出特点。....
发表于 08-21 17:43 19次 阅读
实现LPC单片机双通道AD转换的功能的详细资料说明

如何使用Protel DXP进行单片机最小系统原理电路的设计

利用Protel DXP的原理图设计系统及其原理图元件库编辑器等功能,建立单片机元件库,进行单片机最....
发表于 08-21 17:09 19次 阅读
如何使用Protel DXP进行单片机最小系统原理电路的设计

LED点阵显示程序和电路仿真与论文及应用程序合集免费下载

一、系统总体方案1、项目功能:用单片机(AT89S52)控制74hc595,使四块8*8的LED点阵....
发表于 08-21 16:40 15次 阅读
LED点阵显示程序和电路仿真与论文及应用程序合集免费下载

如何设计波形发生器详细设计论文免费下载

本次设计实现了一种波形发生器,可以产生三角波、正弦波、方波,其频率和幅度任意可调,并能产生各种调频信....
发表于 08-21 16:09 12次 阅读
如何设计波形发生器详细设计论文免费下载

使用单片机设计数控直流电流源的论文资料免费下载

本设计分四个模块:单片机控制及显示模块、数模(D/A)转换模块、恒流源模块、输出显示模块。单片机控制....
发表于 08-21 16:09 10次 阅读
使用单片机设计数控直流电流源的论文资料免费下载

使用AT89S51单片机设计数控直流电流源的详细论文资料免费下载

本数控直流电流源以单片机AT89S51为控制核心,由D/A转换器TLC5615、A/D转换器TLC2....
发表于 08-21 16:09 11次 阅读
使用AT89S51单片机设计数控直流电流源的详细论文资料免费下载

使用单片机设计LCD显示的数控直流电流源的论文资料免费下载

利用单片机所具有的智能测控特点,设计制作了基于单片机的“数控直流电流源”。该电流源具有设定准确、输出....
发表于 08-21 16:09 9次 阅读
使用单片机设计LCD显示的数控直流电流源的论文资料免费下载

单片机对两位共阳数码管的驱动设计

P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,驱动相应的三极管会....
发表于 08-21 14:39 37次 阅读
单片机对两位共阳数码管的驱动设计

友善串口调试助手应用程序免费下载

友善串口调试助手,串口通信调试,支持常用的110-256000bps波特率及自定义波特率,友善串口调....
发表于 08-21 11:44 9次 阅读
友善串口调试助手应用程序免费下载

使用信号发生芯片MAX038设计多功能波形发生器的论文免费下载

 本设计是基于信号发生芯片MAX038的多功能波形发生器。由MAX038、D\A 转换,MAX414....
发表于 08-20 17:28 21次 阅读
使用信号发生芯片MAX038设计多功能波形发生器的论文免费下载

使用ATmega64单片机作为控制核心设计LED点阵书写显示屏的论文

LED点阵书写显示屏由主控制模块、LED点阵屏模块、光笔检测电路、遥控键盘模块、液晶显示模块和开关电....
发表于 08-20 17:28 34次 阅读
使用ATmega64单片机作为控制核心设计LED点阵书写显示屏的论文

使用单片机和DDS芯片设计单工无线呼叫系统的论文免费下载

本系统是基于专用DDS芯片AD9851和接收芯片LA1800的具有8个从站的点对多点单工无线呼叫系统....
发表于 08-20 17:28 12次 阅读
使用单片机和DDS芯片设计单工无线呼叫系统的论文免费下载

使用MSP430单片机控制MPU6000传感器的程序免费下载

本文档的主要内容详细介绍的是使用MSP430单片机控制MPU6000传感器的程序免费下载。
发表于 08-20 17:06 27次 阅读
使用MSP430单片机控制MPU6000传感器的程序免费下载

如何使用单片机进行室内红外超声波定位和电机的跟踪调速控制的设计

本文提出了一种基于51单片机的室内目标定位并反馈指导电机控制的方案。采用红外线触发,超声波测距,三点....
发表于 08-20 17:03 39次 阅读
如何使用单片机进行室内红外超声波定位和电机的跟踪调速控制的设计

使用单片机的定时器设计60S秒表的实验资料电路图和程序免费下载

 一、实验目的   (1)学习定时/计数器的工作原理;   (2)学习51单片机定时器的....
发表于 08-20 16:45 22次 阅读
使用单片机的定时器设计60S秒表的实验资料电路图和程序免费下载

使用STM32F103单片机进行温度OLED显示实验的工程文件免费下载

本文档的主要内容详细介绍的是使用STM32F103单片机进行温度OLED显示实验的工程文件免费下载。
发表于 08-20 08:00 55次 阅读
使用STM32F103单片机进行温度OLED显示实验的工程文件免费下载

AD和DA转换器的详细介绍及其编程的资料概述

在实时控制和智能仪表等应用系统中,单片机所需处理的信号通常为模拟量,例如温度、压力、转速等等。这些模....
发表于 08-20 08:00 36次 阅读
AD和DA转换器的详细介绍及其编程的资料概述

ttl电平转换电路

第一例电路用了两个NPN三极管,我们先看单片机的发送,RS232的接收部分:当单片机的TXD输出高电....
的头像 发烧友学院 发表于 08-19 14:22 100次 阅读
ttl电平转换电路

STC-ISP单片机下载编程烧录软件四个版本应用程序免费下载

本文档的主要内容详细介绍的是STC-ISP单片机下载编程烧录软件四个版本应用程序免费下载包括了:st....
发表于 08-19 08:00 53次 阅读
STC-ISP单片机下载编程烧录软件四个版本应用程序免费下载

使用C语言进行单片机编程的基本知识点和编程规范资料总结

这个8*8按键程序的过程中,不管是在自己写还是参考别人程序的过程中,发现自己对C语言有些基本知识点和....
的头像 玩转单片机 发表于 08-17 09:08 222次 阅读
使用C语言进行单片机编程的基本知识点和编程规范资料总结

STM8S105系列单片机的数据手册免费下载

STM8S105xx接入线8位微控制器提供16至32千字节的闪存程序存储器,以及集成的真数据EEPR....
发表于 08-16 17:37 91次 阅读
STM8S105系列单片机的数据手册免费下载

复位电路的三种方式

单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机....
的头像 发烧友学院 发表于 08-15 15:23 208次 阅读
复位电路的三种方式

从原理图到PCB设计的DS18B20的测温电路实例演示

对于经常与单片机打交道的人,Protues是经常使用的仿真软件,对于我们的设计帮助很大。从设计到PC....
发表于 08-14 17:42 88次 阅读
从原理图到PCB设计的DS18B20的测温电路实例演示

W5500全硬件TCP IP协议以太网控制器模块的用户手册免费下载

YIXIN_W5500以太网模块是一款基于WIZnet W5500芯片的以太网模块,是一款性能出色、....
发表于 08-14 16:56 95次 阅读
W5500全硬件TCP IP协议以太网控制器模块的用户手册免费下载

单片机入门视频教程之基本电路知识的详细资料说明

本文档的主要内容详细介绍的是单片机入门视频教程之基本电路知识的详细资料说明。
发表于 08-14 16:56 227次 阅读
单片机入门视频教程之基本电路知识的详细资料说明

使用STM32F4和FDC2214实现简单的纸张计数工程文件免费下载

本文档的主要内容详细介绍的是使用STM32F4系列单片机和FDC2214电容传感器芯片实现简单的纸张....
发表于 08-14 08:00 147次 阅读
使用STM32F4和FDC2214实现简单的纸张计数工程文件免费下载

单片机外围器件实用技术手册电源器件分册PDF电子书免费下载

《单片机外围器件实用手册:电源器件分册》(北京航空航天大学出版社。关德新。冯文全) PDF格式扫描版....
发表于 08-13 17:15 178次 阅读
单片机外围器件实用技术手册电源器件分册PDF电子书免费下载

干货 | 几种常用单片机之间的通信方式

串行接口的RAM在市场上很少见,不但难以买到而且价格很高。
的头像 电子工程技术 发表于 08-12 16:59 256次 阅读
干货 | 几种常用单片机之间的通信方式

无线遥控灯具的结构及安装使用方法

无线遥控灯,由遥控部分和灯具部分组成。遥控和灯具上各由一块HT46单片机作为控制器,以NRF905无....
的头像 牵手一起梦 发表于 08-12 14:51 908次 阅读
无线遥控灯具的结构及安装使用方法

单片机的程序编写

MCU的程序的编写与PC下的程序的编写存在很大的区别,虽然现在基于C的MCU开发工具越来越流行,但对....
的头像 国科环宇 发表于 08-12 09:57 389次 阅读
单片机的程序编写

单片机的学习窍门分享

任何一款MCU,其基本原理和功能都是大同小异,所不同的只是其外围功能模块的配置及数量、指令系统等。
的头像 中国标准化 发表于 08-12 09:53 326次 阅读
单片机的学习窍门分享

微控制器的分类及应用

MCU是Microcontroller Unit 的简称,中文叫微控制器,俗称单片机,是把CPU的频....
的头像 电子工程技术 发表于 08-12 09:45 188次 阅读
微控制器的分类及应用

SN8F5702单片机的IO和定时器及PWM等学习资料合集免费下载

本文档的主要内容详细介绍的是SN8F5702单片机的IO和定时器及PWM等学习资料合集免费下载。 ....
发表于 08-12 08:00 50次 阅读
SN8F5702单片机的IO和定时器及PWM等学习资料合集免费下载

松翰单片机仿真器SN Link ISP V2.02应用程序免费下载

本文档的主要内容详细介绍的是松翰单片机仿真器SN Link ISP V2.02应用程序免费下载。
发表于 08-12 08:00 39次 阅读
松翰单片机仿真器SN Link ISP V2.02应用程序免费下载

DL-RTS1278M无线串口模块的数据手册免费下载

DL-RTS1278M是针对无线抄表、工业远程控制行业研发的一款高性能无线串口模块,其嵌入高速低功耗....
发表于 08-12 08:00 39次 阅读
DL-RTS1278M无线串口模块的数据手册免费下载

单片机最小系统的振荡电路原理分析

单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机....
的头像 玩转单片机 发表于 08-11 11:34 1016次 阅读
单片机最小系统的振荡电路原理分析

单片机的“功耗”如何计算?

单片机的功耗是非常难算的,而且在高温下,单片机的功耗还是一个特别重要的参数。
的头像 电子工程技术 发表于 08-11 11:33 666次 阅读
单片机的“功耗”如何计算?

如何在单片机上实现卡尔曼滤波详细计算方法和程序概述

本文档的主要内容详细介绍的是如何在单片机上实现卡尔曼滤波详细计算方法和程序概述。
的头像 玩转单片机 发表于 08-11 11:23 390次 阅读
如何在单片机上实现卡尔曼滤波详细计算方法和程序概述

51单片机的keil配置方法

Compact的方式要自己通过程序来指定页的高位地址,编程比较复杂,如果外部RAM很少,只有256个....
发表于 08-10 10:28 98次 阅读
51单片机的keil配置方法

STC ISP单片机烧录软件下载程序不成功应该如何解决详细方法说明

本文档的主要内容详细介绍的是STC ISP单片机烧录软件下载程序不成功的多个解决详细方法说明资料免费....
发表于 08-09 17:17 85次 阅读
STC ISP单片机烧录软件下载程序不成功应该如何解决详细方法说明

51系列中嵌入式单片机的优缺点分析

51系列是应用最广泛的单片机,由于产品硬件结构合理,指令系统规范,加之生产历史“悠久”,有先入为主的....
发表于 08-08 11:14 145次 阅读
51系列中嵌入式单片机的优缺点分析

51单片机从入门到精通教程之单片机原理与接口技术的详细资料讲解

本篇共6章,主要介绍MCS-51系列单片机的基础知识,内容包括51系列单片机的发展概况、硬件结构、指....
发表于 08-08 08:00 192次 阅读
51单片机从入门到精通教程之单片机原理与接口技术的详细资料讲解

使用单片机进行智能寻迹小车的设计资料合集免费下载

本文档的主要内容详细介绍的是使用单片机进行智能寻迹小车的设计资料合集免费下载包括了:毕业设计论文,参....
发表于 08-08 08:00 122次 阅读
使用单片机进行智能寻迹小车的设计资料合集免费下载

TX-1C 51单片机开发板使用手册和使用ADC0804实现示波器的工程文件

本文档的主要内容详细介绍的是TX-1C 51单片机开发板使用手册和使用ADC0804实现LCD128....
发表于 08-08 08:00 111次 阅读
TX-1C 51单片机开发板使用手册和使用ADC0804实现示波器的工程文件

微机原理及接口技术的七个实验指导资料免费下载

本文档的主要内容详细介绍的是微机原理及接口技术的七个实验指导资料免费下载包括了:实验一 一个简单的微....
发表于 08-08 08:00 116次 阅读
微机原理及接口技术的七个实验指导资料免费下载

浅析单片机指令执行过程

单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。
的头像 贸泽电子设计圈 发表于 08-07 14:47 234次 阅读
浅析单片机指令执行过程

单片机中,P0上拉电阻的阻值的选取何讲究?

由于P0口内部没有上拉电阻,是开漏的,不管它的驱动能力多大,相当于它是没有电源的,需要外部的电路提供....
的头像 贸泽电子设计圈 发表于 08-07 14:23 215次 阅读
单片机中,P0上拉电阻的阻值的选取何讲究?

RAM在单片机中用途是什么?

单片机就是个小计算机,大计算机少不了的数据存储系统,单片机一样有,而且往往和CPU集成在一起,更加显....
的头像 贸泽电子设计圈 发表于 08-07 14:10 212次 阅读
RAM在单片机中用途是什么?

MSP430F5529开发板实验指导书和程序免费下载

MSP430F5529 是最新一代的具有集成 USB 的超低功耗单片机,可以应用于能量收集、无线传感....
发表于 08-07 08:00 160次 阅读
MSP430F5529开发板实验指导书和程序免费下载