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

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

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

如何利用ADC的特點實現(xiàn)單片機用一個I/O采集多個按鍵信號?

2oON_changxuemc ? 來源:未知 ? 作者:易水寒 ? 2018-10-03 18:40 ? 次閱讀

如何實現(xiàn)單片機用一個I/O采集多個按鍵信號

使用模數(shù)轉(zhuǎn)換(ADC)的特點就可以實現(xiàn)單片機用一個I/O采集多個按鍵信號。

一、單片機的I/O口檢測按鍵簡說

我們知道,一般情況下單片機的一個I/O口作為普通I/O口的話,只能檢測識別一個按鍵。

日常設計中,如果碰到按鍵數(shù)量較多的話,會采用行列式鍵盤,例如最常見的4X4矩陣鍵盤,這樣可以實現(xiàn)用8個I/O口檢測16個按鍵。

還有就是鍵盤接口,典型的是我們計算機上用的鍵盤,其采用PS/2接口,現(xiàn)在一般計算機上用的是USB接口的鍵盤。

另外還有使用串口或者IIC、SPI接口的鍵盤芯片,這些使用常見的串口、IIC、SPI通信協(xié)議實現(xiàn)。

但是這些都一個以上的I/O口,不是真正的用多個按鍵。

那么有沒有更簡單的辦法,使用更少的I/O口資源檢測更多的按鍵呢?

二、基于模數(shù)轉(zhuǎn)換的AD鍵盤

我們知道按鍵檢測實際上是檢測連接按鍵的端口的高低電平值,在單個I/O口檢測單個按鍵時,只是簡單的判斷連接按鍵的端口的電平是高電平(+5V)還是低電平(0V)。那么是否可以通過電平的微小變化來檢測按鍵是否被按下呢?

下圖為一個A/D鍵盤的原理圖,從圖中可以看出,當不同的按鍵被按下時,ADC端點處的電壓不同,通過判斷不同的電壓值就可以判斷出是那個按鍵被按下。

對于具有AD轉(zhuǎn)換功能的單片機來說,直接接到一個AD通道即可。對于沒有AD轉(zhuǎn)換功能的單片機,可采用一個AD轉(zhuǎn)換模塊。

對于這種按鍵,有以下缺點:

1、對于同一點處的電壓值,A/D多次采樣的結(jié)果不可能完全相同。

2)、電阻的誤差。電阻值由于電阻的精度和環(huán)境溫度的原因,誤差較大,所以A/D鍵盤各個按鍵點的分壓不準確。

3)、為盡量減少誤差,可以采取增加電阻精度、增加溫度補償?shù)确椒?,另外在軟件處理時候要注意消除按鍵抖動等因素,還要對實際轉(zhuǎn)換值和標準值給出誤差補償。

4)、如果按鍵按下,經(jīng)過A/D轉(zhuǎn)換,若實際轉(zhuǎn)換值在允許誤差范圍之內(nèi)(需要實際測量各點電壓,并計算各點電壓平均值),則認為按鍵按下,否則程序不響應。

5)、實際試驗過程中,還要考慮電阻的累積誤差,選用精度越高的電阻,可分辨的按鍵數(shù)目越多。

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

    關(guān)注

    6065

    文章

    44946

    瀏覽量

    648250
  • IO
    IO
    +關(guān)注

    關(guān)注

    0

    文章

    488

    瀏覽量

    40309
  • adc
    adc
    +關(guān)注

    關(guān)注

    99

    文章

    6659

    瀏覽量

    548543

原文標題:如何實現(xiàn)單片機用一個I/O采集多個按鍵信號

文章出處:【微信號:changxuemcu,微信公眾號:暢學單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    控制關(guān)電的I/O口,如何實現(xiàn)徹底關(guān)電

    單片機應用系統(tǒng)中,常有用單片機I/O口來實現(xiàn)自關(guān)機(徹底關(guān)機)的功能。
    的頭像 發(fā)表于 12-20 07:32 ?9590次閱讀
    控制關(guān)電的<b class='flag-5'>I</b>/<b class='flag-5'>O</b>口,如何<b class='flag-5'>實現(xiàn)</b>徹底關(guān)電

    8051單片機的四組I/O端口

     單片機I/O端口是輸入信號和輸出信號的通道。8051單片機有P0、P1、P2、P3四組
    發(fā)表于 08-05 16:18 ?1.4w次閱讀
    8051<b class='flag-5'>單片機</b>的四組<b class='flag-5'>I</b>/<b class='flag-5'>O</b>端口

    單片機I/O采集多個按鍵信號

    使用模數(shù)轉(zhuǎn)換(ADC)的特點就可以實現(xiàn)單片機
    發(fā)表于 10-28 09:54 ?2241次閱讀

    基于單片機的矩陣鍵盤檢測案例

    /O端口資源,導致單片機與其它外部設備無法連接。在這種情況下,可以使用矩陣鍵盤,實現(xiàn)多個按鍵單片機
    的頭像 發(fā)表于 10-31 14:35 ?1839次閱讀
    基于<b class='flag-5'>單片機</b>的矩陣鍵盤檢測案例

    單片機如何用IO口采集多個按鍵信號?

    按鍵信號采集方法,可以IO口采集
    發(fā)表于 11-26 16:51

    單片機I/O口的使用

    單片機I/O口的使用:對單片機的控制,其實就是對I/O口的控制,無論
    發(fā)表于 12-03 22:51 ?69次下載

    單片機I/O 口模擬串行通信設計

    本文介紹的 89C51 單片機I/O 口模擬實現(xiàn)串行通信的方法,已成功地應用在某電壓數(shù)據(jù)采集
    發(fā)表于 06-30 11:25 ?2009次閱讀

    利用單片機多余I/O實現(xiàn)溫度檢測電路

    本文提供了種低成本的利用單片機多余I/O實現(xiàn)的溫度檢測電路,該電路非常簡單,且易于
    發(fā)表于 10-10 11:08 ?3616次閱讀
    <b class='flag-5'>利用</b><b class='flag-5'>單片機</b>多余<b class='flag-5'>I</b>/<b class='flag-5'>O</b>口<b class='flag-5'>實現(xiàn)</b>溫度檢測電路

    單片機I/O引腳實現(xiàn)A/D功能的原理與應用

    本文利用現(xiàn)行有些單片機輸入,輸出(IO)引腳的輸入阻抗高、輸 出驅(qū)動能力強的特性,分析了I
    發(fā)表于 03-30 17:02 ?9次下載

    如何通過I2C總線I/O實現(xiàn)系統(tǒng)的多個功能?

    隨著單片機控制系統(tǒng)的不斷擴大以及控制功能不斷增多,有限的單個單片機通用I/O口已不能滿足同系統(tǒng)中控制
    的頭像 發(fā)表于 08-30 10:05 ?6792次閱讀
    如何通過<b class='flag-5'>I</b>2C總線<b class='flag-5'>I</b>/<b class='flag-5'>O</b>口<b class='flag-5'>實現(xiàn)</b>系統(tǒng)的<b class='flag-5'>多個</b>功能?

    單片機如何通過I/O實現(xiàn)斷電自關(guān)機

    單片機應用系統(tǒng)中,常有用單片機I/O口來實現(xiàn)自關(guān)機(徹底關(guān)機)的功能。
    的頭像 發(fā)表于 09-08 13:53 ?5758次閱讀
    <b class='flag-5'>單片機</b>如何通過<b class='flag-5'>I</b>/<b class='flag-5'>O</b>口<b class='flag-5'>實現(xiàn)</b>斷電自關(guān)機

    單片機學習-矩陣按鍵

    目錄矩陣按鍵介紹檢測方法C51例程歡迎加QQ及郵件交流矩陣按鍵介紹 獨立鍵盤與單片機連接時,每一個按鍵都需要
    發(fā)表于 12-31 19:37 ?15次下載
    <b class='flag-5'>單片機</b>學習-矩陣<b class='flag-5'>按鍵</b>

    單片機如何通過I/O實現(xiàn)斷電自關(guān)機

    單片機應用系統(tǒng)中,常有用單片機I/O口來實現(xiàn)自關(guān)機(徹底關(guān)機)的功能。
    發(fā)表于 02-09 10:42 ?4次下載
    <b class='flag-5'>單片機</b>如何通過<b class='flag-5'>I</b>/<b class='flag-5'>O</b>口<b class='flag-5'>實現(xiàn)</b>斷電自關(guān)機

    單片機如何通過I/O實現(xiàn)斷電自關(guān)機

    單片機應用系統(tǒng)中,常有用單片機I/O口來實現(xiàn)自關(guān)機(徹底關(guān)機)的功能。
    發(fā)表于 02-09 11:17 ?4次下載
    <b class='flag-5'>單片機</b>如何通過<b class='flag-5'>I</b>/<b class='flag-5'>O</b>口<b class='flag-5'>實現(xiàn)</b>斷電自關(guān)機

    如何實現(xiàn)單片機I/O采集多個按鍵信號?

    如何實現(xiàn)單片機I/O
    發(fā)表于 02-11 14:23 ?11次下載
    如何<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>單片機</b><b class='flag-5'>用</b><b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>I</b>/<b class='flag-5'>O</b><b class='flag-5'>采集</b><b class='flag-5'>多個</b><b class='flag-5'>按鍵</b><b class='flag-5'>信號</b>?

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品