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

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

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

如何設(shè)計(jì)一個(gè)節(jié)約單片機(jī)端口資源的鍵盤電路

Wildesbeast ? 來源:福星電子網(wǎng) ? 作者:福星電子網(wǎng) ? 2020-05-05 12:08 ? 次閱讀

新型鍵盤電路

鍵盤電路是單片機(jī)應(yīng)用系統(tǒng)最常用的人機(jī)接口,往往要占用較多的I/O端口,利用本文介紹的電路,可以最大限度地減少鍵盤電路對(duì)I/O端口的點(diǎn)用。本電路特別適合一些引腳少、結(jié)構(gòu)緊湊的單片機(jī),可為其節(jié)省寶貴的I/O資源。

這里以3根I/O線為例,普通接法只能接3個(gè)鍵,即使是采用改進(jìn)后的組合接法[1],最多也只能接7個(gè)鏈,本文介紹的電路是在組合接法的基礎(chǔ)上增加了3個(gè)二極管,并采用了新的接法。其軟件處理使用了端口訪問和掃描檢測兩種方法,從而使按鍵數(shù)可達(dá)到16個(gè),同時(shí)由于采用了組合邏輯來直接對(duì)端口進(jìn)行讀取,因此極大地簡經(jīng)了程序的處理過程,同時(shí)也節(jié)省了寶貴的存儲(chǔ)器和CPU運(yùn)算資源。圖1是該電路的電路原理圖。

2 軟件過程和程序

該電路在程序處理時(shí),由處理器首先向I/O1~I(xiàn)/O3寫高電平,然后讀入。如果非全“1”,說明,K0~K6中有鍵按下,此時(shí)可根據(jù)讀入的端口狀態(tài)判斷鍵的狀態(tài),如果讀入的結(jié)果為全“1”,則I/O1~I(xiàn)/O3輪流輸出低電平,再讀入,這樣就可根據(jù)另外兩根I/O線的狀態(tài)來判別是K7~K15中的哪一個(gè)鍵被按下。重復(fù)調(diào)用鍵盤處理子程序可將讀取的鍵值與上次的值進(jìn)行比較,甚至兩次讀數(shù)相同為止,這樣即可消除按鍵抖動(dòng)所造成的誤讀。該電路選用的單片機(jī)為 AT89C2051,用C51語言編寫的按鍵電路處理程序如下:

#include《c:eg51.h》

#define uchar unsigned char

uchar getkey(void);

uchar keyvol;

void main(void)

{

keyvol=getkey(); /*調(diào)用鍵處理函數(shù),返回的數(shù)據(jù)等于16表示同有鍵按下,0至15對(duì)應(yīng)k0至K15*/

}

以下為鍵盤處理子程序:

uchar getkey(void)

{

uchar x

P1=P1|0x07; /*I/O1至I/O3寫“1”*/

xP1&0x07; /*讀入I/O1至I/O3并屏蔽其它位*/

if(x= =10)

{

P1=P1|0x07;

P1=P1&0xfd; /*I/O2寫“0”*/

x=P1&0x07;

x=(x+1)/2+10; /*屏蔽I/O2并轉(zhuǎn)換K10至K12的鍵值*/

if(x = =13)

{

P1=P1|0x07;

P1=P1&0xfb; /*I/O3寫“0”*/

x=P1&0x07;

x=x+13; /*屏蔽I/O3并轉(zhuǎn)換K13至K15的鍵值*/

}

}

}

return x;

}

利用該鍵盤電路并根據(jù)邏輯組合原理可推斷開n條I/O線可組合的按鍵數(shù)N為:

N=(2n-1)+(2 n-1 -1)n

表1給出了2至4條I/O線可組合的按鍵數(shù)。

表1 2~4條I/O線可組合的按鍵數(shù)

I/O線 可組合按鍵

2 5

3 16

4 43

3 結(jié)束語

這種新型鍵盤電路在使用時(shí)非常穩(wěn)定可靠,節(jié)省大量的I/O端口,而且程序處理也很簡潔,速率比4×4的掃描式電路還要快,因此,該電路特別適合一些引腳較少的單片機(jī),如PIC12C508、Z86E03以及AT89C2051等。

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

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635353
  • AT89C2051
    +關(guān)注

    關(guān)注

    7

    文章

    170

    瀏覽量

    66337
  • 鍵盤電路
    +關(guān)注

    關(guān)注

    3

    文章

    29

    瀏覽量

    19897
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于單片機(jī)的矩陣鍵盤檢測案例

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

    如何實(shí)現(xiàn)基于單片機(jī)鍵盤檢測

    鍵盤單片機(jī)與用戶交互設(shè)備之,用戶通過鍵盤輸入數(shù)據(jù)或命令到單片機(jī)。最簡單的鍵盤僅有
    的頭像 發(fā)表于 10-31 14:39 ?1940次閱讀
    如何實(shí)現(xiàn)基于<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>鍵盤</b>檢測

    利用單片機(jī)A D端口擴(kuò)展鍵盤點(diǎn)改進(jìn)

    利用單片機(jī)A/D 端口擴(kuò)展鍵盤點(diǎn)改進(jìn)
    發(fā)表于 05-15 13:12 ?15次下載

    單片機(jī)鍵盤上的應(yīng)用

    單片機(jī)鍵盤上的應(yīng)用 鍵盤擔(dān)負(fù)著向系統(tǒng)發(fā)出命令和查詢系統(tǒng)工作狀態(tài)的重任。由于各種單片機(jī)所提供的片內(nèi)外資源不同,所以在進(jìn)行
    發(fā)表于 03-29 14:34 ?39次下載

    節(jié)約單片機(jī)端口資源鍵盤電路

    鍵盤電路單片機(jī)應(yīng)用系統(tǒng)最常用的人機(jī)接口,往往要占用較多的I/O端口,利用本文介紹的電路,可以最大限度地減少
    發(fā)表于 09-28 17:55 ?2320次閱讀
    <b class='flag-5'>節(jié)約</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>端口</b><b class='flag-5'>資源</b>的<b class='flag-5'>鍵盤</b><b class='flag-5'>電路</b>

    節(jié)約端口線及器件的新型鍵盤

    鍵盤電路單片機(jī)應(yīng)用系統(tǒng)最常用的人機(jī)接口,往往要占用較多的I/O端口, 現(xiàn)在有些很節(jié)約I/O資源
    發(fā)表于 10-10 11:27 ?1266次閱讀
    <b class='flag-5'>節(jié)約</b><b class='flag-5'>端口</b>線及器件的新型<b class='flag-5'>鍵盤</b>

    節(jié)約單片機(jī)端口資源鍵盤電路

    I/0 端 口是單片機(jī)實(shí)現(xiàn)對(duì)目標(biāo)控制的端口,般小型單片機(jī)的 I/0 端口都十分寶貴。文中介紹了
    發(fā)表于 03-29 10:21 ?13次下載

    種新的單片機(jī)和AT機(jī)通用鍵盤的接口

    本文介紹種C505CA單片機(jī)與AT機(jī)通用鍵盤的新的接口電路,該接口電路既能接收AT
    發(fā)表于 03-30 17:02 ?9次下載

    單片機(jī)控制系統(tǒng)鍵盤顯示電路設(shè)計(jì)

    單片機(jī)控制系統(tǒng)鍵盤顯示電路設(shè)計(jì)
    發(fā)表于 01-23 20:48 ?24次下載

    種實(shí)用的單片機(jī)矩陣鍵盤設(shè)計(jì)

    則作為輸入。矩陣鍵盤的優(yōu)點(diǎn)是節(jié)約單片機(jī)IO口,例如普通鍵盤8個(gè)IO口只能用作8個(gè)按鍵,而矩陣
    發(fā)表于 11-24 07:42 ?813次閱讀

    設(shè)計(jì)個(gè)節(jié)約端口線器件的新型鍵盤的詳細(xì)資料概述

    鍵盤電路單片機(jī)應(yīng)用系統(tǒng)最常用的人機(jī)接口,往往要占用較多的I/O端口, 現(xiàn)在有些很節(jié)約I/O資源
    的頭像 發(fā)表于 11-09 11:00 ?4041次閱讀
    設(shè)計(jì)<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b><b class='flag-5'>節(jié)約</b><b class='flag-5'>端口</b>線器件的新型<b class='flag-5'>鍵盤</b>的詳細(xì)資料概述

    節(jié)約單片機(jī)端口資源鍵盤電路電路圖和程序詳細(xì)說明

    鍵盤電路單片機(jī)應(yīng)用系統(tǒng)最常用的人機(jī)接口,往往要占用較多的I/O端口,利用本文介紹的電路,可以最大限度地減少
    的頭像 發(fā)表于 01-26 11:25 ?3871次閱讀
    <b class='flag-5'>節(jié)約</b><b class='flag-5'>單片機(jī)</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'>電路</b>圖和程序詳細(xì)說明

    單片機(jī)鍵盤檢測與應(yīng)用

    非編碼鍵盤通常又分為獨(dú)立鍵盤和矩陣鍵盤兩大類。所謂獨(dú)立鍵盤是指按鍵在與單片機(jī)相連時(shí),每一個(gè)按鍵都
    的頭像 發(fā)表于 09-18 16:34 ?5359次閱讀

    實(shí)例制作個(gè)51單片機(jī)連接PS2鍵盤講解

    實(shí)例制作個(gè)51單片機(jī)連接PS2鍵盤講解(單片機(jī)原理及應(yīng)用技術(shù))-該文檔為實(shí)例制作
    發(fā)表于 07-22 12:11 ?39次下載
    實(shí)例制作<b class='flag-5'>一</b><b class='flag-5'>個(gè)</b>51<b class='flag-5'>單片機(jī)</b>連接PS2<b class='flag-5'>鍵盤</b>講解

    基于51單片機(jī)的矩陣鍵盤設(shè)計(jì)

    矩陣鍵盤,是種在節(jié)省端口的前提下控制大量按鍵的種方法,對(duì)于傳統(tǒng)的獨(dú)立對(duì)地鍵盤,
    的頭像 發(fā)表于 01-17 16:23 ?5600次閱讀
    基于51<b class='flag-5'>單片機(jī)</b>的矩陣<b class='flag-5'>鍵盤</b>設(shè)計(jì)