0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

仅使用两根电线即可感应多个按钮

星星科技指导员 来源:ADI 作者:ADI 2023-01-14 12:00 次阅读

对于只需要不到键盘或数字键盘的应用,这个简单的电路使用单个多通道1-Wire可寻址开关(DS2408)和几个外部元件来监视多个按钮开关。

键盘和数字小键盘通常为电子设备提供用户界面,但许多应用只需要少量按钮。对于这些,您可以通过一对电线监控多个按钮(图1)。

pYYBAGPCKMeADgNCAAAZ6JFG6P8406.gif?imgver=1

图1.该电路连接到微控制器,仅使用两根电线即可监控8个按钮。

多通道、1-Wire可寻址开关(U1、DS2408)提供输入/输出端口P0–P7,在本应用中用作输入。高值电阻器(R帕金森)将这些端口接地以确保定义的逻辑状态(0),D1–C1形成本地电源,从1-Wire通信线路窃取能量。当您按下按钮时,它将相应的端口连接到本地电源电压,相当于逻辑1。这种状态变化设置端口的活动锁存器(参见数据手册)。

条件搜索轮询

作为1-Wire从器件,U1不启动通信。相反,主机(通常为微控制器)轮询1-Wire线路。为了最大限度地降低开销,U1支持称为“条件搜索”的1-Wire网络功能。但是,在使用该功能之前,必须根据应用程序的需要配置 U1。这包括定义合格输入端口(通道选择),指定合格端口的极性(通道极性选择),在端口的引脚或活动锁存器之间进行选择,以及指定设备是响应单个端口的活动(OR)还是所有端口的活动(AND)。

配置示例

例如,如果八个端口中的任何一个检测到活动,则考虑 U1 将执行条件搜索。此条件需要以下配置设置:通道选择掩码(地址 008Bh)= 11111111b(1 表示选择了端口);通道极性选择寄存器(地址008Ch)= 11111111b(1表示电平必须高);控制/状态寄存器(地址 008Dh) = 00000001b(选择端口的活动锁存器作为源,并指定 OR 作为条件搜索词,即单个端口上的活动)。

上电后,必须使用写入条件搜索寄存器命令将配置数据加载到 U1 中。要用作输入,PIO 输出锁存器必须设置为 1。通道访问写入命令(以 FFh 作为 PIO 输出数据字节)将端口定义为输入。随后,“重置活动闩锁”命令的发出将完成配置。U1 现在已准备好处理按钮活动。

软件大纲

配置U1后,上电时的应用软件进入无限循环,其中1-Wire复位后跟条件搜索命令。如果没有按钮活动,则 U1 没有响应,如条件搜索命令代码后面的两个位的“逻辑 1”所示。在这种情况下,微控制器取消条件搜索并重新开始。

如果 U1 响应条件搜索,则前两位将为 1 和 0,以真形式和反转形式表示设备家族代码 (29h) 的最低有效位。在这种情况下,微控制器应完成条件搜索流程,该流程由192位序列组成(参见数据手册)。接下来,微控制器通过使用PIO活动锁存器状态寄存器的地址(地址008Ah)发出读取PIO寄存器命令来读取寄存器的数据。然后,微控制器发出1-Wire复位,然后发出恢复和复位活动锁存器命令。然后,它返回到无限循环,轮询下一个按钮事件。

如果U1响应且未连接其他1-Wire从机,微控制器可在读取前2位后取消条件搜索,发出1-Wire复位,然后发出Skip ROM命令,然后读取PIO活动锁存器状态寄存器。接下来,它必须发出1-Wire复位,然后发出跳过ROM和复位活动锁存器命令,然后返回无限循环。

按下了哪个按钮?

从PIO活动锁存器状态寄存器读取的代码包含答案。如果按下 PB1,则数据为 00000001b,对于 PB2,数据为 00000010b,依此类推。8 位中至少有一个为 1。如果自上次“重置活动闩锁”命令以来按下了多个按钮,则几个位将为 1。然后,应用软件必须决定此类条件是否有效。 (在最简单的情况下(8 个代码中的 1 个),软件会将所有设置了多个位的代码视为无效。

超过 8 个按钮

这个概念可以扩展到8个以上的按钮。您可以将其他按钮与同时激活的两个端口相关联,而不是将一个按钮与一个端口相关联(2/8 代码)。这些附加按钮 (PBn) 的连接如图 2 所示(x, y = 0 到 7, x ≠ y)。如果 Px 或 Py 被另一个按钮激活,二极管会阻止该活动传播到其他端口。同样,应用软件必须检查从PIO活动锁存器状态寄存器读取的代码,以确定其是否有效。这个概念的理论极限是 255 个按钮,每个额外的按钮需要组合 2、3、4、5、6、7 或 8 个二极管。当每增加一个按钮的二极管成本开始超过收益时,你会发现再增加一个DS2408更具成本效益。

poYBAGPCKMmAKn4bAAAFuQa4MfA860.gif?imgver=1

图2.如果使用二极管将其他按钮(最多 28 个)连接到两个端口,则可以对其进行监控。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电源
    +关注

    关注

    184

    文章

    17471

    浏览量

    249057
  • 电阻器
    +关注

    关注

    20

    文章

    3745

    浏览量

    61964
  • 锁存器
    +关注

    关注

    8

    文章

    904

    浏览量

    41416
收藏 人收藏

    评论

    相关推荐

    两根线重叠绕制的共模电感和两根线各自占磁环一边绕制的共模电感效果有什么区别

    如下图,图一的共模电感是两根线重叠绕制的,图二的共模电感是两根线各自占磁环一边绕制的,这个共模电感效果上有什么区别吗?各自有什么优点?用于什么场合?图一 共模电感是两根线重叠绕制图二
    发表于 09-29 10:26

    请问GND上面的两根斜线是什么?

    RT,那两根斜线是什么鬼?
    发表于 04-17 06:36

    为什么PCB大电流到要两根并行?

    PCB 为什么大电流到要两根并行
    发表于 07-07 22:19

    如何在AD中设置两根网络线的距离?

    AD怎么设置两根网络线的距离
    发表于 09-19 03:07

    请问485通讯中能把多个通讯设备直接并联在A,B两根线上吗?

    我想在485的通讯中直接把多个通讯设备直接并联在A,B两根线上,这样可以吗???PC经过232转485的板子,然后并联不大于10个的设备在A,B线上,这样可以通讯吗???如果这样可以的话,用那种协议
    发表于 10-21 01:49

    喇叭两根线接反了会有区别吗

    请问喇叭两根线接反了会有区别吗?
    发表于 02-14 14:38

    如何去接外接制动电阻的两根线

    本文适用于立迈胜PMM系列一体化伺服电机出现的常见问题。如您的伺服电机是其他型号的请谨慎操作。解决方法如下:外接制动电阻的两根线,其中一接到电机的制动电阻线上,另一接到电机48V
    发表于 09-01 07:53

    耳机子两根线断了有没有正负

    先上图:耳机子两根线都断了,网上搜的说没有正负。还说要去掉漆。两根线一黄的,一绿的,那绿的是不是涂漆了,怎么去掉啊?谢谢!
    发表于 02-08 16:02

    四线直流碳刷电机转子两根线定子的两根线怎么接才能转呢?

    四线直流碳刷电机转子两根线定子的两根线怎么接才能转呢?
    发表于 03-20 14:22

    不是两根内存就能实现双通道

    DIY玩家都知道双通道是一种内存控制和管理技术,通过同时向两根内存中读写数据来实现双倍的内存带宽,也就可以提升电脑的性能。
    的头像 发表于 03-05 08:54 3588次阅读

    电容坏了怎么测出来_电容两根线怎么接

    本文主要阐述了电容坏了的测试方法及电容两根线的接线方法。
    发表于 03-17 13:53 2.3w次阅读

    为什么两根相线之间的电压是380V

    我们从电压矢量图中可以清晰的看出来,线电压是相电压的√3倍,变压器二次侧引出的A相B相C相任意项之间的电压都是380V,所以两根火线之间的电压都是 380V;
    的头像 发表于 08-28 16:59 2.1w次阅读
    为什么<b class='flag-5'>两根</b>相线之间的电压是380V

    两根2.5平方电线拧在一起相当于5平方电线吗?

    比如2.5平方的铜芯线,暗线铺设最大可以承受4000瓦的电器功率,6平方的铜芯线可以承受7500瓦以内的电器功率。而两根2.5平方的铜芯线并接在一起,理论上讲就可以承受8000瓦以内的电器功率。
    的头像 发表于 07-16 11:29 2690次阅读
    <b class='flag-5'>两根</b>2.5平方<b class='flag-5'>电线</b>拧在一起相当于5平方<b class='flag-5'>电线</b>吗?

    温度传感器两根线怎么接线 温度传感器两根线与三线的区别

     一般来说,温度传感器的两根线通常没有“正”和“反”之分。这是因为温度传感器主要用于测量温度,而不涉及电流的方向或极性。
    的头像 发表于 08-14 15:35 1.7w次阅读
    温度传感器<b class='flag-5'>两根</b>线怎么接线 温度传感器<b class='flag-5'>两根</b>线与三<b class='flag-5'>根</b>线的区别

    电线是如何让机车运行的?

    不知你注意没有,高铁的用电都是用一电线,并不是和家庭用的电一样是两根电线
    的头像 发表于 12-29 10:29 678次阅读
    一<b class='flag-5'>根</b><b class='flag-5'>电线</b>是如何让机车运行的?