什么是單片機(jī)的鍵盤接口與LED顯示器接口技術(shù)
在單片機(jī)應(yīng)用系統(tǒng)中,常常需要人機(jī)對話,因而功能開關(guān)、撥碼器、鍵盤、顯示器和打印機(jī)等輸入/輸出設(shè)備就必不可少,本文將介紹一些外部設(shè)備及它們與單片機(jī)的接口技術(shù)。
鍵盤實(shí)際上是由排列成矩陣形式的一系列按鍵開關(guān)組成的,用戶通過鍵盤可以向 CPU 輸入數(shù)據(jù)、地址和命令。
鍵盤按其結(jié)構(gòu)形式可分為編碼式鍵盤和非編碼式鍵盤兩類。
單片機(jī)系統(tǒng)中普遍使用非編碼式鍵盤,這類鍵盤主要解決以下幾個(gè)問題:
① 鍵的識別;
② 如何消除鍵的抖動(dòng);
③ 鍵的保護(hù)。
1. 非編碼式鍵盤工作原理
非編碼式鍵盤識別按鍵的方法有兩種:一是行掃描法,二是線反轉(zhuǎn)法。
1) 行掃描法
通過行線發(fā)出低電平信號,如果該行線所連接的鍵沒有按下的話,則列線所接的端口得到的是全“1”信號,如果有鍵按下的話,則得到非全“1”信號。
為了防止雙鍵或多鍵同時(shí)按下,往往從第 0 行一直掃描到最后 1 行,若只發(fā)現(xiàn) 1 個(gè)閉 合鍵,則為有效鍵,否則全部作廢。
找到閉合鍵后,讀入相應(yīng)的鍵值,再轉(zhuǎn)至相應(yīng)的鍵處理程序。
2) 線反轉(zhuǎn)法
線反轉(zhuǎn)法也是識別閉合鍵的一種常用方法,該法比行掃描速度快,但在硬件上要求行線與列線外接上拉電阻。
先將行線作為輸出線,列線作為輸入線,行線輸出全“0”信號,讀入列線 的值,然后將行線和列線的輸入、輸出關(guān)系互換,并且將剛才讀到的列線值從列線所接的端口輸出,再讀取行線的輸入值。那么在閉合鍵所在的行線上值必為 0 。這樣,當(dāng)一個(gè)鍵被按下時(shí),必定 可讀到一對唯一的行列值。
2.鍵盤接口電路
圖 7.26 是采用 8155 接口芯片構(gòu)成 8×4 鍵盤的接口電路,其中 A 口為輸出,作為行線;C 口為輸入,作為列線。
圖 7.26 采用 8155 的鍵盤接口電路
1.LED 顯示器結(jié)構(gòu)與原理
LED 顯示器由 7 條發(fā)光二極管組成顯示字段,有的還帶有一個(gè)小數(shù)點(diǎn) dp 。將 7 段發(fā)光二極管陰極連在一起,稱為共陰接法,當(dāng)某個(gè)字段的陽極為高電平時(shí),對應(yīng)的字段就點(diǎn)亮。共陽接法是將 LED 的所有陽極并接后連到+5V 上,當(dāng)某一字段的陰極為 0 時(shí),對應(yīng)的字段就點(diǎn)亮。如圖 7.27 所示。
圖 7.27 7 段 LED 數(shù)碼顯示器
點(diǎn)亮 LED 顯示器有靜態(tài)和動(dòng)態(tài)兩種方法。所謂靜態(tài)顯示,就是顯示某一字符時(shí),相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截止,這種方式,每一顯示位都需要一個(gè) 8 位輸出口控制,占用硬件較多,一般僅用于顯示器位數(shù)較少的場合。
所謂動(dòng)態(tài)顯示,就是一位一位地輪流點(diǎn)亮各位顯示器。對每一位顯示器而言,每隔一段時(shí)間點(diǎn)亮一次。顯示位的亮度既跟導(dǎo)通電流有關(guān),也和點(diǎn)亮?xí)r間與間隔時(shí)間的比例有 。動(dòng)態(tài)顯示器因其硬件成本較低而常常采用。
為了顯示字符,要為 LED 顯示器提供顯示段碼(或稱字形代碼), 組成一個(gè)“8”字形 的 7 段,再加上 1 個(gè)小數(shù)點(diǎn)位,共計(jì) 8 段,因此提供 LED 顯示器的顯示段碼為 1 個(gè)字節(jié)。各段碼位的對應(yīng)關(guān)系如下:
用 LED 顯示器顯示十六進(jìn)制數(shù)和空白及 P 的顯示段碼,如表 7.8 所示。
2.LED 顯示器接口電路
圖 7.28 為 6 位共陰顯示器和 8155 的接口邏輯。8155 的 A 口作為掃描 口,經(jīng)反相驅(qū)動(dòng)器 7545N 接顯示器公共極,B 口作為段數(shù)據(jù)口,經(jīng)同相驅(qū)動(dòng)器 7407 接顯示器的各段。
圖 7.28 6 位動(dòng)態(tài)顯示器接口
設(shè) 8031RAM 中有 6 個(gè)顯示緩沖單元 79H~7EH ,分別存放 6 位顯示器的顯示數(shù)據(jù)。 8155 的 A 口掃描輸出總有一位為高電平,8155 的 B 口輸出相應(yīng)位的顯示數(shù)據(jù)的段數(shù)據(jù),使某一位顯示出一個(gè)字符,其余位為暗,依次改變 A 口輸出的高電平位及 B 口輸出對應(yīng)的段數(shù)據(jù),6 位顯示器就顯示出緩沖器的顯示字符。顯示程序流程如圖 7.29 所示。
圖 7.29 顯示子程序流程圖