• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 關(guān) 閉

    新聞中心

    EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 一種基于ADC的高性價(jià)比鍵盤(pán)輸入設(shè)計(jì)

    一種基于ADC的高性價(jià)比鍵盤(pán)輸入設(shè)計(jì)

    作者: 時(shí)間:2011-06-23 來(lái)源:網(wǎng)絡(luò) 收藏

    當(dāng)鍵按下時(shí),觸發(fā)進(jìn)入外部中斷。先延時(shí)20 ms,如果有抖動(dòng),這個(gè)抖動(dòng)就被有效地濾除掉了。讀取第一次值,延時(shí)20 ms(有效按鍵持續(xù)時(shí)間大于80 ms),再讀取第二次的值。只有兩次差值在某個(gè)小的范圍內(nèi),這次按鍵才是有效的,否則就是一次抖動(dòng)。這幾個(gè)時(shí)間參數(shù)是實(shí)際測(cè)試得到的結(jié)果。經(jīng)過(guò)這樣的軟件處理,機(jī)械抖動(dòng)被有效地濾除掉了。程序代碼如下:
    e.JPG
    f.JPG
    經(jīng)過(guò)求平均值后的值也并不是固定不變的,會(huì)在某一中心點(diǎn)附近波動(dòng)。例如重復(fù)按下同一個(gè)按鍵,對(duì)應(yīng)一字節(jié)的數(shù)據(jù)為BF CO。若數(shù)據(jù)有一定的波動(dòng),有時(shí)還會(huì)出現(xiàn)FF 00,說(shuō)明按鍵有明顯的抖動(dòng)。通過(guò)軟件處理,如果ADC兩次讀到的值相差較大,則確定按鍵無(wú)效。實(shí)際完整的方案需要經(jīng)過(guò)多次按鍵,記下ADC的平均值,建立數(shù)組keynum_tab[],再給出一個(gè)上下波動(dòng)范圍n,通過(guò)ADC的值對(duì)比判斷,即可得出鍵值。本例中共有20個(gè)按鍵,程序代碼如下:
    g.JPG

    結(jié)語(yǔ)
    本按鍵方案經(jīng)過(guò)實(shí)際運(yùn)用測(cè)試,性能可靠,運(yùn)行穩(wěn)定;CPU占用率低,實(shí)時(shí)性好;只用到一個(gè)I/O口,節(jié)省了單片機(jī)的I/O口資源,并且可以根據(jù)實(shí)際需要增減按鍵數(shù)量,具有一定的實(shí)用價(jià)值。

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

    上一頁(yè) 1 2 3 下一頁(yè)

    關(guān)鍵詞: ADC 性價(jià)比 鍵盤(pán) 輸入

    評(píng)論


    相關(guān)推薦

    技術(shù)專(zhuān)區(qū)

    關(guān)閉
    主站蜘蛛池模板: 和龙市| 资兴市| 江城| 漳浦县| 铁岭市| 乐陵市| 洞头县| 蓬莱市| 日土县| 藁城市| 曲松县| 苍山县| 左云县| 赞皇县| 巧家县| 咸宁市| 牡丹江市| 泊头市| 沁阳市| 拉孜县| 临猗县| 武陟县| 石河子市| 翁牛特旗| 西贡区| 德清县| 桑植县| 青神县| 武隆县| 南宁市| 新营市| 菏泽市| 西丰县| 恩施市| 柏乡县| 桓台县| 循化| 辛集市| 西昌市| 湖南省| 临夏县|