• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > EDA/PCB > 設計應用 > MCU連接DIP 開關 掌握這幾個知識點是關鍵!

    MCU連接DIP 開關 掌握這幾個知識點是關鍵!

    作者: 時間:2024-01-04 來源:得捷電子DigiKey 收藏

    問: 開關與單片機 MCU接口的基本原理

    本文引用地址:http://www.czjhyjcfj.com/article/202401/454473.htm

    將單片機 (微控制器) 連接到雙列直插式封裝( ) 開關是一種常見的應用。俗稱 “” 的開關可用于各種設計,從適合面包板原型設計的傳統(tǒng) DIP 到表面貼裝“鋼琴”型,再到易于讀取十六進制值的

    圖片

    在這篇文章中,我們將仔細研究,并探索如何將其集成到我們的中。本文中介紹的技術一般適用于所有

    從規(guī)則開始

    讓我們從一個簡單的規(guī)則開始:不允許浮動輸入 。當單片機引腳被配置為輸入,但在其他情況下未連接時,就會出現(xiàn)浮動輸入。這里展示了一個例子。當開關閉合時,關聯(lián)引腳被綁在正軌上。當開關打開時,引腳是浮動的。

    圖片

    這是非常不希望的,因為浮動引腳可能被解釋為邏輯高,或者在其他時候,邏輯低。從故障排除的角度來看,單片機的響應將沒有任何韻律或原因。引腳容易受到噪聲的影響,并且通常會松散地遵循相鄰單片機引腳的值。

    解決方法是增加一個下拉電阻,如下圖所示。有了這個小小的變化,當開關閉合時,單片機的引腳就會向上拉到導軌上,或者當開關打開時,它就會向下拉到地上。暫時忽略開關彈跳,單片機將有一個干凈的輸入。

    圖片

    優(yōu)化解決方案

    現(xiàn)代單片機就是為這種類型的接口而設計的。幾乎所有的單片機都具有 I/O 部分,其內部電阻可以向上拉或向下拉 I/O 引腳。這是可取的,因為開關可以直接連接到單片機,從而消除了外部電阻器的需要。

    技術小貼士 :

    一些單片機具有上拉和下拉電阻。其他將只有一種類型,與上拉配置更常見。這些外設通常被稱為“弱上拉”,消耗數(shù)十到數(shù)百uA。這相當于連接一個值在15 kΩ到150 kΩ之間的外部拉電阻。

    Arduino的一個例子是:

    pinMode (SW_PIN_D0 INPUT_PULLUP);

    該原理圖給出了單片機與開關接口的一種方式。雖然本例采用旋轉 DIP 開關,但該設計適用于所有開關。觀察:

    ■ 內部上拉電阻使用單片機的特殊功能寄存器啟用

    ■ 開關的公共元件連接到地

    圖片

    技術小貼士 :

    原理圖中顯示了一個可選的串聯(lián)電阻以及可選的多路復用部分。這允許 I/O 引腳執(zhí)行雙重任務。例如,這個小口寬的接口可以用來讀取開關,也可以用來驅動 LCD 顯示器的 D3 到 D0。這可能是可取的,因為它有可能以犧牲電路和代碼復雜性為代價減少單片機引腳數(shù)和PCB的總體尺寸。

    在我們結束之前,讓我們看一下與旋轉 DIP 開關相關的物理開關代碼。代表性的HEX代碼取自歐姆龍的數(shù)據(jù)手冊。觀察 A6A-16R 和 A6A-16C 型號對應的“BCD十六進制碼” 和 “BCD十六進制補碼” 兩個開關配置。

    圖片

    回頭看單片機原理圖及其相關的上拉電阻,我們看到了一個反轉。例如,當開關處于1位置時,在位置2 + 4 + 8上會有三個正邏輯輸入。同時,如果安裝了互補開關,則會有一個對應于1信號的正邏輯(有源高電平)輸入。
    從編程的角度來看,這個物理開關代碼中的這種差異是無關緊要的。一個簡單的 bit 反轉指令就會使它們相等。從故障排除或教育的角度來看,互補版本可能更容易理解,因為它導致單片機引腳上存在正邏輯值。



    評論


    相關推薦

    技術專區(qū)

    關閉
    主站蜘蛛池模板: 潞西市| 汉源县| 新沂市| 双柏县| 西城区| 紫金县| 清流县| 滨海县| 循化| 团风县| 镇巴县| 米脂县| 金山区| 托里县| 古蔺县| 车致| 信宜市| 黑山县| 离岛区| 淄博市| 天峻县| 柘城县| 宝坻区| 徐闻县| 于田县| 龙山县| 加查县| 兴化市| 塘沽区| 界首市| 金川县| 舒兰市| 青川县| 襄樊市| 盐源县| 海南省| 佳木斯市| 九江县| 富川| 临泽县| 凤翔县|