51單片機(匯編)教學課件第8章_第1頁
51單片機(匯編)教學課件第8章_第2頁
51單片機(匯編)教學課件第8章_第3頁
51單片機(匯編)教學課件第8章_第4頁
51單片機(匯編)教學課件第8章_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第8章 單片機原理與控制技術(shù) 第1頁,共38頁。第8章 80C51串行擴展技術(shù) 本章要點: 串行擴展特點 串行擴展方式分類 虛擬串行擴展慨念 移位寄存器串行擴展方式 80C51 I/O虛擬串行接口 I2C總線串行擴展技術(shù) I2C總線擴展I/O口通用器件PCF8574 虛擬I2C總線擴展AT24CXX系列E2PROM第2頁,共38頁。8-1 串行擴展概述 一、串行擴展特點 最大程度發(fā)揮最小系統(tǒng)的資源功能。 原來由并行擴展占用的P0口、P2口資源, 直接用于I/O口。 簡化連接線路,縮小印板面積。 擴展性好,可簡化系統(tǒng)的設(shè)計。 串行擴展的缺點: 數(shù)據(jù)吞吐容量較小,信號傳輸速度較慢, 但隨著CPU芯

2、片工作頻率的提高,以及串行擴展芯片功能的增強,這些缺點將逐步淡化。 第3頁,共38頁。 二、串行擴展方式分類1、一線制一線制的典型代表為Dallas公司推出的單總線(1-wire)。第4頁,共38頁。2、二線制 二線制的典型代表為philips公司推出的I2C總線(Intel Integrated Circuit BUS)。 第5頁,共38頁。3、三線制 三線制(不包括片選線)主要有兩種: 由Motorala公司推出的SPI(Serial peripheral Interface); 由NS公司推出的Micro wire /PLUS。 第6頁,共38頁。 SPI的時鐘線是SCK,數(shù)據(jù)線MOSI

3、(主發(fā)從收)、MOSO(主收從發(fā)),主從器件的MOSI和MOSO是同名端相連。 Micro wire /PLUS的時鐘線是SK,數(shù)據(jù)線為SI和SO,但SI、SO依照主器件的數(shù)據(jù)傳送方向而定,主器件的SO與所有擴展器件數(shù)據(jù)輸入端DI或SI相連;主器件的SI與所有擴展器件數(shù)據(jù)輸出端DO或SO相連。 由于該兩類器件無法通過數(shù)據(jù)傳輸線尋址,因此,必須由MCU I/O線單獨尋址,連到擴展器件的片選端CS(若只擴展一片,可將擴展芯片CS接地)。第7頁,共38頁。 4、80C51 移位寄存器串行擴展 80C51的UART(Universal Asynohronous Receiver/Transmitter

4、)有4種工作方式,其中方式0為同步移位寄存器工作方式,通過移位寄存方式,可將串行數(shù)據(jù)并行輸出,也可以將并行數(shù)據(jù)串行輸入。第8頁,共38頁。 三、虛擬串行擴展概念 用通用I/O口來模擬串行接口,構(gòu)成虛擬的串行擴展接口。只要嚴格控制模擬同步信號,并滿足串行同步數(shù)據(jù)傳送的時序要求,就可滿足串行數(shù)據(jù)傳送的可靠性要求。第9頁,共38頁。 8-2 80C51移位寄存器 串行擴展技術(shù)一、移位寄存器串行擴展方式 80C51串行方式0時,串行口作為同步移位寄存器使用。TXD端(P3.1)發(fā)出移位脈沖,頻率為fosc/12,RXD端(P3.0)輸入輸出數(shù)據(jù)。第10頁,共38頁。 1、80C51擴展并行輸出口 74

5、LS164為串入并出移位寄存器,其中A、B為串行數(shù)據(jù)輸入端,QA、QB、QH為并行數(shù)據(jù)輸出端(QA為高位),CLK為同步時鐘輸入端,CLR為輸出清0端。若不需將輸出數(shù)據(jù)清0,則CLR端接Vcc。第11頁,共38頁。 2、80C51擴展并行輸入口 74LS165為并入串出移位寄存器,A、B、H為并行輸入端(A為高位),QH為串行數(shù)據(jù)輸出端,SER為串行數(shù)據(jù)輸入端,CLK為同步時鐘輸入端,S/L為預(yù)置控制端。S/L=0時,鎖存并行輸入數(shù)據(jù);S/L=1時,可進行串行移位操作。第12頁,共38頁。 二、串行方式0歸一化子程序 所謂歸一化子程序,即通用或標準化操作子程序,將80C51串行方式0所有應(yīng)用操

6、作歸納成幾個基本的輸入輸出子程序,并使這些標準子程序具有規(guī)范的入口條件和出口狀態(tài)。應(yīng)用時,只要設(shè)置相應(yīng)的入口和出口,調(diào)用歸一化子程序,就能達到串行輸入輸出的目的。 80C51串行方式0歸一化子程序: 單字節(jié)串行輸出子程序 單字節(jié)串行輸入子程序 多字節(jié)串行輸出子程序 多字節(jié)串行輸入子程序第13頁,共38頁。 三、80C51 I/O虛擬串行接口 利用80C51通用I/O口虛擬移位寄存器工作方式實現(xiàn)串行擴展,只需用任一通用I/O口代替RXD和TXD,設(shè)為VRXD和VTXD。 80C51虛擬串行I/O口歸一化子程序: 單字節(jié)虛擬串行輸出子程序 單字節(jié)虛擬串行輸入子程序 多字節(jié)虛擬串行輸出子程序 多字節(jié)

7、虛擬串行輸入子程序第14頁,共38頁。四、移位寄存器串行擴展應(yīng)用 80C51移位寄存器串行擴展應(yīng)用,只需根據(jù)標準化的電路形式連接,設(shè)置好入口條件,然后調(diào)用串行方式0歸一化子程序或虛擬串行接口歸一化子程序,即可完成擴展應(yīng)用. 第15頁,共38頁。 【例8-1】電路如圖8-5所示,fosc = 12MHz,要求發(fā)光二極管從左向右依次點亮,點亮時間為1秒,不斷循環(huán)。設(shè)串行方式0歸一化子程序已存在ROM中。第16頁,共38頁。 解: PIOX1 BIT P1.0 ;定義PIOX1WORK: MOV A,#10000000B ;置D7燈亮,其余暗LOOP: CLR PIOX1 ;74LS164輸出全0,

8、燈全暗 LCALL UART0 ;調(diào)用單字節(jié)串行輸出子程序 LCALL DLY1s ;調(diào)用延時1秒子程序(略) RR A ;右移 SJMP LOOP ;第17頁,共38頁。 【例8-2】 電路如圖8-6所示,fosc=12MHz,要求每隔10ms,檢測鍵K0K7狀態(tài),并存入內(nèi)RAM 2FH。設(shè)虛擬串行接口歸一化子程序已存在ROM中。第18頁,共38頁。 解: ORG 0000H ;復(fù)位地址 LJMP STAT ;轉(zhuǎn)初始化程序 ORG 000BH ;T0中斷入口地址 LJMP IT0 ;轉(zhuǎn)T0中斷服務(wù)子程序 VRXD BIT P1.0 ;P1.0虛擬RXD VTXD BIT P1.1 ;P1.1

9、虛擬TXD PIOX2 BIT P1.2 ;P1.2虛擬PIOX2 ORG 0100H ;初始化程序首地址STAT: MOV TMOD,#01H ;置T0定時器方式1 MOV TH0,#0D8H ;置T0定時初值10ms MOV TL0,#0F0H ; SETB TR0 ;啟動T0 SETB ET0 ;T0開中 SETB EA ;CPU開中 LJMP WORK ;轉(zhuǎn)主程序并等待T0中斷 ORG 1000H ;T0中斷服務(wù)子程序首地址IT0: MOV TH0,#0D8H ;重置T0定時初值10ms MOV TL0,#0F0H ; PUSH Acc ;保護現(xiàn)場 PUSH PSW ;INPUT: L

10、CALL VUARTI ;調(diào)用虛擬串行輸入子程序 MOV 2FH,A ;存鍵K0K7狀態(tài)數(shù)據(jù) POP PSW ;恢復(fù)現(xiàn)場 POP Acc ; RETI ;第19頁,共38頁。8-3 I2C總線串行擴展技術(shù)一、I2C總線串行擴展概述1、擴展連接方式 第20頁,共38頁。 具有I2C總線結(jié)構(gòu)的器件,不論SRAM、E2PROM、ADC/DAC、I/O口或MCU,均可通過SDA、SCL連接(同名端相連)。 無I2C 總線結(jié)構(gòu)的器件,如LED/LCD顯示器、鍵盤、碼盤、打印機等也可通過具有I2C總線結(jié)構(gòu)的I/O接口電路成為串行擴展器件。第21頁,共38頁。 2、器件尋址方式 具有I2C總線結(jié)構(gòu)的器件在器

11、件出廠時已經(jīng)給定了器件的地址編碼。 I2C總線器件地址SLA格式如下: DA3DA0 4位器件地址是I2C總線器件固有的地址編碼,器件出廠時就已給定,用戶不能自行設(shè)置。 A2A1A0 3位引腳地址用于相同地址器件的識別。若I2C總線上掛有相同地址的器件,或同時掛有多片相同器件時,可用硬件連接方式對3位引腳A2A1A0接Vcc或接地,形成地址數(shù)據(jù)。 R/W 數(shù)據(jù)傳送方向。R/W=1時,主機接收(讀); R/W=0時,主機發(fā)送(寫)。第22頁,共38頁。 3、接口電氣結(jié)構(gòu) I2C總線端口輸出為開漏結(jié)構(gòu),總線上必須外接上拉電阻Rp,其阻值通常可選510K。4、總線驅(qū)動能力 由于I2C總線器件均為CM

12、OS器件,總線具有足夠的電流驅(qū)動能力。 I2C總線的電容負載能力為400 pF(通過驅(qū)動擴展可達4000pF)。 I2C總線傳輸速率為100Kb/s(改進后的規(guī)范為400 Kb/s)。第23頁,共38頁。5、I2C總線時序 一次完整的數(shù)據(jù)傳送過程應(yīng)包括:起始(S)、發(fā)送尋址字節(jié)(SLA R/W)、應(yīng)答、發(fā)送數(shù)據(jù)、應(yīng)答、發(fā)送數(shù)據(jù)、應(yīng)答、終止(P)。第24頁,共38頁。 三、80C51單主系統(tǒng)虛擬I2C總線軟件包 80C51只能采用虛擬I2C總線方式,并且只能用于單主系統(tǒng),虛擬I2C總線接口可用通用I/O口中任一端線充任,數(shù)據(jù)線定義為VSDA,時鐘線定義為VSCL。 80C51單主系統(tǒng)虛擬I2C總

13、線軟件包VIIC可由二大類共9個歸一化子程序組成。二大類程序分別為典型信號模擬子程序和數(shù)據(jù)傳送通用子程序。第25頁,共38頁。 1、典型信號模擬子程序 對于虛擬I2C總線,有幾個重復(fù)應(yīng)用的典型信號,可根據(jù)I2C總線時序要求,編制這些典型信號子程序: 啟動信號STAT 終止信號STOP 發(fā)送應(yīng)答位(A)MACK 發(fā)送應(yīng)答非位(A)NACK 檢查應(yīng)答位CACK2、數(shù)據(jù)傳送通用子程序 數(shù)據(jù)傳送通用子程序是應(yīng)用典型信號模擬子程序(起始、終止、應(yīng)答和檢查應(yīng)答)并按I2C總線數(shù)據(jù)傳送時序要求編制的子程序。 發(fā)送一字節(jié)數(shù)據(jù)子程序WR1B 接收一字節(jié)數(shù)據(jù)子程序RD1B 發(fā)送N個字節(jié)數(shù)據(jù)子程序WRNB 接收N個

14、字節(jié)數(shù)據(jù)子程序RDNB 第26頁,共38頁。 發(fā)送N個字節(jié)數(shù)據(jù)子程序WRNB 按照I2C總線數(shù)據(jù)傳送時序要求,一次完整的數(shù)據(jù)發(fā)送過程應(yīng)包括起始(S)、發(fā)送尋址字節(jié)(SLA R/W)、應(yīng)答、發(fā)送數(shù)據(jù)、應(yīng)答、發(fā)送數(shù)據(jù)、應(yīng)答、終止(P),其格式如下: 其中,紅色部分由主器件發(fā)送,從器件接收;黑色部分由從器件發(fā)送,主器件接收。 入口條件: 偽指令定義NUMB、SLA、MTD單元地址; 發(fā)送數(shù)據(jù)字節(jié)數(shù)存內(nèi)RAM NUMB單元; 發(fā)送尋址字節(jié)存內(nèi)RAM SLA單元; 發(fā)送數(shù)據(jù)依次存放在首址為MTD的內(nèi)RAM中。占用資源:Acc、R1、R2、R3、Cy、F0。第27頁,共38頁。WRNB: MOV R3,N

15、UMB ;取發(fā)送數(shù)據(jù)字節(jié)數(shù)N(存在內(nèi)RAM NUMB單元)WRNB0:LCALL STAT ;啟動I2C總線 MOV A,SLA ;讀發(fā)送尋址字節(jié)(存在內(nèi)RAM SLA單元) LCALL WR1B ;發(fā)送尋址字節(jié) LCALL CACK ;檢查應(yīng)答位 JB F0,WRNB0 ;應(yīng)答不正常,返回重發(fā) MOV R1,#MTD ;應(yīng)答(A)正常,取發(fā)送數(shù)據(jù)存儲區(qū)首址WRDA: MOV A,R1 ;讀一個字節(jié)發(fā)送數(shù)據(jù) LCALL WR1B ;發(fā)送一個字節(jié) LCALL CACK ;檢查應(yīng)答位 JB F0,WRNB ;應(yīng)答不正常,返回重發(fā) INC R1 ;應(yīng)答(A)正常,指向發(fā)送數(shù)據(jù)下一字節(jié) DJNZ R3

16、,WRDA ;判N個數(shù)據(jù)發(fā)送完畢否?未完繼續(xù) LCALL STOP ;N個數(shù)據(jù)發(fā)送完畢,發(fā)送結(jié)束信號 RET ;第28頁,共38頁。 接收N個字節(jié)數(shù)據(jù)子程序RDNB 按照I2C總線數(shù)據(jù)傳送時序要求,接收N個字節(jié)數(shù)據(jù)應(yīng)按下列格式編程: 其中,紅色部分由主器件發(fā)送,從器件接收;黑色部分由從器件發(fā)送,主器件接收。入口條件: 偽指令定義NUMB、SLA、MRD地址; 接收數(shù)據(jù)字節(jié)數(shù)存內(nèi)RAM NUMB單元; 接收尋址字節(jié)存內(nèi)RAM SLA單元。出口狀態(tài):接收N個字節(jié)依次存在首址MRD的內(nèi)RAM中。占用資源:Acc、R1、R2、R3、Cy、F0。第29頁,共38頁。 RDNB: MOV R3,NUMB

17、;取接收數(shù)據(jù)字節(jié)數(shù)N(存在內(nèi)RAM NUMB單元)RDNB0: LCALL STAT ;啟動I2C總線 MOV A,SLA ;讀接收尋址字節(jié)(存在內(nèi)RAM SLA單元) LCALL WR1B ;發(fā)送接收尋址字節(jié) LCALL CACK ;檢查應(yīng)答位 JB F0,RDNB0 ;應(yīng)答不正常,返回重新開始RDA0: MOV R1,#MRD ;應(yīng)答(A)正常,取接收數(shù)據(jù)存儲區(qū)首址RDA1: LCALL RD1B ;接收一個字節(jié)數(shù)據(jù) MOV R1,A ;存一個字節(jié)數(shù)據(jù) DJNZ R3,ACK ;判N個數(shù)據(jù)接收完畢否?未完轉(zhuǎn)發(fā)送應(yīng)答位 LCALL NACK ;N個數(shù)據(jù)接收完畢,發(fā)送應(yīng)答非位(A) LCALL

18、 STOP ;發(fā)送終止信號 RET ;子程序結(jié)束返回ACK: LCALL MACK ;發(fā)送應(yīng)答位(A) INC R1 ;指向下一接收數(shù)據(jù)存儲單元地址 SJMP RDA1 ;轉(zhuǎn)接收下一字節(jié)數(shù)據(jù)第30頁,共38頁。 3、虛擬I2C總線軟件包VIIC小結(jié) VIIC軟件包共有9個歸一化子程序組成。 VIIC軟件包僅適用單主系統(tǒng)即主方式下I2C總線外圍擴展。且應(yīng)fosc6MHz,若fosc6MHz,則應(yīng)相應(yīng)調(diào)整NOP指令個數(shù),以滿足I2C總線數(shù)據(jù)傳送時序要求。 VIIC軟件包可嵌入到80C51 ROM中任一空間,作為I2C總線擴展應(yīng)用程序設(shè)計的軟件支持平臺。 在應(yīng)用VIIC軟件包初始化中,應(yīng)對軟件包中標

19、記符號用偽指令定義。 VIIC軟件包占用資源:F0、Cy、Acc、R1、R1、R3。在調(diào)用VIIC軟件包之前,若涉及這些存儲單元中原有數(shù)據(jù)尚需保存,應(yīng)采取保護現(xiàn)場措施,在調(diào)用結(jié)束后恢復(fù)現(xiàn)場。 第31頁,共38頁。 8-4 虛擬I2C總線擴展I/O口一、I2C總線擴展I/O口通用器件PCF85741、引腳功能 PCF8574是一個帶有中斷輸出的8位準雙向I/O口I2C總線擴展芯片。 A2A0:地址引腳; P0P7:8位準雙向I/O口,驅(qū)動能力IOL = 25mA,IOH300A; SDA、SCL:I2C總線接口; INT:中斷請求輸出,低電平有效,開漏輸出; VDD、VSS:電源端、接地端;第32頁,共38頁。2、電路設(shè)計PCF8574與80C51 I2C總線接口應(yīng)用電路。 3、尋址字節(jié) PCF8574的器件地址是0100,A2A1A0為引腳地址,全接地時為000,R/W=1時,接收尋址字節(jié)SLAR=41H =01000001B;R/W=0時,

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論