0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用引腳復(fù)用減少8位單片機(jī)的引腳使用

jf_pJlTbmA9 ? 來源:Microchip微芯 ? 作者:Microchip微芯 ? 2023-09-18 10:56 ? 次閱讀

本文將介紹兩個(gè)利用通用輸入/輸出(GPIO)引腳復(fù)用來減少項(xiàng)目引腳使用的示 例。第一個(gè)示例使用了“查理復(fù)用算法”技術(shù),第二個(gè)示例使用了定時(shí)外設(shè)和中 斷來快速切換引腳輸入狀態(tài)和輸出狀態(tài),以在驅(qū)動(dòng) LED 的同時(shí)讀取按鍵。

PIC?和 AVR?單片機(jī)上的引腳復(fù)用

通用輸入/輸出(GPIO)引腳是單片機(jī)設(shè)計(jì)時(shí)的重要考量之一。您需要足夠的引 腳將單片機(jī)連接到設(shè)計(jì)中的所有其他組件;但是,超過所需的引腳可能會(huì)導(dǎo)致設(shè)計(jì) 成本增加,并且占用電路板上更多空間。此外,減少設(shè)計(jì)中的所需引腳數(shù)量可能就 可以選擇另一種不同的封裝。如果有一種方法可以從較小的封裝中擠出更多的 I/O 引腳就好了!幸運(yùn)的是,我們確實(shí)有方法可以在這種情況下釋放引腳。

下面是 Microchip 應(yīng)用團(tuán)隊(duì)使用 AVR DD 系列單片機(jī)創(chuàng)建的兩個(gè)示例。首先, 我們將探討通過一種稱為“查理復(fù)用算法”的技術(shù)復(fù)用 GPIO 引腳來控制 LED。接 下來,我們將看一下如何使用單個(gè)引腳同時(shí)運(yùn)行獨(dú)立的按鍵和 LED。

查理復(fù)用算法的核心思想是利用單片機(jī)引腳可以處于的三種狀態(tài):數(shù)字高電平、 數(shù)字低電平和高阻抗數(shù)字輸入狀態(tài)(也稱為高阻態(tài)或三態(tài))。通過使用這三種狀態(tài) 而不僅僅是典型的高電平和低電平,用戶可以使用 n 個(gè)引腳驅(qū)動(dòng)最多(n2 -n)個(gè)獨(dú)立的 LED。在此示例中,三個(gè)指定的引腳可以驅(qū)動(dòng)六個(gè)獨(dú)立的 LED。

那么查理復(fù)用算法的工作原理到底是什么呢?為了理解這一點(diǎn),我們需要看一 個(gè)示例。

wKgaomUDv_KAA0GAAAC5GrUojiM970.png

這里我們用三個(gè) I/O 引腳驅(qū)動(dòng)六個(gè) LED。

如果我們只想導(dǎo)通 LED1,則需要將 PA2 設(shè)為高電平,PA3 設(shè)為低電平,PA4 設(shè)為高阻態(tài)。電流將流過 LED1 并使其導(dǎo)通,同時(shí)使所有其他 LED 保持關(guān)斷狀態(tài)。

wKgZomUDv_SAdeTKAAC8hCUPlDI072.png

這里的三態(tài)十分重要,因?yàn)槿绻?PA4 為“低電平”,它也會(huì)意外導(dǎo)通 LED5。 如下面所示:

wKgZomUDv_WAJKOZAADC0ujOp5U732.png

高阻抗邏輯狀態(tài)確保電流只流過 LED1。利用 I/O 引腳狀態(tài)的相應(yīng)組合(要獲得 預(yù)期行為,用戶必須將一個(gè)引腳設(shè)為高電平、一個(gè)引腳設(shè)為低電平,其余引腳設(shè)為 高阻抗),可以為電路中的任何 LED 重復(fù)此過程。

雖然在任意給定時(shí)刻這種方法只會(huì)點(diǎn)亮一個(gè) LED,但是快速改變 I/O 狀態(tài)可創(chuàng) 造出點(diǎn)亮多個(gè) LED 的錯(cuò)覺。(LED 調(diào)光的工作原理是通過在單個(gè) LED 上使用脈沖 寬度調(diào)制,原理與此非常相似)。可以在下面看到:(點(diǎn)擊圖片查看動(dòng)態(tài)效果)

第二個(gè)示例涉及到在單個(gè)引腳上改動(dòng)一個(gè) LED 和一個(gè)按鍵。

從有利的角度看,可利用中斷和定時(shí)器來實(shí)現(xiàn)此目的。單片機(jī)引腳大部分時(shí)間 都在驅(qū)動(dòng) LED。然而,一個(gè)定時(shí)外設(shè)會(huì)定期在單片機(jī)內(nèi)部觸發(fā)中斷,將引腳從輸出 快速切換為輸入,然后檢查按鍵的狀態(tài)。雖然這會(huì)暫時(shí)停止驅(qū)動(dòng) LED,但如果這個(gè) 過程可以做得足夠快,那么在檢查按鈕狀態(tài)的時(shí)候,對(duì) LED 造成的影響幾乎不可見。 我們?cè)谙旅娴氖纠惺褂昧诉@種方法。單片機(jī)不停地驅(qū)動(dòng)一個(gè)閃爍的 LED,同 時(shí)定期檢查按鍵,如果按鍵被按下,就會(huì)點(diǎn)亮一個(gè)單獨(dú)的 LED。

wKgaomUDwAqAQea-AD6x_NlhhEg261.gif

盡管本文章只涵蓋了這兩種技術(shù)的基礎(chǔ)知識(shí),但我們的 Microchip 應(yīng)用團(tuán)隊(duì)發(fā)布 的相應(yīng) GitHub 頁面包含了圖表、示例代碼和更詳細(xì)的說明。請(qǐng)?jiān)L問該頁面或我們 的 AVR DD 產(chǎn)品系列頁面來了解更多信息。

來源: Microchip微芯

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    240

    文章

    22907

    瀏覽量

    650121
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628402
  • 引腳
    +關(guān)注

    關(guān)注

    16

    文章

    1132

    瀏覽量

    49741
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1175

    瀏覽量

    51515
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    單片機(jī)引腳共用問題

    對(duì)于MSP430G2553這一款的單片機(jī)來說只有十幾個(gè)引腳,我們?cè)诟鱾€(gè)模塊都加上之后,發(fā)現(xiàn)按鍵的6個(gè)引腳就沒用了,本來打算用74HC573鎖存器來實(shí)現(xiàn)引腳
    發(fā)表于 11-18 16:24

    8個(gè)引腳的51內(nèi)核單片機(jī)

    請(qǐng)各位高手講解單片機(jī)引腳復(fù)用時(shí)如何設(shè)置我最近訂了幾只DIP-8封裝的51內(nèi)核單片機(jī) STC15F104W由于以前只是接觸過DIP-40封裝的
    發(fā)表于 11-27 20:24

    介紹51系列單片機(jī)引腳功能

    51系列單片機(jī)有各種封裝形式,這里以40引腳雙列直插DIP形式的封裝來進(jìn)行介紹,如圖1.1所示。其中正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8共32個(gè)I/O口,中斷口線與P
    發(fā)表于 07-14 06:16

    at89s52單片機(jī)引腳圖,at89s52引腳說明

    本文為您介紹at89s52單片機(jī)引腳圖及引腳說明,at89S52特點(diǎn)及其功能。at89S52,高性能的8
    發(fā)表于 04-29 22:04 ?7.8w次閱讀
    at89s52<b class='flag-5'>單片機(jī)</b><b class='flag-5'>引腳</b>圖,at89s52<b class='flag-5'>引腳</b>說明

    at89c52單片機(jī)引腳說明,AT89C52高性能8單片機(jī)

    at89c52單片機(jī)引腳說明,AT89C52高性能8單片機(jī)
    發(fā)表于 04-29 22:05 ?2.6w次閱讀
    at89c52<b class='flag-5'>單片機(jī)</b><b class='flag-5'>引腳</b>說明,AT89C52高性能<b class='flag-5'>8</b><b class='flag-5'>位</b><b class='flag-5'>單片機(jī)</b>

    AT89C2051單片機(jī)引腳圖,引腳說明

    AT89C2051高性能8單片機(jī)( AT89C2051引腳圖)  
    發(fā)表于 04-29 22:06 ?1.6w次閱讀
    AT89C2051<b class='flag-5'>單片機(jī)</b><b class='flag-5'>引腳</b>圖,<b class='flag-5'>引腳</b>說明

    單片機(jī)引腳,單片機(jī)引腳是什么意思

    單片機(jī)引腳,單片機(jī)引腳是什么意思 8051單片機(jī)引腳功能介紹首先我們來連接一下
    發(fā)表于 03-11 09:13 ?4.1w次閱讀
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>引腳</b>,<b class='flag-5'>單片機(jī)</b><b class='flag-5'>引腳</b>是什么意思

    8051單片機(jī)引腳圖及引腳功能介紹

    下面是8051單片機(jī)引腳圖及引腳功能介紹: 《單片機(jī)引腳圖》 40個(gè)引腳
    的頭像 發(fā)表于 07-15 10:37 ?6.9w次閱讀
    8051<b class='flag-5'>單片機(jī)</b><b class='flag-5'>引腳</b>圖及<b class='flag-5'>引腳</b>功能介紹

    851單片機(jī)系列引腳功能說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是851單片機(jī)系列引腳功能說明。
    發(fā)表于 09-09 17:26 ?1次下載
    <b class='flag-5'>8</b><b class='flag-5'>位</b>51<b class='flag-5'>單片機(jī)</b>系列<b class='flag-5'>引腳</b>功能說明

    單片機(jī)引腳圖及引腳功能_單片機(jī)簡(jiǎn)易編程

    本文著手從集成電路角度去認(rèn)識(shí)單片機(jī),主要介紹了單片機(jī)引腳圖及引腳功能,以及單片機(jī)簡(jiǎn)易編程。
    的頭像 發(fā)表于 07-21 10:42 ?5w次閱讀
    <b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>引腳</b>圖及<b class='flag-5'>引腳</b>功能_<b class='flag-5'>單片機(jī)</b>簡(jiǎn)易編程

    8單片機(jī)和32單片機(jī)的應(yīng)用

     現(xiàn)在在單片機(jī)應(yīng)用市場(chǎng),仍然是以8單片機(jī)和32單片機(jī)為主導(dǎo)。在產(chǎn)品應(yīng)用上,當(dāng)然是物盡其用。那
    發(fā)表于 06-26 14:31 ?6297次閱讀

    stm32單片機(jī)引腳介紹及功能

    stm32是一種ARM Cortex-M內(nèi)核單片機(jī),下面小編為大家介紹一下單片機(jī)引腳介紹及功能。單片機(jī)旁邊的一排金屬針腳就是引腳,不同的
    的頭像 發(fā)表于 08-19 16:50 ?8.4w次閱讀

    詳解51系列單片機(jī)引腳及功能

    51系列單片機(jī)有各種封裝形式,這里以40引腳雙列直插DIP形式的封裝來進(jìn)行介紹,如圖1.1所示。其中正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8共32個(gè)I/O口,中斷口線與P
    發(fā)表于 11-14 18:21 ?23次下載
    詳解51系列<b class='flag-5'>單片機(jī)</b><b class='flag-5'>引腳</b>及功能

    單片機(jī)引腳功能介紹

    通過查看單片機(jī)的規(guī)格書,我們可以知道單片機(jī)有很多引腳,有8引腳的,16引腳等。不同
    的頭像 發(fā)表于 09-25 09:03 ?7524次閱讀

    單片機(jī)端口和引腳的關(guān)系 單片機(jī)怎么改引腳 單片機(jī)引腳編號(hào)如何定義

    單片機(jī)的程序中,一般通過端口的名稱和引腳的編號(hào)來進(jìn)行引腳的控制和數(shù)據(jù)傳輸。例如,ATmega328P單片機(jī)的PB5口表示Port B端口組的第5個(gè)
    發(fā)表于 03-21 16:52 ?7622次閱讀