版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第9章 MCS-51單片機(jī)的串行擴(kuò)展技術(shù),9.1 C總線接口技術(shù) 9.2 SPI串行外設(shè)接口 9.3 MCS-51單片機(jī)串行口工作方式0串行擴(kuò)展接口,現(xiàn)代單片機(jī)應(yīng)用系統(tǒng)還廣泛采用串行擴(kuò)展技術(shù)。串 行擴(kuò)展接線靈活,占用單片機(jī)資源少,系統(tǒng)結(jié)構(gòu)簡 單,極易形成用戶的模塊化結(jié)構(gòu)。還具有工作電壓 寬、抗干擾能力強(qiáng)、功耗低、數(shù)據(jù)不易丟失等特點(diǎn)。 為了方便實(shí)現(xiàn)串行擴(kuò)展,近年來已推出了一些非總 線型單片機(jī)芯片(傳統(tǒng)型號單片機(jī)的變種產(chǎn)品),能方便地使用SPI(Serial Peripheral Interface 串行外設(shè)接口)和 (Inter IC BUS或IC TO IC BUS)等串行總線標(biāo)準(zhǔn)進(jìn)行系統(tǒng)擴(kuò)展
2、,也可以用傳統(tǒng)型號單片機(jī)的并行I/O口模擬 總線或SPI等總線的串行通信,同時與串行總線標(biāo)準(zhǔn)相配套的串行外圍接口芯片也逐步推出,為用戶使用串行總線擴(kuò)展單片機(jī)應(yīng)用系統(tǒng)的外圍接口提供了極大的方便。,9.1 總線接口技術(shù),本節(jié)主要介紹 總線的工作原理、總線接口、總線器件的尋址方式、總線上的數(shù)據(jù)傳送及 總線的軟件模擬。 9.1.1 總線接口 總線(全稱為芯片間總線)是英文Inter Integrate Circuit BUS或IC TO IC BUS的簡稱,它是Philips公司推出的一種雙向二線制總線。 以2根連線實(shí)現(xiàn)全雙工同步數(shù)據(jù)傳送,可以很方便的構(gòu)成外圍器件擴(kuò)展系統(tǒng)。它可以直接連接具有 總線接口
3、的單片機(jī),如8XC522和8XC652等,也可掛接各種類型的外圍器件,如存儲器、A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器、鍵盤、顯示器等。,1. 總線的工作原理 總線由一條數(shù)據(jù)線SDA和一條串行時鐘線SCL構(gòu)成, 總線是同步傳輸總線,數(shù)據(jù)線上信號完全與時鐘同步。 總線的器件分為主器件和從器件,主器件的功能是啟動在總線上傳送數(shù)據(jù),并產(chǎn)生時鐘脈沖,以允許與被尋址的器件進(jìn)行數(shù)據(jù)傳送;被尋址的器件稱為從器件,一般來說,任何器件都能作為從器件,只有微控制器才能成為主器件。,總線的數(shù)據(jù)傳送采用主從方式,即主器件(主控器)尋址從器件(被控器),啟動總線,產(chǎn)生時鐘,傳送數(shù)據(jù)及結(jié)束數(shù)據(jù)傳送。 總線允許連接多個微控制器,但數(shù)據(jù)
4、傳輸過程中不能同時存在兩個主器件,作為主控器的器件需通過總線競爭獲得主控權(quán),競爭成功的器件成為主器件,并啟動一次數(shù)據(jù)交換,其他則退出。競爭過程中,數(shù)據(jù)不會被破壞、丟失。數(shù)據(jù)只能在主、從器件間傳送,傳送結(jié)束后,主從器件將釋放總線,退出主、從器件角色,總線上存在主、從器件時,總線處于忙的狀態(tài),反之,總線處于空閑狀態(tài)。,SDA/SCL總線上掛接的單片機(jī)(主控器)或外圍器件(被控器),其接 口電路都應(yīng)具有 總線接口,所有器件都通過總線尋址,所有SDA/SCL同 名端相連,如圖9.1所示。 作為被控器的外圍器件,必須選用帶有 總線接口,作為主控器的 單片機(jī),在使用不具有 總線接口的單片機(jī)時,可通過軟件模
5、擬 總 線的接口功能。,2.總線接口 如圖9.2所示, 總線接口內(nèi)部為雙向傳輸電路??偩€端口輸出端為漏極(或集電極開路)開路,具有線與功能,所以總線上必須有上拉電阻Rp。上拉電阻與電源電壓、總線串接電阻有關(guān),可參考有關(guān)數(shù)據(jù)手冊,一般取值510??偩€空閑時,這兩根線處于高電平狀態(tài)??偩€上的外圍器件都是CMOS器件,總線上的器件數(shù)量(總線折負(fù)載能力)受總線電容400Pf的限制。 總線的傳輸速率為100Kb/s400Kb/s。,3.總線器件的尋址方式 與并行接口擴(kuò)展系統(tǒng)的地址形成方式不同, 總線系統(tǒng) 中,地址是由器件類型及其地址引腳電平?jīng)Q定的,對器件的尋址 采用軟件方法。 總線上的器件地址由7位組成
6、,它與一位方向位共同構(gòu) 成了 總線器件的尋址字節(jié)。其格式如表9.1所示。,4. 總線上的數(shù)據(jù)傳送 數(shù)據(jù)傳送 總線上每傳送一位數(shù)據(jù)都有一個時鐘脈沖相對應(yīng)。在時鐘線高電平期間,數(shù)據(jù)線上必須保持穩(wěn)定的邏輯電平狀態(tài),高電平為數(shù)據(jù)1,低電平為數(shù)據(jù)0。要改變數(shù)據(jù)線上的電平,必須在時鐘線為0時方可進(jìn)行。 總線上數(shù)據(jù)傳送以一個字節(jié)為一幀,啟動 總線后,傳送的幀數(shù)不限,只需每傳送一幀后,接收方回答一個應(yīng)答位。 總線傳送完一幀數(shù)據(jù)后,可以通過對時鐘線的控制,使傳送暫停。比如,傳輸過程中某一方需要暫停時,可在應(yīng)答信號后將時鐘線SCL置為低電平,即可控制總線暫停。 在發(fā)送時,首先發(fā)送數(shù)據(jù)的最高位。每次傳送開始有起始信
7、號,結(jié)束有停止信號。, 總線信號協(xié)議 總線與數(shù)據(jù)傳輸有關(guān)的信號有起始信號(S)、終止信號(P)、應(yīng)答信號(A)、非應(yīng)答信號( )及總線數(shù)據(jù)位。 起始信號(S) 在時鐘線SCL為高電平時,數(shù)據(jù)線SDA出現(xiàn)由高到低的下降沿時,被認(rèn)為是起始信號。只有出現(xiàn)起始信號后,其它命令才有效。 終止信號(P)在時鐘線SCL為高電平時,數(shù)據(jù)線SDA出現(xiàn)由低到高的上升沿時,被認(rèn)為是終止信號。終止信號出現(xiàn)后,所有外部操作都結(jié)束。,注意:起始信號和終止信號都是由主器件產(chǎn)生的,總線上帶有 總線接口的器件很容易檢測到這些信號。但對于不具備 總線接口的一些單片機(jī)來說,為了準(zhǔn)確無誤地檢測這些信號,必須保證在總線的一個時鐘周期內(nèi)
8、對數(shù)據(jù)線至少進(jìn)行兩次采樣。 應(yīng)答信號(A) 總線傳送數(shù)據(jù)時,每傳送一幀數(shù)據(jù)后都必須有應(yīng)答信號,與應(yīng)答信號對應(yīng)的時鐘由主器件產(chǎn)生。發(fā)送位必須在這一時鐘位上釋放數(shù)據(jù)總線,使其處于高電平狀態(tài),以便接收方在這一位上送出應(yīng)答信號。應(yīng)答信號在第9個時鐘位上出現(xiàn),接收方輸出低電平為應(yīng)答信號。 非應(yīng)答信號( ) 每傳送完一幀數(shù)據(jù)后,在第9個時鐘位上接收方輸出高電平為非應(yīng)答信號 。,注意:由于某種原因,接收方不能產(chǎn)生應(yīng)答時,必須釋放總線,將數(shù)據(jù)線置高電平,然后主控器可通過產(chǎn)生一個停止信號來終止總線數(shù)據(jù)傳輸;當(dāng)主控器接收來自從器件的數(shù)據(jù)時,接收到的最后一個數(shù)據(jù)幀后,必須給從器件發(fā)送一個非應(yīng)答信號( ),使從器件釋
9、放數(shù)據(jù)總線,以便主器件發(fā)送停止信號,從而終止數(shù)據(jù)傳送。 總線數(shù)據(jù)位 總線數(shù)據(jù)傳輸啟動后或應(yīng)答信號后的第18個時鐘脈沖對應(yīng)于一幀的8位數(shù)據(jù)傳送。 總線上每傳輸一位數(shù)據(jù)都有一個時鐘脈沖相對應(yīng)。在時鐘脈沖高電平期間,數(shù)據(jù)線的狀態(tài)表示要傳送的數(shù)據(jù)。要改變數(shù)據(jù)線上的數(shù)據(jù)必須在時鐘線為低電平期間完成,每位數(shù)據(jù)占一個時鐘脈沖。 在數(shù)據(jù)傳輸期間,只要時鐘線為高電平,數(shù)據(jù)線都必須穩(wěn)定,否則數(shù)據(jù)線上的任何變化都會被當(dāng)作起始或終止信號。, 數(shù)據(jù)傳送的格式 總線傳輸數(shù)據(jù)時必須遵循規(guī)定的傳送格式如圖9.3所示。,起始信號啟動一次數(shù)據(jù)傳送的開始,其后是尋址字節(jié)(高7位地址和最低位的方向位),尋址字節(jié)后面是按指定讀、寫操作
10、的數(shù)據(jù)字節(jié)與應(yīng)答位。主器件在數(shù)據(jù)傳送結(jié)束后必須發(fā)送停止信號。起始與停止信號之間可傳輸多少幀數(shù)據(jù)在理論上沒有限制,由單片機(jī)決定。,SLAW為尋址字節(jié)(寫),DATA1DATAn為寫入從器件的n個數(shù)據(jù)字節(jié)。,數(shù)據(jù)傳輸?shù)娜N方式: 主器件的寫操作: 主器件向被尋址從器件發(fā)送n個數(shù)據(jù)字節(jié)傳送過程方向不變。格式如下:,SLAR為尋址字節(jié)(讀),DATA1DATAn為從器件被讀出的n個數(shù)據(jù)字節(jié)。主器件發(fā)送停止信號之前應(yīng)發(fā)送非應(yīng)答信號 ,向從器件表明讀操作要結(jié)束。,主器件的讀操作: 主器件讀出來自從器件的n個字節(jié),整個傳送過程中除尋址字節(jié)外,都是從器件發(fā)送,主器件接收的過程。格式如下:,Sr為重復(fù)起始信號,
11、由尋址字節(jié)的方向位來決定數(shù)據(jù)字節(jié)的傳送方向;SLAW/R和SLAR/W分別表示寫/讀尋址字節(jié)或讀/寫尋址字節(jié)。,主器件的讀、寫操作 在一次數(shù)據(jù)傳輸過程中需要改變傳送方向的操作,此時起始位和尋址字節(jié)都會重復(fù)一次,但兩次讀、寫方向正好相反。格式如下:,9.1.2 C總線的軟件模擬 不具備相應(yīng)接口的單片機(jī)可采用模擬傳送技術(shù),用單片機(jī)的 通用I/O口來模擬 串行總線接口。應(yīng)用MCS-51單片機(jī)的并行 I/O口模擬 串行總線接口時,只要拿出兩個I/O端口引腳, 在軟件中分別定義為 總線的SCL和SDA,硬件上直接相連, 再加上拉電阻即可,如圖9.4所示。,1. 總線信號的模擬程序 發(fā)送起始信號 在模擬時
12、鐘線SCL為高電平時,模擬數(shù)據(jù)線SDA出現(xiàn)由高到 低的下降沿。 ;定義端口 SCL EQU P1.0 SDA EQU P1.1 ;啟動子程序 START:SETB SCL SETB SDA NOP NOP CLR SDA NOP NOP CLR SCL RET,注意:為了保證 總線數(shù)據(jù)的可靠傳送,總線上的信號時 序作了嚴(yán)格的規(guī)定,也為我們在模擬SCL和SDA信號電平寬度時 提供了依據(jù)。比如,規(guī)定在標(biāo)準(zhǔn)模式下,一個終止信號和起始 信號之間總線必須空閑的最小時間是4.7s,起始信號保持時間 的最小值是4s。該段程序中,NOP指令用于保持邏輯電平,保 持時間與NOP指令的個數(shù)和單片機(jī)系統(tǒng)晶振頻率有關(guān)
13、。若單片機(jī) 系統(tǒng)的晶振頻率為2MHz,則一個機(jī)器周期為2s ,程序中可用 23個NOP指令來進(jìn)行電平的保持延時。要了解時序的規(guī)定細(xì) 節(jié),可參考相關(guān)資料。 該程序段所對應(yīng)的信號波形如下圖9.5:, 發(fā)送停止信號 在模擬時鐘線SCL為高電平時,模擬數(shù)據(jù)線SDA出現(xiàn)由低到 高的上升沿。 ;定義端口 SCL EQU P1.0 SDA EQU P1.1 ;停止子程序 STOP:CLR SDA SETB SCL NOP NOP SETB SDA NOP NOP CLR SCL CLR SDA RET,該程序段所對應(yīng)的信號波形如下圖9.6:, 發(fā)送應(yīng)答位 在模擬數(shù)據(jù)線SDA低電平期間,模擬時鐘線SCL輸出一
14、個正脈沖。 ;定義端口 SCL EQU P1.0 SDA EQU P1.1 ;應(yīng)答位子程序 MACK:CLR SDA SETB SCL NOP NOP CLR SCL SETB SDA RET,該程序段所對應(yīng)的信號波形如下圖9.7:, 發(fā)送非應(yīng)答位 在模擬數(shù)據(jù)線SDA高電平期間,模擬時鐘線SCL輸出一個正脈沖。 ;定義端口 SCL EQU P1.0 SDA EQU P1.1 ;非應(yīng)答位子程序 MNACK:SETB SDA SETB SCL NOP NOP CLR SCL CLR SDA RET,該程序段所對應(yīng)的信號波形如下圖9.8:,2. 總線的模擬通用子程序 應(yīng)答位檢查 釋放模擬數(shù)據(jù)線SDA
15、,模擬時鐘線置高電平,接收到有應(yīng)答 信號時將標(biāo)志位F0置1。 ;定義端口 SCL EQU P1.0 SDA EQU P1.1 ACK BIT F0,;應(yīng)答位檢查子程序 CACK:SETB SDA SETB SCL CLR ACK NOP MOV C,SDA JC CEND SETB ACK CEND: CLR SCL RET, 發(fā)送1字節(jié)數(shù)據(jù) 將需要發(fā)送的字節(jié)先送累加器A,從模擬數(shù)據(jù)線SDA發(fā)送。 ;定義端口 SCL EQU P1.0 SDA EQU P1.1,;發(fā)送1字節(jié)數(shù)據(jù)子程序 WRBYTE: MOV R7,#08H CLR C WLP: RLC A MOV SDA,C SETB SCL
16、 NOP NOP CLR SCL DJNZ R7,WLP RET, 接收1字節(jié)數(shù)據(jù) 從模擬數(shù)據(jù)線SDA上串行讀取1個字節(jié)數(shù)據(jù),并通過累加器A存入工作寄存器R3中。 ;定義端口 SCL EQU P1.0 SDA EQU P1.1,;接收1字節(jié)數(shù)據(jù)子程序 RDBYTE: MOV R7,#08H CLR C RLP: SETB SDA SETB SCL MOV C,SDA MOV A,R3 RLC A MOV R3,A CLR SCL DJNZ R7,RLP RET, 發(fā)送N個字節(jié)數(shù)據(jù) 該程序按主器件寫操作的格式進(jìn)行。編制程序前,為方便閱讀,對所用存儲單元定義了一些符號。在寫的過程中,外圍器件的單元
17、地址具有自動加1功能,即能自動修改地址指針。 SCL EQU P1.0 ;定義端口 SDA EQU P1.1 MWD EQU 35H ;主控器待發(fā)送數(shù)據(jù)存放單元首地址 WSLA EQU 30H ;外圍器件尋址字節(jié)的存放單元 NUMBYT EQU 31H ;發(fā)送字節(jié)數(shù)存放單元,;發(fā)送N個字節(jié)數(shù)據(jù)子程序 WRNBYTE:MOV R6,NUMBYT ;發(fā)送字節(jié)數(shù)存R6 LCALL START ;調(diào)用啟動子程序 MOV A,WSLA ;送尋址字節(jié) LCALL WEBYT ;調(diào)用發(fā)送子程序 LCALL CACK ;調(diào)用檢查應(yīng)答子程序 JNB F0,WRNBYTE ;判斷是否應(yīng)答,非應(yīng)答重發(fā) MOV R0
18、,MWD ;送發(fā)送字節(jié)首地址, ; R0作地址指針,WRDA:MOV A,R0 ;送發(fā)送字節(jié)數(shù)據(jù) LCALL WRBYT ;調(diào)用發(fā)送子程序 LCALL CACK ;調(diào)用檢查應(yīng)答子程序 JNB F0,WRNBYTE INC R0 ;數(shù)據(jù)地址指針加1 DJNZ R6, WRDA ; LCALL STOP ;調(diào)用發(fā)送結(jié)束子程序 RET, 讀取N個字節(jié)數(shù)據(jù) 該程序按主器件讀操作的格式進(jìn)行。主控器在接收完N字節(jié)后,必須發(fā)出一個非應(yīng)答位,然后再發(fā)送終止信號。讀入的過程中,外圍器件的單元地址具有自動加1功能,即能自動修改地址指針。 SCL EQU P1.0 ;定義端口 SDA EQU P1.1 MRD EQ
19、U 55H ;主控器接收數(shù)據(jù)存放單元首地址 RSLA EQU 32H ;外圍器件尋址字節(jié)(讀)的存放單元 NUMBYT EQU 33H ;接收字節(jié)數(shù)存放單元,;讀取N個字節(jié)數(shù)據(jù)子程序 RDNBYT:MOV R6,NUMBYT ;讀入字節(jié)數(shù)存R6 LCALL START ;調(diào)用啟動子程序 MOV A,RSLA ;送尋址字節(jié) LCALL WRBYT ;調(diào)用發(fā)送子程序 LCALL CACK ;調(diào)用檢查應(yīng)答子程序 JNB F0,RDNBYT ;判斷是否應(yīng)答,非應(yīng)答重讀 MOV R0,MRD ;送接收存放單元字節(jié)首地址,RDN1: LCALL RDBYT ;調(diào)用接收子程序 MOV R0,A ;存入數(shù)據(jù)
20、DJNZ R6, ACK ;未讀完轉(zhuǎn)ACK LCALL MNACK ;讀完發(fā)非應(yīng)答位 LCALL STOP ;調(diào)用停止子程序 RET ACK: LCALL MACK ;調(diào)用應(yīng)答子程序 INC R0 SJMP RDN1,回上層目錄,9.2 SPI串行外設(shè)接口,SPI(Serial Peripheral Interface 串行外設(shè)接 口)是MOTOROLA公司推出的一種同步串行外設(shè)接口,允 許微控制器(MCU)與各種外圍設(shè)備以串行方式進(jìn)行數(shù)據(jù)傳輸。 SPI使用4條線:串行時鐘線SCK、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線MISO(簡稱SO)、主機(jī)輸出/從機(jī)輸入線MOSI(簡稱SI)和低電平有效的從機(jī)選擇線
21、。 9.2.1 SPI總線的組成 SPI總線可在軟件的控制下構(gòu)成各種簡單或復(fù)雜的系統(tǒng)。,其典型的應(yīng)用是單主系統(tǒng),該系統(tǒng)只有一臺主機(jī),它控制 數(shù)據(jù)向一個或多個從機(jī)傳送,從機(jī)通常是外圍接口器件。從器 件只能在主機(jī)發(fā)命令時才能接收或向主機(jī)傳送數(shù)據(jù)。其數(shù)據(jù)傳 輸格式是高位(MSB)在前,低位(LSB)在后。SPI典型結(jié) 構(gòu)如圖9.9所示。,圖中可知,單片機(jī)與外圍器件在時鐘線SCK、數(shù)據(jù)線MOSI和MISO上都是相同端相連。外圍擴(kuò)展多個器件時,SPI無法通過數(shù)據(jù)線譯碼選擇,所以SPI接口的外圍器件都有片選端 。 在組成SPI外圍擴(kuò)展時還應(yīng)特別注意串行輸入/輸出芯片的 輸入和輸出特性: 1.應(yīng)注意擴(kuò)展器件
22、串行數(shù)據(jù)輸出端是否有三態(tài)控制端。平時未被選中芯片的輸出端應(yīng)處于高阻態(tài)。若沒有三態(tài)控制端,應(yīng)外加三態(tài)門;否則MCU的MISO端只能接1只擴(kuò)展器件。 2.應(yīng)注意擴(kuò)展器件串行數(shù)據(jù)輸入端是否有允許控制端。即應(yīng)該只有在該器件被允許時,SCK脈沖才把串行數(shù)據(jù)移入該器件;器件被禁止時,SCK對該器件無影響。若沒有允許端,應(yīng)在外部用門電路對SCK進(jìn)行控制后,再加到該器件的時鐘輸入端,或者SPI只連接1只該外圍擴(kuò)展器件。,9.2.2 SPI總線的軟件模擬 1.SPI總線接口的數(shù)據(jù)傳輸 SPI串行擴(kuò)展系統(tǒng)中作為主器件的單片機(jī),在啟動一次傳送 時便產(chǎn)生8個時鐘傳送給接口芯片,作為同步時鐘控制數(shù)據(jù)的輸 入與輸出。數(shù)據(jù)
23、的傳送格式是高位(MSB)在前,低位(LSB) 在后。如圖9.10所示。數(shù)據(jù)線上的數(shù)據(jù)變化以及輸入數(shù)據(jù)時的 采樣,都取決于SCK。但對于不同的外圍芯片,有的可能是SCK 上升沿起作用,有的可能是SCK下降沿起作用。,2SPI總線的軟件模擬 對于沒有SPI接口的單片機(jī)來說,可用軟件來進(jìn)行模擬操作,包括串行時鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出。要注意的是,對于不同的串行接口外圍器件,它們的時鐘時序有可能不同。 在圖9.9中,若MCU為80C51單片機(jī),用80C51的并行I/O端口引腳P1.0模擬MOSI線,P1.1模擬SCK線,P1.2模擬 線,P1.3模擬MISO線。 對于在SCK上升沿輸入(接收)數(shù)據(jù)和在
24、下降沿輸出(發(fā)送)數(shù)據(jù)的器件,一般應(yīng)取圖中的串行時鐘輸出P1.1的初始狀態(tài)為1,在接口芯片被選通后,置P1.1為0。因此,在單片機(jī)輸出1位SCK時鐘脈沖的同時,使接口芯片內(nèi)的數(shù)據(jù)串行移位,從而輸出1位數(shù)據(jù)至80C51的P1.3;再置P1.1為1,使80C51從P1.0輸出1位數(shù)據(jù)至串行接口芯片(此前,將待傳送的1位數(shù)據(jù)先送至P1.0)。到此,模擬一位數(shù)據(jù)的輸入/輸出完成。此后再置P1.1為0,模擬下1位的輸入/輸出,依次循環(huán)8次,便可完成1次用模擬SPI總線接口的方法來傳輸1個字節(jié)的操作。,對于在SCK下降沿輸入(接收)數(shù)據(jù)和在上升沿輸出(發(fā)送)數(shù)據(jù)的器件,則應(yīng)取串行時鐘輸出P1.1的初始狀態(tài)
25、為0,在接口芯片被選通后,先置P1.1為1,此時,外圍接口芯片輸出1位數(shù)據(jù)(單片機(jī)從P1.3接收1位數(shù)據(jù)),再置P1.1為0,外圍接口芯片接收1位數(shù)據(jù)(單片機(jī)在P1.0送出1位數(shù)據(jù)),從而完成1位數(shù)據(jù)的傳送。,9.2.3 SPI總線接口應(yīng)用實(shí)例 1.12位串行A/D轉(zhuǎn)換器MAX187與單片機(jī)的接口 MAX187的引腳排列及功能 MAX187的引腳排列如圖9.11所示。,VDD +5V; AIN 模擬輸入,輸入范圍為0VVREF; 具有3級入。若 =0,芯片處于低功耗狀態(tài),此時電源電流為10A;若 =1,允許使用內(nèi)部的參考電源;若 處于懸浮狀態(tài),禁止內(nèi)部參考電源,允許使用外部參考電源; VREF
26、 參考電壓輸入端。當(dāng)允許使用內(nèi)部參考電源時,輸出4.096V的電壓;當(dāng)禁止使用內(nèi)部參電源時,可輸入2.5VVDD范圍內(nèi)的精密電壓作參考電壓。若采用內(nèi)部參考電源,則退耦電容為4.7F,若加上的是外部參考電源,則需增加0.1F的退耦電容;,GND 電源地; DOUT 串行數(shù)字輸出。在SCLK的下降沿,數(shù)據(jù)改變狀態(tài)。 SCLK 串和時鐘輸入。輸入時鐘的最高頻率為5MHz。 片選端。輸入低電平有效。在的下降沿,初始化轉(zhuǎn)換。當(dāng)為高電平時,DOUT線為高阻態(tài)。, MAX187的啟動、轉(zhuǎn)換和傳輸過程 啟動:使SCLK為低, 由高變低,啟動轉(zhuǎn)換,DOUT脫離高阻態(tài),變?yōu)榈碗娖健?轉(zhuǎn)換:要保持SCLK和為低電平
27、狀態(tài),DOUT輸出為低電平期間,進(jìn)行A/D轉(zhuǎn)換。 結(jié)束轉(zhuǎn)換:在和SCLK為低電平狀態(tài)下,轉(zhuǎn)換結(jié)束后,DOUT變?yōu)楦唠娖?。檢測到DOUT的上升沿,確定轉(zhuǎn)換是否結(jié)束。,數(shù)據(jù)傳輸:保持為低電平狀態(tài),然后輸出SCLK時鐘,SCLK有效至13個時鐘周期。在時鐘的第1個下降沿,DOUT端將出現(xiàn)轉(zhuǎn)換結(jié)果的最高位(MSB)。DOUT端在SCLK的下降沿出現(xiàn)數(shù)據(jù),在SCLK的上升沿?cái)?shù)據(jù)穩(wěn)定,單片機(jī)可以讀入數(shù)據(jù)。 傳輸結(jié)束:保持為低電平狀態(tài),在第13個時鐘脈沖下降沿時刻或以后,將使變?yōu)楦唠娖剑瑐魉徒Y(jié)束,DOUT變?yōu)楦咦钁B(tài)。若在第13個時鐘脈沖下降沿以后,仍為低電平,并在SCLK作用下不斷輸出數(shù)據(jù),則在輸出最低位(
28、LSB)后將輸出為0。, MAX187與單片機(jī)的接口 80C51單片機(jī)與MAX187的接口電路如圖9.12所示。,80C51的P1.5、P1.6和P1.7別與MAX187的 、SCLK和DOUT相連,應(yīng)用內(nèi)參考電源方式,轉(zhuǎn)換后的數(shù)據(jù)存于單片機(jī)內(nèi)部RAM的21H和20H,編制程序如下: AD187:CLR P1.6 ;SCLK=0 CLR P1.5 ; =0 SETB P1.7 ;置P1.7為輸入狀態(tài) LOOP1: MOV C,P1.7 ;等待轉(zhuǎn)換 JNC LOOP1 SETB P1.6 ;SCLK=1 MOV R7,#04H ;接收高4位 CLR A,LOOP2:CLR P1.6 ;SCLK=
29、0,DOUT狀態(tài)變化 NOP SETB P1.6 ;SCLK=1,讀入數(shù)據(jù) MOV C,P1.7 RLC A DJNZ R7,LOOP2 MOV B,A ;高4位數(shù)據(jù)暫存B MOV R7,#08H CLR A,LOOP3:CLR P1.6 NOP SETB P1.6 MOV C,P1.7 RLC A DJNZ R7,LOOP3 SETB P1.5 ; =1,傳送結(jié)束 MOV 20H,A ;存數(shù)據(jù)低8位 MOV 21H,B ;存數(shù)據(jù)高4位 RET,2.串行PROM X25045與單片機(jī)的接口 X25045是一種集電源監(jiān)控、看門狗和高速非易失性存儲器功能為一體的多功能芯片??蛇x擇看門狗定時周期,有
30、5128位的串行PRAM,采用SPI串行接口方式,一次最多可寫4個字節(jié)。有關(guān)X25045的詳細(xì)資料可參閱Xicro公司提供的產(chǎn)品資料, 本節(jié)只介紹其引腳功能和讀寫程序。, X25045的引腳排列及功能 X25045的引腳排列如圖9.13所示。,SO串行數(shù)據(jù)輸出端。數(shù)據(jù)在SCK的下降沿輸 出到SO線上。 SI串行數(shù)據(jù)輸入端。所有操作命令、字節(jié)地址及寫入的數(shù)據(jù)在此引腳上輸入,SI線上的輸入數(shù)據(jù)在SCK的上升沿被鎖存。 SCK串行時鐘輸入端,控制數(shù)據(jù)的輸入和輸出。 芯片選擇輸入端(片選)。當(dāng)為低電平時,X25045能工作。電平的變化將復(fù)位看門狗定時器。,寫保護(hù)輸入端。當(dāng)為低電平時,對芯片的寫操作被禁
31、止,其它功能仍正常。為高電平時,寫操作允許,其它所有功能正常。 RESET復(fù)位輸出端,漏極開路輸出方式,高電平有效。用于電源檢測和看門狗超時輸出。 VCC電源電壓。有兩種電壓規(guī)格的芯片,一種是4.55.5V,另一種是2.75.5V。 GND電源地。, X25045與單片機(jī)的接口 X25045與單片機(jī)的典型接口電路如圖9.14所示。,單片機(jī)與X25045接口應(yīng)用軟件,主要有設(shè)置寫使能鎖存器、復(fù)位寫使能鎖存器、寫狀態(tài)寄存器、讀狀態(tài)寄存器、字節(jié)寫、字節(jié)讀、頁讀,頁寫、復(fù)位看門狗定時器等應(yīng)用子程序。以下僅給出與圖9.8相應(yīng)的基本子程序,所涉及到的25045芯片的工作命令、寄存器、存儲器、操作過程和時序
32、等,請參閱芯片資料。 編制程序如下: SO BIT P1.0 SI BIT P1.1 SCK BIT P1.2 CS BIT P1.3,;單字節(jié)輸出子程序,將A中的數(shù)據(jù)傳送到SI OUTBYT:MOV R7,#08H LOOP: CLR SCK RLC A MOV SI,C SETB SCK DJNZ R7,LOOP1 RET,;單字節(jié)輸入子程序,將SO數(shù)據(jù)讀入A INBYT:MOV R7,#08H LOOP2:SETB SCK NOP CLR SCK NOP MOV C,SO RLC A DJNZ R7,LOOP2 RET,;讀狀態(tài)寄存器子程序,將狀態(tài)寄存器內(nèi)容讀入A RDSR:CLR CS
33、 MOV A,#05H ;讀狀態(tài)寄存器的指令送A LCALL OUTBYT ;向芯片寫入命令 LCALL INBYT ;讀出狀態(tài) SETB C RET,;置位寫使能子程序 WREN: CLR CS MOV A,#06H ;置位寫使能的指令送A LCALL OUTBYT CLR SCK SETB CS RET,;寫狀態(tài)寄存器。R2的內(nèi)容為寫入狀態(tài)寄存器的內(nèi)容,F(xiàn)0=0表示寫成功,F(xiàn)0=1表示寫失敗。 WRSR: LCALL RDSR ;讀狀態(tài)寄存器 CLR F0 JNB ACC.0,LOOP3 ;判斷能否進(jìn)行寫操作 SETB F0 RET LOOP3: LCAAL WREN ;設(shè)置寫使能 CLR
34、 CS MOV A,#01H ;寫狀態(tài)寄存器的指令送A LCALL OUTBYT MOV A,R2 ;待寫數(shù)據(jù)送A LCALL OUTBYT SETB CS RET,;復(fù)位寫使能子程序 WRDI: CLR CS MOV A,#04H ;復(fù)位寫使能的指令送A LCALL OUTBYT CLR SCK SETB CS RET ;復(fù)位看門狗子程序 RESDOG: CLR CS SETB CS RET,;寫1字節(jié)子程序,寫入命令WRITE存放在R3(A8為0或1),存儲器頁內(nèi)地址存在B(00HFFH) ;要寫入的字節(jié)數(shù)據(jù)存入R4 WRITE1: LCALL RDSR ;讀狀態(tài)寄存器 JB F0,WRI
35、TE1 ;寫入忙則等待 LCALL WREN ;置位寫使能 CLR CS MOV A,R3 ;寫入命令送A LCALL OUTBYT MOV A,B ;寫入存儲單元頁內(nèi)字節(jié)地址 LCALL OUTBYT MOV A,R4 ;寫入字節(jié)數(shù)據(jù) LCALL OUTBYT CLR SCK SETB CS RET,;讀1字節(jié)子程序,讀入命令READ存在R3(A8為0或1),存儲器頁內(nèi)地址存在B(00HFFH),讀出的字節(jié)數(shù)存在R4。 READ1:LCALL RDSR ;讀狀態(tài)寄存器 JB F0,READ1 ;寫入忙則等待 CLR CS MOV A,R3 ;讀入命令送A LCALL OUTBYT MOV A,B ;讀出存儲單元頁內(nèi)字節(jié)地址 LCALL OUTBYT LCALL INBYT MOV R4,A SETB CS RET,;寫入N字節(jié)子程序(N4),寫入命令WRITE存放在R3(A8為0或1) ;存儲器頁內(nèi)地址存在B(00HFFH)
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026河南鄭州市二七區(qū)國際城中學(xué)黃河科技學(xué)院附屬中學(xué)招聘備考考試試題附答案解析
- 鄰水縣公安局招聘警務(wù)輔助人員(30人)參考考試試題附答案解析
- 2026國家稅務(wù)總局廣西壯族自治區(qū)稅務(wù)系統(tǒng)招聘事業(yè)單位人員20人參考考試題庫附答案解析
- 2026四川達(dá)州市通川區(qū)人民醫(yī)院招聘兒??漆t(yī)師、兒??瓶祻?fù)治療師3人備考考試試題附答案解析
- 生產(chǎn)企業(yè)防疫管理制度
- 木制品安全生產(chǎn)車間制度
- 安全生產(chǎn)例會例查制度
- 園林局安全生產(chǎn)培訓(xùn)制度
- 大型沼氣生產(chǎn)安全制度
- 外包生產(chǎn)規(guī)章制度
- 2026年開封大學(xué)單招職業(yè)傾向性考試題庫及答案1套
- 2025年CFA二級考試綜合試卷(含答案)
- 2025上海開放大學(xué)(上海市電視中等專業(yè)學(xué)校)工作人員招聘3人(二)考試筆試參考題庫附答案解析
- 急性闌尾炎與右側(cè)輸尿管結(jié)石鑒別診斷方案
- 公司網(wǎng)絡(luò)團(tuán)隊(duì)介紹
- 路虎攬勝購買合同
- 2025年文化旅游活動效果評估計(jì)劃可行性研究報(bào)告
- 塑木地板銷售合同范本
- 《青島市中小學(xué)心理危機(jī)干預(yù) 指導(dǎo)手冊》
- 三北工程林草濕荒一體化保護(hù)修復(fù)(2025年度退化草原修復(fù))監(jiān)理方案投標(biāo)文件(技術(shù)方案)
- 2024江蘇省常熟市中考物理試卷【歷年真題】附答案詳解
評論
0/150
提交評論