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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

12、管延時(shí)約1Ms利用人的視覺殘留, 則可以看成持續(xù)點(diǎn)亮。2.動(dòng)態(tài)顯示的軟件設(shè)計(jì):要點(diǎn):代碼轉(zhuǎn)換:直接驅(qū)動(dòng)7段LED發(fā)光的是段碼,而我們習(xí)慣的是字符0、1、2、F等,因此軟件中必須將待顯示的字符轉(zhuǎn)換成段碼。每次只能輸出同樣的段碼,因此要使某管亮,必須用軟件保證逐位輪流點(diǎn)亮并適當(dāng)延時(shí),給人的眼睛產(chǎn)生持續(xù)發(fā)光的效果。程序中使用的顯示緩沖區(qū)示意圖:01020304050679H 7AH 7BH 7CH 7DH 7EH顯示緩沖區(qū)共6個(gè)單元,自左至右在段碼表中的查表偏移量。程序如下:對應(yīng)6個(gè)數(shù)碼管,其中存放待顯示字符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;延時(shí)1NC R0 ;指向顯示緩沖區(qū)的下一地址MOV A , R2RR A ;位碼右移一位MOV R2 , AXRL A , #7FH;位碼右移6次后為7FH時(shí)6管全顯示完JNZ DSP1;不為7FH則未顯示完,返回送下一個(gè) L

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

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

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

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

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

19、是配置靈活, 軟件簡單, 缺點(diǎn)是使用 I/O 口線多,適于 按鍵數(shù)量不多時(shí)使用。獨(dú)立式按鍵的軟件結(jié)構(gòu):STRAT:MOV A,#0FFHMOV P1 , A;置 P1 口輸入方式MOV A , P1;鍵狀態(tài)輸入JNB ACC.0 , P0 ;0號鍵按下轉(zhuǎn)JNB ACC.1 , P1JNB ACC.2 , P2JNB ACC.3 , P3LJMP START鍵處理程序略 注:該程序中未包括軟件去抖措施,實(shí)際應(yīng)用中應(yīng)考慮去抖動(dòng)處理四. 行列式鍵盤結(jié)構(gòu):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 口線組成行列式結(jié)構(gòu),按鍵設(shè)置在行列的交叉點(diǎn)上,2>2的鍵盤結(jié)構(gòu)可構(gòu)成4個(gè)鍵的鍵盤,4>4的鍵盤結(jié)構(gòu)可構(gòu)成16個(gè)鍵的鍵盤。鍵掃描的過程: 判斷有無鍵按下列線輸出全0碼(D0D3),將行線狀態(tài)讀入累加器 A(D4D7),若讀入狀態(tài)不全為1則有鍵按下,否則無鍵按下。 當(dāng)有鍵按下時(shí),判斷哪一鍵按下:由列線逐列置0,檢查行輸入狀態(tài)。例如列線輸出 D3-D0為1110,即D0=0, 讀入行線狀態(tài)D7D4,若為0111,即D7=Q則可判斷為0鍵按下,若此時(shí)讀 出行線狀態(tài)為全1,則本列無鍵按下,即0、4、8 C均未按下。接著再將下 一列線置0輸

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

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

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

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

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

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

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

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

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

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

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

32、示 RAM即可;當(dāng)有鍵閉 合時(shí), 8279 會自動(dòng)執(zhí)行去抖、得到鍵值、等待按鍵釋放等操作,最后 , 將鍵 值存入FIFO RAM中,程序只需從FIFO中讀取鍵值即可,編程十分簡單,具 體實(shí)驗(yàn)線路圖 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實(shí)驗(yàn)連線圖8279鍵盤、顯示器接口器件是實(shí)現(xiàn)人機(jī)對話的主要部件,它已為廣大用戶 歡迎和廣泛應(yīng)用。然而在有些應(yīng)用場合,既要鍵盤具有普通的數(shù)據(jù)輸入和 控制功能,又要鍵盤具備按鈕功能。例如,微機(jī)控制的注塑機(jī),在手動(dòng)控 制時(shí)需要有點(diǎn)動(dòng)功能:按鈕按下進(jìn)行調(diào)模運(yùn)動(dòng),按鈕松開,調(diào)模運(yùn)動(dòng)停止。 本文介紹使8279構(gòu)成的鍵盤具有以上功能的實(shí)現(xiàn)方法,供讀者參考使用。為了使8279具有合適的鍵盤、顯示功能,首先要對芯片初始化??蛇m 當(dāng)?shù)靥暨x8279的控制字,例如:使8279具有8位顯示、右端輸入、編碼 鍵盤、雙

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

49、 D3、C2、Di、Dd)用來尋址顯示 RAM命令字的特征位。由位顯示RAM 中有16個(gè)字節(jié)單元故需要4位尋址。AI ( D4)為自動(dòng)增量特征位。當(dāng)AI=1時(shí),每次讀出后地址自動(dòng)加1指 向下一地址。5. 寫顯示RAM命令命令格式:D 7D6D5DD3 D2D DO10 0 AI A AAA其中:D 7D5D5 =100為寫顯示RAM命令字的特征位。在寫顯示器 RAM之前用該 命令用來設(shè)定將要寫入的顯示 RAM地址。AAAA ( D3、D2、Di、Dd)為將要寫入的存儲單元地址。AI (D)為自動(dòng)增量特征位。當(dāng) AI=1時(shí),每次寫入后地址自動(dòng)加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兩組,可以單獨(dú)送數(shù),故用兩位來分別屏蔽。當(dāng)A組的屏蔽位Db=1時(shí),A組的顯示RAM禁止寫入。因此,從CPU寫入顯示器RAM數(shù)據(jù)時(shí),不會 影響A的顯示。這種情況通常在采用雙 4位顯示器時(shí)使用。因?yàn)閮蓚€(gè)雙四 位顯示器是相互獨(dú)立的。為了給其中一個(gè)雙四位顯示器輸入數(shù)據(jù)而又不影 響另一個(gè)四位顯示器,因此必須對另一組的輸入實(shí)行屏蔽。BL/A、BL/B(Di、D)為消隱

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

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

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

溫馨提示

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

評論

0/150

提交評論