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

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

3天內不再提示

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

Wildesbeast ? 來源:福星電子網 ? 作者:佚名 ? 2020-01-26 11:25 ? 次閱讀

1 新型鍵盤電路

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

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

2 軟件過程和程序

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

#include《c:eg51.h》

#define uchar unsigned char

uchar getkey(void);

uchar keyvol;

void main(void)

{

keyvol=getkey(); /*調用鍵處理函數,返回的數據等于16表示同有鍵按下,0至15對應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并轉換K10至K12的鍵值*/

if(x = =13)

{

P1=P1|0x07;

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

x=P1&0x07;

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

}

}

}

return x;

}

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

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

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

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

I/O線 可組合按鍵

2 5

3 16

4 43

3 結束語

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

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

    關注

    6037

    文章

    44558

    瀏覽量

    635352
  • 存儲器
    +關注

    關注

    38

    文章

    7492

    瀏覽量

    163842
  • 鍵盤電路
    +關注

    關注

    3

    文章

    29

    瀏覽量

    19897
收藏 人收藏

    評論

    相關推薦

    哪個老師詳細說明一下這個電路圖?

    那個老師詳細說明一下,這個電路圖,越詳細越好。謝謝
    發(fā)表于 04-07 19:41

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

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

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

    鍵盤電路單片機應用系統最常用的人機接口,往往要占用較多的I/O端口, 現在有些很節(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é)約單片機端口資源鍵盤電路

    I/0 端 口是單片機實現對目標控制的端口,一般小型單片機的 I/0 端口都十分寶貴。文中介紹了一種可節(jié)省單片機I/O
    發(fā)表于 03-29 10:21 ?13次下載

    51單片機教程之51單片機IO端口應用的詳細資料概述

    本文檔的主要內容詳細介紹的是51單片機教程之51單片機IO端口應用的詳細資料概述主要內容包括了:1 原理
    發(fā)表于 10-24 16:22 ?19次下載
    51<b class='flag-5'>單片機</b>教程之51<b class='flag-5'>單片機</b>IO<b class='flag-5'>端口</b>應用的<b class='flag-5'>詳細</b>資料概述

    51單片機矩陣鍵盤的原理說明和實驗程序電路圖免費下載

    本文檔的主要內容詳細介紹的是51單片機矩陣鍵盤的原理說明和實驗程序電路圖免費下載。
    發(fā)表于 04-18 17:27 ?7次下載

    使用51單片機控制LED實現8X8點陣的電路圖程序及資料說明

    本文檔的主要內容詳細介紹的是使用51單片機控制LED實現8X8點陣的電路圖程序及資料說明。
    發(fā)表于 04-17 17:27 ?10次下載
    使用51<b class='flag-5'>單片機</b>控制LED實現8X8點陣的<b class='flag-5'>電路圖</b>和<b class='flag-5'>程序</b>及資料<b class='flag-5'>說明</b>

    使用51單片機設計4X4矩陣鍵盤電子琴的電路圖程序免費下載

    本文檔的主要內容詳細介紹的是使用51單片機設計4X4矩陣鍵盤電子琴的電路圖程序免費下載。
    發(fā)表于 08-23 17:30 ?14次下載
    使用51<b class='flag-5'>單片機</b>設計4X4矩陣<b class='flag-5'>鍵盤</b>電子琴的<b class='flag-5'>電路圖</b>和<b class='flag-5'>程序</b>免費下載

    51單片機的C程序基本架構詳細說明

    本文檔的主要內容詳細介紹的是51單片機的C程序基本架構詳細說明。
    發(fā)表于 08-15 17:32 ?7次下載
    51<b class='flag-5'>單片機</b>的C<b class='flag-5'>程序</b>基本架構<b class='flag-5'>詳細說明</b>

    使用51單片機和74LS164串入并出芯片進行矩陣鍵盤顯示的程序電路圖

    本文檔的主要內容詳細介紹的是使用51單片機和74LS164串入并出芯片進行矩陣鍵盤顯示的程序電路圖。
    發(fā)表于 07-23 17:37 ?12次下載
    使用51<b class='flag-5'>單片機</b>和74LS164串入并出芯片進行矩陣<b class='flag-5'>鍵盤</b>顯示的<b class='flag-5'>程序</b>和<b class='flag-5'>電路圖</b>

    單片機的并行IO口應用實驗電路圖程序詳細說明

    本文檔的主要內容詳細介紹的是單片機的并行IO口應用實驗電路圖程序詳細說明
    發(fā)表于 12-26 11:39 ?27次下載
    <b class='flag-5'>單片機</b>的并行IO口應用實驗<b class='flag-5'>電路圖</b>和<b class='flag-5'>程序</b><b class='flag-5'>詳細說明</b>

    如何設計一個節(jié)約單片機端口資源鍵盤電路

    鍵盤電路單片機應用系統最常用的人機接口,往往要占用較多的I/O端口,利用本文介紹的電路,可以最大限度地減少
    的頭像 發(fā)表于 05-05 12:08 ?4303次閱讀
    如何設計一個<b class='flag-5'>節(jié)約</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>

    使用單片機制作密碼鎖的電路圖程序與流程詳細說明

    本文檔的主要內容詳細介紹的是使用單片機制作密碼鎖的電路圖程序與流程詳細說明。
    發(fā)表于 09-09 16:08 ?47次下載
    使用<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>

    PIC系列單片機程序設計基礎知識詳細說明

    本文檔的主要內容詳細介紹的是PIC系列單片機程序設計基礎知識詳細說明
    的頭像 發(fā)表于 04-05 18:09 ?4586次閱讀

    基于51單片機矩陣鍵盤音樂電子琴電路圖proteus仿真及程序

    資源內容概要:? ? ? ?這是基于51單片機矩陣鍵盤音樂電子琴電路圖proteus仿真及程序設計包含了
    發(fā)表于 06-21 14:32 ?3次下載