




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目 錄第第1 1章章 微機基礎知識微機基礎知識第第2 2章章 89C5189C51單片機硬件結構和原理單片機硬件結構和原理第第3 3章章 指令系統指令系統第第4 4章章 匯編語言程序設計知識匯編語言程序設計知識第第5 5章章 中斷系統中斷系統第第6 6章章 定時器及應用定時器及應用第第7章章 89C51串行口及串行通信技術串行口及串行通信技術第第8章章 單片機小系統及擴展單片機小系統及擴展第第9章章 應用系統配置及接口技術應用系統配置及接口技術第第10章章 系統實用程序系統實用程序18:03第8章 單片機小系統及片外擴展8.1 串行擴展總線接口技術串行擴展總線接口技術8.2 并行擴展三總線的產
2、生并行擴展三總線的產生8.3 擴展數據存儲器擴展數據存儲器8.4 思考題與習題思考題與習題第8章 單片機小系統及片外擴展8.1 串行擴展總線接口技術串行擴展總線接口技術8.1.1 SPI串行外設接口總線串行外設接口總線8.1.2 I2C總線總線8.1.3 單總線單總線8.1.1 SPI串行外設接口總線 SPI(Serial Peripheral Interface串行串行外設接口)總線是外設接口)總線是Motorola公司推出的一公司推出的一種同步串行外設接口,它用于種同步串行外設接口,它用于MCU與各種與各種外圍設備以串行方式進行通信(外圍設備以串行方式進行通信(8位數據同位數據同時同步地被
3、發送和接收),系統可配置為時同步地被發送和接收),系統可配置為主或從操作模式。外圍設備包括簡單的主或從操作模式。外圍設備包括簡單的TTL移位寄存器(用作并行輸入或輸出口)至移位寄存器(用作并行輸入或輸出口)至復雜的復雜的LCD顯示驅動器或顯示驅動器或A/D轉換器等。轉換器等。圖8-1 SPI外圍擴展示意圖串行時鐘線串行時鐘線主出主出/從入數據線從入數據線主入主入/從出數據線從出數據線從機選擇線從機選擇線 SPI有較高的數據傳送速度,主機方式最高有較高的數據傳送速度,主機方式最高速率可達速率可達1.05 Mb/s,目前不少外圍器件都,目前不少外圍器件都帶有帶有SPI接口。接口。 在大多數應用場合
4、中,使用在大多數應用場合中,使用1個個MCU作為主作為主機,控制數據向機,控制數據向1個或多個從外圍器件的傳個或多個從外圍器件的傳送。送。 從器件只能在主機發命令時從器件只能在主機發命令時,才能接收或向才能接收或向主機傳送數據。主機傳送數據。 其數據的傳輸格式是高位(其數據的傳輸格式是高位(MSB)在前,)在前,低位低位(LSB)在后。)在后。 SPI總線有以下主要特性:總線有以下主要特性: 全雙工、全雙工、3線同步線同步傳輸;主機或從機工作;提供頻率可編程時鐘;傳輸;主機或從機工作;提供頻率可編程時鐘;發送結束中斷標志;寫沖突保護;總線競爭保發送結束中斷標志;寫沖突保護;總線競爭保護等。其典
5、型時序圖如圖護等。其典型時序圖如圖8-2所示。所示。圖8-2 SPI串行總線典型時序圖2. 89C51單片機串行擴展單片機串行擴展SPI外設接口的方法外設接口的方法1) 用一般用一般I/O口線模擬口線模擬SPI操作操作 對于沒有對于沒有SPI接口的接口的89C51來說,可使用軟件來模來說,可使用軟件來模擬擬SPI的操作,包括串行時鐘、數據輸入和輸出。的操作,包括串行時鐘、數據輸入和輸出。 對于不同的串行接口外圍芯片,它們的時鐘時序對于不同的串行接口外圍芯片,它們的時鐘時序是不同的。是不同的。 對于在對于在SCK的上升沿輸入(接收)數據和在下降的上升沿輸入(接收)數據和在下降沿輸出(發送)數據的
6、器件沿輸出(發送)數據的器件,一般應取圖,一般應取圖8-3中的中的串行時鐘輸出串行時鐘輸出P1.1的初始狀態為的初始狀態為1;在允許接口;在允許接口芯片后,置芯片后,置P1.1為為0。 圖圖8-3為為89C51(MCU)與)與MCM2814(E2PROM)的硬件連接圖。的硬件連接圖。圖8-3 SPI總線接口原理圖 從從MCM2814的的SPISO線上接收線上接收1字節數據并放入寄存字節數據并放入寄存器器R0中。中。 (P196)SPIIN:SETB P1.1;使;使P1.1(時鐘)輸出為(時鐘)輸出為1 CLRP1.2;選擇從機;選擇從機 MOVR1,#08H;置循環次數;置循環次數SPIN1
7、:CLRP1.1;使;使P1.1(時鐘)輸出為(時鐘)輸出為0 NOP;延時;延時 NOP MOVC,P1.3;從機輸出;從機輸出SPISO送進位送進位C RLCA;左移至累加器;左移至累加器ACC SETBP1.0;使;使P1.0(時鐘時鐘)輸出為輸出為1 DJNZR1,SPIN1;判斷是否循環;判斷是否循環8次次 MOVR0,A;1字節數據送字節數據送R0 RET;返回;返回將將89C51中中R0寄存器的內容傳到寄存器的內容傳到MCM2814的的SPISI線上。線上。SPIOUN: SETB P1.1;使;使P1.1(時鐘)輸出為(時鐘)輸出為1CLR P1.2;選擇從機;選擇從機MOV
8、R1,#08H;置循環次數;置循環次數MOV A,R0;1字節數據送累加器字節數據送累加器ACCSPIOT1: CLR P1.1;使;使P1.1(時鐘)輸出為(時鐘)輸出為0NOP;延時;延時NOPRLC A;左移至累加器;左移至累加器ACC最高位至最高位至CMOV P1.0,C;進位;進位C送送SPISI線上線上SETB P1.1;使;使P1.1(時鐘)輸出為(時鐘)輸出為1DJNZ R1,SPIOT1;判斷是否循環;判斷是否循環8次次RET ; 返回返回P197: 將將R0的內容傳到的內容傳到MCM2814的的SPISI中,同時從中,同時從MCM2814的的SPISO接收接收1字節數據存入
9、字節數據存入R0中。中。SPIIO:SETBP1.1;使;使P1.1(時鐘)輸出為(時鐘)輸出為1CLR P1,2;選擇從機;選擇從機MOVR1,#08H;置循環次數;置循環次數MOVA,R0;1字節數據送累加器字節數據送累加器ACCSPIO1:CLR P1.1;使;使P1.1(時鐘)輸出為(時鐘)輸出為0NOP;延時;延時NOPMOV C,P1.3;從機輸出;從機輸出SPISO送進位送進位CRLC A;左移至累加器;左移至累加器ACC最高位至最高位至CMOV P1.0,C;進位;進位C送從機輸入送從機輸入SETB P1.1;使;使P1.1(時鐘)輸出為(時鐘)輸出為1DJNZ R1,SPIO
10、1;判斷是否循環;判斷是否循環8次次MOV R0,ARET;返回;返回圖圖8-4 HT1380圖圖8-5 MAX7219圖圖8-6 串行串行A/D芯片與單片機接口電路芯片與單片機接口電路利用利用89C51串行口實現串行口實現SPI操作操作(4) 串行接口芯片的一般接口規律串行接口芯片的一般接口規律 除上面除上面3種芯片之外,單片機還可以通過串行接口芯種芯片之外,單片機還可以通過串行接口芯片與片與E2PROM、D/A轉換芯片等連接。它們與轉換芯片等連接。它們與CPU的的串行接口方式與以上幾種芯片類似,即:串行接口方式與以上幾種芯片類似,即: 都需要通過單片機的開關量都需要通過單片機的開關量I/O
11、口線進行芯片選擇;口線進行芯片選擇; 當芯片未選中時,數據端口均處于高阻狀態;當芯片未選中時,數據端口均處于高阻狀態; 與單片機交換信息時均要求單片機串行口以方式與單片機交換信息時均要求單片機串行口以方式0進進行;行; 傳輸數據時的幀格式均要求先傳送命令傳輸數據時的幀格式均要求先傳送命令/地址,再傳地址,再傳送數據;送數據; 大都具有圖大都具有圖8-7所示的時序波形。所示的時序波形。第8章 單片機小系統及片外擴展8.1 串行擴展總線接口技術串行擴展總線接口技術8.1.1 SPI串行外設接口總線串行外設接口總線8.1.2 I2C總線總線8.1.3 單總線單總線8.1.2 I2C總線 I I2 2
12、C C總線是總線是PHILIPSPHILIPS公司推出的串行總線。公司推出的串行總線。 I I2 2C C總線是一種具有自動尋址、高低速設備總線是一種具有自動尋址、高低速設備同步和仲裁等功能的高性能串行總線,能夠同步和仲裁等功能的高性能串行總線,能夠實現完善的全雙工數據傳輸,是各種總線中實現完善的全雙工數據傳輸,是各種總線中使用信號線數量最少的。使用信號線數量最少的。 I I2 2C C總線只有兩根信號線:數據線總線只有兩根信號線:數據線SDASDA和時鐘和時鐘線線SCLSCL。 各節點供電可以不同,但需共地,另外各節點供電可以不同,但需共地,另外SDASDA和和SCLSCL需分別接上拉電阻。
13、需分別接上拉電阻。 圖圖8-9 8-9 示出了帶有兩個單片機和其示出了帶有兩個單片機和其他一些外圍電路模塊接入他一些外圍電路模塊接入I I2 2C C總線的總線的一個實例。一個實例。圖圖8-9 I8-9 I2 2C C總線典型系統示意圖總線典型系統示意圖 主器件主器件( (主機主機):):啟動和停止數啟動和停止數據發送并產生據發送并產生時鐘信號時鐘信號 I I2 2C C總線是多總線是多主機總線,但主機總線,但同一時刻只允同一時刻只允許一個有效許一個有效圖圖8-10 I8-10 I2 2C C總線外圍擴展示意圖總線外圍擴展示意圖 I I2 2C C總線上支持多主和主從兩種工作方式??偩€上支持多
14、主和主從兩種工作方式。 在多主方式中,通過硬件和軟件的仲裁主控在多主方式中,通過硬件和軟件的仲裁主控制器取得總線控制權。制器取得總線控制權。 而在多數情況下,系統中只有一個主器件,而在多數情況下,系統中只有一個主器件,即單主節點,總線上的其他器件都是具有即單主節點,總線上的其他器件都是具有I I2 2C C總線的外圍從器件,這時的總線的外圍從器件,這時的I I2 2C C總線就工作在總線就工作在主從工作方式。主從工作方式。 在主從方式中,從器件的地址包括器件編號地在主從方式中,從器件的地址包括器件編號地址和引腳地址,器件編寫地址由址和引腳地址,器件編寫地址由I I2 2C C總線委員總線委員會
15、分配,引腳地址決定于引腳外接電平的高低。會分配,引腳地址決定于引腳外接電平的高低。 當器件內部有連續的子地址空間時,對這些空當器件內部有連續的子地址空間時,對這些空間進行間進行N N個字節的連續讀個字節的連續讀/ /寫,子地址會自動加寫,子地址會自動加1 1。在主從方式的。在主從方式的I I2 2C C總線系統中,只須考慮主總線系統中,只須考慮主方式的方式的I I2 2C C總線操作。總線操作。3. I3. I2 2C C總線基本知識總線基本知識1 1) I I2 2C C總線的接口電路結構總線的接口電路結構 I I2 2C C總線由一根數據線總線由一根數據線SDASDA和一根時鐘線和一根時鐘
16、線SCLSCL構成。構成。 I I2 2C C總線中一個節點的每個電路器件都可視為有如總線中一個節點的每個電路器件都可視為有如圖圖8-118-11虛框所示的一個虛框所示的一個I I2 2C C總線接口電路,用于與總線接口電路,用于與I I2 2C C總線的總線的SDASDA和和SCLSCL線掛接。線掛接。 數據線數據線SDASDA和時鐘線和時鐘線SCLSCL都是雙向傳輸線,平時均都是雙向傳輸線,平時均處于高電平備用狀態,只有當需要關閉處于高電平備用狀態,只有當需要關閉I I2 2C C總線時,總線時,SCLSCL線才會箝位在低電平。線才會箝位在低電平。圖8-11 I2C總線的器件連接圖圖8-1
17、2 I8-12 I2 2C C總線信號的時序總線信號的時序當當SCL=1時,時,SDA的數據才有效的數據才有效當當SCL=0時,時,SDA的數據才能變化的數據才能變化 起始信號和停止信號均由作為主控器的單片機發出,并由掛接在I2C總線上的被控器檢測。 對于不具備I2C總線接口的單片機,為了能準確檢測到這些信號,必須保證在總線的一個時鐘周期內對SAD線進行至少兩次采樣。4. I2C總線的數據傳送 在在I I2 2C C總線上每傳輸一位數據都有一個時鐘脈沖相對應。總線上每傳輸一位數據都有一個時鐘脈沖相對應。注意這里的時鐘脈沖不像一般的時鐘那樣必須是周期性的,注意這里的時鐘脈沖不像一般的時鐘那樣必須
18、是周期性的,它的時鐘間隔可以不同。它的時鐘間隔可以不同。 總線備用時(即處于總線備用時(即處于“非忙非忙”狀態),狀態),SDASDA和和SCLSCL都必須保都必須保持高電平狀態,關閉持高電平狀態,關閉I I2 2C C總線時才使總線時才使SCLSCL箝位在低電平。只箝位在低電平。只有當總線處于有當總線處于“非忙非忙”狀態時,數據傳輸才能被初始化。狀態時,數據傳輸才能被初始化。 在數據傳輸期間,只要時鐘線為高電平,數據線就必須保在數據傳輸期間,只要時鐘線為高電平,數據線就必須保持穩定。持穩定。 只有在時鐘線為低電平時,才允許數據線上的電平狀態變只有在時鐘線為低電平時,才允許數據線上的電平狀態變
19、化?;?在時鐘線保持高電平期間,數據線出現下降沿為啟動信號、在時鐘線保持高電平期間,數據線出現下降沿為啟動信號、上升沿為停止信號,啟動和停止信號都由主機產生,總線上升沿為停止信號,啟動和停止信號都由主機產生,總線上帶有上帶有I I2 2C C總線接口的器件很容易檢測到這些信號??偩€接口的器件很容易檢測到這些信號。 I I2 2C C總線上傳輸的數據和地址字節均為總線上傳輸的數據和地址字節均為8 8位,且高位,且高位在前,低位在后。位在前,低位在后。 I I2 2C C總線以起始信號為啟動信號,接著傳輸的是總線以起始信號為啟動信號,接著傳輸的是地址和數據字節,數據字節是沒有限制的,但每地址和數
20、據字節,數據字節是沒有限制的,但每個字節后都必須跟隨一個應答位,全部數據傳輸個字節后都必須跟隨一個應答位,全部數據傳輸完畢后,以終止信號結尾。完畢后,以終止信號結尾。 I I2 2C C總線上數據的傳送時序如圖總線上數據的傳送時序如圖8-138-13所示。所示。圖圖8-13 I8-13 I2 2C C總線的數據傳送字節格式總線的數據傳送字節格式 利用利用SDASDA線進行數據傳輸時,發送器每發完一個線進行數據傳輸時,發送器每發完一個數據字節后,都要求接收方發回一個應答信號。數據字節后,都要求接收方發回一個應答信號。但與應答信號相對應的時鐘仍由主控器在但與應答信號相對應的時鐘仍由主控器在SCLS
21、CL線線上產生,因此主控發送器必須在被控接收器發送上產生,因此主控發送器必須在被控接收器發送應答信號前,預先釋放對應答信號前,預先釋放對SDASDA線的控制,以便主線的控制,以便主控器對控器對SDASDA線上應答信號的檢測。線上應答信號的檢測。 應答信號在第應答信號在第9 9個時鐘位上出現,接收器在個時鐘位上出現,接收器在SDASDA線上輸出線上輸出低電平為應答信號(低電平為應答信號(A A),輸出高電平為非應答信號),輸出高電平為非應答信號(A A)。時鐘信號以及應答和非應答信號間的關系如圖)。時鐘信號以及應答和非應答信號間的關系如圖8-148-14所示。所示。圖8-14 I2C總線的應答位
22、2) I2C總線數據傳輸的格式I I2 2C C總線傳輸數據時必須遵循規定的數據傳輸格式,圖總線傳輸數據時必須遵循規定的數據傳輸格式,圖8-158-15示出了示出了I I2 2C C總線總線一次完整的數據傳輸格式。一次完整的數據傳輸格式。圖圖8 815 I15 I2 2C C總線一次完整的數據傳輸格式總線一次完整的數據傳輸格式(1) 主控器的寫數據操作格式 傳輸傳輸n字節的數據格式如下字節的數據格式如下:A為應答信號;為應答信號;S為起始信號,為起始信號,P為停止信號;為停止信號;SLA為為尋址字節(寫);尋址字節(寫);data 1data n為被傳輸的為被傳輸的n個數個數據字節。據字節。主
23、控器發送主控器發送被控器發送被控器發送 具體內容為:具體內容為:(2) 主控器的讀數據操作格式 傳輸傳輸n字節的數據格式如下字節的數據格式如下:除了尋址字節為主機發送、從機接收外,其余的除了尋址字節為主機發送、從機接收外,其余的n字字節均為從機發送,主機接收。主機接收完數據后,應節均為從機發送,主機接收。主機接收完數據后,應發非應答位,向從機表明讀操作結束。發非應答位,向從機表明讀操作結束。主控器發送主控器發送從機發送從機發送 具體內容為:具體內容為:3) 主控器的讀/寫數據操作格式讀讀/寫操作時,在一次數據傳輸過程中需要改變數據的傳送方向,即寫操作時,在一次數據傳輸過程中需要改變數據的傳送方
24、向,即主機在一段時間內為讀操作,在另一段時間內為寫操作。主機在一段時間內為讀操作,在另一段時間內為寫操作。由于讀由于讀/寫方向有變化,起始信號和尋址字節都會重復一次,但讀寫方向有變化,起始信號和尋址字節都會重復一次,但讀/寫方向(寫方向(R/W)相反。)相反。例如,由單片機主機讀取存儲器從機中某存儲單元的內容,就需要例如,由單片機主機讀取存儲器從機中某存儲單元的內容,就需要主機先向從機寫入該存儲單元的地址,再發一個啟動位,進行讀操主機先向從機寫入該存儲單元的地址,再發一個啟動位,進行讀操作。作。 主控器向被控器先讀后寫的數據格式如下:主控器向被控器先讀后寫的數據格式如下: 具體內容為: 其中:
25、其中: SrSr為重復起始信號;為重復起始信號;data 1data 1data ndata n為主控器的為主控器的讀數據;讀數據;DATA 1DATA 1DATA nDATA n為主控器的寫數據;其余與前述為主控器的寫數據;其余與前述相同。相同。通過上述分析,可以得出如下結論:通過上述分析,可以得出如下結論: 無論總線處于何種方式,起始信號、終止信號和無論總線處于何種方式,起始信號、終止信號和尋址字節均由主控器發送和被控器接收。尋址字節均由主控器發送和被控器接收。 尋址字節中,尋址字節中,7 7位地址是指器件地址,即被尋址的位地址是指器件地址,即被尋址的被控器的固有地址,被控器的固有地址,R
26、/WR/W方向位用于指定方向位用于指定SDASDA線上線上數據傳送的方向。數據傳送的方向。R/W=0R/W=0為主控器寫和被控器收,為主控器寫和被控器收,R/W=1R/W=1為主控器讀(收)和被控器發。為主控器讀(收)和被控器發。 每個器件(主控器或被控器)內部都有一個數據每個器件(主控器或被控器)內部都有一個數據存儲器存儲器RAMRAM,RAMRAM的地址是連續的,并能自動加的地址是連續的,并能自動加/ /減減1 1。n n個被傳送數據的個被傳送數據的RAMRAM地址可由系統設計者規定,地址可由系統設計者規定,通常作為數據放在上述數據傳輸格式中,即第一通常作為數據放在上述數據傳輸格式中,即第
27、一個數據字節個數據字節data 1data 1或或DATA 1DATA 1。 總線上傳輸的每個字節后必須跟一個應答或非應總線上傳輸的每個字節后必須跟一個應答或非應答信號答信號A/AA/A。6 51單片機與I2C總線的接口1) 單片機與單片機與I I2 2C C總線的硬件連接總線的硬件連接圖圖8 816 16 模擬模擬I I2 2C C總線總線I I2 2C C總線典型信號時序及信號模擬子程序總線典型信號時序及信號模擬子程序 起始位(起始位(S S)、終止位()、終止位(P P)、發送)、發送0 0代表應答位代表應答位(A A)、發送)、發送1 1代表非應答位(代表非應答位(A A)等信號。)等
28、信號。圖圖8 817 I17 I2 2C C總線數據傳送典型信號時序總線數據傳送典型信號時序 圖圖8-17I8-17I2 2C C總線數據傳送典型信號時序對于總線數據傳送典型信號時序對于I I2 2C C總線的典型信號,可以用指令操作來??偩€的典型信號,可以用指令操作來模擬其時序過程。擬其時序過程。 若若89C5189C51單片機的系統時鐘為單片機的系統時鐘為6MHz6MHz,相應的,相應的單周期指令的周期為單周期指令的周期為2 s2 s,則起始,則起始(STASTA)、終止()、終止(STOPSTOP)、發送應答位)、發送應答位(MACKMACK)、發送非應答位()、發送非應答位(MNACK
29、MNACK)的)的4 4個個模擬子程序如下:模擬子程序如下:(1) (1) 啟動啟動I I2 2C C總線子程序總線子程序STASTASTASTA:SETBSETB SDASDASETBSETB SCLSCL;起始條件建立時間大于;起始條件建立時間大于4.7 s4.7 sNOPNOPNOPNOPCLRCLRSDASDANOPNOP ;起始條件鎖定時間大于;起始條件鎖定時間大于4 s4 sNOPNOPCLRCLRSCLSCL;箝住總線,準備發送數據;箝住總線,準備發送數據RETRET(2) (2) 停止停止I I2 2C C總線子程序總線子程序STOPSTOPSTOPSTOP:CLRSDASET
30、B SCL;發送停止條件的時鐘信號;發送停止條件的時鐘信號NOP;停止總線時間大于;停止總線時間大于4 sNOPSETB SDA;停止總線;停止總線NOPNOPCLRSDACLRSCLRET(3) (3) 發送應答位信號子程序發送應答位信號子程序MACKMACKMACKMACK:CLRCLRSDASDASETBSETB SCLSCLNOP NOP ;保持數據時間,即;保持數據時間,即SCLSCL為高,時間大于為高,時間大于40s40sNOPNOPCLRCLRSCLSCLSETBSETB SDASDARETRET(4) (4) 發送非應答位信號子程序發送非應答位信號子程序MNACKMNACKMN
31、ACKMNACK:SETBSETBSDASDASETBSETBSCLSCLNOPNOP;保持數據時間,即;保持數據時間,即SCLSCL為高,時間大于為高,時間大于4.0 s4.0 sNOPNOPCLRCLRSCLSCLCLRCLRSDASDARETRET在使用上述子程序時,如果單片機的主時鐘不是在使用上述子程序時,如果單片機的主時鐘不是6 MHz6 MHz,則應調整,則應調整NOPNOP指令個數,以滿足時序要求。指令個數,以滿足時序要求。2 2) I I2 2C C總線數據傳送的模擬子程序總線數據傳送的模擬子程序 從從I I2 2C C總線的數據操作中可以看出,除了基本的啟動(總線的數據操作中
32、可以看出,除了基本的啟動(STASTA)、終)、終止(止(STOPSTOP)、發送應答位()、發送應答位(MACKMACK)、發送非應答位()、發送非應答位(MNACKMNACK)外,)外,還應有應答位檢查(還應有應答位檢查(CACKCACK)、發送一字節()、發送一字節(WRBYTWRBYT)、接收一字)、接收一字節(節(RBYTRBYT)、發送)、發送N N字節(字節(WRNBYTWRNBYT)和接收)和接收N N字節(字節(RDNBYTRDNBYT)這)這5 5個子程序。個子程序。(1 1) 應答位檢查子程序應答位檢查子程序CACKCACK在應答位檢查子程序(在應答位檢查子程序(CACK
33、)中,設置了標志位。)中,設置了標志位。CACK中用中用F0作標志位,當檢查到正常應答位后,作標志位,當檢查到正常應答位后,F0=0;否則;否則F0=1。CACK:SETB SDA;置SDA為輸入方式 SETB SCL;使SDA上數據有效 CLR F0;預設F0=0 MOVC,SDA;輸入SDA引腳狀態 JNC CEND;檢查SDA狀態,正常應答轉CEND,且F0=0 SETB F0;無正常應答,F0=1CEND:CLR SCL;子程序結束,使SCL=0 RET(2) (2) 發送一字節數據子程序發送一字節數據子程序WRBYTWRBYT 該子程序是向虛擬該子程序是向虛擬I2C總線的數據線總線的
34、數據線SDA上發送上發送一字節數據的操作。調用該子程序前,將要發送一字節數據的操作。調用該子程序前,將要發送的數據送入的數據送入A中。占用資源:中。占用資源: R0,C。WRBYT:MOV R0,#08H;8 位數據長度送位數據長度送R0中中WLP: RLC A ;發送位左移入;發送位左移入CJC WR1;判斷發送;判斷發送1還是還是0,發送,發送1轉轉WR1AJMP WR0;發送;發送0轉轉WR0WLP1:DJNZ R0,WLP;8位發送未完轉位發送未完轉WLP RET;8位發送完結束位發送完結束WR1:SETB SDA;發送;發送1程序段程序段SETB SCLNOPNOPCLR SCLCL
35、R SDAAJMP WLP1WR0:CLR SDA;發送;發送0程序段程序段SETB SCLNOPNOPCLR SCLAJMP WLP1第8章 單片機小系統及片外擴展8.1 串行擴展總線接口技術串行擴展總線接口技術8.1.1 SPI串行外設接口總線串行外設接口總線8.1.2 I2C總線總線8.1.3 單總線單總線8.1.3 8.1.3 單總線單總線 單總線(單總線(1Wire)是)是Dallas公司推出公司推出的外圍串行擴展總線。單總線只有一根的外圍串行擴展總線。單總線只有一根數據輸入數據輸入/輸出線,可由單片機或輸出線,可由單片機或PC機機的的1根根I/O口線作為數據輸入口線作為數據輸入/輸
36、出線,所輸出線,所有的器件都掛在這根線上。有的器件都掛在這根線上。圖圖8 818 18 單總線構成的分布式溫度監測系統單總線構成的分布式溫度監測系統圖圖8 819 DS18S2019 DS18S20的引腳排列的引腳排列(1 1) DS18S20 ROMDS18S20 ROM命令命令 主機操作主機操作ROM的命令有的命令有5種,如表種,如表83所列。所列。 64位激光位激光ROM的結構如下:的結構如下: 開始開始8位是產品類型編號(位是產品類型編號(DS18S20為為10H);接著是每);接著是每個器件的惟一序號,共有個器件的惟一序號,共有48位;最后位;最后8位是前位是前56位的位的CRC校驗
37、碼,這也是多個校驗碼,這也是多個DS18S20可以采用一線的原因??梢圆捎靡痪€的原因。(2 2) DS18S20DS18S20存儲控制命令存儲控制命令 DS18S20DS18S20存儲控制命令共有存儲控制命令共有6 6種,如表種,如表8 84 4所列。所列。 DS18S20DS18S20的存儲器由便箋式的存儲器由便箋式RAMRAM和非易失性電擦寫和非易失性電擦寫EERAMEERAM組組成,后者用于存儲成,后者用于存儲THTH和和TLTL值。值。 數據先寫入數據先寫入RAMRAM,經校驗后再傳給,經校驗后再傳給EERAMEERAM。 便箋式便箋式RAMRAM占占9 9字節,包括溫度信息(第字節,
38、包括溫度信息(第1 1、2 2字節)、字節)、THTH、TLTL值(第值(第3 3、4 4字節)、計數寄存器(第字節)、計數寄存器(第7 7、8 8字節)、字節)、CRCCRC(第(第9 9字節)等,第字節)等,第5 5、6 6字節不用。字節不用。(3 3) DS18S20DS18S20的執行序列的執行序列 初始化(發一個不少于初始化(發一個不少于480 s480 s的低脈沖);的低脈沖); 執行執行ROMROM命令,主要用于定位;命令,主要用于定位; 執行執行DS18S20DS18S20的存儲控制命令,用于轉換和讀數據;的存儲控制命令,用于轉換和讀數據; DS18S20 DS18S20的的I
39、/OI/O信號有復位脈沖、回應脈沖、寫信號有復位脈沖、回應脈沖、寫0 0、讀、讀0 0、寫、寫1 1和讀和讀1 1等幾種。除回應脈沖由等幾種。除回應脈沖由DS18S20DS18S20發出外,其余都由主機發出外,其余都由主機發出。發出。 程序框圖如圖程序框圖如圖8-22所示。所示。圖圖822 程序框圖程序框圖第8章 單片機小系統及片外擴展8.1 串行擴展總線接口技術串行擴展總線接口技術8.2 并行擴展三總線的產生并行擴展三總線的產生8.3 擴展數據存儲器擴展數據存儲器8.4 思考題與習題思考題與習題單片機系統擴展概述單片機系統擴展概述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傳統總線芯片的引腳及使用一、BUS:AB、DB、CB二、擴展功能A08A17A26A35A44A53A62A71A823A922A1019E/P18OE20VPP21D09D110D211D313D414D515D616D7172716A010A19A28A37A46A55A64A73A825A924A1021A1123A122NC1WE27CE20OE22NC26DQ011DQ112DQ213DQ315DQ416DQ517DQ618DQ7192864A傳統總線芯片的引腳及使用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傳統總線芯片的引腳及
43、使用傳統總線芯片的引腳及使用傳統總線芯片的引腳及使用一、一、ABAB(Address Bus Address Bus 地址線)地址線)決定選擇芯片內部的哪一個寄存器決定選擇芯片內部的哪一個寄存器ABAB的數目與寄存器密切相關的數目與寄存器密切相關例:例:28642864、27162716、82558255、82538253 8155 8155一般一般 寄存器的個數小于等于寄存器的個數小于等于 2 2n n傳統總線芯片的引腳及使用傳統總線芯片的引腳及使用二、二、DBDB(Data Bus Data Bus 數據線)數據線)決定該寄存器與總線交換的數據決定該寄存器與總線交換的數據一般為一般為8 8
44、位,也有位,也有4 4位、位、1616位位一般要求芯片與總線的數據位數相同。一般要求芯片與總線的數據位數相同。如數據位數不同、則要改變如數據位數不同、則要改變接線方法接線方法傳統總線芯片的引腳及使用傳統總線芯片的引腳及使用三、三、CBCB(Control Bus Control Bus 控制線)控制線)決定對芯片寄存器的操作:決定對芯片寄存器的操作: 讀讀/ /寫寫/ /不工作不工作 /CS /CE /CS /CE 芯片選通芯片選通/OS /OS 輸出選通輸出選通 /RD/RD讀選通讀選通/WR /WE /WR /WE 寫選通寫選通EA/VP31X119X218RESET9RD17WR16IN
45、T012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10805151單片機的總線產生單片機的總線產生P0:P2:ALE:RD:WR:PSEN:EA:數據地址數據地址a0-a7線線 地址地址a8-a15總線總線地址鎖存允許地址鎖存允許P3.7 讀信號讀信號P3.6 寫信號寫信號程序存儲器選擇程序存儲器選擇片內程序存儲器片內程序存儲器允許允許5151單
46、片機的單片機的總線總線產生產生一、訪問片外數據存儲器及擴展口一、訪問片外數據存儲器及擴展口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口變為高阻口變為高阻4 4)RDRD下跳變低下跳變低5 5)約)約4-64-6個時鐘周期后,個時鐘周期后, RDRD上跳,上跳,P0P0口線的狀態傳口線的狀態傳送到送到A A。515
47、1單片機的總線產生單片機的總線產生一、訪問片外數據存儲器及擴展口一、訪問片外數據存儲器及擴展口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中的數據傳到中的數據傳到P0P0口口4 4)WRWR下跳變低下跳變低5 5)約)約4-64-6個時鐘周期后,個時鐘周期后, WRWR上跳。上跳。5151單片機的總線產生單片機的總線產生二、訪問片外程序
48、存儲器(二、訪問片外程序存儲器(訪問條件訪問條件)(少)(少)RDRD、WRWR高電平高電平ALEALE高,高,PSENPSEN高,高,P0P0:A7-A0A7-A0,P2P2:A15-A8A15-A82 2)ALE ALE 下跳下跳 變低變低3 3)P0P0口變為高阻口變為高阻4 4)PSENPSEN下跳變低下跳變低5 5)幾個時鐘周期后,)幾個時鐘周期后, PSDENPSDEN上跳,上跳,P0P0口線的狀態口線的狀態傳送到指令寄存器。傳送到指令寄存器。8.2 8.2 并行擴展三總線的產生并行擴展三總線的產生通常情況下,微機的通常情況下,微機的CPUCPU外部都有單獨的并行地址總線、數據總線
49、和外部都有單獨的并行地址總線、數據總線和控制總線,而控制總線,而89C5189C51單片機由于受引腳的限制,數據線和地址線是復單片機由于受引腳的限制,數據線和地址線是復用的,而且由口線兼用。用的,而且由口線兼用。為了將它們分離出來,以便同單片機片外的芯片正確地連接,需要在為了將它們分離出來,以便同單片機片外的芯片正確地連接,需要在單片機外部增加地址鎖存器,從而構成與一般單片機外部增加地址鎖存器,從而構成與一般CPUCPU相類似的片外三總相類似的片外三總線,如圖線,如圖8 82525所示。所示。采用采用74HC37374HC373作鎖存器的地址總線擴展電路如圖作鎖存器的地址總線擴展電路如圖8 8
50、2626所示。所示。 由由89C51 P089C51 P0口送出的低口送出的低8 8位有效地址信號是在位有效地址信號是在ALE(ALE(地址鎖地址鎖存允許存允許) )信號變高的同時出現的,并在信號變高的同時出現的,并在ALEALE由高變低時,將由高變低時,將出現在出現在P0P0口的地址信號鎖存到外部地址鎖存器口的地址信號鎖存到外部地址鎖存器74HC37374HC373中,中,直到下一次直到下一次ALEALE變高時,地址才發生變化。變高時,地址才發生變化。圖圖825 89C51擴展的擴展的并行三總線并行三總線圖圖826 89C51地址總線地址總線擴展電路擴展電路3. 3. 控制總線控制總線 控制
51、總線控制總線(Control Bus(Control Bus,CB)CB)是單片機發出的以是單片機發出的以控制片外控制片外ROMROM、RAMRAM和口讀寫操作的一組和口讀寫操作的一組控制線。控制線。8.2.2 8.2.2 系統擴展的實現系統擴展的實現1. 1. 以以P0P0口作地址數據總線口作地址數據總線 此處的地址總線是指系統的低此處的地址總線是指系統的低8 8位地址線。位地址線。 因為因為P0P0口線既用作地址線,又用作數據線口線既用作地址線,又用作數據線( (分時使用分時使用) ),因,因此,需要加一個此,需要加一個8 8位鎖存器。位鎖存器。 在實際應用時,先把低在實際應用時,先把低8
52、 8位地址送鎖存器暫存,然后再由位地址送鎖存器暫存,然后再由地址鎖存器給系統提供低地址鎖存器給系統提供低8 8位地址,而把位地址,而把P0P0口線作為數據口線作為數據線使用。線使用。 實際上,單片機實際上,單片機P0P0口的電路設計已考慮了這種應用需要,口的電路設計已考慮了這種應用需要,P0P0口線電路中的多路轉接電路口線電路中的多路轉接電路MUXMUX以及地址數據控制即以及地址數據控制即是為此目的而設計的。是為此目的而設計的。2. 2. 以以P2P2口的口線作高位地址線口的口線作高位地址線 如果使用如果使用P2P2口的全部口的全部8 8位口線,再加上位口線,再加上P0P0口提供的低口提供的低
53、8 8位地位地址,便可形成完整的址,便可形成完整的1616位地址總線,使單片機系統的尋址位地址總線,使單片機系統的尋址范圍達到范圍達到64 KB64 KB。 但實際應用系統中,高位地址線并不固定為但實際應用系統中,高位地址線并不固定為8 8位,需要用位,需要用幾位就從幾位就從P2P2口中引出幾條口線。口中引出幾條口線。 除了地址線和數據線之外,在擴展系統中還需除了地址線和數據線之外,在擴展系統中還需要一些控制信號線,以構成擴展系統的控制總線。要一些控制信號線,以構成擴展系統的控制總線。這些信號有的是單片機引腳的第一功能信號,有的這些信號有的是單片機引腳的第一功能信號,有的則是第二功能信號。其中
54、包括:則是第二功能信號。其中包括: 使用使用ALEALE作為地址鎖存的選通信號,以實現低作為地址鎖存的選通信號,以實現低8 8位地位地址的鎖存;址的鎖存; 以信號作為擴展程序存儲器的讀選通信號;以信號作為擴展程序存儲器的讀選通信號; 以信號作為內、外程序存儲器的選擇信號;以信號作為內、外程序存儲器的選擇信號; 以和作為擴展數據存儲器和端口的以和作為擴展數據存儲器和端口的讀讀/ /寫選通信號。執行寫選通信號。執行MOVXMOVX指令時,這兩個信號分指令時,這兩個信號分別自動有效別自動有效。 可以看出,盡管可以看出,盡管89C5189C51單片機號稱有單片機號稱有4 4個個口,共口,共3232條口
55、線,但由于系統擴展的需要,條口線,但由于系統擴展的需要,真正能作為數據使用的,就只剩下真正能作為數據使用的,就只剩下P1P1口和口和P3P3口的部分口線了??诘牟糠挚诰€了。 特別需要強調的是,程序存儲器不應再采用特別需要強調的是,程序存儲器不應再采用外擴的方案。因為外擴的方案。因為8989系列單片機內有系列單片機內有4 432 32 KBKB的不同型號產品可供選擇。如果課題需要的不同型號產品可供選擇。如果課題需要功能更強的功能更強的MCUMCU,則可選擇,則可選擇ADC8ADC8、C8051FC8051F和和MAX7651MAX7651等等SOCSOC芯片。關于程芯片。關于程序存儲器的擴展,本
56、教程不作介紹。序存儲器的擴展,本教程不作介紹。傳統總線的連接方法傳統總線的連接方法第8章 單片機小系統及片外擴展8.1 串行擴展總線接口技術串行擴展總線接口技術8.2 并行擴展三總線的產生并行擴展三總線的產生8.3 擴展數據存儲器擴展數據存儲器8.4 思考題與習題思考題與習題1. 1. 靜態靜態RAM(SRAM)RAM(SRAM)芯片芯片 目前常用的靜態目前常用的靜態RAMRAM電路有電路有61166116、62646264、6225662256、628128628128等。它們等。它們的引腳排列如圖的引腳排列如圖8 82727所示。所示。注:注: 62646264的的2626腳為高電平有效的
57、片選端。腳為高電平有效的片選端。圖圖827 常用靜態常用靜態RAM芯片引腳圖芯片引腳圖其引腳功能如下:其引腳功能如下: A0A0Ai Ai 地址輸入線,地址輸入線,i=10(6116),12(6264),14(62256)i=10(6116),12(6264),14(62256)。 D0D0D7 D7 雙向三態數據線;雙向三態數據線; 片選信號輸入線,低電平有效,當片選信號輸入線,低電平有效,當62646264的的2626腳腳(CS)(CS)為高為高電平,且為低電平時。才選中該片;電平,且為低電平時。才選中該片; 讀選通信號輸入線,低電平有效;讀選通信號輸入線,低電平有效; 寫允許信號輸入線,
58、低電平有效;寫允許信號輸入線,低電平有效; 工作電源,電壓為工作電源,電壓為 ; GND GND 線路地。線路地。這這3 3種種RAMRAM電路的主要技術特性見表電路的主要技術特性見表8 85 5。 靜態靜態RAMRAM存儲器有讀出、寫入和維持存儲器有讀出、寫入和維持3 3種工作方式,這些工作方式種工作方式,這些工作方式的操作控制如表的操作控制如表8 86 6所列。所列。8.3.2 8.3.2 訪問片外訪問片外RAMRAM的操作時序的操作時序 這里包括從這里包括從RAMRAM中讀和寫兩種操作時序,但基本過程是相中讀和寫兩種操作時序,但基本過程是相同的。同的。 這時所用的控制信號有這時所用的控制
59、信號有ALEALE和和( (讀讀) )或或( (寫寫) )。 P0P0口和口和P2P2口仍然要用,在取指階段用來傳送口仍然要用,在取指階段用來傳送ROMROM地址和指地址和指令,而在執行階段傳送片外令,而在執行階段傳送片外RAMRAM地址和讀寫的數據。地址和讀寫的數據。8.3.3 89C518.3.3 89C51擴展擴展2 KB RAM2 KB RAM 圖圖8 82929所示電路為所示電路為89C5189C51地址線直接外擴地址線直接外擴2 KB2 KB靜態靜態RAM RAM 61166116的連線圖。的連線圖。 8282(8282(同同74HC373)74HC373)鎖存低鎖存低8 8位地址
60、;位地址; 89C5189C51的(的(. .)和()和(. .)分別與)分別與61166116寫允許端和讀允許端連接,以實現寫讀控制;寫允許端和讀允許端連接,以實現寫讀控制; 因為系統必須使用片內因為系統必須使用片內ROMROM從從0000H0000H開始的空間,所以,開始的空間,所以,接高電平;接高電平; 61166116的片選控制端接地為常選通,地址為的片選控制端接地為常選通,地址為0000H0000H07FFH07FFH。 對于有片內對于有片內Flash ROMFlash ROM的的89C5189C51擴展一片擴展一片RAMRAM,便可組成一,便可組成一個簡單的系統。個簡單的系統。圖圖
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 健身中心設備管理制度
- 醫院藥品盤點管理制度
- 寺院供奉牌位管理制度
- 全自動洗衣機管理制度
- 學校宿舍飯店管理制度
- CJ/T 284-2008Φ5.5 m~Φ7 m土壓平衡盾構機(軟土)
- 2025年小學語文四年級下冊教學設計之26 寶葫蘆的秘密(節選)
- 北京師范大學《色彩場景》2023-2024學年第二學期期末試卷
- 2025年儲能技術多元化在儲能系統安全性能提升中的應用報告
- 北京理工大學《建設工程監理》2023-2024學年第二學期期末試卷
- 咨詢公司項目管理制度
- 自動化控制技術試題及答案
- 網吧轉讓合同協議書范本
- 2025-2030中國船用滑動軸承座行業市場現狀供需分析及投資評估規劃分析研究報告
- 2025屆河南省青桐鳴5月全真模擬卷·高考考前適應性考試-生物試題(含答案)
- 辦公軟件MS Office應用試題及答案
- 人員結構分析總結模版
- 2025年“鑄牢中華民族共同體意識”知識競賽題庫及答案
- 【機床輸出軸零件的加工工藝及夾具設計9500字(論文)】
- 電廠安規試題及答案
- 合肥市2025屆高三年級5月教學質量檢測(合肥三模)生物試題+答案
評論
0/150
提交評論