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

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

3天内不再提示

使用引脚复用减少8位单片机的引脚使用

jf_pJlTbmA9 来源:Microchip微芯 作者:Microchip微芯 2023-09-18 10:56 次阅读

本文将介绍两个利用通用输入/输出(GPIO)引脚复用来减少项目引脚使用的示 例。第一个示例使用了“查理复用算法”技术,第二个示例使用了定时外设和中 断来快速切换引脚输入状态和输出状态,以在驱动 LED 的同时读取按键。

PIC®和 AVR®单片机上的引脚复用

通用输入/输出(GPIO)引脚是单片机设计时的重要考量之一。您需要足够的引 脚将单片机连接到设计中的所有其他组件;但是,超过所需的引脚可能会导致设计 成本增加,并且占用电路板上更多空间。此外,减少设计中的所需引脚数量可能就 可以选择另一种不同的封装。如果有一种方法可以从较小的封装中挤出更多的 I/O 引脚就好了!幸运的是,我们确实有方法可以在这种情况下释放引脚。

下面是 Microchip 应用团队使用 AVR DD 系列单片机创建的两个示例。首先, 我们将探讨通过一种称为“查理复用算法”的技术复用 GPIO 引脚来控制 LED。接 下来,我们将看一下如何使用单个引脚同时运行独立的按键和 LED。

查理复用算法的核心思想是利用单片机引脚可以处于的三种状态:数字高电平、 数字低电平和高阻抗数字输入状态(也称为高阻态或三态)。通过使用这三种状态 而不仅仅是典型的高电平和低电平,用户可以使用 n 个引脚驱动最多(n2 -n)个独立的 LED。在此示例中,三个指定的引脚可以驱动六个独立的 LED。

那么查理复用算法的工作原理到底是什么呢?为了理解这一点,我们需要看一 个示例。

wKgaomUDv_KAA0GAAAC5GrUojiM970.png

这里我们用三个 I/O 引脚驱动六个 LED。

如果我们只想导通 LED1,则需要将 PA2 设为高电平,PA3 设为低电平,PA4 设为高阻态。电流将流过 LED1 并使其导通,同时使所有其他 LED 保持关断状态。

wKgZomUDv_SAdeTKAAC8hCUPlDI072.png

这里的三态十分重要,因为如果 PA4 为“低电平”,它也会意外导通 LED5。 如下面所示:

wKgZomUDv_WAJKOZAADC0ujOp5U732.png

高阻抗逻辑状态确保电流只流过 LED1。利用 I/O 引脚状态的相应组合(要获得 预期行为,用户必须将一个引脚设为高电平、一个引脚设为低电平,其余引脚设为 高阻抗),可以为电路中的任何 LED 重复此过程。

虽然在任意给定时刻这种方法只会点亮一个 LED,但是快速改变 I/O 状态可创 造出点亮多个 LED 的错觉。(LED 调光的工作原理是通过在单个 LED 上使用脉冲 宽度调制,原理与此非常相似)。可以在下面看到:(点击图片查看动态效果)

第二个示例涉及到在单个引脚上改动一个 LED 和一个按键。

从有利的角度看,可利用中断和定时器来实现此目的。单片机引脚大部分时间 都在驱动 LED。然而,一个定时外设会定期在单片机内部触发中断,将引脚从输出 快速切换为输入,然后检查按键的状态。虽然这会暂时停止驱动 LED,但如果这个 过程可以做得足够快,那么在检查按钮状态的时候,对 LED 造成的影响几乎不可见。 我们在下面的示例中使用了这种方法。单片机不停地驱动一个闪烁的 LED,同 时定期检查按键,如果按键被按下,就会点亮一个单独的 LED。

wKgaomUDwAqAQea-AD6x_NlhhEg261.gif

尽管本文章只涵盖了这两种技术的基础知识,但我们的 Microchip 应用团队发布 的相应 GitHub 页面包含了图表、示例代码和更详细的说明。请访问该页面或我们 的 AVR DD 产品系列页面来了解更多信息

来源: Microchip微芯

审核编辑:汤梓红

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

    关注

    240

    文章

    23128

    浏览量

    658278
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632714
  • 引脚
    +关注

    关注

    16

    文章

    1179

    浏览量

    50257
  • GPIO
    +关注

    关注

    16

    文章

    1196

    浏览量

    51897
收藏 人收藏

    评论

    相关推荐

    单片机引脚共用问题

    对于MSP430G2553这一款的单片机来说只有十几个引脚,我们在各个模块都加上之后,发现按键的6个引脚就没用了,本来打算用74HC573锁存器来实现引脚
    发表于 11-18 16:24

    8引脚的51内核单片机

    请各位高手讲解单片机引脚复用时如何设置我最近订了几只DIP-8封装的51内核单片机 STC15F104W由于以前只是接触过DIP-40封装的
    发表于 11-27 20:24

    介绍51系列单片机引脚功能

    51系列单片机有各种封装形式,这里以40引脚双列直插DIP形式的封装来进行介绍,如图1.1所示。其中正电源和地线两根,外置石英振荡器的时钟线两根,4组8共32个I/O口,中断口线与P
    发表于 07-14 06:16

    at89s52单片机引脚图,at89s52引脚说明

    本文为您介绍at89s52单片机引脚图及引脚说明,at89S52特点及其功能。at89S52,高性能的8
    发表于 04-29 22:04 7.9w次阅读
    at89s52<b class='flag-5'>单片机</b><b class='flag-5'>引脚</b>图,at89s52<b class='flag-5'>引脚</b>说明

    at89c52单片机引脚说明,AT89C52高性能8单片机

    at89c52单片机引脚说明,AT89C52高性能8单片机
    发表于 04-29 22:05 2.6w次阅读
    at89c52<b class='flag-5'>单片机</b><b class='flag-5'>引脚</b>说明,AT89C52高性能<b class='flag-5'>8</b><b class='flag-5'>位</b><b class='flag-5'>单片机</b>

    AT89C2051单片机引脚图,引脚说明

    AT89C2051高性能8单片机( AT89C2051引脚图)  
    发表于 04-29 22:06 1.6w次阅读
    AT89C2051<b class='flag-5'>单片机</b><b class='flag-5'>引脚</b>图,<b class='flag-5'>引脚</b>说明

    单片机引脚,单片机引脚是什么意思

    单片机引脚,单片机引脚是什么意思 8051单片机引脚功能介绍首先我们来连接一下
    发表于 03-11 09:13 4.1w次阅读
    <b class='flag-5'>单片机</b><b class='flag-5'>引脚</b>,<b class='flag-5'>单片机</b><b class='flag-5'>引脚</b>是什么意思

    8051单片机引脚图及引脚功能介绍

    下面是8051单片机引脚图及引脚功能介绍: 《单片机引脚图》 40个引脚
    的头像 发表于 07-15 10:37 7w次阅读
    8051<b class='flag-5'>单片机</b><b class='flag-5'>引脚</b>图及<b class='flag-5'>引脚</b>功能介绍

    851单片机系列引脚功能说明

    本文档的主要内容详细介绍的是851单片机系列引脚功能说明。
    发表于 09-09 17:26 1次下载
    <b class='flag-5'>8</b><b class='flag-5'>位</b>51<b class='flag-5'>单片机</b>系列<b class='flag-5'>引脚</b>功能说明

    单片机引脚图及引脚功能_单片机简易编程

    本文着手从集成电路角度去认识单片机,主要介绍了单片机引脚图及引脚功能,以及单片机简易编程。
    的头像 发表于 07-21 10:42 5.2w次阅读
    <b class='flag-5'>单片机</b>的<b class='flag-5'>引脚</b>图及<b class='flag-5'>引脚</b>功能_<b class='flag-5'>单片机</b>简易编程

    8单片机和32单片机的应用

     现在在单片机应用市场,仍然是以8单片机和32单片机为主导。在产品应用上,当然是物尽其用。那
    发表于 06-26 14:31 6402次阅读

    stm32单片机引脚介绍及功能

    stm32是一种ARM Cortex-M内核单片机,下面小编为大家介绍一下单片机引脚介绍及功能。单片机旁边的一排金属针脚就是引脚,不同的
    的头像 发表于 08-19 16:50 8.6w次阅读

    详解51系列单片机引脚及功能

    51系列单片机有各种封装形式,这里以40引脚双列直插DIP形式的封装来进行介绍,如图1.1所示。其中正电源和地线两根,外置石英振荡器的时钟线两根,4组8共32个I/O口,中断口线与P
    发表于 11-14 18:21 23次下载
    详解51系列<b class='flag-5'>单片机</b><b class='flag-5'>引脚</b>及功能

    单片机引脚功能介绍

    通过查看单片机的规格书,我们可以知道单片机有很多引脚,有8引脚的,16引脚等。不同
    的头像 发表于 09-25 09:03 7738次阅读

    单片机端口和引脚的关系 单片机怎么改引脚 单片机引脚编号如何定义

    单片机的程序中,一般通过端口的名称和引脚的编号来进行引脚的控制和数据传输。例如,ATmega328P单片机的PB5口表示Port B端口组的第5个
    发表于 03-21 16:52 8174次阅读