DIP开关与单片机,MCU接口的基本原理

q a &
问:dip 开关与单片机 mcu接口的基本原理
将单片机 (微控制器) 连接到双列直插式封装( dip ) 开关是一种常见的应用。俗称“dip” 的开关可用于各种设计,从适合面包板原型设计的传统 dip 到表面贴装“钢琴”型,再到易于读取十六进制值的旋转开关。
在这篇文章中,我们将仔细研究旋转开关,并探索如何将其集成到我们的单片机设计中。本文中介绍的技术一般适用于所有单片机设计。
从规则开始
让我们从一个简单的规则开始:不允许浮动输入 。当单片机引脚被配置为输入,但在其他情况下未连接时,就会出现浮动输入。这里展示了一个例子。当开关闭合时,关联引脚被绑在正轨上。当开关打开时,引脚是浮动的。
这是非常不希望的,因为浮动引脚可能被解释为逻辑高,或者在其他时候,逻辑低。从故障排除的角度来看,单片机的响应将没有任何韵律或原因。引脚容易受到噪声的影响,并且通常会松散地遵循相邻单片机引脚的值。 解决方法是增加一个下拉电阻,如下图所示。有了这个小小的变化,当开关闭合时,单片机的引脚就会向上拉到导轨上,或者当开关打开时,它就会向下拉到地上。暂时忽略开关弹跳,单片机将有一个干净的输入。
优化解决方案
现代单片机就是为这种类型的接口而设计的。几乎所有的单片机都具有 i/o 部分,其内部电阻可以向上拉或向下拉 i/o 引脚。这是可取的,因为开关可以直接连接到单片机,从而消除了外部电阻器的需要。
技术小贴士 :
一些单片机具有上拉和下拉电阻。其他将只有一种类型,与上拉配置更常见。这些外设通常被称为“弱上拉”,消耗数十到数百ua。这相当于连接一个值在15 kω到150 kω之间的外部拉电阻。
arduino的一个例子是:
pinmode (sw_pin_d0input_pullup);
该原理图给出了单片机与开关接口的一种方式。虽然本例采用旋转 dip 开关,但该设计适用于所有开关。观察:
内部上拉电阻使用单片机的特殊功能寄存器启用
开关的公共元件连接到地
技术小贴士 :
原理图中显示了一个可选的串联电阻以及可选的多路复用部分。这允许 i/o 引脚执行双重任务。例如,这个小口宽的接口可以用来读取开关,也可以用来驱动 lcd 显示器的 d3 到 d0。这可能是可取的,因为它有可能以牺牲电路和代码复杂性为代价减少单片机引脚数和pcb的总体尺寸。
在我们结束之前,让我们看一下与旋转 dip 开关相关的物理开关代码。代表性的hex代码取自欧姆龙的数据手册。观察 a6a-16r 和 a6a-16c 型号对应的“bcd十六进制码” 和 “bcd十六进制补码” 两个开关配置。
回头看单片机原理图及其相关的上拉电阻,我们看到了一个反转。例如,当开关处于1位置时,在位置2 + 4 + 8上会有三个正逻辑输入。同时,如果安装了互补开关,则会有一个对应于1信号的正逻辑(有源高电平)输入。
从编程的角度来看,这个物理开关代码中的这种差异是无关紧要的。一个简单的 bit 反转指令就会使它们相等。从故障排除或教育的角度来看,互补版本可能更容易理解,因为它导致单片机引脚上存在正逻辑值。


物尽其用,教你便携式产品的省电方案
家中的智能LED照明的控制策略和无线网络协议
与6000亿美元失之交臂的苹果
探讨与分析电力系统谐振消除方法
详解全数字无线麦克风K歌模组S62KTV-X系列
DIP开关与单片机,MCU接口的基本原理
采用PNP管扩展输入的正极性输出稳压电源电路图
飞凌i.MX8MM-C核心板之机器人控制平板方案的介绍
浅谈兆芯、海光、鲲鹏等国产通用芯片的发展道路
一个低成本立体声线路驱动器的电路图
电压放大器原理(电压放大器适用于什么场合使用)
PT8022K电容式触摸控制ASIC概述及特性
扫地机器人未来的趋势是怎样的
电容容值的不同将影响着工业一体机的触摸灵敏度
vivo正式发布专业影像旗舰X60 Pro+
数码配件除了ANKER你还知道哪家?无线电二厂,了解一下
使用ARM编译器V6.15优化以及注意事项
音频放大电路图锦集
12V/24V转正负150V/200V/300V双路控制可调模块电源
区块链对于公司而言会有什么影响