第八章系統(tǒng)擴(kuò)展2010春_第1頁(yè)
第八章系統(tǒng)擴(kuò)展2010春_第2頁(yè)
第八章系統(tǒng)擴(kuò)展2010春_第3頁(yè)
第八章系統(tǒng)擴(kuò)展2010春_第4頁(yè)
第八章系統(tǒng)擴(kuò)展2010春_第5頁(yè)
已閱讀5頁(yè),還剩122頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第9章 存儲(chǔ)器擴(kuò)展 半導(dǎo)體存儲(chǔ)器分類半導(dǎo)體存儲(chǔ)器分類 根據(jù)結(jié)構(gòu)使用功能分:半導(dǎo)體存儲(chǔ)器(內(nèi)存)分為隨機(jī)根據(jù)結(jié)構(gòu)使用功能分:半導(dǎo)體存儲(chǔ)器(內(nèi)存)分為隨機(jī)存取存儲(chǔ)器存取存儲(chǔ)器RAM (Random Access Memory)和只讀存)和只讀存儲(chǔ)器儲(chǔ)器ROM (Read Only Memory)兩類。)兩類。 隨機(jī)存取存儲(chǔ)器隨機(jī)存取存儲(chǔ)器RAM又稱讀寫存儲(chǔ)器,它的數(shù)據(jù)讀取、又稱讀寫存儲(chǔ)器,它的數(shù)據(jù)讀取、存入時(shí)間都很短,因此,計(jì)算機(jī)運(yùn)行時(shí),既可從存入時(shí)間都很短,因此,計(jì)算機(jī)運(yùn)行時(shí),既可從RAM中中讀數(shù)據(jù),又可將數(shù)據(jù)寫入讀數(shù)據(jù),又可將數(shù)據(jù)寫入RAM。但掉電后。但掉電后RAM中存放中存放的信息將丟失。的

2、信息將丟失。RAM適宜存放原始數(shù)據(jù)、中間結(jié)果及最適宜存放原始數(shù)據(jù)、中間結(jié)果及最后的運(yùn)算結(jié)果,因此又被稱作數(shù)據(jù)存儲(chǔ)器。后的運(yùn)算結(jié)果,因此又被稱作數(shù)據(jù)存儲(chǔ)器。 只讀存儲(chǔ)器(只讀存儲(chǔ)器(ROM)讀出一個(gè)數(shù)據(jù)的時(shí)間是數(shù)百納秒;讀出一個(gè)數(shù)據(jù)的時(shí)間是數(shù)百納秒;有時(shí)也可寫入,但寫入一個(gè)數(shù)據(jù)的時(shí)間長(zhǎng)達(dá)數(shù)十毫秒,有時(shí)也可寫入,但寫入一個(gè)數(shù)據(jù)的時(shí)間長(zhǎng)達(dá)數(shù)十毫秒,因此在計(jì)算機(jī)運(yùn)行時(shí)只能執(zhí)行讀操作。因此在計(jì)算機(jī)運(yùn)行時(shí)只能執(zhí)行讀操作。掉電后掉電后ROM 中中存放的數(shù)據(jù)不會(huì)丟失。存放的數(shù)據(jù)不會(huì)丟失。ROM適宜存放程序、常數(shù)、表適宜存放程序、常數(shù)、表格等,因此又稱為程序存儲(chǔ)器。格等,因此又稱為程序存儲(chǔ)器。第9章 存儲(chǔ)器擴(kuò)展

3、 RAM又分為靜態(tài)又分為靜態(tài)RAM和動(dòng)態(tài)和動(dòng)態(tài)RAM兩類兩類 靜態(tài)靜態(tài)RAM用觸發(fā)器用觸發(fā)器存儲(chǔ)信息,只要不斷存儲(chǔ)信息,只要不斷電,信息就不會(huì)丟失。電,信息就不會(huì)丟失。 動(dòng)態(tài)動(dòng)態(tài)RAM依靠電容依靠電容存儲(chǔ)信息,充電后為存儲(chǔ)信息,充電后為“1”,放電后為,放電后為“0”。由于集成電路中電。由于集成電路中電容的容量很小,且存在泄露電流的放電作容的容量很小,且存在泄露電流的放電作用,高電平的保持時(shí)間只有幾毫秒(用,高電平的保持時(shí)間只有幾毫秒(ms)。為了保存信息,每隔為了保存信息,每隔1、2ms必須對(duì)高電平必須對(duì)高電平的電容重新充電。這稱為動(dòng)態(tài)的電容重新充電。這稱為動(dòng)態(tài)RAM的的定定時(shí)刷新時(shí)刷新。

4、動(dòng)態(tài)動(dòng)態(tài)RAM的集成度高;靜態(tài)的集成度高;靜態(tài)RAM的集成的集成度低、功耗大,優(yōu)點(diǎn)是省去了刷新電路。度低、功耗大,優(yōu)點(diǎn)是省去了刷新電路。第9章 存儲(chǔ)器擴(kuò)展 只讀存儲(chǔ)器有以下四類:只讀存儲(chǔ)器有以下四類: 1)掩膜)掩膜ROM 2)可編程只讀存儲(chǔ)器)可編程只讀存儲(chǔ)器PROM(Programmable ROM) 3)可擦除可編程只讀存儲(chǔ)器)可擦除可編程只讀存儲(chǔ)器EPROM(Erasable PROM) 4)電擦除可編程只讀存儲(chǔ)器電擦除可編程只讀存儲(chǔ)器EEPROM(Electrically Erasable PROM) 5)flash存儲(chǔ)器存儲(chǔ)器第9章 存儲(chǔ)器擴(kuò)展 8 MCS-51單片機(jī)的系統(tǒng)擴(kuò)展單片

5、機(jī)的系統(tǒng)擴(kuò)展8.1 8.1 概述概述8.2 8.2 程序存儲(chǔ)器的擴(kuò)展程序存儲(chǔ)器的擴(kuò)展8.3 8.3 片外數(shù)據(jù)存儲(chǔ)器的擴(kuò)展片外數(shù)據(jù)存儲(chǔ)器的擴(kuò)展8.4 I/O8.4 I/O口擴(kuò)展口擴(kuò)展8.5 8.5 綜合功能擴(kuò)展綜合功能擴(kuò)展第9章 存儲(chǔ)器擴(kuò)展 MCS-51單片機(jī)最小應(yīng)用系統(tǒng)單片機(jī)最小應(yīng)用系統(tǒng) P0 P1 P2 P3 +5V+5VEA8051805187518751XTAL1XTAL288888051/8751最小應(yīng)用系統(tǒng)最小應(yīng)用系統(tǒng)第9章 存儲(chǔ)器擴(kuò)展 8.1 概述概述 單片機(jī)系統(tǒng)擴(kuò)展的方法有并行擴(kuò)展法和串行擴(kuò)單片機(jī)系統(tǒng)擴(kuò)展的方法有并行擴(kuò)展法和串行擴(kuò)展法。展法。并行擴(kuò)展法并行擴(kuò)展法是利用單片機(jī)的三總

6、線進(jìn)行擴(kuò)展。并行是利用單片機(jī)的三總線進(jìn)行擴(kuò)展。并行擴(kuò)展法接線較多,但速度較快。擴(kuò)展法接線較多,但速度較快。串行擴(kuò)展法串行擴(kuò)展法是指利用是指利用SPISPI三線總線和串行總線擴(kuò)展。三線總線和串行總線擴(kuò)展。串行擴(kuò)展法的優(yōu)點(diǎn)是接口器件體積小,減小空間和串行擴(kuò)展法的優(yōu)點(diǎn)是接口器件體積小,減小空間和成本。但是串行接口器件速度較慢,在高速應(yīng)用的成本。但是串行接口器件速度較慢,在高速應(yīng)用的場(chǎng)合,還是并行擴(kuò)展法占主導(dǎo)地位。場(chǎng)合,還是并行擴(kuò)展法占主導(dǎo)地位。第9章 存儲(chǔ)器擴(kuò)展 第9章 存儲(chǔ)器擴(kuò)展 8.1.1 8.1.1 片外總線結(jié)構(gòu)片外總線結(jié)構(gòu)ABAB、DBDB、CBCB8.1.2 8.1.2 系統(tǒng)擴(kuò)展能力系統(tǒng)擴(kuò)

7、展能力片外片外RAMRAM和片外和片外ROMROM都可擴(kuò)展都可擴(kuò)展64KB64KB,片外擴(kuò)展的,片外擴(kuò)展的I/OI/O口口等與片外等與片外RAMRAM統(tǒng)一編址。統(tǒng)一編址。8.1.3 8.1.3 地址的譯碼地址的譯碼線選法、全譯碼法、部分譯碼法線選法、全譯碼法、部分譯碼法8.1.4 8.1.4 總線能力的擴(kuò)展總線能力的擴(kuò)展通過總線驅(qū)動(dòng)器通過總線驅(qū)動(dòng)器第9章 存儲(chǔ)器擴(kuò)展 8.1.3 8.1.3 地址的譯碼地址的譯碼線選法、全譯碼法、部分譯碼法線選法、全譯碼法、部分譯碼法線選法是把某一根片選地址線直接連到某個(gè)外圍電線選法是把某一根片選地址線直接連到某個(gè)外圍電路芯片的片選端,選通該外圍電路。路芯片的片

8、選端,選通該外圍電路。線選法接線簡(jiǎn)單,但地址重疊太多,地址空間不能線選法接線簡(jiǎn)單,但地址重疊太多,地址空間不能充分利用。所以,只有當(dāng)單片機(jī)外接少量外圍電路充分利用。所以,只有當(dāng)單片機(jī)外接少量外圍電路時(shí),才采用線選法。時(shí),才采用線選法。第9章 存儲(chǔ)器擴(kuò)展 第9章 存儲(chǔ)器擴(kuò)展 全譯碼法全譯碼法全譯碼法通常用譯碼器對(duì)單片機(jī)的全部地址線進(jìn)行全譯碼法通常用譯碼器對(duì)單片機(jī)的全部地址線進(jìn)行譯碼,譯出的信號(hào)作為片選信號(hào)。常用的譯碼器有譯碼,譯出的信號(hào)作為片選信號(hào)。常用的譯碼器有74LS138(3/8譯碼器)、譯碼器)、74LS139(雙雙2/4譯碼器)、譯碼器)、74LS154(4/16譯碼器)等。譯碼器)等

9、。全譯碼法地址空間連續(xù),不存在重疊現(xiàn)象,譯碼器全譯碼法地址空間連續(xù),不存在重疊現(xiàn)象,譯碼器的輸出空余端可進(jìn)行其它擴(kuò)展。在外圍電路較多時(shí)的輸出空余端可進(jìn)行其它擴(kuò)展。在外圍電路較多時(shí)用此法。但電路連接較復(fù)雜。用此法。但電路連接較復(fù)雜。第9章 存儲(chǔ)器擴(kuò)展 第9章 存儲(chǔ)器擴(kuò)展 第9章 存儲(chǔ)器擴(kuò)展 部分譯碼法部分譯碼法部分譯碼法是指單片機(jī)地址線中只有一部分參加了部分譯碼法是指單片機(jī)地址線中只有一部分參加了譯碼,其余部分是懸空的。譯碼,其余部分是懸空的。由于懸空地址線的狀態(tài)不會(huì)影響它對(duì)存儲(chǔ)單元的選由于懸空地址線的狀態(tài)不會(huì)影響它對(duì)存儲(chǔ)單元的選址,故有地址重疊現(xiàn)象。其優(yōu)點(diǎn)是可以減少所用譯址,故有地址重疊現(xiàn)象。

10、其優(yōu)點(diǎn)是可以減少所用譯碼器的數(shù)量。碼器的數(shù)量。第9章 存儲(chǔ)器擴(kuò)展 8.1.4 8.1.4 總線能力的擴(kuò)展總線能力的擴(kuò)展 在單片機(jī)應(yīng)用系統(tǒng)中在單片機(jī)應(yīng)用系統(tǒng)中, 擴(kuò)展的三總線上掛接很多負(fù)載擴(kuò)展的三總線上掛接很多負(fù)載, 如存如存儲(chǔ)器、并行接口、儲(chǔ)器、并行接口、A/D接口、顯示接口等接口、顯示接口等, 但總線接口的負(fù)載但總線接口的負(fù)載能力有限能力有限, 因此常常需要通過連接總線驅(qū)動(dòng)器進(jìn)行總線驅(qū)動(dòng)。因此常常需要通過連接總線驅(qū)動(dòng)器進(jìn)行總線驅(qū)動(dòng)。 總線驅(qū)動(dòng)器對(duì)于單片機(jī)的總線驅(qū)動(dòng)器對(duì)于單片機(jī)的I/O口只相當(dāng)于增加了一個(gè)口只相當(dāng)于增加了一個(gè)TTL負(fù)載負(fù)載, 因此驅(qū)動(dòng)器除了對(duì)后級(jí)電路驅(qū)動(dòng)外因此驅(qū)動(dòng)器除了對(duì)后級(jí)電

11、路驅(qū)動(dòng)外,還能對(duì)負(fù)載的波動(dòng)變還能對(duì)負(fù)載的波動(dòng)變化起隔離作用。化起隔離作用。 在對(duì)在對(duì)TTL 負(fù)載驅(qū)動(dòng)時(shí)負(fù)載驅(qū)動(dòng)時(shí), 只需考慮驅(qū)動(dòng)電流的大小只需考慮驅(qū)動(dòng)電流的大小; 在對(duì)在對(duì)MOS負(fù)載驅(qū)動(dòng)時(shí)負(fù)載驅(qū)動(dòng)時(shí), MOS負(fù)載的輸入電流很小負(fù)載的輸入電流很小, 更多地要考慮對(duì)更多地要考慮對(duì)分布電容的電流驅(qū)動(dòng)。分布電容的電流驅(qū)動(dòng)。 第9章 存儲(chǔ)器擴(kuò)展 1 常用的總線驅(qū)動(dòng)器常用的總線驅(qū)動(dòng)器 系統(tǒng)總線中地址總線和控制總線是單向的系統(tǒng)總線中地址總線和控制總線是單向的, 因此驅(qū)動(dòng)器因此驅(qū)動(dòng)器可以選用單向的可以選用單向的, 如如74LS244。 74LS244還帶有三態(tài)控制還帶有三態(tài)控制, 能能實(shí)現(xiàn)總線緩沖和隔離。實(shí)現(xiàn)

12、總線緩沖和隔離。 系統(tǒng)中的數(shù)據(jù)總線是雙向的系統(tǒng)中的數(shù)據(jù)總線是雙向的, 其驅(qū)動(dòng)器也要選用雙向的其驅(qū)動(dòng)器也要選用雙向的, 如如74LS245 。74LS245 也是三態(tài)的也是三態(tài)的, 有一個(gè)方向控制端有一個(gè)方向控制端DIR, DIR=1時(shí)輸出時(shí)輸出(AnBn), DIR=0時(shí)輸入時(shí)輸入(AnBn)。 第9章 存儲(chǔ)器擴(kuò)展 圖圖 8.3 總線驅(qū)動(dòng)器芯片管腳總線驅(qū)動(dòng)器芯片管腳(a)單向驅(qū)動(dòng)器()單向驅(qū)動(dòng)器(b)雙向驅(qū)動(dòng)器)雙向驅(qū)動(dòng)器 第9章 存儲(chǔ)器擴(kuò)展 2. 總線驅(qū)動(dòng)器的接口總線驅(qū)動(dòng)器的接口 圖圖 8.4 8051與總線驅(qū)動(dòng)器的接口與總線驅(qū)動(dòng)器的接口(a) P2 口的驅(qū)動(dòng)口的驅(qū)動(dòng) (b) P0 口的驅(qū)動(dòng)

13、口的驅(qū)動(dòng) 第9章 存儲(chǔ)器擴(kuò)展 8 8.2 2 程序存儲(chǔ)器的擴(kuò)展程序存儲(chǔ)器的擴(kuò)展8.2.1 常用程序存儲(chǔ)器擴(kuò)展芯片常用程序存儲(chǔ)器擴(kuò)展芯片 (1)EPROM型號(hào)一般用型號(hào)一般用27開頭,掉電后信息不會(huì)丟失,編程時(shí)需專用的開頭,掉電后信息不會(huì)丟失,編程時(shí)需專用的編程器寫入,其內(nèi)容可以更改。當(dāng)需要更改時(shí),先將芯片放編程器寫入,其內(nèi)容可以更改。當(dāng)需要更改時(shí),先將芯片放在專用的擦除器中,紫外線照射下使其在專用的擦除器中,紫外線照射下使其MOS電路復(fù)位,原存電路復(fù)位,原存信息被擦除,然后重新編程,這樣能反復(fù)多次使用。信息被擦除,然后重新編程,這樣能反復(fù)多次使用。EPROM價(jià)格低廉,性能穩(wěn)定,所以使用較為廣泛

14、。常見的型號(hào)有價(jià)格低廉,性能穩(wěn)定,所以使用較為廣泛。常見的型號(hào)有2716(2K8)、)、 2732(4K8)、)、 2764(8K8)、)、 27128(16K8)、)、 27256(32K8)、)、 27512(64K8)。)。第9章 存儲(chǔ)器擴(kuò)展 8.2.1 常用程序存儲(chǔ)器擴(kuò)展芯片常用程序存儲(chǔ)器擴(kuò)展芯片 (2)EEPROM型號(hào)一般用型號(hào)一般用28開頭,掉電后信息也不會(huì)丟失,不需要專門的開頭,掉電后信息也不會(huì)丟失,不需要專門的編程器和擦除器,編程時(shí)的地址和數(shù)據(jù)信息由片內(nèi)鎖存器保編程器和擦除器,編程時(shí)的地址和數(shù)據(jù)信息由片內(nèi)鎖存器保存。除了能整片擦除以外,還能實(shí)現(xiàn)字節(jié)擦除,并且擦除和存。除了能整片

15、擦除以外,還能實(shí)現(xiàn)字節(jié)擦除,并且擦除和寫入操作可以在單片機(jī)內(nèi)進(jìn)行,不需要附加設(shè)備。可擦寫次寫入操作可以在單片機(jī)內(nèi)進(jìn)行,不需要附加設(shè)備??刹翆懘螖?shù)數(shù)1萬(wàn)次。,因而比萬(wàn)次。,因而比EPROM性能優(yōu)越,但價(jià)格較高。主要有性能優(yōu)越,但價(jià)格較高。主要有三種類型芯片:高壓(三種類型芯片:高壓(21V)EEPROM,2816、2817 (2K8) ;5V電寫入電寫入EEPROM,2816A、2817A (2K8) 、2864 (8K8);串行);串行EEPROM,NCR59308。第9章 存儲(chǔ)器擴(kuò)展 8.2.1 常用程序存儲(chǔ)器擴(kuò)展芯片常用程序存儲(chǔ)器擴(kuò)展芯片 (3)快擦寫型存儲(chǔ)器)快擦寫型存儲(chǔ)器PEROM又稱

16、閃速存儲(chǔ)器,型號(hào)一般用又稱閃速存儲(chǔ)器,型號(hào)一般用29開頭,具有掉電后信息保留開頭,具有掉電后信息保留的特點(diǎn),又可以在線寫入(寫入前自動(dòng)擦除),可擦寫次數(shù)的特點(diǎn),又可以在線寫入(寫入前自動(dòng)擦除),可擦寫次數(shù)約約10萬(wàn)次。它既具有萬(wàn)次。它既具有EPROM價(jià)格低,集成度高的優(yōu)點(diǎn),又有價(jià)格低,集成度高的優(yōu)點(diǎn),又有EEPROM電可擦除和寫入的特性。其擦除和寫入的速度比電可擦除和寫入的特性。其擦除和寫入的速度比EEPROM快的多,但是它只能整片擦除。快的多,但是它只能整片擦除。PEROM芯片的引芯片的引腳和同容量的腳和同容量的EEPROM完全一致,工作過程也類似,但比完全一致,工作過程也類似,但比EEPR

17、OM具有更優(yōu)越的性能和更低的價(jià)格。常見的有具有更優(yōu)越的性能和更低的價(jià)格。常見的有AT29C256等。等。第9章 存儲(chǔ)器擴(kuò)展 8.2.2 擴(kuò)展程序存儲(chǔ)器實(shí)例擴(kuò)展程序存儲(chǔ)器實(shí)例第9章 存儲(chǔ)器擴(kuò)展 地址鎖存電路地址鎖存電路74LS373簡(jiǎn)介簡(jiǎn)介第9章 存儲(chǔ)器擴(kuò)展 工工 作作 時(shí)時(shí) 序(序(PSEN*、ALE)8-1.解釋執(zhí)行指令解釋執(zhí)行指令“ADD A,#30H”的操作時(shí)序(假設(shè)此指令放的操作時(shí)序(假設(shè)此指令放在片外程序存儲(chǔ)器中)。在片外程序存儲(chǔ)器中)。第9章 存儲(chǔ)器擴(kuò)展 擴(kuò)展多片擴(kuò)展多片EPROM芯片芯片2764(1):):0000H1FFFH2764(2):):2000H3FFFH2764(3)

18、:):4000H5FFFH第9章 存儲(chǔ)器擴(kuò)展 例例:要求用 2764 芯片擴(kuò)展 8031 的片外程序存儲(chǔ)器空間, 分配的地址范圍為 0000H3FFFH。 本例采用完全譯碼方法。(1)確定片數(shù))確定片數(shù)因0000H 3FFFH的存儲(chǔ)空間為16 KB, 則所需芯片數(shù)=實(shí)際要求的存儲(chǔ)容量/單個(gè)芯片的存儲(chǔ)容量= 16 KB/ 8 KB = 2(片)第9章 存儲(chǔ)器擴(kuò)展 (2)分配地址范圍。)分配地址范圍。 第9章 存儲(chǔ)器擴(kuò)展 (3)存儲(chǔ)器擴(kuò)展連接如圖)存儲(chǔ)器擴(kuò)展連接如圖 9.9 所示。所示。 圖圖 9.9 采用地址譯碼器擴(kuò)展存儲(chǔ)器的連接圖采用地址譯碼器擴(kuò)展存儲(chǔ)器的連接圖 第9章 存儲(chǔ)器擴(kuò)展 7 7.3

19、 3 片外數(shù)據(jù)存儲(chǔ)器的擴(kuò)展片外數(shù)據(jù)存儲(chǔ)器的擴(kuò)展7.3.1 數(shù)據(jù)存儲(chǔ)器常用擴(kuò)展芯片數(shù)據(jù)存儲(chǔ)器常用擴(kuò)展芯片 數(shù)據(jù)存儲(chǔ)器用于存儲(chǔ)現(xiàn)場(chǎng)采集的原始數(shù)據(jù)、運(yùn)算結(jié)果等,需數(shù)據(jù)存儲(chǔ)器用于存儲(chǔ)現(xiàn)場(chǎng)采集的原始數(shù)據(jù)、運(yùn)算結(jié)果等,需要經(jīng)常進(jìn)行讀寫操作,所以經(jīng)常采用半導(dǎo)體讀寫存儲(chǔ)器要經(jīng)常進(jìn)行讀寫操作,所以經(jīng)常采用半導(dǎo)體讀寫存儲(chǔ)器RAM。EEPROM也可用作片外數(shù)據(jù)存儲(chǔ)器。也可用作片外數(shù)據(jù)存儲(chǔ)器。MOS型型RAM按照基本存儲(chǔ)電路的結(jié)構(gòu)和特性,分為靜態(tài)按照基本存儲(chǔ)電路的結(jié)構(gòu)和特性,分為靜態(tài)RAM和動(dòng)態(tài)和動(dòng)態(tài)RAM。第9章 存儲(chǔ)器擴(kuò)展 片外數(shù)據(jù)存儲(chǔ)器擴(kuò)展常用芯片片外數(shù)據(jù)存儲(chǔ)器擴(kuò)展常用芯片(1)靜態(tài))靜態(tài)RAM(SRAM)MO

20、S型靜態(tài)型靜態(tài)RAM的基本存儲(chǔ)單元是的基本存儲(chǔ)單元是MOS型雙穩(wěn)態(tài)觸發(fā)器。一型雙穩(wěn)態(tài)觸發(fā)器。一個(gè)觸發(fā)器可以個(gè)觸發(fā)器可以 存儲(chǔ)一位二進(jìn)制信息。存儲(chǔ)一位二進(jìn)制信息。SRAM能可靠的保持所存能可靠的保持所存信息,不需要刷新操作;只要電源不斷電,信息不會(huì)丟失。但信息,不需要刷新操作;只要電源不斷電,信息不會(huì)丟失。但功耗大,集成度較低,成本高,常用于存儲(chǔ)容量較小的微機(jī)應(yīng)功耗大,集成度較低,成本高,常用于存儲(chǔ)容量較小的微機(jī)應(yīng)用系統(tǒng)。常用芯片主要有用系統(tǒng)。常用芯片主要有6116(2K8)、)、 6264(8K8)等。)等。(2)動(dòng)態(tài))動(dòng)態(tài)RAM(DRAM)MOS型動(dòng)態(tài)型動(dòng)態(tài)RAM利用利用MOS管的柵極和源極

21、之間的電容來(lái)保存管的柵極和源極之間的電容來(lái)保存信息。由于柵源極間電容的電荷量會(huì)逐漸泄漏,因此需要由信息。由于柵源極間電容的電荷量會(huì)逐漸泄漏,因此需要由CPU按一定時(shí)間(如按一定時(shí)間(如12ms)將所有存入的信息逐個(gè)讀出來(lái),)將所有存入的信息逐個(gè)讀出來(lái),經(jīng)放大后再寫進(jìn)去,以保持原來(lái)的信息不變。這一操作稱為動(dòng)經(jīng)放大后再寫進(jìn)去,以保持原來(lái)的信息不變。這一操作稱為動(dòng)態(tài)存儲(chǔ)器的刷新。為此需要刷新電路和相應(yīng)的控制邏輯。它集態(tài)存儲(chǔ)器的刷新。為此需要刷新電路和相應(yīng)的控制邏輯。它集成度高,功耗小、成本低,但電路復(fù)雜,常用于存儲(chǔ)容量較大成度高,功耗小、成本低,但電路復(fù)雜,常用于存儲(chǔ)容量較大的微機(jī)系統(tǒng)。常用芯片有的

22、微機(jī)系統(tǒng)。常用芯片有2164A(64K1)等。)等。第9章 存儲(chǔ)器擴(kuò)展 片外數(shù)據(jù)存儲(chǔ)器擴(kuò)展常用芯片片外數(shù)據(jù)存儲(chǔ)器擴(kuò)展常用芯片(3)集成)集成RAM(iRAM)是一種帶刷新邏輯電路的是一種帶刷新邏輯電路的DRAM。由于它自帶刷新邏輯,因此。由于它自帶刷新邏輯,因此簡(jiǎn)化了與微處理器的連接電路,使用它和使用簡(jiǎn)化了與微處理器的連接電路,使用它和使用SRAM一樣方便,一樣方便,兼有靜態(tài)、動(dòng)態(tài)兼有靜態(tài)、動(dòng)態(tài)RAM的優(yōu)點(diǎn)。常用芯片有的優(yōu)點(diǎn)。常用芯片有2186。(4)非易失性)非易失性RAM(NVRAM)其存儲(chǔ)體由其存儲(chǔ)體由SRAM和和EEPROM兩部分組成。正常讀寫時(shí),兩部分組成。正常讀寫時(shí),SRAM工作。

23、當(dāng)要保存信息時(shí)(如電源掉電),控制電路將工作。當(dāng)要保存信息時(shí)(如電源掉電),控制電路將SRAM中的內(nèi)容復(fù)制到中的內(nèi)容復(fù)制到EEPROM中保存。存入中保存。存入EEPROM中的中的信息又能夠恢復(fù)到信息又能夠恢復(fù)到SRAM中。中。NVRAM既能夠隨機(jī)存取,又具既能夠隨機(jī)存取,又具有非易失性,適合用于需要掉電保護(hù)的場(chǎng)合。目前芯片容量還有非易失性,適合用于需要掉電保護(hù)的場(chǎng)合。目前芯片容量還不能做的很大,另外由于不能做的很大,另外由于EEPROM的擦寫次數(shù)有限制,因而影的擦寫次數(shù)有限制,因而影響響NVRAM的使用壽命。的使用壽命。第9章 存儲(chǔ)器擴(kuò)展 7.3.2 擴(kuò)展數(shù)據(jù)存儲(chǔ)器實(shí)例擴(kuò)展數(shù)據(jù)存儲(chǔ)器實(shí)例第9章

24、 存儲(chǔ)器擴(kuò)展 讀寫工作時(shí)序(讀寫工作時(shí)序(ALE、RD*、WR*)注意:這個(gè)過程與擴(kuò)展片外注意:這個(gè)過程與擴(kuò)展片外ROM不同。不同。擴(kuò)展片外擴(kuò)展片外ROM時(shí),時(shí),PSEN*控制片外控制片外ROM的的“讀讀”選通,一個(gè)機(jī)器周期選通,一個(gè)機(jī)器周期ALE2次有效,可次有效,可“讀讀”2個(gè)字節(jié)。個(gè)字節(jié)。擴(kuò)展片外擴(kuò)展片外RAM時(shí),時(shí),RD*/WR*控制片外控制片外RAM的的“讀讀/寫寫”選通,選通,2個(gè)機(jī)器周期個(gè)機(jī)器周期ALE只有只有1次有效,只可次有效,只可“讀讀/寫寫”1個(gè)字節(jié)。所以訪問片外個(gè)字節(jié)。所以訪問片外RAM的指令都是的指令都是2周周期指令。期指令。第9章 存儲(chǔ)器擴(kuò)展 6264 管腳圖管腳圖

25、 第9章 存儲(chǔ)器擴(kuò)展 表表 6264的工作方式的工作方式 第9章 存儲(chǔ)器擴(kuò)展 6264的8KB地址范圍不唯一(因?yàn)锳14A13可為任意值), 6000H7FFFH是一種地址范圍。當(dāng)向該片6000H單元寫一個(gè)數(shù)據(jù)DATA時(shí), 可用如下指令: MOV A, DATA MOV DPTA, 6000H MOVX DPTR, A從FFFH單元讀一個(gè)數(shù)據(jù)時(shí), 可用如下指令: MOV DPTR, 7FFFH MOVX , DPTR 第9章 存儲(chǔ)器擴(kuò)展 擴(kuò)展多片擴(kuò)展多片SRAM和和EPROM2764(1):):0000H1FFFH2764(2):):2000H3FFFH6264(1):):0000H1FFFH

26、6264(2):):2000H3FFFH第9章 存儲(chǔ)器擴(kuò)展 P2.7P2.6P2.5P2.0P2.4P0.0P0.7ALEA0A7 A8A12 2764 (1) CED0D7 OE A0A7 A8A12 2764 (2) CED0D7 OE D0D7Q0Q7G74LS3738051G Y3B Y2A Y1 Y074LS139OERDWREAPSEN A0A7 A8A12 6264 (1) CED0D7 OE WR CS A0A7 A8A12 6264 (2) CED0D7 OE WR CSVCC第9章 存儲(chǔ)器擴(kuò)展 8.2 I/O指令與編程方法指令與編程方法由于將由于將I/O口和外部口和外部RA

27、M統(tǒng)一編址,因此使用外部統(tǒng)一編址,因此使用外部RAM的訪問指令對(duì)的訪問指令對(duì)I/O口進(jìn)行數(shù)據(jù)傳送。口進(jìn)行數(shù)據(jù)傳送。MOVXA,Ri;輸入;輸入MOVX Ri,A;輸出;輸出 MOVX A,DPTR ;輸入;輸入MOVX DPTR,A ;輸出;輸出第9章 存儲(chǔ)器擴(kuò)展 9.1.3 I/O指令與編程方法指令與編程方法例例9-1 設(shè)單片機(jī)需要將端口地址為設(shè)單片機(jī)需要將端口地址為7CF7H中的數(shù)據(jù)中的數(shù)據(jù)0EDH讀入累加器讀入累加器A中,編寫程序。中,編寫程序。MOVP2,#7CHMOVR0,#0F7HMOVXA,R0例例9-2 設(shè)單片機(jī)需要將數(shù)據(jù)設(shè)單片機(jī)需要將數(shù)據(jù)F4H輸出到端口地址為輸出到端口地址為

28、7E7FH的的I/O口,口,編寫程序。編寫程序。MOVDPTR,#7E7FHMOVA,#0F4HMOVX DPTR,A;輸出;輸出第9章 存儲(chǔ)器擴(kuò)展 8.2 I/O口的擴(kuò)展口的擴(kuò)展8.2.1 I/O口擴(kuò)展的方法和常用芯片口擴(kuò)展的方法和常用芯片(1)擴(kuò)展方法)擴(kuò)展方法1)三總線擴(kuò)展法)三總線擴(kuò)展法2)串行口擴(kuò)展法)串行口擴(kuò)展法 串行口方式串行口方式0為移位寄存器方式,采用為移位寄存器方式,采用74LS164(串串入并出)可擴(kuò)展并行輸出口。使用入并出)可擴(kuò)展并行輸出口。使用74LS165(并入并入串出)可擴(kuò)展并行輸入口。在不使用串行口時(shí),串出)可擴(kuò)展并行輸入口。在不使用串行口時(shí),可使用此方法,但是

29、數(shù)據(jù)傳輸較慢??墒褂么朔椒?,但是數(shù)據(jù)傳輸較慢。3)通過片內(nèi))通過片內(nèi)I/O口擴(kuò)展口擴(kuò)展 擴(kuò)展芯片的數(shù)據(jù)線不通過擴(kuò)展芯片的數(shù)據(jù)線不通過P0口,而是通過其它片口,而是通過其它片內(nèi)內(nèi)I/O口,要占用有限的片內(nèi)口,要占用有限的片內(nèi)I/O資源。資源。第9章 存儲(chǔ)器擴(kuò)展 常用的常用的I/O口擴(kuò)展芯片口擴(kuò)展芯片1)專用)專用I/O擴(kuò)展芯片擴(kuò)展芯片主要是主要是8255(38并行口)、并行口)、8243 (44并行口)并行口) 2)I/O口綜合擴(kuò)展芯片口綜合擴(kuò)展芯片主要有主要有8155H/8156H(28+6并行并行I/O口、口、2568靜靜態(tài)態(tài)RAM、一個(gè)、一個(gè)14位定時(shí)器位定時(shí)器/計(jì)數(shù)器),計(jì)數(shù)器),875

30、5(28并行并行I/O口、口、2K8EPROM)。3)TTL電路芯片電路芯片 廣泛使用的有鎖存器及三態(tài)緩沖器廣泛使用的有鎖存器及三態(tài)緩沖器74LS373、273、374、377、367、244等,串行口擴(kuò)展主要用移位等,串行口擴(kuò)展主要用移位寄存器寄存器74LS164、74LS165第9章 存儲(chǔ)器擴(kuò)展 8.2.2 簡(jiǎn)單的簡(jiǎn)單的I/O口擴(kuò)展方法口擴(kuò)展方法 采用采用TTL電路或電路或CMOS電路直接傳送并電路直接傳送并行數(shù)據(jù)的方法,可以實(shí)現(xiàn)簡(jiǎn)單的行數(shù)據(jù)的方法,可以實(shí)現(xiàn)簡(jiǎn)單的I/O口的口的擴(kuò)展。擴(kuò)展。 74LS244為雙為雙4位三態(tài)門緩沖器;位三態(tài)門緩沖器;74LS273是一種是一種8D觸發(fā)器。觸發(fā)器

31、。第9章 存儲(chǔ)器擴(kuò)展 第9章 存儲(chǔ)器擴(kuò)展 例例8-4 實(shí)現(xiàn)實(shí)現(xiàn)8-12中的功能,按下任意鍵對(duì)應(yīng)中的功能,按下任意鍵對(duì)應(yīng)的的LED發(fā)光的功能,寫出應(yīng)用程序。發(fā)光的功能,寫出應(yīng)用程序。 輸入和輸出都是在P2.0為低電平時(shí)有效。其輸入和輸出口地址都為FEFFH。 LOOP:MOVLOOP:MOVDPTR,#0FEFFHDPTR,#0FEFFHMOVXMOVXA,DPTRA,DPTRMOVXMOVXDPTR,ADPTR,ASJMPSJMPLOOPLOOP第9章 存儲(chǔ)器擴(kuò)展 8.4.3 利用串行口擴(kuò)展的方法利用串行口擴(kuò)展的方法 P1.0控制移位與置位(控制移位與置位(PL),高電平),高電平165串行移

32、串行移位,低電平位,低電平165并行置入數(shù)據(jù)。并行置入數(shù)據(jù)。第9章 存儲(chǔ)器擴(kuò)展 例例8-5 根據(jù)圖根據(jù)圖8-13的擴(kuò)展電路,從兩個(gè)的擴(kuò)展電路,從兩個(gè)8位并行口讀入數(shù)據(jù),并位并行口讀入數(shù)據(jù),并把它們轉(zhuǎn)存到片內(nèi)把它們轉(zhuǎn)存到片內(nèi)RAM數(shù)據(jù)區(qū)地址為數(shù)據(jù)區(qū)地址為50H、51H單元中,單元中,寫出相應(yīng)程序。寫出相應(yīng)程序。START:MOVR0,#50HMOVR7,#02HCLRP1.0SETBP1.0MOVSCON,#10HSIN:CLRRIJNBRI,$MOVA,SBUFMOVR0,AINCR0DJNZR7,SINRET第9章 存儲(chǔ)器擴(kuò)展 擴(kuò)展并行輸出口擴(kuò)展并行輸出口第9章 存儲(chǔ)器擴(kuò)展 例例8-6 在圖

33、在圖8-14的串入并出移位寄存器擴(kuò)展電路中,將片內(nèi)的串入并出移位寄存器擴(kuò)展電路中,將片內(nèi)RAM50H、51H單元中的數(shù)據(jù)通過串行口轉(zhuǎn)換成并行輸單元中的數(shù)據(jù)通過串行口轉(zhuǎn)換成并行輸出,寫出相應(yīng)程序。出,寫出相應(yīng)程序。START:MOVR0,#50HMOVR7,#02HMOVSCON,#00HSOUT: MOV A, R0 CLRTIMOVSBUF , A JNBTI,$INCR0DJNZR7,SOUTRET第9章 存儲(chǔ)器擴(kuò)展 8255可編程并行可編程并行I/O口擴(kuò)展口擴(kuò)展1芯片引腳及其內(nèi)部結(jié)構(gòu)芯片引腳及其內(nèi)部結(jié)構(gòu)圖圖4.18 8255A芯片的引腳圖芯片的引腳圖 8.3 綜合功能擴(kuò)展綜合功能擴(kuò)展第9

34、章 存儲(chǔ)器擴(kuò)展 圖4.19 8255A芯片的內(nèi)部結(jié)構(gòu)圖 第9章 存儲(chǔ)器擴(kuò)展 表4.3 8255芯片的引腳信號(hào)說明第9章 存儲(chǔ)器擴(kuò)展 續(xù)表 第9章 存儲(chǔ)器擴(kuò)展 (1) 數(shù)據(jù)總線緩沖器:是一個(gè)8位的雙向三態(tài)驅(qū)動(dòng)器,用于與單片機(jī)的數(shù)據(jù)總線相連。 (2) 讀/寫控制邏輯:根據(jù)單片機(jī)的地址信息(A1、A0)與控制信息(RD、WR、RESET),控制片內(nèi)數(shù)據(jù)、CPU控制字、外設(shè)狀態(tài)信息的傳送。 (3) 控制電路:根據(jù)CPU送來(lái)的控制字使所管I/O口按一定方式工作。對(duì)C口甚至可按位實(shí)現(xiàn)置位或復(fù)位??刂齐娐贩譃閮山M:A組控制電路控制A口及C口的高4位(PC7PC4),B組控制電路控制B口及C口的低4位(PC3

35、PC0)。 (4) 三個(gè)并行I/O端口:A口可編程為8位輸入,或8位輸出,或雙向傳送;B口可編程為8位輸入,或8位輸出,但不能雙向傳送;C口分為兩個(gè)4位口,用于輸入或輸出,也可用作A口、B口的狀態(tài)控制信號(hào)。第9章 存儲(chǔ)器擴(kuò)展 28255的操作方式的操作方式1) 讀/寫控制邏輯操作選擇 表4.4 8255的口操作狀態(tài)第9章 存儲(chǔ)器擴(kuò)展 2) 8255的三種工作方式 方式0(基本輸入/輸出方式):這種工作方式不需要任何選通信號(hào)。A口、B口及C口的兩個(gè)4位口中任何一個(gè)端口都可以由程序設(shè)定為輸入或輸出。作為輸出口時(shí),輸出數(shù)據(jù)被鎖存;作為輸入口時(shí),輸入數(shù)據(jù)不鎖存。 方式1(選通輸入/輸出方式):在這種工

36、作方式下,A、B、C三個(gè)口分為兩組。A組包括A口和C口的高4位,A口可由編程設(shè)定為輸入口或輸出口,C口的高4位則用來(lái)作為A口輸入/輸出操作的控制和同步信號(hào);B組包括B口和C口的低4位,B口可由編程設(shè)定為輸入口或輸出口,C口的低4位則用來(lái)作為B口輸入/輸出操作的控制和同步信號(hào)。A口和B口的輸入數(shù)據(jù)或輸出數(shù)據(jù)都被鎖存。方式1下的邏輯組態(tài)關(guān)系如圖4.20所示。第9章 存儲(chǔ)器擴(kuò)展 圖4.20 8255方式1邏輯組態(tài)關(guān)系圖 第9章 存儲(chǔ)器擴(kuò)展 第9章 存儲(chǔ)器擴(kuò)展 3) 8255A的編程控制字圖圖8.22 8255A控制字的格式與定義控制字的格式與定義 (a) 方式選擇控制字;方式選擇控制字;(b) C口

37、置位口置位/復(fù)位控制字復(fù)位控制字第9章 存儲(chǔ)器擴(kuò)展 圖圖4.23 8255的擴(kuò)展連接圖的擴(kuò)展連接圖 38031與與8255的接口方法的接口方法第9章 存儲(chǔ)器擴(kuò)展 例例6 試對(duì)圖4.23中的8255A編程,使其各口工作于方式0,A口作輸入,B口作輸出,C口高4位作輸出,C口的低4位作輸入。 由方式選擇控制字的格式與 定義可確定出滿足要求的方式控制字應(yīng)為91H(10010001B)。對(duì)8255A編寫程序?qū)?1H寫入它的控制寄存器,初始化程序?yàn)镸OV DPTR,#FF7FH ;DPTR作地址指針,指向控制口MOV A,91H MOVX DPTR,A 因?yàn)閳D4.23擴(kuò)展電路未使用高位地址線,所以端口地

38、址也可使用8位。第9章 存儲(chǔ)器擴(kuò)展 8.4 單片機(jī)與單片機(jī)與LED顯示器接口技術(shù)顯示器接口技術(shù)9.3.1 LED顯示器結(jié)構(gòu)與原理顯示器結(jié)構(gòu)與原理圖圖9.8 七段顯示塊管腳與結(jié)構(gòu)圖七段顯示塊管腳與結(jié)構(gòu)圖 第9章 存儲(chǔ)器擴(kuò)展 表表8-7 七段七段LED的段選碼的段選碼 顯示字符共陰極段選碼共陽(yáng)極段選碼顯示字符共陰極段選碼共陽(yáng)極段選碼03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82H31HCEH707HF8Hy6EH91H87FH80H8.FFH00H96FH90H“滅

39、”00HFFHA77H88HB7CH83H 第9章 存儲(chǔ)器擴(kuò)展 LED顯示器接口及顯示程序顯示器接口及顯示程序圖 N位LED顯示器 第9章 存儲(chǔ)器擴(kuò)展 1LED靜態(tài)顯示方式靜態(tài)顯示方式 LED工作在靜態(tài)顯示方式下,共陰極接地或共陽(yáng)極工作在靜態(tài)顯示方式下,共陰極接地或共陽(yáng)極接接+5 V;每一位的段選線;每一位的段選線(ag、dp)與一個(gè)與一個(gè)8位并行位并行I/O口相連,如圖所示。該圖表示了一個(gè)口相連,如圖所示。該圖表示了一個(gè)4位靜態(tài)位靜態(tài)LED顯示顯示器電路,顯示器的每一位可獨(dú)立顯示,只要在該位的器電路,顯示器的每一位可獨(dú)立顯示,只要在該位的段選線上保持段選碼電平,該位就能保持相應(yīng)的顯示段選線上

40、保持段選碼電平,該位就能保持相應(yīng)的顯示字符。由于每一位由一個(gè)字符。由于每一位由一個(gè)8位輸出口控制段選碼,故在位輸出口控制段選碼,故在同一時(shí)刻各位可以顯示不同的字符。同一時(shí)刻各位可以顯示不同的字符。 第9章 存儲(chǔ)器擴(kuò)展 1LED靜態(tài)顯示方式靜態(tài)顯示方式 N位靜態(tài)顯示器要求有位靜態(tài)顯示器要求有N8根根I/O口線,占用口線,占用I/O口口線較多。故在位數(shù)較多時(shí)往往采用動(dòng)態(tài)顯示方式。線較多。故在位數(shù)較多時(shí)往往采用動(dòng)態(tài)顯示方式。 靜態(tài)顯示的亮度大,軟件較為簡(jiǎn)單,不占用靜態(tài)顯示的亮度大,軟件較為簡(jiǎn)單,不占用CPU時(shí)時(shí)間間,但由于每位但由于每位LED都需要一個(gè)并行接口輸出字形代碼,都需要一個(gè)并行接口輸出字形

41、代碼,故占用故占用I/O資源較多。資源較多。第9章 存儲(chǔ)器擴(kuò)展 第9章 存儲(chǔ)器擴(kuò)展 2LED動(dòng)態(tài)顯示方式動(dòng)態(tài)顯示方式 動(dòng)態(tài)顯示接口是對(duì)多位動(dòng)態(tài)顯示接口是對(duì)多位LEDLED顯示器采用動(dòng)態(tài)顯示器采用動(dòng)態(tài)掃描的方法進(jìn)行顯示,即逐個(gè)循環(huán)的點(diǎn)亮各位顯掃描的方法進(jìn)行顯示,即逐個(gè)循環(huán)的點(diǎn)亮各位顯示器。這樣,雖然在任一時(shí)刻只有一位顯示器被示器。這樣,雖然在任一時(shí)刻只有一位顯示器被點(diǎn)亮,但由于點(diǎn)亮,但由于人眼的視覺殘留效應(yīng)人眼的視覺殘留效應(yīng),實(shí)際上看起,實(shí)際上看起來(lái)與全部顯示器持續(xù)點(diǎn)亮的效果一樣。動(dòng)態(tài)顯示來(lái)與全部顯示器持續(xù)點(diǎn)亮的效果一樣。動(dòng)態(tài)顯示器可簡(jiǎn)化電路,常用在智能儀表中。器可簡(jiǎn)化電路,常用在智能儀表中。

42、動(dòng)態(tài)顯示除了要給顯示器提供字形代碼外,動(dòng)態(tài)顯示除了要給顯示器提供字形代碼外,還要對(duì)顯示器提供位碼。因此多位還要對(duì)顯示器提供位碼。因此多位LEDLED動(dòng)態(tài)顯示動(dòng)態(tài)顯示接口電路需要有接口電路需要有兩個(gè)輸出口兩個(gè)輸出口,一個(gè)用于輸出,一個(gè)用于輸出8 8位位字形碼,另一個(gè)用于輸出位控碼,位控碼的位數(shù)字形碼,另一個(gè)用于輸出位控碼,位控碼的位數(shù)等于等于LEDLED顯示器的位數(shù)。顯示器的位數(shù)。第9章 存儲(chǔ)器擴(kuò)展 2LED動(dòng)態(tài)顯示方式動(dòng)態(tài)顯示方式圖 8位LED動(dòng)態(tài)顯示器電路 第9章 存儲(chǔ)器擴(kuò)展 8255APA0PA1PA2PA3PA4PA5PA6PA7PB7PB6PB5PB4PB3PB2PB1PB0+5Vad

43、pgfedcb8xR8x74LS076x74LS06RESETWRRDCSD0D1D2D3D4D5D6D7A0A1第9章 存儲(chǔ)器擴(kuò)展 TAB:DB 0CH,0F9H,0A4H;0B0H,99H;段碼表 DB 92H,82H ,0F8H,80H,90H第9章 存儲(chǔ)器擴(kuò)展 8.5 鍵盤接口鍵盤接口開關(guān)電路有搬鍵開關(guān)和鍵盤。鍵盤一般使用按鈕。開關(guān)電路有搬鍵開關(guān)和鍵盤。鍵盤一般使用按鈕。鍵盤是微機(jī)系統(tǒng)中最常用的人機(jī)對(duì)話輸入設(shè)備。鍵盤是微機(jī)系統(tǒng)中最常用的人機(jī)對(duì)話輸入設(shè)備。鍵盤有兩種基本類型:鍵盤有兩種基本類型:編碼鍵盤和非編碼鍵編碼鍵盤和非編碼鍵盤盤。第9章 存儲(chǔ)器擴(kuò)展 8.5 鍵盤接口鍵盤接口編碼鍵盤

44、本身除了按鍵以外,還包括產(chǎn)生鍵碼的編碼鍵盤本身除了按鍵以外,還包括產(chǎn)生鍵碼的硬件電路。這種鍵盤使用十分方便,但價(jià)格硬件電路。這種鍵盤使用十分方便,但價(jià)格較高,一般的單片機(jī)應(yīng)用系統(tǒng)較少采用。較高,一般的單片機(jī)應(yīng)用系統(tǒng)較少采用。非編碼鍵盤是靠軟件識(shí)別鍵盤上的閉合鍵,由此非編碼鍵盤是靠軟件識(shí)別鍵盤上的閉合鍵,由此計(jì)算出鍵碼。非編碼鍵盤幾乎不需要附加的計(jì)算出鍵碼。非編碼鍵盤幾乎不需要附加的硬件邏輯。硬件邏輯。 非編碼鍵盤又分為獨(dú)立式和行列式鍵盤。非編碼鍵盤又分為獨(dú)立式和行列式鍵盤。第9章 存儲(chǔ)器擴(kuò)展 消除鍵抖動(dòng)消除鍵抖動(dòng)鍵閉合和釋放過程呈現(xiàn)一串鍵閉合和釋放過程呈現(xiàn)一串抖動(dòng)脈沖波,其時(shí)間由按鍵抖動(dòng)脈沖波

45、,其時(shí)間由按鍵的機(jī)械特性有關(guān),一般為的機(jī)械特性有關(guān),一般為510毫秒;鍵閉合穩(wěn)定期一毫秒;鍵閉合穩(wěn)定期一般為幾百毫秒到幾秒。為確般為幾百毫秒到幾秒。為確保保CPU對(duì)鍵的一次閉合僅做對(duì)鍵的一次閉合僅做一次處理,必須去除抖動(dòng)。一次處理,必須去除抖動(dòng)。硬件方法是加硬件方法是加RS觸發(fā)器消抖觸發(fā)器消抖動(dòng)電路,從根本避免抖動(dòng)的動(dòng)電路,從根本避免抖動(dòng)的產(chǎn)生。產(chǎn)生。軟件方法是通過延時(shí)的方法軟件方法是通過延時(shí)的方法躲過抖動(dòng),待信號(hào)穩(wěn)定之后,躲過抖動(dòng),待信號(hào)穩(wěn)定之后,在進(jìn)行狀態(tài)的輸入。在進(jìn)行狀態(tài)的輸入。第9章 存儲(chǔ)器擴(kuò)展 圖 消除鍵抖動(dòng)電路 第9章 存儲(chǔ)器擴(kuò)展 獨(dú)立式按鍵獨(dú)立式按鍵1獨(dú)立式按鍵接口結(jié)構(gòu)獨(dú)立式按鍵

46、接口結(jié)構(gòu)獨(dú)立式按鍵的接口電路示意圖獨(dú)立式按鍵的接口電路示意圖(a) 中斷方式;中斷方式;(b) 查詢方式查詢方式 第9章 存儲(chǔ)器擴(kuò)展 2獨(dú)立式按鍵的軟件結(jié)構(gòu)獨(dú)立式按鍵的軟件結(jié)構(gòu) 下面是查詢方式的鍵盤程序。K0K7為功能程序入口地址標(biāo)號(hào),其地址間隔應(yīng)能容納JMP指令字節(jié),PROM0PROM7分別為每個(gè)按鍵的功能程序。設(shè)I/O為P1口。START:MOV A,#0FFH ; MOV P1,A ;置;置P1口為輸入狀態(tài)口為輸入狀態(tài)PAN: MOV A,P1 ;鍵狀態(tài)輸入;鍵狀態(tài)輸入 CPL A JZ PAN ACALL DEALAY10MS MOV A,P1 ;鍵狀態(tài)輸入;鍵狀態(tài)輸入 CPL A J

47、Z PAN 第9章 存儲(chǔ)器擴(kuò)展 JB ACC.0,K0 ;檢測(cè);檢測(cè)0號(hào)鍵是否按下,按下轉(zhuǎn)號(hào)鍵是否按下,按下轉(zhuǎn) JB ACC.1,K1 ;檢測(cè);檢測(cè)1號(hào)鍵是否按下,按下轉(zhuǎn)號(hào)鍵是否按下,按下轉(zhuǎn) JB ACC.2,K2 ;檢測(cè);檢測(cè)2號(hào)鍵是否按下,按下轉(zhuǎn)號(hào)鍵是否按下,按下轉(zhuǎn) JB ACC.3,K3 ;檢測(cè);檢測(cè)3號(hào)鍵是否按下,按下轉(zhuǎn)號(hào)鍵是否按下,按下轉(zhuǎn) JB ACC.4,K4 ;檢測(cè);檢測(cè)4號(hào)鍵是否按下,按下轉(zhuǎn)號(hào)鍵是否按下,按下轉(zhuǎn) JB ACC.5,K5 ;檢測(cè);檢測(cè)5號(hào)鍵是否按下,按下轉(zhuǎn)號(hào)鍵是否按下,按下轉(zhuǎn) JB ACC.6,K6 ;檢測(cè);檢測(cè)6號(hào)鍵是否按下,按下轉(zhuǎn)號(hào)鍵是否按下,按下轉(zhuǎn) JB A

48、CC.7,K7 ;檢測(cè);檢測(cè)7號(hào)鍵是否按下,按下轉(zhuǎn)號(hào)鍵是否按下,按下轉(zhuǎn) JMP START ;無(wú)鍵按下返回,再順次檢測(cè);無(wú)鍵按下返回,再順次檢測(cè)K0:AJMP PROM0K1:AJMP PROM1 K7:AJIMP PROM7;入口地址表 第9章 存儲(chǔ)器擴(kuò)展 PROM0: ;0號(hào)鍵功能程序 JMP START ;0號(hào)鍵功能程序執(zhí)行完返回PROM1: ;0號(hào)鍵功能程序 JMP START ;1號(hào)鍵功能程序執(zhí)行完返回 ;7號(hào)鍵功能程序PROM7: JMP START ;7號(hào)鍵功能程序執(zhí)行完返回第9章 存儲(chǔ)器擴(kuò)展 行列式鍵盤行列式鍵盤第9章 存儲(chǔ)器擴(kuò)展 鍵盤識(shí)別過程:鍵盤識(shí)別過程:(1)測(cè)試是否有鍵

49、按下測(cè)試是否有鍵按下單片機(jī)單片機(jī)I/O口向所有列線(口向所有列線(D0D3)輸出低電平,即向列口寫入輸出低電平,即向列口寫入00H;然后;然后輸入各行線狀態(tài)(輸入各行線狀態(tài)(D4D7),即讀入輸入口的字;比較:若行線狀態(tài)全為高即讀入輸入口的字;比較:若行線狀態(tài)全為高電平,則表明無(wú)鍵按下,若行線狀態(tài)中有低電平,則表明有鍵按下。電平,則表明無(wú)鍵按下,若行線狀態(tài)中有低電平,則表明有鍵按下。(2)消抖動(dòng))消抖動(dòng)(3)掃描鍵盤以確定被按鍵的物理位置)掃描鍵盤以確定被按鍵的物理位置第9章 存儲(chǔ)器擴(kuò)展 鍵盤識(shí)別過程:鍵盤識(shí)別過程:(4)計(jì)算鍵碼計(jì)算鍵碼根據(jù)被按下鍵的行線號(hào)和列線號(hào),按照一定的算法,可以求出被

50、按下鍵根據(jù)被按下鍵的行線號(hào)和列線號(hào),按照一定的算法,可以求出被按下鍵的鍵碼。鍵碼實(shí)際上是鍵在矩陣中按從的鍵碼。鍵碼實(shí)際上是鍵在矩陣中按從左到右、從上到下左到右、從上到下的序號(hào)。按這的序號(hào)。按這種編排規(guī)律,本鍵盤種編排規(guī)律,本鍵盤32個(gè)鍵的鍵碼為個(gè)鍵的鍵碼為00H1FH。各行的首鍵號(hào)是。各行的首鍵號(hào)是00H、08H、10H、18H,如列線按,如列線按07編號(hào),則鍵碼的計(jì)算公式為:編號(hào),則鍵碼的計(jì)算公式為:鍵碼鍵碼=首鍵號(hào)首鍵號(hào)+列號(hào)列號(hào)第9章 存儲(chǔ)器擴(kuò)展 圖 行列式鍵盤的編碼與鍵值 (a) 二進(jìn)制組合編碼;(b) 順序排列編碼 第9章 存儲(chǔ)器擴(kuò)展 鍵盤識(shí)別過程:鍵盤識(shí)別過程:(5)等待鍵釋放等待

51、鍵釋放計(jì)算完鍵碼后,再以延時(shí)和掃描的方法等待和判定鍵釋放。鍵釋放之后計(jì)算完鍵碼后,再以延時(shí)和掃描的方法等待和判定鍵釋放。鍵釋放之后就可以根據(jù)得到的鍵碼,轉(zhuǎn)到相應(yīng)的鍵處理子程序,進(jìn)行數(shù)據(jù)的輸入或就可以根據(jù)得到的鍵碼,轉(zhuǎn)到相應(yīng)的鍵處理子程序,進(jìn)行數(shù)據(jù)的輸入或命令的處理。命令的處理。第9章 存儲(chǔ)器擴(kuò)展 鍵盤掃描流程:鍵盤掃描流程:第9章 存儲(chǔ)器擴(kuò)展 鍵盤掃描控制方式:鍵盤掃描控制方式:在系統(tǒng)運(yùn)行過程中,為了及時(shí)響應(yīng)鍵盤操作,一般情況下在在系統(tǒng)運(yùn)行過程中,為了及時(shí)響應(yīng)鍵盤操作,一般情況下在10ms左右左右就要調(diào)用一次鍵盤掃描子程序、對(duì)鍵盤進(jìn)行一次掃描。鍵盤掃描有三就要調(diào)用一次鍵盤掃描子程序、對(duì)鍵盤進(jìn)行

52、一次掃描。鍵盤掃描有三種控制方式:種控制方式:1)程序控制掃描方式:主程序中直接調(diào)用鍵盤掃描子程序。這種方)程序控制掃描方式:主程序中直接調(diào)用鍵盤掃描子程序。這種方式只有在式只有在CPU空閑時(shí)才能調(diào)用??臻e時(shí)才能調(diào)用。2)定時(shí)掃描方式:利用內(nèi)部的定時(shí)器,產(chǎn)生)定時(shí)掃描方式:利用內(nèi)部的定時(shí)器,產(chǎn)生10ms的定時(shí)中斷,的定時(shí)中斷,CPU響應(yīng)中斷對(duì)鍵盤進(jìn)行掃描。這種方式響應(yīng)中斷對(duì)鍵盤進(jìn)行掃描。這種方式CPU有可能進(jìn)行的是空掃描。有可能進(jìn)行的是空掃描。3)中斷掃描方式:)中斷掃描方式:CPU平時(shí)不掃描鍵盤,只要有鍵盤閉合時(shí)就產(chǎn)生平時(shí)不掃描鍵盤,只要有鍵盤閉合時(shí)就產(chǎn)生中斷請(qǐng)求,中斷請(qǐng)求,CPU即可進(jìn)行鍵

53、盤掃描。這種方式可提高即可進(jìn)行鍵盤掃描。這種方式可提高CPU的效率,但的效率,但要增加硬件電路。要增加硬件電路。第9章 存儲(chǔ)器擴(kuò)展 ALEP0G74LS3738051P2.7A2A78255AA1A0D0D7RESETPB0PB7WRCSRDRESETWRRD+5VPC0PC1PC2PA0PA1PA2PA3PA4PA5PA6PA77 6 5 4 3 2 1 015 14 13 12 11 10 9 823 22 21 20 19 18 17 16 .第9章 存儲(chǔ)器擴(kuò)展 假定假定PA口地址為口地址為7F01H,PC口地址為口地址為7F03H,鍵盤掃描程序,鍵盤掃描程序KEY掃掃描鍵盤時(shí)分兩步進(jìn)行

54、。描鍵盤時(shí)分兩步進(jìn)行。1)進(jìn)行粗掃描,調(diào)用)進(jìn)行粗掃描,調(diào)用KS1子程序,判斷是否有鍵按下:如果沒有鍵子程序,判斷是否有鍵按下:如果沒有鍵按下,則回主程序;如果有鍵按下,則進(jìn)入第二步。按下,則回主程序;如果有鍵按下,則進(jìn)入第二步。粗掃描的實(shí)現(xiàn)過程是粗掃描的實(shí)現(xiàn)過程是PA口輸出全口輸出全0信號(hào),然后讀回信號(hào),然后讀回PC口的低口的低4位,取位,取反后進(jìn)行判斷:如果為反后進(jìn)行判斷:如果為0則表示沒有鍵按下,如果不為則表示沒有鍵按下,如果不為0則表示有則表示有鍵按下。主要通過調(diào)用兩個(gè)子程序?qū)崿F(xiàn):鍵按下。主要通過調(diào)用兩個(gè)子程序?qū)崿F(xiàn):KS1判斷子程序:用于判斷鍵盤上是否有鍵閉和;判斷子程序:用于判斷鍵盤

55、上是否有鍵閉和;T12延時(shí)子程序:執(zhí)行時(shí)間為延時(shí)子程序:執(zhí)行時(shí)間為12s。2)進(jìn)行鍵盤細(xì)掃描,找出按下的是哪一個(gè)鍵,并求出相應(yīng)的鍵碼。)進(jìn)行鍵盤細(xì)掃描,找出按下的是哪一個(gè)鍵,并求出相應(yīng)的鍵碼。這部分包括三個(gè)程序段:逐行掃描程序段這部分包括三個(gè)程序段:逐行掃描程序段LK2、下一列掃描程序、下一列掃描程序段段NEXT、求鍵碼子程序段、求鍵碼子程序段LKP。第9章 存儲(chǔ)器擴(kuò)展 第9章 存儲(chǔ)器擴(kuò)展 ;鍵盤粗掃描程序段:;鍵盤粗掃描程序段:KEY1:ACALL KS1 ;調(diào)用判斷有無(wú)鍵按下子程序;調(diào)用判斷有無(wú)鍵按下子程序 JNZ LK1 ;有鍵按下時(shí),;有鍵按下時(shí),(A) 0轉(zhuǎn)消抖延時(shí)轉(zhuǎn)消抖延時(shí) AJM

56、P KEY1 ;無(wú)鍵按下返回;無(wú)鍵按下返回 LK1:ACALL TM12S ;調(diào);調(diào)12 ms延時(shí)子程序延時(shí)子程序 ACALL KS1 ;查有無(wú)鍵按下,若有則真有鍵按下;查有無(wú)鍵按下,若有則真有鍵按下 JNZ LK2 ;鍵;鍵(A) 0逐列掃描逐列掃描 AJMP KEY1 ;不是真有鍵按下,返回;不是真有鍵按下,返回 第9章 存儲(chǔ)器擴(kuò)展 ;逐行掃描程序段:;逐行掃描程序段: LK2;MOV R2,#0FEH ;初始列掃描字;初始列掃描字(0列列)送入送入R2 MOV R4,#00H ;初始列;初始列(0列列)號(hào)送入號(hào)送入R4LK4:MOV DPTR,#7F01H ;DPTR指向指向8155PA

57、口口 MOV A,R2 ;列掃描字送至;列掃描字送至8155PA口口 MOVX DPTR,A INC DPTR ;DPTR指向指向8155PC口口 INC DPTR MOVX A,DPTR ;從;從8155 PC口讀入行狀態(tài)口讀入行狀態(tài) JB ACC.0,LONE ;查第;查第0行無(wú)鍵按下,轉(zhuǎn)查第行無(wú)鍵按下,轉(zhuǎn)查第1行行 MOV A,#00H ;第;第0行有鍵按下,行首鍵碼行有鍵按下,行首鍵碼#00HA AJMP LKP ;轉(zhuǎn)求鍵碼;轉(zhuǎn)求鍵碼 LONE:JB ACC.1,LTWO ;查第;查第1行無(wú)鍵按下,轉(zhuǎn)查第行無(wú)鍵按下,轉(zhuǎn)查第2行行 MOV A,#08H ;第;第1行有鍵按下,行首鍵碼行有

58、鍵按下,行首鍵碼#08HA AJMP LKP ;轉(zhuǎn)求鍵碼;轉(zhuǎn)求鍵碼第9章 存儲(chǔ)器擴(kuò)展 LTWO:JB ACC.2,LTHR ;查第;查第2行無(wú)鍵按下,轉(zhuǎn)查第行無(wú)鍵按下,轉(zhuǎn)查第3行行 MOV A,#10H ;第;第2行有鍵按下,行首鍵碼行有鍵按下,行首鍵碼#10HA AJMP LKP ;轉(zhuǎn)求鍵碼;轉(zhuǎn)求鍵碼LTHR:JB ACC.3,NEXT ;查第;查第3行無(wú)鍵按下,轉(zhuǎn)該查下一列行無(wú)鍵按下,轉(zhuǎn)該查下一列 MOV A,#18H ;第;第3行有鍵按下,行首鍵碼行有鍵按下,行首鍵碼#18HA;求鍵碼子程序段:;求鍵碼子程序段:LKP:ADD A,R4 ;求鍵碼,鍵碼;求鍵碼,鍵碼=行首鍵碼行首鍵碼+列

59、號(hào)列號(hào) PUSH ACC ;鍵碼進(jìn)棧保護(hù);鍵碼進(jìn)棧保護(hù)LK3:ACALL KS1 ;等待鍵釋放;等待鍵釋放 JNZ LK3 ;鍵未釋放,等待;鍵未釋放,等待 POP ACC ;鍵釋放,鍵碼;鍵釋放,鍵碼A RET ;鍵掃描結(jié)束,出口狀態(tài);鍵掃描結(jié)束,出口狀態(tài)(A)=鍵碼鍵碼第9章 存儲(chǔ)器擴(kuò)展 ;下一列掃描程序段:;下一列掃描程序段:NEXT:INC R4 ;準(zhǔn)備掃描下一列,列號(hào)加;準(zhǔn)備掃描下一列,列號(hào)加1 MOV A,R2 ;取列號(hào)送累加器;取列號(hào)送累加器A JNB ACC.7,KND ;判斷;判斷8列掃描否?掃描完返回列掃描否?掃描完返回 RL A ;掃描字左移一位,變?yōu)橄乱涣袙呙枳?;掃描?/p>

60、左移一位,變?yōu)橄乱涣袙呙枳諱OV R2,A ;掃描字送入;掃描字送入R2 AJMP LK4 ;轉(zhuǎn)下一列掃描;轉(zhuǎn)下一列掃描KND:AJMP KEY1 第9章 存儲(chǔ)器擴(kuò)展 ;判斷是否有鍵按下子程序;判斷是否有鍵按下子程序KS1:MOV DPTR,#7F01H ;DPTR指向指向8155PA口口 MOV A,#00H ;全掃描字;全掃描字A MOVX DPTR,A ;全掃描字送往;全掃描字送往8155PA口口INC DPTR ;DPTR指向指向8155PC口口INC DPTR MOVX A,DPTR ;讀入;讀入PC口行狀態(tài)口行狀態(tài)CPL A ;變正邏輯,以高電平表示有鍵按下;變正邏輯,以高電平表示

溫馨提示

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

評(píng)論

0/150

提交評(píng)論