可編程計算機鍵盤顯示器接口電路設計_第1頁
可編程計算機鍵盤顯示器接口電路設計_第2頁
可編程計算機鍵盤顯示器接口電路設計_第3頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、可編程計算機鍵盤顯示器接口-電路設計可編程計算機鍵盤顯示器接口電路設計第一章引言隨著信息技術和互聯(lián)網的飛速發(fā)展,以及計算機、通訊、數碼產品等領域已經來臨。嵌入式設備是數字化時代的主流產品,嵌入式軟件是數字 化產品的核心,作為嵌入式軟件的基礎和關鍵,嵌入式操作系統(tǒng)在產業(yè)發(fā) 展過程中扮演著越來越重要的角色,應用遍及工業(yè)自動化、網絡通信、航 天等領域。可編程計算機鍵盤顯示器接口電路設計就是采用一種8279單片機芯片。本設計采用8279單片機為控制芯片,8279是一種專用于鍵盤顯示可編程器的接口電路,能對鍵盤自動掃描,給出閉合健的鍵碼,能自動向數碼管顯示器輸出顯示代碼和位代碼。其中鍵盤接口電路可與64

2、鍵點陣式鍵盤連接,具有二鍵封鎖或N鍵巡回功能,可自動消除按鍵抖動。顯示器接口電路可與8或16位數碼管顯示器連接,8279與鍵盤、顯 示器的連接,其中包括一個8鍵盤和8位LED顯示器,代碼驅動器選用8708, SL2SL0信號譯碼器選用74LS138,時鐘信號由單片機的ALE提供。在振蕩 器頻率為12MHZ寸ALE輸出頻率為2MHZ 8279選擇2鍵封鎖、編碼掃描方 式,顯示器左端輸入。第二章LED顯示器的結構與原理 顯示器常作為單片機系統(tǒng)中最簡單的輸出設備,用以顯示單片機系統(tǒng)的運 行結果與運行狀態(tài)等。常用的顯示器主要有LED數碼顯示器、LCD液晶顯示 器和CRTS示器。在單片機系統(tǒng)中,通常用

3、LED數碼顯示器顯示各種數字 或符號。由于它具有顯示清晰、亮度高、使用電壓低、壽命長的特點,因 此使用非常廣泛。本節(jié)以LED為例,介紹其結構、工作原理及與單片機的 接口技術。LED顯示器的結構與原理LED顯示器是由發(fā)光二極管顯示字段的顯示器件, 也可稱為數碼管。單片機 系統(tǒng)中通常使用8段LED數碼顯示器,其外形及引腳如圖1(a)所示,由 圖可見8段LED顯示器由8個發(fā)光二極管組成。其中7個長條形的發(fā)光二 極管排列成“日”字形,另一個圓點形的發(fā)光二極管在顯示器的右下角作 為顯示小數點用,通過不同的組合可用來顯示各種數字,包括AF在內的部分英文字母和小數點“”等字樣。LED顯示器有兩種不同的形式:

4、一種是 8個發(fā)光二極管的陽極都連在一起 的,稱為共陽極LED顯示器;另一種是8個發(fā)光二極管的陰極都連在一起 的,稱為共陰極LED顯示器。如圖1 (b)所示。共陰和共陽結構的LED顯示器各筆劃段名和安排位置是相同的,當二極管 導通時,相應的筆劃段發(fā)亮,由發(fā)亮的筆劃段組合從而顯示各種字符。 8 個筆劃段 dpgfedcba 對應于 1B( 8 位)的 D7、 D6、 D5、 D4、 D3、 D2、 D1、 DO,于是用8位二進制碼就可以表示欲顯示字符的字形代碼。例如,對于共陰極LED顯示器,當公共陰極接地(為零電平),而陽極 dpgfedcba各 段為01110011時,顯示器顯示“ P”字符,即

5、對于共陰極LED顯示器,“P” 字符的字形碼是0>73。如果是共陽極LED顯示器,公共陽極接高電平,顯 示“P'字符的字形代碼應為10001100 (0x8C)。這里必須注意的是:很多 產品為方便接線,常不按規(guī)則的方法去對應字段與位的關系,這時字形碼 就必須根據接線自行設計了。2 com a bI I 1 I Ic d com c dpcnmOGND共陰極&段數碼汁妃示器com(»共陽極&段數碼怦顯示器圖丄8段LED數碼顯示器LED顯示器的顯示方法有靜態(tài)顯示與動態(tài)顯示兩種,下面分別予以介紹編輯11.L ED靜態(tài)顯示接口數碼管工作在靜態(tài)顯示方式時,共陰極(

6、共陽極)的公共端COMH接在一起接地(電源)。每位的段選線與一個 8位并行口相連。只要在該位的段選線上保持段選碼電平,該位就能保持相應的顯示字符。這里的8位并行口可以直接采用并行I/O接口片(例如80C51的P1端口、8155和8255的 I/O端口等),也可以采用串行輸入/并行輸出的移位寄存器??紤]到若采 用并行I/O接口,占用I/O資源較多,因而靜態(tài)顯示方式常采用串行接口 方式,外接8位移位寄存器74HCI64構成顯示電路,圖2是通過串行口擴 展8位LED顯示器靜態(tài)驅動電路,在TXD(P3.1)運行時鐘信號,將顯示數據 由RXD(P3.0) 口串行輸出,串行口工作在移位寄存器方式(方式0)

7、。圖上串行擴展8位LED顯示器靜態(tài)驅動電路圖2中使用的是共陰極數碼管,因而各數碼管的公共極COMS接地,要顯示某字段,則相應的移位寄存器 74HC164的輸出線必須是高電平。顯然,要顯示某字符,首先要把這個字符轉換成相應的字形碼,然后再通過串行口發(fā)送到74HC164 74HC164把串行口收到的數變?yōu)椴⑿休敵黾拥綌?碼管上。先建立一個字形碼表,以十六進制數的次序存放它們的相應字形碼,共陰 極字形碼表如表1所示mi共陰極宇形碼表顯示字符宇形碼顯示宇符宇形碼0OsJ fA0x?710x06B0x5bC0x3930x-4fD0x5c40x66E5F0x71<50x7 dP(MFU0x3c$0x

8、7 f8Osff90s6f滅0x002. LED動態(tài)掃描顯示接口LED動態(tài)顯示的基本做法在于分時輪流選通數碼管的公共端,使得各數碼管 輪流導通,在選通相應LED后,即在顯示字段上得到顯示字形碼。這種方 式不但能提高數碼管的發(fā)光效率,而且由于各個數碼管的字段線是并聯(lián)使 用的,從而大大簡化了硬件線路。動態(tài)掃描顯示接口是單片機系統(tǒng)中應用最為廣泛的一種顯示方式。其接口電路是把所有顯示器的8個筆劃段adp同名端并聯(lián)在起,而每一個顯示 器的公共極COM是各自獨立地受I/O線控制。CPU向字段輸出口送出字形碼 時,所有顯示器由于同名端并連接收到相同的字形碼,但究竟是哪個顯示 器亮,則取決于COM端,而這一端

9、是由I/O控制的,所以就可以自行決定 何時顯示哪一位了。而所謂動態(tài)掃描是指采用分時的方法,輪流控制各個 顯示器的COM端,使各個顯示器輪流點亮在輪流點亮掃描過程中,每位顯示器的點亮時間是極為短暫的(約1mS ,但由于人的視覺暫留現象及發(fā)光二極管的余輝效應,盡管實際上各位顯示 器并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的 顯示數據,不會有閃爍感。圖3是一個典型的動態(tài)掃描8位LED顯示接口電路。該電路由74HC245提供段adp的驅動,74LS145提供位COMGCOM的驅動。請注意89C52的P0.0P0.7每個口線上有1個10kW的上拉電阻,圖中未示出。圖3動態(tài)掃描顯示接口

10、電路3. LEDS示器接口 :丄ED原理簡述LED顯示塊是用發(fā)光二極管顯示字段,單片機應用系統(tǒng)常用的是七段LED如下圖,它有其陰極和共陽極兩種:+5Vaafbbgcedcdh eOhch<b<b共陰極共陽極例如,要顯示 O'字符,對于共陰極管應輸出段碼:h g f e d c b aa0 0 1 1 1 1 1 13 F Hf bII對于共陽極管則應輸出段碼:d h.h g f e d c b a11 0 0 0 0 0 0 C 0 H共陽極管和共陰極管的段碼是互為補碼的。二.動態(tài)顯示的七段LED基本用法:1.動態(tài)顯示的七段LED與單片機的硬件接口擴展顯示器接口實質是輸出口

11、的擴展, 例如設計一個6位的數碼管顯示系統(tǒng),它需要擴充兩個8位輸出口,一個輸出8段碼,一個輸出位選碼。如下圖:+5V1D1Q8D1#377CLK8 8 8 8 8 8AOFEHWRFDHA1CLKE+5V)1Q2#3778D 8Q由圖可知,要顯示哪個字符,該字符的段碼從 1#377輸出,要使1#377輸出 只要A0 = 0即可,因此1#377的地址為FEH該段碼輸出到6個數碼管上是 相同的,要哪個管亮,必須使該管的相應段二極管導通,則由 2#377輸出的 位碼控制,對應哪個管為0,則該管可以亮。要使2#377輸出只要A1 = 0, 2#377的地址為FDH在軟件設計上將6個LED管輪流點亮,每

12、管延時約1Ms利用人的視覺殘留, 則可以看成持續(xù)點亮。2.動態(tài)顯示的軟件設計:要點:代碼轉換:直接驅動7段LED發(fā)光的是段碼,而我們習慣的是字符0、1、2、F等,因此軟件中必須將待顯示的字符轉換成段碼。每次只能輸出同樣的段碼,因此要使某管亮,必須用軟件保證逐位輪流點亮并適當延時,給人的眼睛產生持續(xù)發(fā)光的效果。程序中使用的顯示緩沖區(qū)示意圖:01020304050679H 7AH 7BH 7CH 7DH 7EH顯示緩沖區(qū)共6個單元,自左至右在段碼表中的查表偏移量。程序如下:對應6個數碼管,其中存放待顯示字符ORG 8100HDISUP: MOV R0 , #79H;置顯示緩沖區(qū)首地址MOV R2

13、, #0DFH ;11011111位碼初值,最左面管亮DSP1: MOV A , R0MOV DPTR , #TABLMOVC A , A+DPTR ;查表求段碼MOV R1 , #0FEH ;選 1#377MOVX R1 , A ;送段碼MOV R1 , #0FDH ;選 2#377MOV A , R2MOVX R1 , A ;輸出位碼,最左面管亮LCALL D1ms;延時1NC R0 ;指向顯示緩沖區(qū)的下一地址MOV A , R2RR A ;位碼右移一位MOV R2 , AXRL A , #7FH;位碼右移6次后為7FH時6管全顯示完JNZ DSP1;不為7FH則未顯示完,返回送下一個 L

14、EDRETTABL: 段碼轉換表略D1ms: 延時子程序略三丄ED靜態(tài)顯示在靜態(tài)顯示方式中,數碼管的共陰極或共陽極接地或十5V,每一個數碼管的8段碼需擴展一個8位輸出口與之相連接,輸出口可將令該管顯示某字符 的段碼鎖存,同一時間里,每一位的段碼均可不同,即顯示不同字符。如圖:1#3772#3773#3774#377靜態(tài)顯示方式中,有N位數碼管則需擴展N個8位輸出口,占用I/O資源較多。它的優(yōu)點是軟件不必動態(tài)掃描,送出段碼后可鎖存,直到需更改顯示 字符,軟件簡單,同時由于始終保持顯示而亮度較好第三章鍵盤接口在單片機應用系統(tǒng)中,為了控制系統(tǒng)的工作狀態(tài),或向系統(tǒng)內部輸入數據, 常設有按鍵或鍵盤,使用

15、這些鍵的開關狀態(tài)來設置控制功能或輸入數據。鍵盤的擴展實質是輸入口的擴展。二鍵輸入過程及軟件結構:當所設置的數字鍵或功能鍵按下的時候,單片機應用系統(tǒng)應能完成該鍵所設定的功能。因此,鍵輸入的信息與軟件結構密切相關。不少應用系統(tǒng)鍵掃描程序是應用程序的核心部分。鍵輸入程序的軟件框圖大致如下:NO有鍵按下?/YES判哪一鍵按下 求鍵值A0#鍵處理程序1#鍵處理程序CPU通過查訊或中斷方式掃描有無鍵按下及哪一鍵按下,將鍵號送入A,根據A的內容跳轉到該鍵所應完成的功能的程序中去,鍵處理完畢后再回到鍵 掃描程序,查找有無另一鍵按下。二. 鍵輸入接口與軟件應解決的問題:1. 保證鍵開關狀態(tài)的可靠輸入鍵是一種常開

16、式按鈕開關,按鍵和鍵盤都是利用機械觸點的閉合和斷開來輸入電平信號的,在鍵的閉合和斷開的瞬間的有抖動過程,會出現一系列負脈沖,一般為510ms,為了保證CPU對鍵的一次閉合只進行一次鍵 處理,必須消除抖動的影響。通常去抖動措施可分別采用硬件和軟件兩種方法來解決,硬件的方法是在按鍵的硬件電路上增加 RS觸發(fā)器或單穩(wěn)態(tài)電路,這需要增加硬件開銷。較為方便的軟件去抖措施是當檢測到有鍵按下時,執(zhí)行一個延時10ms的子程序,而后再檢測該鍵是否仍保持閉合狀態(tài),若仍閉合才確認為該鍵按下。2. 對所有按鍵進行編碼,確定鍵值或直接確定鍵號。給每一按鍵確定一個鍵值或編號,當 CPU掃描鍵盤時,可根據接收到的鍵輸入信息

17、確定是哪一個鍵按下。3. 選擇鍵盤監(jiān)測方法:在應用系統(tǒng)軟件中,鍵掃描程序、鍵處理程序只是應用程序的一部分, 在程序運行過程中什么時候查詢鍵輸入的情況,可有查詢方式和中斷方式 兩種: 查詢方式 在程序中以一定的時間間隔掃描鍵盤輸入的情況, 無鍵按下則可執(zhí)行 其它程序,有鍵按下則執(zhí)行鍵處理程序。 中斷方式 中斷方式是當有鍵按下時引起中斷,在中斷服務程序中進行鍵處理,無鍵按下時CPU不必顧及鍵盤的工作情況。一般在鍵盤使用不多的情況 采用中斷方式。4. 編制好鍵盤處理程序:它應解決如下問題: 掃描有無鍵按下。 有鍵按下時,若無硬件去抖措施應以軟件延時去抖動。 有可靠的邏輯處理,保證一次只處理一個鍵,一

18、次鍵按下只進行一 次鍵處理。 輸出確定的鍵號,一個鍵按下后能準確跳轉到該鍵的處理程序,處理結束后再返回鍵掃描。三. 獨立式按鍵結構:指直接用I/O線構成的單個按鍵電路。每一鍵互相獨立地各自接通一條輸入線,每根I/O線上的按鍵工作狀態(tài)不影響其它I/O線的工作狀態(tài),此亦稱非編碼鍵盤結構。如下圖:+5VP1.0P1.1P1.2P1.3110 11 18031K3K2K1P1.0P1.1P1.2P1.38031KO(a)查詢式電路查詢I/O輸入線0有效即為0者該線上鍵閉合INTO+5VK3多輸入與門2K1K0(b)中斷式電路任一鍵按下則INT0觸發(fā)中斷在中斷服務程序中查詢哪一鍵按下獨立式按鍵結構的優(yōu)點

19、是配置靈活, 軟件簡單, 缺點是使用 I/O 口線多,適于 按鍵數量不多時使用。獨立式按鍵的軟件結構:STRAT:MOV A,#0FFHMOV P1 , A;置 P1 口輸入方式MOV A , P1;鍵狀態(tài)輸入JNB ACC.0 , P0 ;0號鍵按下轉JNB ACC.1 , P1JNB ACC.2 , P2JNB ACC.3 , P3LJMP START鍵處理程序略 注:該程序中未包括軟件去抖措施,實際應用中應考慮去抖動處理四. 行列式鍵盤結構:1.鍵盤工作原理:如圖3+5VP1.7P1.67BP1.5/2 /00行/65/4 1/行11A9 / 82/行F E D / C / 行P1.43

20、列P1.3 2列P1.21列P1.1P1.0用I/O 口線組成行列式結構,按鍵設置在行列的交叉點上,2>2的鍵盤結構可構成4個鍵的鍵盤,4>4的鍵盤結構可構成16個鍵的鍵盤。鍵掃描的過程: 判斷有無鍵按下列線輸出全0碼(D0D3),將行線狀態(tài)讀入累加器 A(D4D7),若讀入狀態(tài)不全為1則有鍵按下,否則無鍵按下。 當有鍵按下時,判斷哪一鍵按下:由列線逐列置0,檢查行輸入狀態(tài)。例如列線輸出 D3-D0為1110,即D0=0, 讀入行線狀態(tài)D7D4,若為0111,即D7=Q則可判斷為0鍵按下,若此時讀 出行線狀態(tài)為全1,則本列無鍵按下,即0、4、8 C均未按下。接著再將下 一列線置0輸

21、出,檢查下一列鍵是否有鍵按下,直到每一列均查完為止。鍵盤上每一個鍵均有一個唯一的鍵值,一般用直接賦值方法定義鍵值,每個鍵的鍵值為當它按下時,鍵掃描程序的列碼和行碼按一定順序由二進制數排列。例如當0鍵按下時,鍵掃描程序輸出的列碼為 1110,讀入的行碼為0111,將 它們按D7D0的順序排列為:01111110,則0鍵的鍵值定義為7EH類似的方 法可得到:1鍵的鍵值為7DH4鍵的鍵值為BEHF鍵的鍵值為E7H鍵掃描程序中只要將列碼輸出,再讀入行碼,然后將行列碼拼接,與鍵值比較, 即可確定為哪一鍵按下。鍵掃描的方式可采取編程掃描、定時掃描或中斷方式定時器中斷原理:中斷的原理 有關中斷的概念 什么是

22、中斷,我們從一個生活中的例子引入。你正在家中看書,突然電話鈴 響了,你放下書本,去接電話,和來電話的人交談,然后放下電話,回來繼續(xù)看 你的書。這就是生活中的“中斷”的現象,就是正常的工作過程被外部的事件打 斷了。仔細研究一下生活中的中斷, 對于我們學習單片機的中斷也很有好處。 第一、什么可經引起中斷,生活中很多事件可以引起中斷:有人按了門鈴 了,電話鈴響了,你的鬧鐘鬧響了,你燒的水開了.等等諸如此類的事件, 我們把可以引起中斷的稱之為中斷源,單片機中也有一些可以引起中斷的 事件, 8031中一共有 5 個:兩個外部中斷, 兩個計數 / 定時器中斷,一個串 行口中斷。第二、中斷的嵌套與優(yōu)先級處理

23、:設想一下,我們正在看書,電話鈴響 了,同時又有人按了門鈴,你該先做那樣呢?如果你正是在等一個很重要 的電話,你一般不會去理會門鈴的,而反之,你正在等一個重要的客人, 則可能就不會去理會電話了。如果不是這兩者(即不等電話,也不是等人 上門),你可能會按你通常的習慣去處理??傊@里存在一個優(yōu)先級的問 題,單片機中也是如此,也有優(yōu)先級的問題。優(yōu)先級的問題不僅僅發(fā)生在兩個中斷同時產生的情況,也發(fā)生在一個中斷已產生,又有一個中斷產生 的情況,比如你正接電話,有人按門鈴的情況,或你正開門與人交談,又 有電話響了情況。考慮一下我們會怎么辦吧。第三、中斷的響應過程:當有事件產生,進入中斷之前我們必須先記住

24、現在看書的第幾頁了,或拿一個書簽放在當前頁的位置,然后去處理不同 的事情(因為處理完了,我們還要回來繼續(xù)看書):電話鈴響我們要到放 電話的地方去,門鈴響我們要到門那邊去,也說是不同的中斷,我們要在 不同的地點處理,而這個地點通常還是固定的。計算機中也是采用的這種 方法,五個中斷源,每個中斷產生后都到一個固定的地方去找處理這個中 斷的程序,當然在去之前首先要保存下面將執(zhí)行的指令的地址,以便處理 完中斷后回到原來的地方繼續(xù)往下執(zhí)行程序。具體地說,中斷響應可以分 為以下幾個步驟: 1、保護斷點,即保存下一將要執(zhí)行的指令的地址,就是 把這個地址送入堆棧。 2、尋找中斷入口,根據 5 個不同的中斷源所產

25、生的 中斷,查找 5 個不同的入口地址。以上工作是由計算機自動完成的,與編 程者無關。在這 5 個入口地址處存放有中斷處理程序(這是程序編寫時放 在那兒的,如果沒把中斷程序放在那兒,就錯了,中斷程序就不能被執(zhí)行 到)。 3、執(zhí)行中斷處理程序。 4、中斷返回:執(zhí)行完中斷指令后,就從中 斷處返回到主程序,繼續(xù)執(zhí)行。究竟單片機是怎么樣找到中斷程序所在位置,又怎么返回的呢?我們稍后 再談.MCS-51中斷系統(tǒng)的結構:由與中斷有關的特殊功能寄存器、中斷入口、順序查詢邏輯電路等組成,包括5個中斷請求源,4個用于中斷控制的寄存器IE、IP、ECON SCON來控制中斷 類弄、中斷的開、關和各種中斷源的優(yōu)先級

26、確定。中斷請求源:(1)外部中斷請求源:即外中斷 0和 1,經由外部引腳引入的,在單 片機上有兩個引腳,名稱為 I NT0、 I NT1 ,也就是 P3.2、P3.3 這兩個引腳。 在內部的TCON中有四位是與外中斷有關的。IT0 : INTO觸發(fā)方式控制位,可由軟件進和置位和復位,IT0=0,INTO為低 電平觸發(fā)方式,IT0=1,INTO為負跳變觸發(fā)方式。這兩種方式的差異將在以 后再談。IE0 : INTO中斷請求標志位。當有外部的中斷請求時,這位就會置1 (這由硬件來完成),在CPJ向應中斷后,由硬件將IE0清0。IT1 、 IE1 的用途和 IT0、 IE0 相同。( 2)內部中斷請求

27、源TF0:定時器T0的溢出中斷標記,當T0計數產生溢出時,由硬件置位 TF0。當CPJ向應中斷后,再由硬件將 TF0清0。TF1: 與 TF0類似。TI、RI :串行口發(fā)送、接收中斷,在串口中再講解。2、中斷允許寄存器IE在MC&51中斷系統(tǒng)中,中斷的允許或禁止是由片內可進行位尋址的8位中斷允許寄存器IE來控制的。見下表其中EA是總開關,如果它等于0,則所有中斷都不允許ES-串行口中斷允許ET1定時器1中斷允許EX1外中斷1中斷允許。ET0-定時器0中斷允許EX0-外中斷0中斷允許。如果我們要設置允許外中斷1,定時器1中斷允許,其它不允許,則IE可以是EAxxESET1EX1ET0EX

28、0100011100即8CH當然,我們也可以用位操作指令SETB EASETB ET1SETB EX1來實現它。3、五個中斷源的自然優(yōu)先級與中斷服務入口地址外中斷 0: 0003H定時器 0: 000BH外中斷 1: 0013H定時器 1: 001BH串口 :0023H它們的自然優(yōu)先級由高到低排列。寫到這里,大家應當明白,為什么前面有一些程序一始我們這樣寫:ORG 0000HLJMP STARTORG 0030HSTART。這樣寫的目的,就是為了讓出中斷源所占用的向量地址。當然,在程 序中沒用中斷時,直接從0000H開始寫程序,在原理上并沒有錯,但在實 際工作中最好不這樣做。優(yōu)先級:單片機米用

29、了自然優(yōu)先級和人工設置咼、低優(yōu)先級的策略, 即可以由程序員設定那些中斷是高優(yōu)先級、哪些中斷是低優(yōu)先級,由于只 有兩級,必有一些中斷處于同一級別,處于同一級別的,就由自然優(yōu)先級 確定。開機時,每個中斷都處于低優(yōu)先級,我們可以用指令對優(yōu)先級進行設置。 看表2中斷優(yōu)先級中由中斷優(yōu)先級寄存器IP來高置的,IP中某位設為1,相應 的中斷就是高優(yōu)先級,否則就是低優(yōu)先級。例:設有如下要求,將TO、外中斷1設為高優(yōu)先級,其它為低優(yōu)先級,求IP的值。IP的首3位沒用,可任意取值,設為000,后面根據要求寫就可以了xxxPSPT1PX1PT0PX000000110第四章8279的內部結構原Intel8279芯片是

30、一種通用的可編程序的鍵盤、 顯示接口器件,單個芯片就 能完成鍵盤輸入和LED顯示控制兩種功能。其內部結構如圖6-10-1所示。8279包括鍵盤輸入和顯 示輸出兩個部分。鍵盤部分提供的掃描方式,可以和 64個按鍵或傳感器的陣列相連。 能自動消除開關抖動以及N個鍵同時按下的保護。顯示部分按掃描的方式工作??梢燥@示 8或16位LED顯示塊一、8279電路工作原理單片機系統(tǒng)中有兩種LED顯示方式,即靜態(tài)顯示和動態(tài)顯示,靜態(tài)顯示的 優(yōu)點是顯示效果好,編程簡單,但由于輸出的每一位都需要鎖存,使用的 硬件較多;動態(tài)顯示方式中,各位數碼管的 a-h端并連在一起,每一時刻只有一位數碼管被點亮,各位依次輪流被點亮

31、,硬件電路簡單,但由于需要不停地進行刷新顯示,降低了 CPU勺效率,而且編程的工作量很大。為了解決動態(tài)顯示中存在的問題, Intel 公司研制出了專用的鍵盤、顯示器 接口電路芯片 8279,該芯片能自動完成對顯示的刷新,同時還可以對鍵盤 自動掃描,識別閉合鍵的鍵號,使用非常方便。8279用A0來區(qū)分信息特征, 當A0為0時,CPU從8279讀出的是狀態(tài),寫入的是命令,且每個命令也有 自己的特征;當A0=1時讀出和寫入的都是數據。8279內部有兩個緩沖區(qū), 即一個8字節(jié)的FIFO(First In First Out )鍵盤RAM和一個16字節(jié)的顯 示RAM顯示數據時只要將待顯示數據的段碼寫入顯

32、示 RAM即可;當有鍵閉 合時, 8279 會自動執(zhí)行去抖、得到鍵值、等待按鍵釋放等操作,最后 , 將鍵 值存入FIFO RAM中,程序只需從FIFO中讀取鍵值即可,編程十分簡單,具 體實驗線路圖 17所示。POOFD.lPMP03P04FOJF0j6P0.7ALETO蔽im213912231T371436153516:IRQkO 0DFFFEH-OFFFFH nO336J?OL2 3 4567K dbdbdbdedbdbdbdbclkA0OUTBOOUTB1OUTB2RESET °11703OUTAOSHIFT OlITAlCNTL OUTA20LTTA3迪3?33342L衛(wèi)292

33、2逅25241/9 tAz4EbJe引曰口bl- c. eJ 2Jl330 Kg圖17鍵盤顯示器芯片279實驗連線圖8279鍵盤、顯示器接口器件是實現人機對話的主要部件,它已為廣大用戶 歡迎和廣泛應用。然而在有些應用場合,既要鍵盤具有普通的數據輸入和 控制功能,又要鍵盤具備按鈕功能。例如,微機控制的注塑機,在手動控 制時需要有點動功能:按鈕按下進行調模運動,按鈕松開,調模運動停止。 本文介紹使8279構成的鍵盤具有以上功能的實現方法,供讀者參考使用。為了使8279具有合適的鍵盤、顯示功能,首先要對芯片初始化??蛇m 當地挑選8279的控制字,例如:使8279具有8位顯示、右端輸入、編碼 鍵盤、雙

34、鍵鎖定時可選控制字10H.這時每次按鍵都將產生鍵特征碼,并且 存放在FIFORO中,同時使8279的IRQ引腳變?yōu)楦唠娖?,可作為?CPU申請中斷信號,如果CPU是中斷開放的,則轉向中斷服務程序,可在中斷服 務程序中讀取特征碼。每當 CPU讀取FIFORO中的數據后,8279自動撤消IRQ信號,IRQ引腳變?yōu)榈碗娖?。CPU返回主程序后,可由鍵特征碼來決定 程序的流向。問題是,當 CPL從 8279的FIFORO中讀取鍵特征碼后,IRQ 雖然恢復底電平,但FIFOROh中的數據并沒有消失,仍保存在里面,這時 即使使用對改8279清除的指令D3H也不能將FIFOROM中的數改變,只有 按其它鍵才能

35、改變FIFOROM的數據,因這樣是無法實現按鈕功能的。IMTiPC8031 議 °而P2. 1P2. 2 Fl T ALE為了使鍵盤具有按鈕功能,應該利用 8279的傳感方式功能,在傳感器 方式中,8279每當檢測到傳感狀態(tài)變化時,IRQ就變?yōu)楦唠娖剑瑘D1是以 8031CPU勾成的系統(tǒng)為例,說明IRQ引腳電平的翻新過程。甌A 3-010-7B5-0他阿qBLOCSBL1ACSLUCLKSLl8279 的IRQ端經反相器接到8031的INT1 端(即 P3.3 弓I腳)。先將8279設置成編碼鍵盤,允許INT1中斷,當鍵按下時,反相器輸出低電平,CPU進入中斷服務程序,讀取鍵特征碼后,

36、又為高電平。返回主程序后,轉向功能程序(例如調模進)。輸出控制信號 (例如 P1.0 為“ 1”時 調模進電磁閥得電) 后,將 8279 設置為傳 感器方式,并且不允許 INT1 中斷,然后調試 P3.3 是否為低電平。如 果按鍵松開,8279將測 出傳感器狀態(tài)發(fā)生變 化,而使IRQ由低電平 轉為高電平。 也就是說 P3.3 腳為低電平時,按 鍵已經松開, 程序重新 設置 8279 為編碼鍵盤, INT1 中斷開放,以便使 鍵盤脫離按鈕功能。實現以上功能的程序清單如下:根據結構框圖,分別介紹各部分電路工作原理。1.I/O 控制及數據緩沖器數據緩沖器是雙向緩沖器,連接內、外總線,用于傳送CPI和

37、8279之間的命令或數據; I/O 控制線是CPU寸8279進行控制的引線。CS是8279的片選信號,CS=(時,8279才被 允許讀出或寫入信息。WR RD為來自CPU的控制信號。A o用于區(qū)別信息特性:Ao=1時,表示數據緩沖器輸入為指令、輸出 為狀態(tài)字;A=0時,輸入、輸出皆為數據。2. 控制與定時寄存器及定時控制控制與定時寄存器用來寄存鍵盤及顯示的工作方式,以及由CPU編程的其它操作方式。這些寄存器一旦接受并鎖存送來的命令,就通過譯碼 產生相應的信號,從而完成相應的控制功能。定時控制包含基本記數鍵。首級計數器是一個可編程的 N級計數器。 N可以231之間由軟件編程,以便 從外界時鐘CL

38、K分頻得到內部所需要的100KHZ寸鐘。然后再經過分頻為鍵 盤掃描提供適當的逐行掃描頻率和顯示掃描時間。3. 掃描計數器 掃描計數器有兩種工作方式。按編碼方式工作時,計數器作二進制記數。 4 位記數狀態(tài)從掃描線 SL0SL3 輸出,經外部譯碼器譯碼后,為鍵盤和顯示器提供掃描線;按譯碼方式工作時,掃描計數器的最低二位被譯碼后,從 SL)SL3輸出。因此,S9SL3 提供了 4中取1的掃描譯碼。4. 回復緩沖器、鍵盤去抖及控制來自RL0RL3勺8根回復線的回復信號,由回復緩沖器緩沖并鎖存。在鍵盤工作方式中,回復線作為行列式鍵盤的行列輸入線。在逐行列 輸入時,在逐行列掃描時,回復線用來搜索每一行列中

39、閉合的鍵。當某一 鍵閉合時,去抖電路被置位,延時等待10ms后,再檢驗該鍵是否繼續(xù)閉和, 并將該鍵的地址和附加的移位、控制狀態(tài)一起形成鍵盤數據被送入 8279內 部FIFO (先進先出)存儲器。鍵盤數據格式如下:D7D5D5D4D3D2D D0控制移位掃描回復控制和移位(8 D0的狀態(tài)由兩個獨立的附加開關決定, 而掃描(D5D4、DO和回復(D、D、D0)則是被按鍵置位的數據。 圧D4、D3來自動掃描 計數器,是按下鍵的行列編碼,而(D7D7D7)則來自行/列計數器,它們是 根據回復信號而確定的行/列編碼。在傳感器開關狀態(tài)矩陣方式中,回復線的內容直接被送往和相應的傳 感器RAM(即卩FIFO存

40、儲器)。在選通輸入方式中,回復線的內容在CNTL/STB線的脈沖上升沿被送入FIFO 存儲器。5. FIFO/傳感器及其狀態(tài)寄存器FIFO/傳感器RAM是一個雙重功能的8X 8RAM在鍵盤或選通方式工作時,它是 FIFO存儲器,其輸入或讀出遵循先 入先出的原則。FIFO狀態(tài)寄存器用于存放FIFO的工作狀態(tài)。例如,RAM! 滿還是空;其中存有多少數據;是否操作出錯等。當FIFO存儲器不空,狀態(tài)邏輯將產生IRQ=1信號向CPU申請中斷。在傳感器矩陣方式工作時,這個存儲器以是傳感器不是存儲器。它存 放著傳感器矩陣中的每一個傳感器狀態(tài)。在此方式中,若檢索出傳感器的 變化,IRQ信號變?yōu)楦唠娖?,向CPU

41、申請中斷。6. 顯示RAM和顯示地址寄存器顯示RAM用來存儲顯示數據。容量為16X8位。在顯示過程中,存儲的 顯示數據輪流從顯示寄存器輸出。顯示寄存器分別為A、B兩組,OUTA3和OUTB3可以單獨送數,也可以組成一個 8位的字。顯示寄存器的輸出與 顯示掃描配合,不斷從顯示 RAM中讀出顯示數據,同時輪流驅動被選中的 顯示器件,以達到多路復用的目的,使顯示器件呈現穩(wěn)定的顯示狀態(tài)。顯示地址寄存器用來寄存由 CPU®行讀/寫顯示RAM勺地址,它可以由 命令設定,也可以設置成每次讀寫或寫入之后自動遞減。二. 管腳、引線與功能8279 采用 40引腳封裝,其管腳、引線功能如圖 6-10-2

42、所示。其引腳 功能如下:D oD7 (數據總線):雙向、三態(tài)總線,和系統(tǒng)數據總線相連;用于 CPU和8279間的數據/命令傳遞。CLK (系統(tǒng)時鐘):輸入線,為 8279提供內部時鐘的輸入端。RESET (復位):輸入線,當 RESET=時,8279復位,其復位狀態(tài)為:16 個字符顯示;編碼掃描鍵盤 - 雙鍵鎖定;程序時鐘編碼為 31 。CS (片選):輸入線,當CS=O時8279被選中,允許CPU寸其讀、寫, 否則被禁止。A o (數據選擇):輸入線。當 Ao=1時CPU寫入數據為命令字,讀出數 據為狀態(tài)字;Ao=O時CPU賣、寫的字節(jié)均為數據。RD、WR(讀、寫信號):輸入線。低電平有效,

43、來自 CPU勺控制信號, 控制 8279的讀、寫操作。IRQ (中斷請求):輸出線。高電平有效。在鍵盤工作方式中,當FIFO/傳感器RAM存有數據時,IRQ為高電平。CPU每次從RAM中讀出數據時,IRQ變?yōu)榈碗娖?。若RAM中仍有數據,則IRQ 再次恢復高電平。在傳感器工作方式中,每當檢測到傳感器狀態(tài)變化時,IRQ就出現高電 平。SL 0SL3 (掃描線):輸出線。用來掃描鍵盤和顯示器。它們可以編程 設定為編碼( 4中取 1)或譯碼輸出( 16取1)。RLoRL7 (回復線) :輸入線。它們是鍵盤矩陣或傳感矩陣的列(或 行)信號輸入線。SHIFT (移位信號):輸入線、高電平有效。該輸入信號是

44、鍵盤數據的最高位(D7),通常用來擴充鍵開關的功能,作為控制功能鍵用在選通輸入方式時,該信號的上升沿可將來自RLoRL7的數據存入FIFO RAM 中。在傳感器輸入下,該信號無效。OUTA oOUTA(A組顯示信號):輸出線。OUTB oOUTB(B組顯示信號):輸出線。這兩組引線都是顯示數據輸出線,與多位數字顯示的掃描線SLoSL3同步,兩組可以獨立使用,也可以合并使用。BD (顯示消隱):輸出線。低電平有效。該信號在數字切換顯示或使 用消隱命令時,將顯示消隱。三、命令格式與命令字8279 的操作方式是通過CPU對8279送入命令時來實現編程的。當數 據選擇端Ao置1時,CPU對8279寫入

45、數據為命令字,讀出的數據為狀態(tài)字。8279 共有八條命令。其功能及命令字定義分述如下。1.鍵盤/顯示方式設置命令字命令格式:D 7 Ds D5 D4 D3 D2 D D0000DDKKK其中:D 7、p、D5=000方式設置命令特征位。D D ( CH、D):來設定顯示方式,其定義如下:00: 8 個字符顯示,左入口00:16 個字符顯示,左入口00: 8 個字符顯示,右入口00:16 個字符顯示,右入口所謂左入口,即顯示位置從最左一位(最高位)開始,以后逐次輸入的顯示字符逐個向右順序排列; 所謂右入口,即顯示位置從最右一位(最低位)開始,以后逐次輸入的顯示字符時,已有的顯示字符逐個向左順序移

46、動。KKK ( D2、 D1、D0):用來設定七種鍵盤、顯示工作方式:000編碼掃描鍵盤,雙鍵鎖定001譯碼掃描鍵盤,雙鍵鎖定010編碼掃描鍵盤,N鍵輪回011譯碼掃描鍵盤,N鍵輪回100編碼掃描傳感器矩陣101譯碼掃描傳感器矩陣110選通輸入,編碼顯示掃描111選通輸入,譯碼顯示掃描雙鍵鎖定與 N 鍵輪回是多鍵按下時的兩種不同的保護方式。雙鍵鎖定 為兩鍵同時按下提供的保護方法。再消顫周期里,如果有兩鍵同時按下, 則只有其中一個鍵彈起,而另一個鍵保持在按下位置時, 才被認可。N鍵輪 回為N鍵同時按下的保護方法。當有若干鍵按下時,鍵盤掃描能夠根據發(fā) 現他們的順序,依次將它們的狀態(tài)送入 FIFO

47、RAM中2.程序時鐘命令命令格式:D 7 Ds D5 D4 D3 D2 Di DoOO1PPPP其中:D 7、D5、Db=001為時鐘命令特征位。PPPPP ( D4 D、C2、D、DO)用來設定外部輸入 CLK端的時鐘進行分頻的分頻數No N取值為231。例如外部時鐘頻率為2MHZ PPPPP被置為10100(N=2O,則對輸入的外部時鐘 20分頻,以獲得8279內部要求的1OOKMZ 的基本頻率。3. 讀FIFO/傳感器RAM命令命令格式:D 7 Ds D5 D4 D3 D2 D DO其中:D 7住住=010為讀FIFO/傳感器RAM命令特征位。該命令字只在傳感器方式時使用。在CPU賣傳感

48、器RAM之前,必須使用這條命令來設定傳感器 RAM 中的8個地址(每個地址一個字節(jié))。AAA (D2、Di、D)為傳感器RAM中的八個字節(jié)地址。AI(D4)為自動增量特征位。當 AI=1時,每次讀出傳感器RAM后地址自動加1使地址指針指向下一個存儲單元。這樣,下一個數據便從下一個 地址讀出,而不必重新設置讀 FIFO/傳感器RAM命令。在鍵盤工作方式中,由于讀出操做嚴格按照先入先出順序,因此,不 需使用此命令。4. 讀顯示RAM命令命令格式:7 Ds D5 D4 D3 D2D D0其中:D 7D5D5 =011為讀顯示RAM命令字的特征位。該命令用來設定將要讀出 的顯示RAM地址。AAAA (

49、 D3、C2、Di、Dd)用來尋址顯示 RAM命令字的特征位。由位顯示RAM 中有16個字節(jié)單元故需要4位尋址。AI ( D4)為自動增量特征位。當AI=1時,每次讀出后地址自動加1指 向下一地址。5. 寫顯示RAM命令命令格式:D 7D6D5DD3 D2D DO10 0 AI A AAA其中:D 7D5D5 =100為寫顯示RAM命令字的特征位。在寫顯示器 RAM之前用該 命令用來設定將要寫入的顯示 RAM地址。AAAA ( D3、D2、Di、Dd)為將要寫入的存儲單元地址。AI (D)為自動增量特征位。當 AI=1時,每次寫入后地址自動加1指 向下一次寫入地址。6. 顯示禁止寫入/消隱命令

50、特征位命令格式:D 7 Ds D5 D4 D3 D2 D D0101XIWIWBLBLABAB其中:D 7D5DB =101為顯示禁止寫入/消隱命令特征位。IW/A、IW/B( 8 D0為A、B組顯示RAM寫入屏蔽位。由于顯示寄存器分成A、B兩組,可以單獨送數,故用兩位來分別屏蔽。當A組的屏蔽位Db=1時,A組的顯示RAM禁止寫入。因此,從CPU寫入顯示器RAM數據時,不會 影響A的顯示。這種情況通常在采用雙 4位顯示器時使用。因為兩個雙四 位顯示器是相互獨立的。為了給其中一個雙四位顯示器輸入數據而又不影 響另一個四位顯示器,因此必須對另一組的輸入實行屏蔽。BL/A、BL/B(Di、D)為消隱

51、顯示位。用于對兩組顯示輸出消隱。若BL=1 時,對應組的顯示輸出被消隱。當 BL=0時,貝U恢復顯示。7. 清除命令命令格式:D 7 D6 D5 Di D3 C2Di Do1 1 0 Cd Cd Cd CF CA其中:D 7D5D5 =110清除命令特征位。C dCDCD (D4D3D2用來設定清除顯示RAM方式。共有四種消除方式,見表6-10-1。C f (Di)用來置空FIFO存儲器,當=1時,執(zhí)行清除命令后,FIFO RAM被 置空,使中斷輸出線復位。同時,傳感器 RAM勺讀出地址也被置0。CA ( D0)為總清的特征位。它兼有CD和CF的聯(lián)合效能。在CD=1時,對顯 示的清除方式由D、

52、D2的編碼決定。清除顯示RAM勺需160pS0在此期間FIFO狀態(tài)時的最高位 D=1,表示顯示無效。CPU不能向顯示RAM寫入數據8. 結束中斷/錯誤方式設置命令命令格式:D 7 Ds D5 D4 D3 D2 Di Do11訂二XXXX其中:D 7D5D5 =m 為該命令的特征位。此命令有兩種不同的作用。(1) 作為結束中斷命令。在傳感器工作方式中使用。每當傳感器狀態(tài)出現變化時,掃描檢測電路將其狀態(tài)寫入傳感器RAM并啟動中斷邏輯,使IRQ變高,向CPU青求中斷,并且禁止寫入傳感器 RAM此時,若傳感器RAM 讀出地址的自動遞增特征沒有置位(AI=0),則中斷請求IRQ在CPU第一 次從傳感器R

53、AMS出數據時就被清除。若自動遞增特征已置位(AI=1 ),則CPU寸傳感器RAM勺讀出并不能清除IRQ,而必須通過給8279寫入結束 中斷/錯誤方式設置命令才能使IRQ變低。因此在傳感器工作方式中,此命 令用來結束傳感器RAM勺中斷請求。(2) 作為特定錯誤方式設置命令。在 8279已被設定為鍵盤掃描N鍵輪 回方式以后,如果CPC給8279又寫入結束中斷/錯誤方式設置命令(E=1), 則8279將以一種特定的錯誤方式工作。這種方式的特點是:在 8279的消 顫周期內,如果發(fā)現多個按鍵同時按下,則FIFO狀態(tài)字中的錯誤特征位S/E 將置1,并產生中斷請求信號和阻止寫入 FIFO RAM上述八種用于確定8279操作方式的命令字皆由特征位確定,輸 入8279后能自動尋址相應的命令寄存器。因此,寫入命令字時唯一的要求 是使數據選擇信號Ao=1。四、狀態(tài)格式與狀態(tài)字8279 的FIFO狀態(tài)字,主要用于鍵盤和選通工作方式,以指示 FIFO RAM 中的字符數和有無錯誤發(fā)生。其格式為:D 7 Ds D5 D4 D3 D2 Di DODuS/EOUFNNN其中:D u( D7)為顯示無效特征位。當 D=1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論