第8章單片機(jī)小系統(tǒng)及片外擴(kuò)展_第1頁(yè)
第8章單片機(jī)小系統(tǒng)及片外擴(kuò)展_第2頁(yè)
第8章單片機(jī)小系統(tǒng)及片外擴(kuò)展_第3頁(yè)
第8章單片機(jī)小系統(tǒng)及片外擴(kuò)展_第4頁(yè)
第8章單片機(jī)小系統(tǒng)及片外擴(kuò)展_第5頁(yè)
已閱讀5頁(yè),還剩90頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目 錄第第1 1章章 微機(jī)基礎(chǔ)知識(shí)微機(jī)基礎(chǔ)知識(shí)第第2 2章章 89C5189C51單片機(jī)硬件結(jié)構(gòu)和原理單片機(jī)硬件結(jié)構(gòu)和原理第第3 3章章 指令系統(tǒng)指令系統(tǒng)第第4 4章章 匯編語(yǔ)言程序設(shè)計(jì)知識(shí)匯編語(yǔ)言程序設(shè)計(jì)知識(shí)第第5 5章章 中斷系統(tǒng)中斷系統(tǒng)第第6 6章章 定時(shí)器及應(yīng)用定時(shí)器及應(yīng)用第第7章章 89C51串行口及串行通信技術(shù)串行口及串行通信技術(shù)第第8章章 單片機(jī)小系統(tǒng)及擴(kuò)展單片機(jī)小系統(tǒng)及擴(kuò)展第第9章章 應(yīng)用系統(tǒng)配置及接口技術(shù)應(yīng)用系統(tǒng)配置及接口技術(shù)第第10章章 系統(tǒng)實(shí)用程序系統(tǒng)實(shí)用程序18:03第8章 單片機(jī)小系統(tǒng)及片外擴(kuò)展8.1 串行擴(kuò)展總線接口技術(shù)串行擴(kuò)展總線接口技術(shù)8.2 并行擴(kuò)展三總線的產(chǎn)

2、生并行擴(kuò)展三總線的產(chǎn)生8.3 擴(kuò)展數(shù)據(jù)存儲(chǔ)器擴(kuò)展數(shù)據(jù)存儲(chǔ)器8.4 思考題與習(xí)題思考題與習(xí)題第8章 單片機(jī)小系統(tǒng)及片外擴(kuò)展8.1 串行擴(kuò)展總線接口技術(shù)串行擴(kuò)展總線接口技術(shù)8.1.1 SPI串行外設(shè)接口總線串行外設(shè)接口總線8.1.2 I2C總線總線8.1.3 單總線單總線8.1.1 SPI串行外設(shè)接口總線 SPI(Serial Peripheral Interface串行串行外設(shè)接口)總線是外設(shè)接口)總線是Motorola公司推出的一公司推出的一種同步串行外設(shè)接口,它用于種同步串行外設(shè)接口,它用于MCU與各種與各種外圍設(shè)備以串行方式進(jìn)行通信(外圍設(shè)備以串行方式進(jìn)行通信(8位數(shù)據(jù)同位數(shù)據(jù)同時(shí)同步地被

3、發(fā)送和接收),系統(tǒng)可配置為時(shí)同步地被發(fā)送和接收),系統(tǒng)可配置為主或從操作模式。外圍設(shè)備包括簡(jiǎn)單的主或從操作模式。外圍設(shè)備包括簡(jiǎn)單的TTL移位寄存器(用作并行輸入或輸出口)至移位寄存器(用作并行輸入或輸出口)至復(fù)雜的復(fù)雜的LCD顯示驅(qū)動(dòng)器或顯示驅(qū)動(dòng)器或A/D轉(zhuǎn)換器等。轉(zhuǎn)換器等。圖8-1 SPI外圍擴(kuò)展示意圖串行時(shí)鐘線串行時(shí)鐘線主出主出/從入數(shù)據(jù)線從入數(shù)據(jù)線主入主入/從出數(shù)據(jù)線從出數(shù)據(jù)線從機(jī)選擇線從機(jī)選擇線 SPI有較高的數(shù)據(jù)傳送速度,主機(jī)方式最高有較高的數(shù)據(jù)傳送速度,主機(jī)方式最高速率可達(dá)速率可達(dá)1.05 Mb/s,目前不少外圍器件都,目前不少外圍器件都帶有帶有SPI接口。接口。 在大多數(shù)應(yīng)用場(chǎng)合

4、中,使用在大多數(shù)應(yīng)用場(chǎng)合中,使用1個(gè)個(gè)MCU作為主作為主機(jī),控制數(shù)據(jù)向機(jī),控制數(shù)據(jù)向1個(gè)或多個(gè)從外圍器件的傳個(gè)或多個(gè)從外圍器件的傳送。送。 從器件只能在主機(jī)發(fā)命令時(shí)從器件只能在主機(jī)發(fā)命令時(shí),才能接收或向才能接收或向主機(jī)傳送數(shù)據(jù)。主機(jī)傳送數(shù)據(jù)。 其數(shù)據(jù)的傳輸格式是高位(其數(shù)據(jù)的傳輸格式是高位(MSB)在前,)在前,低位低位(LSB)在后。)在后。 SPI總線有以下主要特性:總線有以下主要特性: 全雙工、全雙工、3線同步線同步傳輸;主機(jī)或從機(jī)工作;提供頻率可編程時(shí)鐘;傳輸;主機(jī)或從機(jī)工作;提供頻率可編程時(shí)鐘;發(fā)送結(jié)束中斷標(biāo)志;寫沖突保護(hù);總線競(jìng)爭(zhēng)保發(fā)送結(jié)束中斷標(biāo)志;寫沖突保護(hù);總線競(jìng)爭(zhēng)保護(hù)等。其典

5、型時(shí)序圖如圖護(hù)等。其典型時(shí)序圖如圖8-2所示。所示。圖8-2 SPI串行總線典型時(shí)序圖2. 89C51單片機(jī)串行擴(kuò)展單片機(jī)串行擴(kuò)展SPI外設(shè)接口的方法外設(shè)接口的方法1) 用一般用一般I/O口線模擬口線模擬SPI操作操作 對(duì)于沒有對(duì)于沒有SPI接口的接口的89C51來(lái)說(shuō),可使用軟件來(lái)模來(lái)說(shuō),可使用軟件來(lái)模擬擬SPI的操作,包括串行時(shí)鐘、數(shù)據(jù)輸入和輸出。的操作,包括串行時(shí)鐘、數(shù)據(jù)輸入和輸出。 對(duì)于不同的串行接口外圍芯片,它們的時(shí)鐘時(shí)序?qū)τ诓煌拇薪涌谕鈬酒?,它們的時(shí)鐘時(shí)序是不同的。是不同的。 對(duì)于在對(duì)于在SCK的上升沿輸入(接收)數(shù)據(jù)和在下降的上升沿輸入(接收)數(shù)據(jù)和在下降沿輸出(發(fā)送)數(shù)據(jù)的

6、器件沿輸出(發(fā)送)數(shù)據(jù)的器件,一般應(yīng)取圖,一般應(yīng)取圖8-3中的中的串行時(shí)鐘輸出串行時(shí)鐘輸出P1.1的初始狀態(tài)為的初始狀態(tài)為1;在允許接口;在允許接口芯片后,置芯片后,置P1.1為為0。 圖圖8-3為為89C51(MCU)與)與MCM2814(E2PROM)的硬件連接圖。的硬件連接圖。圖8-3 SPI總線接口原理圖 從從MCM2814的的SPISO線上接收線上接收1字節(jié)數(shù)據(jù)并放入寄存字節(jié)數(shù)據(jù)并放入寄存器器R0中。中。 (P196)SPIIN:SETB P1.1;使;使P1.1(時(shí)鐘)輸出為(時(shí)鐘)輸出為1 CLRP1.2;選擇從機(jī);選擇從機(jī) MOVR1,#08H;置循環(huán)次數(shù);置循環(huán)次數(shù)SPIN1

7、:CLRP1.1;使;使P1.1(時(shí)鐘)輸出為(時(shí)鐘)輸出為0 NOP;延時(shí);延時(shí) NOP MOVC,P1.3;從機(jī)輸出;從機(jī)輸出SPISO送進(jìn)位送進(jìn)位C RLCA;左移至累加器;左移至累加器ACC SETBP1.0;使;使P1.0(時(shí)鐘時(shí)鐘)輸出為輸出為1 DJNZR1,SPIN1;判斷是否循環(huán);判斷是否循環(huán)8次次 MOVR0,A;1字節(jié)數(shù)據(jù)送字節(jié)數(shù)據(jù)送R0 RET;返回;返回將將89C51中中R0寄存器的內(nèi)容傳到寄存器的內(nèi)容傳到MCM2814的的SPISI線上。線上。SPIOUN: SETB P1.1;使;使P1.1(時(shí)鐘)輸出為(時(shí)鐘)輸出為1CLR P1.2;選擇從機(jī);選擇從機(jī)MOV

8、R1,#08H;置循環(huán)次數(shù);置循環(huán)次數(shù)MOV A,R0;1字節(jié)數(shù)據(jù)送累加器字節(jié)數(shù)據(jù)送累加器ACCSPIOT1: CLR P1.1;使;使P1.1(時(shí)鐘)輸出為(時(shí)鐘)輸出為0NOP;延時(shí);延時(shí)NOPRLC A;左移至累加器;左移至累加器ACC最高位至最高位至CMOV P1.0,C;進(jìn)位;進(jìn)位C送送SPISI線上線上SETB P1.1;使;使P1.1(時(shí)鐘)輸出為(時(shí)鐘)輸出為1DJNZ R1,SPIOT1;判斷是否循環(huán);判斷是否循環(huán)8次次RET ; 返回返回P197: 將將R0的內(nèi)容傳到的內(nèi)容傳到MCM2814的的SPISI中,同時(shí)從中,同時(shí)從MCM2814的的SPISO接收接收1字節(jié)數(shù)據(jù)存入

9、字節(jié)數(shù)據(jù)存入R0中。中。SPIIO:SETBP1.1;使;使P1.1(時(shí)鐘)輸出為(時(shí)鐘)輸出為1CLR P1,2;選擇從機(jī);選擇從機(jī)MOVR1,#08H;置循環(huán)次數(shù);置循環(huán)次數(shù)MOVA,R0;1字節(jié)數(shù)據(jù)送累加器字節(jié)數(shù)據(jù)送累加器ACCSPIO1:CLR P1.1;使;使P1.1(時(shí)鐘)輸出為(時(shí)鐘)輸出為0NOP;延時(shí);延時(shí)NOPMOV C,P1.3;從機(jī)輸出;從機(jī)輸出SPISO送進(jìn)位送進(jìn)位CRLC A;左移至累加器;左移至累加器ACC最高位至最高位至CMOV P1.0,C;進(jìn)位;進(jìn)位C送從機(jī)輸入送從機(jī)輸入SETB P1.1;使;使P1.1(時(shí)鐘)輸出為(時(shí)鐘)輸出為1DJNZ R1,SPIO

10、1;判斷是否循環(huán);判斷是否循環(huán)8次次MOV R0,ARET;返回;返回圖圖8-4 HT1380圖圖8-5 MAX7219圖圖8-6 串行串行A/D芯片與單片機(jī)接口電路芯片與單片機(jī)接口電路利用利用89C51串行口實(shí)現(xiàn)串行口實(shí)現(xiàn)SPI操作操作(4) 串行接口芯片的一般接口規(guī)律串行接口芯片的一般接口規(guī)律 除上面除上面3種芯片之外,單片機(jī)還可以通過(guò)串行接口芯種芯片之外,單片機(jī)還可以通過(guò)串行接口芯片與片與E2PROM、D/A轉(zhuǎn)換芯片等連接。它們與轉(zhuǎn)換芯片等連接。它們與CPU的的串行接口方式與以上幾種芯片類似,即:串行接口方式與以上幾種芯片類似,即: 都需要通過(guò)單片機(jī)的開關(guān)量都需要通過(guò)單片機(jī)的開關(guān)量I/O

11、口線進(jìn)行芯片選擇;口線進(jìn)行芯片選擇; 當(dāng)芯片未選中時(shí),數(shù)據(jù)端口均處于高阻狀態(tài);當(dāng)芯片未選中時(shí),數(shù)據(jù)端口均處于高阻狀態(tài); 與單片機(jī)交換信息時(shí)均要求單片機(jī)串行口以方式與單片機(jī)交換信息時(shí)均要求單片機(jī)串行口以方式0進(jìn)進(jìn)行;行; 傳輸數(shù)據(jù)時(shí)的幀格式均要求先傳送命令傳輸數(shù)據(jù)時(shí)的幀格式均要求先傳送命令/地址,再傳地址,再傳送數(shù)據(jù);送數(shù)據(jù); 大都具有圖大都具有圖8-7所示的時(shí)序波形。所示的時(shí)序波形。第8章 單片機(jī)小系統(tǒng)及片外擴(kuò)展8.1 串行擴(kuò)展總線接口技術(shù)串行擴(kuò)展總線接口技術(shù)8.1.1 SPI串行外設(shè)接口總線串行外設(shè)接口總線8.1.2 I2C總線總線8.1.3 單總線單總線8.1.2 I2C總線 I I2 2

12、C C總線是總線是PHILIPSPHILIPS公司推出的串行總線。公司推出的串行總線。 I I2 2C C總線是一種具有自動(dòng)尋址、高低速設(shè)備總線是一種具有自動(dòng)尋址、高低速設(shè)備同步和仲裁等功能的高性能串行總線,能夠同步和仲裁等功能的高性能串行總線,能夠?qū)崿F(xiàn)完善的全雙工數(shù)據(jù)傳輸,是各種總線中實(shí)現(xiàn)完善的全雙工數(shù)據(jù)傳輸,是各種總線中使用信號(hào)線數(shù)量最少的。使用信號(hào)線數(shù)量最少的。 I I2 2C C總線只有兩根信號(hào)線:數(shù)據(jù)線總線只有兩根信號(hào)線:數(shù)據(jù)線SDASDA和時(shí)鐘和時(shí)鐘線線SCLSCL。 各節(jié)點(diǎn)供電可以不同,但需共地,另外各節(jié)點(diǎn)供電可以不同,但需共地,另外SDASDA和和SCLSCL需分別接上拉電阻。

13、需分別接上拉電阻。 圖圖8-9 8-9 示出了帶有兩個(gè)單片機(jī)和其示出了帶有兩個(gè)單片機(jī)和其他一些外圍電路模塊接入他一些外圍電路模塊接入I I2 2C C總線的總線的一個(gè)實(shí)例。一個(gè)實(shí)例。圖圖8-9 I8-9 I2 2C C總線典型系統(tǒng)示意圖總線典型系統(tǒng)示意圖 主器件主器件( (主機(jī)主機(jī)):):啟動(dòng)和停止數(shù)啟動(dòng)和停止數(shù)據(jù)發(fā)送并產(chǎn)生據(jù)發(fā)送并產(chǎn)生時(shí)鐘信號(hào)時(shí)鐘信號(hào) I I2 2C C總線是多總線是多主機(jī)總線,但主機(jī)總線,但同一時(shí)刻只允同一時(shí)刻只允許一個(gè)有效許一個(gè)有效圖圖8-10 I8-10 I2 2C C總線外圍擴(kuò)展示意圖總線外圍擴(kuò)展示意圖 I I2 2C C總線上支持多主和主從兩種工作方式??偩€上支持多

14、主和主從兩種工作方式。 在多主方式中,通過(guò)硬件和軟件的仲裁主控在多主方式中,通過(guò)硬件和軟件的仲裁主控制器取得總線控制權(quán)。制器取得總線控制權(quán)。 而在多數(shù)情況下,系統(tǒng)中只有一個(gè)主器件,而在多數(shù)情況下,系統(tǒng)中只有一個(gè)主器件,即單主節(jié)點(diǎn),總線上的其他器件都是具有即單主節(jié)點(diǎn),總線上的其他器件都是具有I I2 2C C總線的外圍從器件,這時(shí)的總線的外圍從器件,這時(shí)的I I2 2C C總線就工作在總線就工作在主從工作方式。主從工作方式。 在主從方式中,從器件的地址包括器件編號(hào)地在主從方式中,從器件的地址包括器件編號(hào)地址和引腳地址,器件編寫地址由址和引腳地址,器件編寫地址由I I2 2C C總線委員總線委員會(huì)

15、分配,引腳地址決定于引腳外接電平的高低。會(huì)分配,引腳地址決定于引腳外接電平的高低。 當(dāng)器件內(nèi)部有連續(xù)的子地址空間時(shí),對(duì)這些空當(dāng)器件內(nèi)部有連續(xù)的子地址空間時(shí),對(duì)這些空間進(jìn)行間進(jìn)行N N個(gè)字節(jié)的連續(xù)讀個(gè)字節(jié)的連續(xù)讀/ /寫,子地址會(huì)自動(dòng)加寫,子地址會(huì)自動(dòng)加1 1。在主從方式的。在主從方式的I I2 2C C總線系統(tǒng)中,只須考慮主總線系統(tǒng)中,只須考慮主方式的方式的I I2 2C C總線操作??偩€操作。3. I3. I2 2C C總線基本知識(shí)總線基本知識(shí)1 1) I I2 2C C總線的接口電路結(jié)構(gòu)總線的接口電路結(jié)構(gòu) I I2 2C C總線由一根數(shù)據(jù)線總線由一根數(shù)據(jù)線SDASDA和一根時(shí)鐘線和一根時(shí)鐘

16、線SCLSCL構(gòu)成。構(gòu)成。 I I2 2C C總線中一個(gè)節(jié)點(diǎn)的每個(gè)電路器件都可視為有如總線中一個(gè)節(jié)點(diǎn)的每個(gè)電路器件都可視為有如圖圖8-118-11虛框所示的一個(gè)虛框所示的一個(gè)I I2 2C C總線接口電路,用于與總線接口電路,用于與I I2 2C C總線的總線的SDASDA和和SCLSCL線掛接。線掛接。 數(shù)據(jù)線數(shù)據(jù)線SDASDA和時(shí)鐘線和時(shí)鐘線SCLSCL都是雙向傳輸線,平時(shí)均都是雙向傳輸線,平時(shí)均處于高電平備用狀態(tài),只有當(dāng)需要關(guān)閉處于高電平備用狀態(tài),只有當(dāng)需要關(guān)閉I I2 2C C總線時(shí),總線時(shí),SCLSCL線才會(huì)箝位在低電平。線才會(huì)箝位在低電平。圖8-11 I2C總線的器件連接圖圖8-1

17、2 I8-12 I2 2C C總線信號(hào)的時(shí)序總線信號(hào)的時(shí)序當(dāng)當(dāng)SCL=1時(shí),時(shí),SDA的數(shù)據(jù)才有效的數(shù)據(jù)才有效當(dāng)當(dāng)SCL=0時(shí),時(shí),SDA的數(shù)據(jù)才能變化的數(shù)據(jù)才能變化 起始信號(hào)和停止信號(hào)均由作為主控器的單片機(jī)發(fā)出,并由掛接在I2C總線上的被控器檢測(cè)。 對(duì)于不具備I2C總線接口的單片機(jī),為了能準(zhǔn)確檢測(cè)到這些信號(hào),必須保證在總線的一個(gè)時(shí)鐘周期內(nèi)對(duì)SAD線進(jìn)行至少兩次采樣。4. I2C總線的數(shù)據(jù)傳送 在在I I2 2C C總線上每傳輸一位數(shù)據(jù)都有一個(gè)時(shí)鐘脈沖相對(duì)應(yīng)??偩€上每傳輸一位數(shù)據(jù)都有一個(gè)時(shí)鐘脈沖相對(duì)應(yīng)。注意這里的時(shí)鐘脈沖不像一般的時(shí)鐘那樣必須是周期性的,注意這里的時(shí)鐘脈沖不像一般的時(shí)鐘那樣必須

18、是周期性的,它的時(shí)鐘間隔可以不同。它的時(shí)鐘間隔可以不同。 總線備用時(shí)(即處于總線備用時(shí)(即處于“非忙非忙”狀態(tài)),狀態(tài)),SDASDA和和SCLSCL都必須保都必須保持高電平狀態(tài),關(guān)閉持高電平狀態(tài),關(guān)閉I I2 2C C總線時(shí)才使總線時(shí)才使SCLSCL箝位在低電平。只箝位在低電平。只有當(dāng)總線處于有當(dāng)總線處于“非忙非忙”狀態(tài)時(shí),數(shù)據(jù)傳輸才能被初始化。狀態(tài)時(shí),數(shù)據(jù)傳輸才能被初始化。 在數(shù)據(jù)傳輸期間,只要時(shí)鐘線為高電平,數(shù)據(jù)線就必須保在數(shù)據(jù)傳輸期間,只要時(shí)鐘線為高電平,數(shù)據(jù)線就必須保持穩(wěn)定。持穩(wěn)定。 只有在時(shí)鐘線為低電平時(shí),才允許數(shù)據(jù)線上的電平狀態(tài)變只有在時(shí)鐘線為低電平時(shí),才允許數(shù)據(jù)線上的電平狀態(tài)變

19、化?;?。 在時(shí)鐘線保持高電平期間,數(shù)據(jù)線出現(xiàn)下降沿為啟動(dòng)信號(hào)、在時(shí)鐘線保持高電平期間,數(shù)據(jù)線出現(xiàn)下降沿為啟動(dòng)信號(hào)、上升沿為停止信號(hào),啟動(dòng)和停止信號(hào)都由主機(jī)產(chǎn)生,總線上升沿為停止信號(hào),啟動(dòng)和停止信號(hào)都由主機(jī)產(chǎn)生,總線上帶有上帶有I I2 2C C總線接口的器件很容易檢測(cè)到這些信號(hào)。總線接口的器件很容易檢測(cè)到這些信號(hào)。 I I2 2C C總線上傳輸?shù)臄?shù)據(jù)和地址字節(jié)均為總線上傳輸?shù)臄?shù)據(jù)和地址字節(jié)均為8 8位,且高位,且高位在前,低位在后。位在前,低位在后。 I I2 2C C總線以起始信號(hào)為啟動(dòng)信號(hào),接著傳輸?shù)氖强偩€以起始信號(hào)為啟動(dòng)信號(hào),接著傳輸?shù)氖堑刂泛蛿?shù)據(jù)字節(jié),數(shù)據(jù)字節(jié)是沒有限制的,但每地址和數(shù)

20、據(jù)字節(jié),數(shù)據(jù)字節(jié)是沒有限制的,但每個(gè)字節(jié)后都必須跟隨一個(gè)應(yīng)答位,全部數(shù)據(jù)傳輸個(gè)字節(jié)后都必須跟隨一個(gè)應(yīng)答位,全部數(shù)據(jù)傳輸完畢后,以終止信號(hào)結(jié)尾。完畢后,以終止信號(hào)結(jié)尾。 I I2 2C C總線上數(shù)據(jù)的傳送時(shí)序如圖總線上數(shù)據(jù)的傳送時(shí)序如圖8-138-13所示。所示。圖圖8-13 I8-13 I2 2C C總線的數(shù)據(jù)傳送字節(jié)格式總線的數(shù)據(jù)傳送字節(jié)格式 利用利用SDASDA線進(jìn)行數(shù)據(jù)傳輸時(shí),發(fā)送器每發(fā)完一個(gè)線進(jìn)行數(shù)據(jù)傳輸時(shí),發(fā)送器每發(fā)完一個(gè)數(shù)據(jù)字節(jié)后,都要求接收方發(fā)回一個(gè)應(yīng)答信號(hào)。數(shù)據(jù)字節(jié)后,都要求接收方發(fā)回一個(gè)應(yīng)答信號(hào)。但與應(yīng)答信號(hào)相對(duì)應(yīng)的時(shí)鐘仍由主控器在但與應(yīng)答信號(hào)相對(duì)應(yīng)的時(shí)鐘仍由主控器在SCLS

21、CL線線上產(chǎn)生,因此主控發(fā)送器必須在被控接收器發(fā)送上產(chǎn)生,因此主控發(fā)送器必須在被控接收器發(fā)送應(yīng)答信號(hào)前,預(yù)先釋放對(duì)應(yīng)答信號(hào)前,預(yù)先釋放對(duì)SDASDA線的控制,以便主線的控制,以便主控器對(duì)控器對(duì)SDASDA線上應(yīng)答信號(hào)的檢測(cè)。線上應(yīng)答信號(hào)的檢測(cè)。 應(yīng)答信號(hào)在第應(yīng)答信號(hào)在第9 9個(gè)時(shí)鐘位上出現(xiàn),接收器在個(gè)時(shí)鐘位上出現(xiàn),接收器在SDASDA線上輸出線上輸出低電平為應(yīng)答信號(hào)(低電平為應(yīng)答信號(hào)(A A),輸出高電平為非應(yīng)答信號(hào)),輸出高電平為非應(yīng)答信號(hào)(A A)。時(shí)鐘信號(hào)以及應(yīng)答和非應(yīng)答信號(hào)間的關(guān)系如圖)。時(shí)鐘信號(hào)以及應(yīng)答和非應(yīng)答信號(hào)間的關(guān)系如圖8-148-14所示。所示。圖8-14 I2C總線的應(yīng)答位

22、2) I2C總線數(shù)據(jù)傳輸?shù)母袷絀 I2 2C C總線傳輸數(shù)據(jù)時(shí)必須遵循規(guī)定的數(shù)據(jù)傳輸格式,圖總線傳輸數(shù)據(jù)時(shí)必須遵循規(guī)定的數(shù)據(jù)傳輸格式,圖8-158-15示出了示出了I I2 2C C總線總線一次完整的數(shù)據(jù)傳輸格式。一次完整的數(shù)據(jù)傳輸格式。圖圖8 815 I15 I2 2C C總線一次完整的數(shù)據(jù)傳輸格式總線一次完整的數(shù)據(jù)傳輸格式(1) 主控器的寫數(shù)據(jù)操作格式 傳輸傳輸n字節(jié)的數(shù)據(jù)格式如下字節(jié)的數(shù)據(jù)格式如下:A為應(yīng)答信號(hào);為應(yīng)答信號(hào);S為起始信號(hào),為起始信號(hào),P為停止信號(hào);為停止信號(hào);SLA為為尋址字節(jié)(寫);尋址字節(jié)(寫);data 1data n為被傳輸?shù)臑楸粋鬏數(shù)膎個(gè)數(shù)個(gè)數(shù)據(jù)字節(jié)。據(jù)字節(jié)。主

23、控器發(fā)送主控器發(fā)送被控器發(fā)送被控器發(fā)送 具體內(nèi)容為:具體內(nèi)容為:(2) 主控器的讀數(shù)據(jù)操作格式 傳輸傳輸n字節(jié)的數(shù)據(jù)格式如下字節(jié)的數(shù)據(jù)格式如下:除了尋址字節(jié)為主機(jī)發(fā)送、從機(jī)接收外,其余的除了尋址字節(jié)為主機(jī)發(fā)送、從機(jī)接收外,其余的n字字節(jié)均為從機(jī)發(fā)送,主機(jī)接收。主機(jī)接收完數(shù)據(jù)后,應(yīng)節(jié)均為從機(jī)發(fā)送,主機(jī)接收。主機(jī)接收完數(shù)據(jù)后,應(yīng)發(fā)非應(yīng)答位,向從機(jī)表明讀操作結(jié)束。發(fā)非應(yīng)答位,向從機(jī)表明讀操作結(jié)束。主控器發(fā)送主控器發(fā)送從機(jī)發(fā)送從機(jī)發(fā)送 具體內(nèi)容為:具體內(nèi)容為:3) 主控器的讀/寫數(shù)據(jù)操作格式讀讀/寫操作時(shí),在一次數(shù)據(jù)傳輸過(guò)程中需要改變數(shù)據(jù)的傳送方向,即寫操作時(shí),在一次數(shù)據(jù)傳輸過(guò)程中需要改變數(shù)據(jù)的傳送方

24、向,即主機(jī)在一段時(shí)間內(nèi)為讀操作,在另一段時(shí)間內(nèi)為寫操作。主機(jī)在一段時(shí)間內(nèi)為讀操作,在另一段時(shí)間內(nèi)為寫操作。由于讀由于讀/寫方向有變化,起始信號(hào)和尋址字節(jié)都會(huì)重復(fù)一次,但讀寫方向有變化,起始信號(hào)和尋址字節(jié)都會(huì)重復(fù)一次,但讀/寫方向(寫方向(R/W)相反。)相反。例如,由單片機(jī)主機(jī)讀取存儲(chǔ)器從機(jī)中某存儲(chǔ)單元的內(nèi)容,就需要例如,由單片機(jī)主機(jī)讀取存儲(chǔ)器從機(jī)中某存儲(chǔ)單元的內(nèi)容,就需要主機(jī)先向從機(jī)寫入該存儲(chǔ)單元的地址,再發(fā)一個(gè)啟動(dòng)位,進(jìn)行讀操主機(jī)先向從機(jī)寫入該存儲(chǔ)單元的地址,再發(fā)一個(gè)啟動(dòng)位,進(jìn)行讀操作。作。 主控器向被控器先讀后寫的數(shù)據(jù)格式如下:主控器向被控器先讀后寫的數(shù)據(jù)格式如下: 具體內(nèi)容為: 其中:

25、其中: SrSr為重復(fù)起始信號(hào);為重復(fù)起始信號(hào);data 1data 1data ndata n為主控器的為主控器的讀數(shù)據(jù);讀數(shù)據(jù);DATA 1DATA 1DATA nDATA n為主控器的寫數(shù)據(jù);其余與前述為主控器的寫數(shù)據(jù);其余與前述相同。相同。通過(guò)上述分析,可以得出如下結(jié)論:通過(guò)上述分析,可以得出如下結(jié)論: 無(wú)論總線處于何種方式,起始信號(hào)、終止信號(hào)和無(wú)論總線處于何種方式,起始信號(hào)、終止信號(hào)和尋址字節(jié)均由主控器發(fā)送和被控器接收。尋址字節(jié)均由主控器發(fā)送和被控器接收。 尋址字節(jié)中,尋址字節(jié)中,7 7位地址是指器件地址,即被尋址的位地址是指器件地址,即被尋址的被控器的固有地址,被控器的固有地址,R

26、/WR/W方向位用于指定方向位用于指定SDASDA線上線上數(shù)據(jù)傳送的方向。數(shù)據(jù)傳送的方向。R/W=0R/W=0為主控器寫和被控器收,為主控器寫和被控器收,R/W=1R/W=1為主控器讀(收)和被控器發(fā)。為主控器讀(收)和被控器發(fā)。 每個(gè)器件(主控器或被控器)內(nèi)部都有一個(gè)數(shù)據(jù)每個(gè)器件(主控器或被控器)內(nèi)部都有一個(gè)數(shù)據(jù)存儲(chǔ)器存儲(chǔ)器RAMRAM,RAMRAM的地址是連續(xù)的,并能自動(dòng)加的地址是連續(xù)的,并能自動(dòng)加/ /減減1 1。n n個(gè)被傳送數(shù)據(jù)的個(gè)被傳送數(shù)據(jù)的RAMRAM地址可由系統(tǒng)設(shè)計(jì)者規(guī)定,地址可由系統(tǒng)設(shè)計(jì)者規(guī)定,通常作為數(shù)據(jù)放在上述數(shù)據(jù)傳輸格式中,即第一通常作為數(shù)據(jù)放在上述數(shù)據(jù)傳輸格式中,即第

27、一個(gè)數(shù)據(jù)字節(jié)個(gè)數(shù)據(jù)字節(jié)data 1data 1或或DATA 1DATA 1。 總線上傳輸?shù)拿總€(gè)字節(jié)后必須跟一個(gè)應(yīng)答或非應(yīng)總線上傳輸?shù)拿總€(gè)字節(jié)后必須跟一個(gè)應(yīng)答或非應(yīng)答信號(hào)答信號(hào)A/AA/A。6 51單片機(jī)與I2C總線的接口1) 單片機(jī)與單片機(jī)與I I2 2C C總線的硬件連接總線的硬件連接圖圖8 816 16 模擬模擬I I2 2C C總線總線I I2 2C C總線典型信號(hào)時(shí)序及信號(hào)模擬子程序總線典型信號(hào)時(shí)序及信號(hào)模擬子程序 起始位(起始位(S S)、終止位()、終止位(P P)、發(fā)送)、發(fā)送0 0代表應(yīng)答位代表應(yīng)答位(A A)、發(fā)送)、發(fā)送1 1代表非應(yīng)答位(代表非應(yīng)答位(A A)等信號(hào)。)等

28、信號(hào)。圖圖8 817 I17 I2 2C C總線數(shù)據(jù)傳送典型信號(hào)時(shí)序總線數(shù)據(jù)傳送典型信號(hào)時(shí)序 圖圖8-17I8-17I2 2C C總線數(shù)據(jù)傳送典型信號(hào)時(shí)序?qū)τ诳偩€數(shù)據(jù)傳送典型信號(hào)時(shí)序?qū)τ贗 I2 2C C總線的典型信號(hào),可以用指令操作來(lái)??偩€的典型信號(hào),可以用指令操作來(lái)模擬其時(shí)序過(guò)程。擬其時(shí)序過(guò)程。 若若89C5189C51單片機(jī)的系統(tǒng)時(shí)鐘為單片機(jī)的系統(tǒng)時(shí)鐘為6MHz6MHz,相應(yīng)的,相應(yīng)的單周期指令的周期為單周期指令的周期為2 s2 s,則起始,則起始(STASTA)、終止()、終止(STOPSTOP)、發(fā)送應(yīng)答位)、發(fā)送應(yīng)答位(MACKMACK)、發(fā)送非應(yīng)答位()、發(fā)送非應(yīng)答位(MNACK

29、MNACK)的)的4 4個(gè)個(gè)模擬子程序如下:模擬子程序如下:(1) (1) 啟動(dòng)啟動(dòng)I I2 2C C總線子程序總線子程序STASTASTASTA:SETBSETB SDASDASETBSETB SCLSCL;起始條件建立時(shí)間大于;起始條件建立時(shí)間大于4.7 s4.7 sNOPNOPNOPNOPCLRCLRSDASDANOPNOP ;起始條件鎖定時(shí)間大于;起始條件鎖定時(shí)間大于4 s4 sNOPNOPCLRCLRSCLSCL;箝住總線,準(zhǔn)備發(fā)送數(shù)據(jù);箝住總線,準(zhǔn)備發(fā)送數(shù)據(jù)RETRET(2) (2) 停止停止I I2 2C C總線子程序總線子程序STOPSTOPSTOPSTOP:CLRSDASET

30、B SCL;發(fā)送停止條件的時(shí)鐘信號(hào);發(fā)送停止條件的時(shí)鐘信號(hào)NOP;停止總線時(shí)間大于;停止總線時(shí)間大于4 sNOPSETB SDA;停止總線;停止總線NOPNOPCLRSDACLRSCLRET(3) (3) 發(fā)送應(yīng)答位信號(hào)子程序發(fā)送應(yīng)答位信號(hào)子程序MACKMACKMACKMACK:CLRCLRSDASDASETBSETB SCLSCLNOP NOP ;保持?jǐn)?shù)據(jù)時(shí)間,即;保持?jǐn)?shù)據(jù)時(shí)間,即SCLSCL為高,時(shí)間大于為高,時(shí)間大于40s40sNOPNOPCLRCLRSCLSCLSETBSETB SDASDARETRET(4) (4) 發(fā)送非應(yīng)答位信號(hào)子程序發(fā)送非應(yīng)答位信號(hào)子程序MNACKMNACKMN

31、ACKMNACK:SETBSETBSDASDASETBSETBSCLSCLNOPNOP;保持?jǐn)?shù)據(jù)時(shí)間,即;保持?jǐn)?shù)據(jù)時(shí)間,即SCLSCL為高,時(shí)間大于為高,時(shí)間大于4.0 s4.0 sNOPNOPCLRCLRSCLSCLCLRCLRSDASDARETRET在使用上述子程序時(shí),如果單片機(jī)的主時(shí)鐘不是在使用上述子程序時(shí),如果單片機(jī)的主時(shí)鐘不是6 MHz6 MHz,則應(yīng)調(diào)整,則應(yīng)調(diào)整NOPNOP指令個(gè)數(shù),以滿足時(shí)序要求。指令個(gè)數(shù),以滿足時(shí)序要求。2 2) I I2 2C C總線數(shù)據(jù)傳送的模擬子程序總線數(shù)據(jù)傳送的模擬子程序 從從I I2 2C C總線的數(shù)據(jù)操作中可以看出,除了基本的啟動(dòng)(總線的數(shù)據(jù)操作中

32、可以看出,除了基本的啟動(dòng)(STASTA)、終)、終止(止(STOPSTOP)、發(fā)送應(yīng)答位()、發(fā)送應(yīng)答位(MACKMACK)、發(fā)送非應(yīng)答位()、發(fā)送非應(yīng)答位(MNACKMNACK)外,)外,還應(yīng)有應(yīng)答位檢查(還應(yīng)有應(yīng)答位檢查(CACKCACK)、發(fā)送一字節(jié)()、發(fā)送一字節(jié)(WRBYTWRBYT)、接收一字)、接收一字節(jié)(節(jié)(RBYTRBYT)、發(fā)送)、發(fā)送N N字節(jié)(字節(jié)(WRNBYTWRNBYT)和接收)和接收N N字節(jié)(字節(jié)(RDNBYTRDNBYT)這)這5 5個(gè)子程序。個(gè)子程序。(1 1) 應(yīng)答位檢查子程序應(yīng)答位檢查子程序CACKCACK在應(yīng)答位檢查子程序(在應(yīng)答位檢查子程序(CACK

33、)中,設(shè)置了標(biāo)志位。)中,設(shè)置了標(biāo)志位。CACK中用中用F0作標(biāo)志位,當(dāng)檢查到正常應(yīng)答位后,作標(biāo)志位,當(dāng)檢查到正常應(yīng)答位后,F(xiàn)0=0;否則;否則F0=1。CACK:SETB SDA;置SDA為輸入方式 SETB SCL;使SDA上數(shù)據(jù)有效 CLR F0;預(yù)設(shè)F0=0 MOVC,SDA;輸入SDA引腳狀態(tài) JNC CEND;檢查SDA狀態(tài),正常應(yīng)答轉(zhuǎn)CEND,且F0=0 SETB F0;無(wú)正常應(yīng)答,F(xiàn)0=1CEND:CLR SCL;子程序結(jié)束,使SCL=0 RET(2) (2) 發(fā)送一字節(jié)數(shù)據(jù)子程序發(fā)送一字節(jié)數(shù)據(jù)子程序WRBYTWRBYT 該子程序是向虛擬該子程序是向虛擬I2C總線的數(shù)據(jù)線總線的

34、數(shù)據(jù)線SDA上發(fā)送上發(fā)送一字節(jié)數(shù)據(jù)的操作。調(diào)用該子程序前,將要發(fā)送一字節(jié)數(shù)據(jù)的操作。調(diào)用該子程序前,將要發(fā)送的數(shù)據(jù)送入的數(shù)據(jù)送入A中。占用資源:中。占用資源: R0,C。WRBYT:MOV R0,#08H;8 位數(shù)據(jù)長(zhǎng)度送位數(shù)據(jù)長(zhǎng)度送R0中中WLP: RLC A ;發(fā)送位左移入;發(fā)送位左移入CJC WR1;判斷發(fā)送;判斷發(fā)送1還是還是0,發(fā)送,發(fā)送1轉(zhuǎn)轉(zhuǎn)WR1AJMP WR0;發(fā)送;發(fā)送0轉(zhuǎn)轉(zhuǎn)WR0WLP1:DJNZ R0,WLP;8位發(fā)送未完轉(zhuǎn)位發(fā)送未完轉(zhuǎn)WLP RET;8位發(fā)送完結(jié)束位發(fā)送完結(jié)束WR1:SETB SDA;發(fā)送;發(fā)送1程序段程序段SETB SCLNOPNOPCLR SCLCL

35、R SDAAJMP WLP1WR0:CLR SDA;發(fā)送;發(fā)送0程序段程序段SETB SCLNOPNOPCLR SCLAJMP WLP1第8章 單片機(jī)小系統(tǒng)及片外擴(kuò)展8.1 串行擴(kuò)展總線接口技術(shù)串行擴(kuò)展總線接口技術(shù)8.1.1 SPI串行外設(shè)接口總線串行外設(shè)接口總線8.1.2 I2C總線總線8.1.3 單總線單總線8.1.3 8.1.3 單總線單總線 單總線(單總線(1Wire)是)是Dallas公司推出公司推出的外圍串行擴(kuò)展總線。單總線只有一根的外圍串行擴(kuò)展總線。單總線只有一根數(shù)據(jù)輸入數(shù)據(jù)輸入/輸出線,可由單片機(jī)或輸出線,可由單片機(jī)或PC機(jī)機(jī)的的1根根I/O口線作為數(shù)據(jù)輸入口線作為數(shù)據(jù)輸入/輸

36、出線,所輸出線,所有的器件都掛在這根線上。有的器件都掛在這根線上。圖圖8 818 18 單總線構(gòu)成的分布式溫度監(jiān)測(cè)系統(tǒng)單總線構(gòu)成的分布式溫度監(jiān)測(cè)系統(tǒng)圖圖8 819 DS18S2019 DS18S20的引腳排列的引腳排列(1 1) DS18S20 ROMDS18S20 ROM命令命令 主機(jī)操作主機(jī)操作ROM的命令有的命令有5種,如表種,如表83所列。所列。 64位激光位激光ROM的結(jié)構(gòu)如下:的結(jié)構(gòu)如下: 開始開始8位是產(chǎn)品類型編號(hào)(位是產(chǎn)品類型編號(hào)(DS18S20為為10H);接著是每);接著是每個(gè)器件的惟一序號(hào),共有個(gè)器件的惟一序號(hào),共有48位;最后位;最后8位是前位是前56位的位的CRC校驗(yàn)

37、碼,這也是多個(gè)校驗(yàn)碼,這也是多個(gè)DS18S20可以采用一線的原因??梢圆捎靡痪€的原因。(2 2) DS18S20DS18S20存儲(chǔ)控制命令存儲(chǔ)控制命令 DS18S20DS18S20存儲(chǔ)控制命令共有存儲(chǔ)控制命令共有6 6種,如表種,如表8 84 4所列。所列。 DS18S20DS18S20的存儲(chǔ)器由便箋式的存儲(chǔ)器由便箋式RAMRAM和非易失性電擦寫和非易失性電擦寫EERAMEERAM組組成,后者用于存儲(chǔ)成,后者用于存儲(chǔ)THTH和和TLTL值。值。 數(shù)據(jù)先寫入數(shù)據(jù)先寫入RAMRAM,經(jīng)校驗(yàn)后再傳給,經(jīng)校驗(yàn)后再傳給EERAMEERAM。 便箋式便箋式RAMRAM占占9 9字節(jié),包括溫度信息(第字節(jié),

38、包括溫度信息(第1 1、2 2字節(jié))、字節(jié))、THTH、TLTL值(第值(第3 3、4 4字節(jié))、計(jì)數(shù)寄存器(第字節(jié))、計(jì)數(shù)寄存器(第7 7、8 8字節(jié))、字節(jié))、CRCCRC(第(第9 9字節(jié))等,第字節(jié))等,第5 5、6 6字節(jié)不用。字節(jié)不用。(3 3) DS18S20DS18S20的執(zhí)行序列的執(zhí)行序列 初始化(發(fā)一個(gè)不少于初始化(發(fā)一個(gè)不少于480 s480 s的低脈沖);的低脈沖); 執(zhí)行執(zhí)行ROMROM命令,主要用于定位;命令,主要用于定位; 執(zhí)行執(zhí)行DS18S20DS18S20的存儲(chǔ)控制命令,用于轉(zhuǎn)換和讀數(shù)據(jù);的存儲(chǔ)控制命令,用于轉(zhuǎn)換和讀數(shù)據(jù); DS18S20 DS18S20的的I

39、/OI/O信號(hào)有復(fù)位脈沖、回應(yīng)脈沖、寫信號(hào)有復(fù)位脈沖、回應(yīng)脈沖、寫0 0、讀、讀0 0、寫、寫1 1和讀和讀1 1等幾種。除回應(yīng)脈沖由等幾種。除回應(yīng)脈沖由DS18S20DS18S20發(fā)出外,其余都由主機(jī)發(fā)出外,其余都由主機(jī)發(fā)出。發(fā)出。 程序框圖如圖程序框圖如圖8-22所示。所示。圖圖822 程序框圖程序框圖第8章 單片機(jī)小系統(tǒng)及片外擴(kuò)展8.1 串行擴(kuò)展總線接口技術(shù)串行擴(kuò)展總線接口技術(shù)8.2 并行擴(kuò)展三總線的產(chǎn)生并行擴(kuò)展三總線的產(chǎn)生8.3 擴(kuò)展數(shù)據(jù)存儲(chǔ)器擴(kuò)展數(shù)據(jù)存儲(chǔ)器8.4 思考題與習(xí)題思考題與習(xí)題單片機(jī)系統(tǒng)擴(kuò)展概述單片機(jī)系統(tǒng)擴(kuò)展概述A 010A 19A 28A 37A 46A 55A 64A

40、73A 825A 924A 1021A 1123A 122C S120C S226W E27O E22D 011D 112D 213D 315D 416D 517D 618D 7196264D 034D 133D 232D 331D 430D 529D 628D 727PA 04PA 13PA 22PA 31PA 440PA 539PA 638PA 737PB 018PB 119PB 220PB 321PB 422PB 523PB 624PB 725PC 014PC 115PC 216PC 317PC 413PC 512PC 611PC 710R D5W R36A 09A 18R E SE T

41、35C S68255傳統(tǒng)總線芯片的引腳及使用一、BUS:AB、DB、CB二、擴(kuò)展功能A08A17A26A35A44A53A62A71A823A922A1019E/P18OE20VPP21D09D110D211D313D414D515D616D7172716A010A19A28A37A46A55A64A73A825A924A1021A1123A122NC1WE27CE20OE22NC26DQ011DQ112DQ213DQ315DQ416DQ517DQ618DQ7192864A傳統(tǒng)總線芯片的引腳及使用D08OUT 010D17GAT E 011D26C L K09D35D44D53D62OUT 1

42、13D71GAT E 114C L K115C S21R D22W R23OUT 217A019GAT E 216A120C L K2188253AD012PA021AD113PA122AD214PA223AD315PA324AD416PA425AD517PA526AD618PA627AD719PA728PB 029C E8PB 130R D9PB 231W R10PB 332IO/M7PB 433AL E11PB 534PB 635PB 736T M R OUT6PC 037PC 138T M R IN3PC 239PC 31PC 42R E SE T4PC 558155傳統(tǒng)總線芯片的引腳及

43、使用傳統(tǒng)總線芯片的引腳及使用傳統(tǒng)總線芯片的引腳及使用一、一、ABAB(Address Bus Address Bus 地址線)地址線)決定選擇芯片內(nèi)部的哪一個(gè)寄存器決定選擇芯片內(nèi)部的哪一個(gè)寄存器ABAB的數(shù)目與寄存器密切相關(guān)的數(shù)目與寄存器密切相關(guān)例:例:28642864、27162716、82558255、82538253 8155 8155一般一般 寄存器的個(gè)數(shù)小于等于寄存器的個(gè)數(shù)小于等于 2 2n n傳統(tǒng)總線芯片的引腳及使用傳統(tǒng)總線芯片的引腳及使用二、二、DBDB(Data Bus Data Bus 數(shù)據(jù)線)數(shù)據(jù)線)決定該寄存器與總線交換的數(shù)據(jù)決定該寄存器與總線交換的數(shù)據(jù)一般為一般為8 8

44、位,也有位,也有4 4位、位、1616位位一般要求芯片與總線的數(shù)據(jù)位數(shù)相同。一般要求芯片與總線的數(shù)據(jù)位數(shù)相同。如數(shù)據(jù)位數(shù)不同、則要改變?nèi)鐢?shù)據(jù)位數(shù)不同、則要改變接線方法接線方法傳統(tǒng)總線芯片的引腳及使用傳統(tǒng)總線芯片的引腳及使用三、三、CBCB(Control Bus Control Bus 控制線)控制線)決定對(duì)芯片寄存器的操作:決定對(duì)芯片寄存器的操作: 讀讀/ /寫寫/ /不工作不工作 /CS /CE /CS /CE 芯片選通芯片選通/OS /OS 輸出選通輸出選通 /RD/RD讀選通讀選通/WR /WE /WR /WE 寫選通寫選通EA/VP31X119X218RESET9RD17WR16IN

45、T012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10805151單片機(jī)的總線產(chǎn)生單片機(jī)的總線產(chǎn)生P0:P2:ALE:RD:WR:PSEN:EA:數(shù)據(jù)地址數(shù)據(jù)地址a0-a7線線 地址地址a8-a15總線總線地址鎖存允許地址鎖存允許P3.7 讀信號(hào)讀信號(hào)P3.6 寫信號(hào)寫信號(hào)程序存儲(chǔ)器選擇程序存儲(chǔ)器選擇片內(nèi)程序存儲(chǔ)器片內(nèi)程序存儲(chǔ)器允許允許5151單

46、片機(jī)的單片機(jī)的總線總線產(chǎn)生產(chǎn)生一、訪問片外數(shù)據(jù)存儲(chǔ)器及擴(kuò)展口一、訪問片外數(shù)據(jù)存儲(chǔ)器及擴(kuò)展口1 1、輸入指令:輸入指令:MOVX AMOVX A,Ri; MOVX A, DPTRRi; MOVX A, DPTRPSENPSEN、WRWR高電平高電平1) ALE1) ALE高,高,RDRD高,高,P0P0:A7-A0A7-A0,P2P2:A15-A8A15-A82 2)ALE ALE 下跳下跳 變低變低3 3)P0P0口變?yōu)楦咦杩谧優(yōu)楦咦? 4)RDRD下跳變低下跳變低5 5)約)約4-64-6個(gè)時(shí)鐘周期后,個(gè)時(shí)鐘周期后, RDRD上跳,上跳,P0P0口線的狀態(tài)傳口線的狀態(tài)傳送到送到A A。515

47、1單片機(jī)的總線產(chǎn)生單片機(jī)的總線產(chǎn)生一、訪問片外數(shù)據(jù)存儲(chǔ)器及擴(kuò)展口一、訪問片外數(shù)據(jù)存儲(chǔ)器及擴(kuò)展口2 2、輸出指令:輸出指令:MOVX RiMOVX Ri,A;MOVX DPTRA;MOVX DPTR,A APSENPSEN、RDRD高電平高電平ALEALE高,高,WRWR高,高,P0P0:A7-A0A7-A0,P2P2:A15-A8A15-A82 2)ALE ALE 下跳下跳 變低變低3 3)A A中的數(shù)據(jù)傳到中的數(shù)據(jù)傳到P0P0口口4 4)WRWR下跳變低下跳變低5 5)約)約4-64-6個(gè)時(shí)鐘周期后,個(gè)時(shí)鐘周期后, WRWR上跳。上跳。5151單片機(jī)的總線產(chǎn)生單片機(jī)的總線產(chǎn)生二、訪問片外程序

48、存儲(chǔ)器(二、訪問片外程序存儲(chǔ)器(訪問條件訪問條件)(少)(少)RDRD、WRWR高電平高電平ALEALE高,高,PSENPSEN高,高,P0P0:A7-A0A7-A0,P2P2:A15-A8A15-A82 2)ALE ALE 下跳下跳 變低變低3 3)P0P0口變?yōu)楦咦杩谧優(yōu)楦咦? 4)PSENPSEN下跳變低下跳變低5 5)幾個(gè)時(shí)鐘周期后,)幾個(gè)時(shí)鐘周期后, PSDENPSDEN上跳,上跳,P0P0口線的狀態(tài)口線的狀態(tài)傳送到指令寄存器。傳送到指令寄存器。8.2 8.2 并行擴(kuò)展三總線的產(chǎn)生并行擴(kuò)展三總線的產(chǎn)生通常情況下,微機(jī)的通常情況下,微機(jī)的CPUCPU外部都有單獨(dú)的并行地址總線、數(shù)據(jù)總線

49、和外部都有單獨(dú)的并行地址總線、數(shù)據(jù)總線和控制總線,而控制總線,而89C5189C51單片機(jī)由于受引腳的限制,數(shù)據(jù)線和地址線是復(fù)單片機(jī)由于受引腳的限制,數(shù)據(jù)線和地址線是復(fù)用的,而且由口線兼用。用的,而且由口線兼用。為了將它們分離出來(lái),以便同單片機(jī)片外的芯片正確地連接,需要在為了將它們分離出來(lái),以便同單片機(jī)片外的芯片正確地連接,需要在單片機(jī)外部增加地址鎖存器,從而構(gòu)成與一般單片機(jī)外部增加地址鎖存器,從而構(gòu)成與一般CPUCPU相類似的片外三總相類似的片外三總線,如圖線,如圖8 82525所示。所示。采用采用74HC37374HC373作鎖存器的地址總線擴(kuò)展電路如圖作鎖存器的地址總線擴(kuò)展電路如圖8 8

50、2626所示。所示。 由由89C51 P089C51 P0口送出的低口送出的低8 8位有效地址信號(hào)是在位有效地址信號(hào)是在ALE(ALE(地址鎖地址鎖存允許存允許) )信號(hào)變高的同時(shí)出現(xiàn)的,并在信號(hào)變高的同時(shí)出現(xiàn)的,并在ALEALE由高變低時(shí),將由高變低時(shí),將出現(xiàn)在出現(xiàn)在P0P0口的地址信號(hào)鎖存到外部地址鎖存器口的地址信號(hào)鎖存到外部地址鎖存器74HC37374HC373中,中,直到下一次直到下一次ALEALE變高時(shí),地址才發(fā)生變化。變高時(shí),地址才發(fā)生變化。圖圖825 89C51擴(kuò)展的擴(kuò)展的并行三總線并行三總線圖圖826 89C51地址總線地址總線擴(kuò)展電路擴(kuò)展電路3. 3. 控制總線控制總線 控制

51、總線控制總線(Control Bus(Control Bus,CB)CB)是單片機(jī)發(fā)出的以是單片機(jī)發(fā)出的以控制片外控制片外ROMROM、RAMRAM和口讀寫操作的一組和口讀寫操作的一組控制線??刂凭€。8.2.2 8.2.2 系統(tǒng)擴(kuò)展的實(shí)現(xiàn)系統(tǒng)擴(kuò)展的實(shí)現(xiàn)1. 1. 以以P0P0口作地址數(shù)據(jù)總線口作地址數(shù)據(jù)總線 此處的地址總線是指系統(tǒng)的低此處的地址總線是指系統(tǒng)的低8 8位地址線。位地址線。 因?yàn)橐驗(yàn)镻0P0口線既用作地址線,又用作數(shù)據(jù)線口線既用作地址線,又用作數(shù)據(jù)線( (分時(shí)使用分時(shí)使用) ),因,因此,需要加一個(gè)此,需要加一個(gè)8 8位鎖存器。位鎖存器。 在實(shí)際應(yīng)用時(shí),先把低在實(shí)際應(yīng)用時(shí),先把低8

52、 8位地址送鎖存器暫存,然后再由位地址送鎖存器暫存,然后再由地址鎖存器給系統(tǒng)提供低地址鎖存器給系統(tǒng)提供低8 8位地址,而把位地址,而把P0P0口線作為數(shù)據(jù)口線作為數(shù)據(jù)線使用。線使用。 實(shí)際上,單片機(jī)實(shí)際上,單片機(jī)P0P0口的電路設(shè)計(jì)已考慮了這種應(yīng)用需要,口的電路設(shè)計(jì)已考慮了這種應(yīng)用需要,P0P0口線電路中的多路轉(zhuǎn)接電路口線電路中的多路轉(zhuǎn)接電路MUXMUX以及地址數(shù)據(jù)控制即以及地址數(shù)據(jù)控制即是為此目的而設(shè)計(jì)的。是為此目的而設(shè)計(jì)的。2. 2. 以以P2P2口的口線作高位地址線口的口線作高位地址線 如果使用如果使用P2P2口的全部口的全部8 8位口線,再加上位口線,再加上P0P0口提供的低口提供的低

53、8 8位地位地址,便可形成完整的址,便可形成完整的1616位地址總線,使單片機(jī)系統(tǒng)的尋址位地址總線,使單片機(jī)系統(tǒng)的尋址范圍達(dá)到范圍達(dá)到64 KB64 KB。 但實(shí)際應(yīng)用系統(tǒng)中,高位地址線并不固定為但實(shí)際應(yīng)用系統(tǒng)中,高位地址線并不固定為8 8位,需要用位,需要用幾位就從幾位就從P2P2口中引出幾條口線??谥幸鰩讞l口線。 除了地址線和數(shù)據(jù)線之外,在擴(kuò)展系統(tǒng)中還需除了地址線和數(shù)據(jù)線之外,在擴(kuò)展系統(tǒng)中還需要一些控制信號(hào)線,以構(gòu)成擴(kuò)展系統(tǒng)的控制總線。要一些控制信號(hào)線,以構(gòu)成擴(kuò)展系統(tǒng)的控制總線。這些信號(hào)有的是單片機(jī)引腳的第一功能信號(hào),有的這些信號(hào)有的是單片機(jī)引腳的第一功能信號(hào),有的則是第二功能信號(hào)。其中

54、包括:則是第二功能信號(hào)。其中包括: 使用使用ALEALE作為地址鎖存的選通信號(hào),以實(shí)現(xiàn)低作為地址鎖存的選通信號(hào),以實(shí)現(xiàn)低8 8位地位地址的鎖存;址的鎖存; 以信號(hào)作為擴(kuò)展程序存儲(chǔ)器的讀選通信號(hào);以信號(hào)作為擴(kuò)展程序存儲(chǔ)器的讀選通信號(hào); 以信號(hào)作為內(nèi)、外程序存儲(chǔ)器的選擇信號(hào);以信號(hào)作為內(nèi)、外程序存儲(chǔ)器的選擇信號(hào); 以和作為擴(kuò)展數(shù)據(jù)存儲(chǔ)器和端口的以和作為擴(kuò)展數(shù)據(jù)存儲(chǔ)器和端口的讀讀/ /寫選通信號(hào)。執(zhí)行寫選通信號(hào)。執(zhí)行MOVXMOVX指令時(shí),這兩個(gè)信號(hào)分指令時(shí),這兩個(gè)信號(hào)分別自動(dòng)有效別自動(dòng)有效。 可以看出,盡管可以看出,盡管89C5189C51單片機(jī)號(hào)稱有單片機(jī)號(hào)稱有4 4個(gè)個(gè)口,共口,共3232條口

55、線,但由于系統(tǒng)擴(kuò)展的需要,條口線,但由于系統(tǒng)擴(kuò)展的需要,真正能作為數(shù)據(jù)使用的,就只剩下真正能作為數(shù)據(jù)使用的,就只剩下P1P1口和口和P3P3口的部分口線了??诘牟糠挚诰€了。 特別需要強(qiáng)調(diào)的是,程序存儲(chǔ)器不應(yīng)再采用特別需要強(qiáng)調(diào)的是,程序存儲(chǔ)器不應(yīng)再采用外擴(kuò)的方案。因?yàn)橥鈹U(kuò)的方案。因?yàn)?989系列單片機(jī)內(nèi)有系列單片機(jī)內(nèi)有4 432 32 KBKB的不同型號(hào)產(chǎn)品可供選擇。如果課題需要的不同型號(hào)產(chǎn)品可供選擇。如果課題需要功能更強(qiáng)的功能更強(qiáng)的MCUMCU,則可選擇,則可選擇ADC8ADC8、C8051FC8051F和和MAX7651MAX7651等等SOCSOC芯片。關(guān)于程芯片。關(guān)于程序存儲(chǔ)器的擴(kuò)展,本

56、教程不作介紹。序存儲(chǔ)器的擴(kuò)展,本教程不作介紹。傳統(tǒng)總線的連接方法傳統(tǒng)總線的連接方法第8章 單片機(jī)小系統(tǒng)及片外擴(kuò)展8.1 串行擴(kuò)展總線接口技術(shù)串行擴(kuò)展總線接口技術(shù)8.2 并行擴(kuò)展三總線的產(chǎn)生并行擴(kuò)展三總線的產(chǎn)生8.3 擴(kuò)展數(shù)據(jù)存儲(chǔ)器擴(kuò)展數(shù)據(jù)存儲(chǔ)器8.4 思考題與習(xí)題思考題與習(xí)題1. 1. 靜態(tài)靜態(tài)RAM(SRAM)RAM(SRAM)芯片芯片 目前常用的靜態(tài)目前常用的靜態(tài)RAMRAM電路有電路有61166116、62646264、6225662256、628128628128等。它們等。它們的引腳排列如圖的引腳排列如圖8 82727所示。所示。注:注: 62646264的的2626腳為高電平有效的

57、片選端。腳為高電平有效的片選端。圖圖827 常用靜態(tài)常用靜態(tài)RAM芯片引腳圖芯片引腳圖其引腳功能如下:其引腳功能如下: A0A0Ai Ai 地址輸入線,地址輸入線,i=10(6116),12(6264),14(62256)i=10(6116),12(6264),14(62256)。 D0D0D7 D7 雙向三態(tài)數(shù)據(jù)線;雙向三態(tài)數(shù)據(jù)線; 片選信號(hào)輸入線,低電平有效,當(dāng)片選信號(hào)輸入線,低電平有效,當(dāng)62646264的的2626腳腳(CS)(CS)為高為高電平,且為低電平時(shí)。才選中該片;電平,且為低電平時(shí)。才選中該片; 讀選通信號(hào)輸入線,低電平有效;讀選通信號(hào)輸入線,低電平有效; 寫允許信號(hào)輸入線,

58、低電平有效;寫允許信號(hào)輸入線,低電平有效; 工作電源,電壓為工作電源,電壓為 ; GND GND 線路地。線路地。這這3 3種種RAMRAM電路的主要技術(shù)特性見表電路的主要技術(shù)特性見表8 85 5。 靜態(tài)靜態(tài)RAMRAM存儲(chǔ)器有讀出、寫入和維持存儲(chǔ)器有讀出、寫入和維持3 3種工作方式,這些工作方式種工作方式,這些工作方式的操作控制如表的操作控制如表8 86 6所列。所列。8.3.2 8.3.2 訪問片外訪問片外RAMRAM的操作時(shí)序的操作時(shí)序 這里包括從這里包括從RAMRAM中讀和寫兩種操作時(shí)序,但基本過(guò)程是相中讀和寫兩種操作時(shí)序,但基本過(guò)程是相同的。同的。 這時(shí)所用的控制信號(hào)有這時(shí)所用的控制

59、信號(hào)有ALEALE和和( (讀讀) )或或( (寫寫) )。 P0P0口和口和P2P2口仍然要用,在取指階段用來(lái)傳送口仍然要用,在取指階段用來(lái)傳送ROMROM地址和指地址和指令,而在執(zhí)行階段傳送片外令,而在執(zhí)行階段傳送片外RAMRAM地址和讀寫的數(shù)據(jù)。地址和讀寫的數(shù)據(jù)。8.3.3 89C518.3.3 89C51擴(kuò)展擴(kuò)展2 KB RAM2 KB RAM 圖圖8 82929所示電路為所示電路為89C5189C51地址線直接外擴(kuò)地址線直接外擴(kuò)2 KB2 KB靜態(tài)靜態(tài)RAM RAM 61166116的連線圖。的連線圖。 8282(8282(同同74HC373)74HC373)鎖存低鎖存低8 8位地址

60、;位地址; 89C5189C51的(的(. .)和()和(. .)分別與)分別與61166116寫允許端和讀允許端連接,以實(shí)現(xiàn)寫讀控制;寫允許端和讀允許端連接,以實(shí)現(xiàn)寫讀控制; 因?yàn)橄到y(tǒng)必須使用片內(nèi)因?yàn)橄到y(tǒng)必須使用片內(nèi)ROMROM從從0000H0000H開始的空間,所以,開始的空間,所以,接高電平;接高電平; 61166116的片選控制端接地為常選通,地址為的片選控制端接地為常選通,地址為0000H0000H07FFH07FFH。 對(duì)于有片內(nèi)對(duì)于有片內(nèi)Flash ROMFlash ROM的的89C5189C51擴(kuò)展一片擴(kuò)展一片RAMRAM,便可組成一,便可組成一個(gè)簡(jiǎn)單的系統(tǒng)。個(gè)簡(jiǎn)單的系統(tǒng)。圖圖

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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)論