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
    +关注

    关注

    237

    文章

    22449

    浏览量

    645874
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620825
  • 引脚
    +关注

    关注

    16

    文章

    1044

    浏览量

    48957
  • GPIO
    +关注

    关注

    16

    文章

    1133

    浏览量

    50570
收藏 人收藏

    评论

    相关推荐

    #硬声创作季 单片机原理及应用:2.1单片机引脚

    单片机引脚
    Mr_haohao
    发布于 :2022年10月31日 15:52:09

    单片机引脚共用问题

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

    8引脚的51内核单片机

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

    51单片机教程-控制引脚

    在51单片机教程第1讲中,我已经说过,学单片机就是两个内容,一个是学习控制单片机引脚,一个是学习单片机内部寄存器的配置。这一讲,来学习如何控
    发表于 12-13 15:50

    51单片机引脚功能介绍

    引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图: l P0.0~P0.7 P0口8
    发表于 07-19 01:52

    PIC单片机RF引脚如何配置成普通的输入引脚检测按键状态?

    单片机型号采用PIC18F66J11 ,想要将RF引脚配置成普通的输入引脚,但是目前好像是存在哪一块的复用,导致引脚一直检测到是低电平,按键
    发表于 11-17 19:36

    单片机引脚有哪些,都有什么功能

    单片机引脚有哪些,都有什么功能,嵌入式开发学习笔记3-了解单片机IO口功能单片机引脚介绍I/O口功能介绍P0口(39-32脚)P1口(1-
    发表于 07-14 08:10

    什么是单片机?如何去描述单片机引脚

    被称为单片型微型计算机,简称单片机。2、单片机引脚描述单片机引脚分为三类:①电源和时钟
    发表于 07-14 08:05

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

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

    Arduino Uno引脚与AVR单片机引脚对应关系

    附录B Arduino Uno引脚与AVR单片机引脚对应关系 表B-1 Arduino Uno引脚与AVR单片机
    发表于 11-23 09:04

    单片机引脚介绍

    单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。⒈ 电源: ⑴ VCC - 芯片电源,接+5V;⑵ VSS - 接地端;⒉ 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端
    发表于 11-23 14:07

    51单片机外部引脚相关资料下载

    51单片机外部引脚  如上图,从左至右,从上到下,32个引脚每八个一组,分别称为P1口,P0、P3、P2口输入输出引脚P0口(39 ~ 32脚):即P0.0 ~ P0.7,通常作为双向
    发表于 12-02 07:44

    51单片机外部引脚介绍

    接高电平。I/O口引脚一P0口、P1口、P2口和P3口。P0口(39脚〜32脚)一双向8三态I/O口,每个口可独立控制。51单片机P0口内部没有上拉电阻,为高阻状态,所以不能正常地输
    发表于 02-18 12:40

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

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