




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7、8章
MCS-51單片機(jī)的RAM與I/O擴(kuò)展技術(shù)1.存儲(chǔ)器概述2.存儲(chǔ)器與I/O并行擴(kuò)展的基本知識(shí)3.存儲(chǔ)器的擴(kuò)展4.I/O的擴(kuò)展5.串行擴(kuò)展技術(shù).第7、8章
MCS-51單片機(jī)的RAM與I/O擴(kuò)展技術(shù)1由于單片機(jī)內(nèi)部資源有限,在實(shí)際應(yīng)用系統(tǒng)中,常在片外連接相應(yīng)的外圍芯片來擴(kuò)展的資源,滿足應(yīng)用系統(tǒng)需求。51系列單片機(jī)的系統(tǒng)擴(kuò)展主要有程序存儲(chǔ)器(ROM)的擴(kuò)展、數(shù)據(jù)存儲(chǔ)器(RAM)的擴(kuò)展、I/O口的擴(kuò)展、中斷系統(tǒng)擴(kuò)展以及其它特殊功能接口的擴(kuò)展等。擴(kuò)展方法既可以并行擴(kuò)展,也可以串行擴(kuò)展,且擴(kuò)展方法較典型、規(guī)范。并行擴(kuò)展是指利用單片機(jī)三組總線(AB、
BD、
CB)進(jìn)行的擴(kuò)展,早年的應(yīng)用系統(tǒng)基本上都是這種并行擴(kuò)展。串行擴(kuò)展是通過串行信號(hào)線進(jìn)行的擴(kuò)展,串行擴(kuò)展總線有單總線(1-Wire總線)、雙總線(I2C總線)、三總線(SPI總線)三種結(jié)構(gòu),是近年來主要發(fā)展的方向。.由于單片機(jī)內(nèi)部資源有限,在實(shí)際應(yīng)用系統(tǒng)中,常在片外2一、存儲(chǔ)器和I/O口并行擴(kuò)展的基本知識(shí)
1、51單片機(jī)機(jī)的系統(tǒng)總線
系統(tǒng)并行擴(kuò)展的重點(diǎn)是掌握單片機(jī)的系統(tǒng)總線,如圖8-1所示,三總線即地址總線(AB)數(shù)據(jù)總線(DB)和控制總線(CB)。具有總線的外部芯片都通過這三組總線進(jìn)行擴(kuò)展。(1)地址總線(AB)
由P0口提供低8位地址A0~A7。由P2口提供高8位地址A8~A15。
(2)數(shù)據(jù)總線(DB)
數(shù)據(jù)總線由P0口提供,用D0~D7表示。51系列單片微機(jī)的三總線結(jié)構(gòu).一、存儲(chǔ)器和I/O口并行擴(kuò)展的基本知識(shí)1、51單片機(jī)機(jī)的系3
地址低8位總線和數(shù)據(jù)總線都是由P0口提供,通過分時(shí)實(shí)現(xiàn)傳輸功能。并且地址總線總是在ALE信號(hào)的下降沿有效,因此可通過ALE信號(hào)把低8位地址信號(hào)鎖存在外接的鎖存器上。下圖為地址、數(shù)據(jù)、及ALE信號(hào)的時(shí)序圖:
.地址低8位總線和數(shù)據(jù)總線都是由P0口提供,通過分時(shí)實(shí)4
根據(jù)上圖的時(shí)序,不難用TTL的鎖存芯片從P0口的復(fù)合信號(hào)中分離出低8位的地址信號(hào)。
D0D1D2D3D4D5D6D7GQ0Q1Q2Q3Q4Q5Q6Q7OE256912151619174LS373引腳圖GOEQN01=DN01=DN00保持1X高阻74LS373真值表34781314171811P0口ALE805174LS373D0~D7Q0~Q7OEGA0~A7A8~A15P2口.D0Q0274LS373引腳圖GOEQN01=D5
數(shù)據(jù)線總是在PSEN、WR、RD三個(gè)信號(hào)之一為低電平時(shí)有效,外圍芯片就是通過這三個(gè)信號(hào)之一來控制數(shù)據(jù)信號(hào)的傳輸。當(dāng)有多個(gè)外圍芯片并連到的數(shù)據(jù)線上時(shí),同一時(shí)間里只能夠有一個(gè)是有效的數(shù)據(jù)傳送通道,此時(shí)則由地址線譯碼出片選信號(hào)來選擇指定芯片數(shù)據(jù)通道進(jìn)行數(shù)據(jù)傳送。(3)控制總線(CB)
控制總線包括片外系統(tǒng)擴(kuò)展用控制線和片外信號(hào)對(duì)單片機(jī)的控制線。系統(tǒng)擴(kuò)展用控制線有ALE、PSEN、WR、RD。 ALE:用于鎖存P0口輸出的低8位地址的控制線。通常,ALE在P0口輸出地址期間出現(xiàn)低電平,用這個(gè)低電平信號(hào)的上升沿控制鎖存器來鎖存地址數(shù)據(jù)。.數(shù)據(jù)線總是在PSEN、WR、RD三個(gè)信號(hào)之一為低電6
PSEN:輸出,用于讀片外程序存儲(chǔ)器(EPROM)中的數(shù)據(jù)?!白x”取EPROM中數(shù)據(jù)(指令)時(shí),不能用“RD”信號(hào),而只用PSEN信號(hào)。
EA:輸入,用于選擇片內(nèi)或片外程序存儲(chǔ)器。 當(dāng)EA=0時(shí),只訪問外部程序存儲(chǔ)器。當(dāng)EA=1時(shí),先訪問內(nèi)部程序存儲(chǔ)器,內(nèi)部程序存儲(chǔ)器全部訪問完之后,再訪問外部程序存儲(chǔ)器。
WR、RD:輸出,用于片外數(shù)據(jù)存儲(chǔ)器(RAM)的讀、寫控制。當(dāng)執(zhí)行片外數(shù)據(jù)存儲(chǔ)器操作指令MOVX時(shí),自動(dòng)生成、控制信號(hào),并在數(shù)據(jù)線有效時(shí)輸出。
. PSEN:輸出,用于讀片外程序存儲(chǔ)器(EPROM)中的數(shù)據(jù)7
在單片微機(jī)應(yīng)用系統(tǒng)中,為了對(duì)唯一地選擇片外某一存儲(chǔ)單元或I/O端口進(jìn)行操作,需要進(jìn)行選址。
一是必須先找到該存儲(chǔ)單元或I/O端口所在的芯片,一般稱為“片選”。二是通過對(duì)芯片本身所具有的地址線進(jìn)行譯碼。這樣才能確定唯一的存儲(chǔ)單元或I/O端口。片選常用有“線選”、“地址譯碼”2種方法。2.片選控制.在單片微機(jī)應(yīng)用系統(tǒng)中,為了對(duì)唯一地選擇片外8
(1)線選法:I/O接口芯片的“片選”控制線。線選法常一般是利用單片微機(jī)的最高幾位空余的地址線中一根(如P2.7)作為某一片存儲(chǔ)器芯片或用于應(yīng)用系統(tǒng)中擴(kuò)展芯片的片選,適用于芯片較少的場(chǎng)合。下圖是擴(kuò)展3片存儲(chǔ)器“線選”方按圖:
A10...A0CEA10...A0CEA10...A0CEA10~A0A10~A0A10~A0A13A12A11IIIIII. (1)線選法:I/O接口芯片的“片選”控制線。線選法常一9
三個(gè)芯片地址分配如下:
線選方式的電路連接簡(jiǎn)單,不必專門設(shè)計(jì)邏輯電路,其缺點(diǎn)是占用地址資源較多,地址重疊區(qū)多,芯片的地址空間可能不連續(xù),不能充分利用微處理器的內(nèi)存空間,因此這種方法只能在存儲(chǔ)器容量較小的場(chǎng)合。. 三個(gè)芯片地址分配如下: 線選方式的電路連接簡(jiǎn)單,不必專10(2)譯碼法:用譯碼器對(duì)空余的高位地址線進(jìn)行譯碼,而譯碼器的輸出作為“片選”控制線。常用的譯碼器有3/8譯碼器74LS138、雙2/4譯碼器74LS139、4/16譯碼器74LS154等。如下圖;CBAG1/G2A/G2B/Y0/Y1/Y2/Y3/Y4/Y5/Y6/Y774LS138
A10...A0CEA10...A0CEA10...A0CEA10~A0IIIIIIA13A12A11A15A14A15A14A13A12A11A10……A0十六進(jìn)制地址芯片I100000……08000H~~100001……187FFH芯片II1100010……08800H~~100011……18FFFH芯片III1100100……09000H~~100101……197FFH.(2)譯碼法:用譯碼器對(duì)空余的高位地址線進(jìn)行譯碼,而譯113.總線驅(qū)動(dòng)器在外圍擴(kuò)展芯片擴(kuò)展較多的情況下,單片機(jī)總線驅(qū)動(dòng)不足,這時(shí)要考慮在單片機(jī)的總線上加總線驅(qū)動(dòng)器.常用驅(qū)動(dòng)器芯片有74LS244和74LS245,其內(nèi)部電路如下:單向驅(qū)動(dòng)器74LS244雙向驅(qū)動(dòng)器74LS245利用這些芯片不難開展單片機(jī)的驅(qū)動(dòng)能力.如下圖:.3.總線驅(qū)動(dòng)器單向驅(qū)動(dòng)器74LS244雙向驅(qū)動(dòng)器74LS2412..13二、外部存儲(chǔ)器的并行擴(kuò)展
1.程序存儲(chǔ)器的操作時(shí)序CPU讀取指令有兩種情況:一種是不訪問外部數(shù)據(jù)存儲(chǔ)器的指令;二是訪問外部數(shù)據(jù)存儲(chǔ)器的指令。CPU在執(zhí)行這兩種指令時(shí),其時(shí)序是不同的。a,不訪問外部RAM的指令時(shí)序.二、外部存儲(chǔ)器的并行擴(kuò)展1.程序存儲(chǔ)器的操作時(shí)序a,不14b,訪問外部RAM的指令時(shí)序從圖中可知:低8位地址總是在ALE為低時(shí)有效;指令數(shù)據(jù)總是在PSEN或RD/WR為低電平時(shí)出現(xiàn)。根據(jù)此原則,就可以設(shè)計(jì)RAM和ROM的擴(kuò)展電路。.b,訪問外部RAM的指令時(shí)序從圖中可知:低8位地址152.?dāng)U展片外程序存儲(chǔ)器的硬件電路例:擴(kuò)展16K*8位片外程序存儲(chǔ)器
EPROM的擴(kuò)展電路.2.?dāng)U展片外程序存儲(chǔ)器的硬件電路EPROM的擴(kuò)展電路16用譯碼方法擴(kuò)展4片27128的EPROM電路原理圖.用譯碼方法擴(kuò)展4片27128的EPROM電路原理圖.17在圖中,圖中用2片8K的RAM來擴(kuò)展。采線選法尋址。用一口線P2.7來尋址。
當(dāng)P2.7=0時(shí)訪問片(0),地址范圍為6000H~7FFFH
當(dāng)P2.7=l時(shí)訪問片(1),地址范圍為E000H~FFFFH圖8–1116K片外數(shù)據(jù)存儲(chǔ)器擴(kuò)展電路3.外數(shù)據(jù)存儲(chǔ)器的擴(kuò)展.在圖中,圖中用2片8K的RAM來擴(kuò)展。采線選法尋址。18P0.0~P0.7D0~D7A0~A7A8~A10P2.0~P2.2P2.7WRRDPSENCEWEOEALED0~D7Q0~Q7805174LS37328173888LEG2817與8051的接口電路4.?dāng)U展片外EEPROM的硬件電路EEPROM存儲(chǔ)器既可斷電保護(hù)數(shù)據(jù),又可在線寫入數(shù)據(jù),具有SRAM和EPROM兩者的優(yōu)點(diǎn),且引腳和讀寫方式與EPROM相近,只是寫入時(shí)間較長(zhǎng),寫入次數(shù)有限,適宜于斷電后需要數(shù)據(jù)保護(hù),數(shù)據(jù)變換不太頻繁的場(chǎng)合。.P0.0~P0.7D0~D7A0~A7A8~A10P2.0~195.FLASH存儲(chǔ)器的擴(kuò)展
FLASH存儲(chǔ)器是Intel公司于20世紀(jì)80年代后期推出的新型存儲(chǔ)器,其主要的性能特點(diǎn)有:(1)快速整片電擦除,典型時(shí)間為1秒鐘。(2)采用快速脈沖編程算法進(jìn)行高速編程。(3)可擦/寫10萬次。(4)寫入和擦除電壓為12V±5%。(5)最大的存取時(shí)間為135ns。(6)先進(jìn)的CMOS工藝,最大工作電流為30mA,備用狀態(tài)下的最大電流為100μA。(7)命令寄存器的結(jié)構(gòu)與微處理器/微控制器寫入接口兼容,抗噪聲能力強(qiáng),允許±5%的電源噪聲波動(dòng)。(8)片內(nèi)地址和數(shù)據(jù)鎖存FLASHMEMORY的一個(gè)主要的確定就是只能進(jìn)行整片或者分塊擦除,不能按存儲(chǔ)單元進(jìn)行字節(jié)擦除,此外,F(xiàn)LASH存儲(chǔ)器的寫入速度比SRAM慢1~2個(gè)數(shù)量級(jí)。.5.FLASH存儲(chǔ)器的擴(kuò)展FLASH存儲(chǔ)器20FLASH存儲(chǔ)器的操作單片機(jī)對(duì)存儲(chǔ)器的操作可以分為兩種情況,一種是VPP引腳不加高壓的情況,另一種是VPP引腳加高壓的情況。當(dāng)VPP引腳不加高壓時(shí),F(xiàn)LASH存儲(chǔ)器相當(dāng)于一個(gè)只讀存儲(chǔ)器EPROM,在這種情況下,可以通過控制線對(duì)FLASH進(jìn)行的操作有讀操作,備用狀態(tài),禁止輸出和對(duì)Intel標(biāo)識(shí)符進(jìn)行操作。當(dāng)在VPP引腳上施加12V±5%的高壓時(shí),單片機(jī)還可以對(duì)FLASH存儲(chǔ)器進(jìn)行擦除和編程操作。
.FLASH存儲(chǔ)器的操作.21FLASH存儲(chǔ)器的擴(kuò)展舉例:用一片28F256(32KB)FLASH存儲(chǔ)器對(duì)8031單片機(jī)系統(tǒng)進(jìn)行擴(kuò)展作為外部數(shù)據(jù)存儲(chǔ)器的電路連接圖如圖所示。.FLASH存儲(chǔ)器的擴(kuò)展舉例:.22三、I/O口的并行擴(kuò)展
單片機(jī)沒有專門的I/O輸入輸出指令,擴(kuò)展的I/O與外部RAM是統(tǒng)一編址,也就是說并行擴(kuò)展的I/O口要占用外部RAM的地址空間,對(duì)擴(kuò)展I/O口的訪問,像對(duì)待外部RAM一樣,CPU用MOVX指令與I/O口進(jìn)行數(shù)據(jù)交流。1.用TTL芯片進(jìn)行I/O口的擴(kuò)展由于I/O輸出是用:MOVX@DPYR,A或MOVX @Ri,A指令進(jìn)行,指令通過P0口數(shù)據(jù)總線輸出所需要的數(shù)據(jù),此時(shí)的P0口并沒有鎖存功能,為了有穩(wěn)定的輸出,可以用簡(jiǎn)單的TTL或CMOS的鎖存芯片把數(shù)據(jù)鎖存輸出。如下圖:.三、I/O口的并行擴(kuò)展.23例:將一個(gè)數(shù)據(jù)字節(jié)從74LS377輸出,則執(zhí)行下面程序段: MOV DPTR,#7FFFH ;地址指針指向74LS377 MOV A,#DATA ;將輸出數(shù)據(jù)送A MOVX@DPTR,A ;輸出數(shù)據(jù)對(duì)于輸入,由于也是通過數(shù)據(jù)總線進(jìn)行,輸入時(shí)一定要加三態(tài)芯片,以免平時(shí)對(duì)數(shù)據(jù)總線的影響。CK為時(shí)鐘輸入端G為鎖存允許.例:將一個(gè)數(shù)據(jù)字節(jié)從74LS377輸出,則執(zhí)行下面程序段:C24 對(duì)于常態(tài)數(shù)據(jù)的輸入,只需采用8位三態(tài)門控制電路芯片即可。圖8-13是用74LS244通過P0口擴(kuò)展的8位并行輸入口,圖中,三態(tài)門由P2.6和RD相或控制,其端口地址為BFFFH。例:數(shù)據(jù)輸入MOV DPTR,#0BFFFH ;指向74LS244口地址A14=0MOVXA,@DPTR ;讀入數(shù)據(jù)74LS244是雙4位三態(tài)輸入緩沖器DRDP21G、2G為輸出控制端. 對(duì)于常態(tài)數(shù)據(jù)的輸入,只需采用8位三態(tài)門控制電路芯片即可。圖252.用8155芯片進(jìn)行I/O口的擴(kuò)展(1)8155的主要功能:內(nèi)部有2個(gè)8位,1個(gè)6位的并行I/O口,還帶有256字節(jié)的RAM,一個(gè)14位的定時(shí)/計(jì)數(shù)器。
與8255相類似,I/O口和定時(shí)器的工作方式通過控制字來設(shè)定。其地址安排如下:CEIO/MA2A1A0選通端口CEIO/MA2A1A0選通端口01000控制口01100計(jì)數(shù)器低801001A口01101計(jì)數(shù)器高801010B口00XXXRAN單元01011C口.2.用8155芯片進(jìn)行I/O口的擴(kuò)展(1)8155的主要功26(2)8155的命令和狀態(tài)字.(2)8155的命令和狀態(tài)字.27(3)8155與單片機(jī)的接口電路P0.0~P0.7RSTP2.1P2.7ALERDWR8051AD0~AD7RSTIO/MCEALERDWRPAPBPC8155由右圖可得各口地址為:控制口:7F00HA口:7F01HB口:7F02HC口:7F03H定時(shí)/計(jì)數(shù)器低8位:7F04H定時(shí)/計(jì)數(shù)器高8位:7F05HRAM地址范圍:7E00H~7EFFH例:設(shè)AB為輸出,C口為輸入,則控制字為03H,初始化編程為:MOVDPTR,#7F00HMOV A,#03HMOVX@DPTR,A.(3)8155與單片機(jī)的接口電路P0.0~P0.7828四、串行擴(kuò)展介紹單片機(jī)的外部串行擴(kuò)展主要包括1-WIRE、I2C和SPI三種總線的擴(kuò)展。1.1-WIRE總線結(jié)構(gòu)1-WIRE總線結(jié)構(gòu)在一根單總線上可以懸掛多個(gè)器件的總線,總線由主機(jī)控制,數(shù)據(jù)可雙向傳輸。1-Wire單總線器件的硬件結(jié)構(gòu)如右圖所示。為了在單條傳輸線上能夠雙向傳輸?shù)刂?、?shù)據(jù)、控制信號(hào),序列號(hào)接收發(fā)射電源單總線電源地實(shí)現(xiàn)并行傳輸同樣的功能,總線只能采用特殊的接口協(xié)議,每次通信都要按規(guī)定的次序來傳輸?shù)刂贰?shù)據(jù)和控制信息。同時(shí)為了解決接收雙方的同步,規(guī)定了信號(hào)雙方傳輸時(shí)的時(shí)序和握手方式。.四、串行擴(kuò)展介紹1.1-WIRE總線結(jié)構(gòu)序列號(hào)接收發(fā)射電源單29對(duì)器件的地址和產(chǎn)品的識(shí)別,每個(gè)器件產(chǎn)品上都刻錄了電子識(shí)別碼—即產(chǎn)品的序列號(hào)。此序列號(hào)(ID)采用64位的二進(jìn)制ROM代碼,將個(gè)產(chǎn)品分開。具體的格式是:第一個(gè)字節(jié)是器件的家族代碼;接著的6個(gè)字節(jié)是每個(gè)器件唯一的序列號(hào);最后一個(gè)字節(jié)是前56位的CRC校驗(yàn)碼。此外一般的產(chǎn)品還含有接收控制、發(fā)射控制和電源存儲(chǔ)電路,可以直接從信號(hào)線上獲取電源,而無須再接電源引腳。1-WIRE總線具有結(jié)構(gòu)簡(jiǎn)單、成本低廉、節(jié)省I/O資源、便于總線擴(kuò)展和維護(hù)等優(yōu)點(diǎn)。單總線端口為漏極開路,要求外接一個(gè)約5k的上拉電阻以確保單總線的閑置狀態(tài)為高電平,并要求主機(jī)或從機(jī)通過一個(gè)漏極開路或三態(tài)端口連接至該單總線,使到設(shè)備在不發(fā)送數(shù)據(jù)時(shí)釋放單總線,以便總線被其他設(shè)備使用。.對(duì)器件的地址和產(chǎn)品的識(shí)別,每個(gè)器件產(chǎn)品上都刻錄了電子識(shí)30單總線的數(shù)據(jù)傳輸通常以16.3kbit/s的速率通信,超速模式下,可設(shè)定傳輸速率為100kbit/s左右,一般用于對(duì)速度要求不高的應(yīng)用系統(tǒng)中。單總線技術(shù)的作用距離一般達(dá)到200m,并允許掛上百個(gè)器件。2.1-Wire單總線器件的軟件操作為了識(shí)別單總線上的不同器件,在軟件的程序設(shè)計(jì)中,一般有以下步驟:(1)初始化命令(復(fù)位)
;(2)傳送ROM命令(尋找匹配器件和器件內(nèi)尋址;(3)傳送RAM命令(讀寫口地址或單元內(nèi)容)。除了搜索ROM命令和報(bào)警搜索命令例外,每次訪問單總線器件必須嚴(yán)格遵守這3個(gè)步驟,如果出現(xiàn)序列混亂則單總線器件不會(huì)響應(yīng)主機(jī)要求,在執(zhí)行兩者中任何一條命令之后,主機(jī)不能執(zhí)行其后的功能命令時(shí)必須返回至第一步。.單總線的數(shù)據(jù)傳輸通常以16.3kbit/s的速率通31上述三種命令可分解位總線上的三種操作:(1)初始化(復(fù)位)(2)寫0、1;(3)讀0、1。每種操作都有自己時(shí)序的要求,軟件設(shè)計(jì)中應(yīng)保證按規(guī)定的時(shí)序要求進(jìn)行編程。以下是三種操作的時(shí)序:主機(jī)發(fā)出低電平主機(jī)發(fā)復(fù)位脈沖480-960us等待15-60us
器件發(fā)響應(yīng)脈沖60-240us電阻上拉激發(fā)低電平VCCGND1線總線圖:復(fù)位時(shí)序.上述三種命令可分解位總線上的三種操作:主機(jī)發(fā)出低電平32寫時(shí)隙時(shí)序圖
主機(jī)寫數(shù)據(jù)時(shí),應(yīng)先將數(shù)據(jù)線拉低1微秒以上,再寫入數(shù)據(jù)(寫“1”高,寫“0”為低)。待主機(jī)寫入的數(shù)據(jù)變化15~60微秒后,總線上的器件將對(duì)數(shù)據(jù)線采樣。要求主機(jī)寫入數(shù)據(jù)的時(shí)間保持在60~120微秒之間。兩次寫數(shù)據(jù)操作之間的間隙應(yīng)大于1微秒。復(fù)位信號(hào)要求主機(jī)將數(shù)據(jù)線拉低并保持480~960微秒,再釋放數(shù)據(jù)線,由上拉電阻拉高15~60微秒。然后再由被復(fù)位的器件發(fā)出低電平60~240微秒,就完成了復(fù)位操作。
.寫時(shí)隙時(shí)序圖主機(jī)寫數(shù)據(jù)時(shí),應(yīng)先將數(shù)據(jù)線拉低33讀時(shí)隙時(shí)序圖讀數(shù)據(jù)之前,主機(jī)應(yīng)先將數(shù)據(jù)線拉低,再釋放。總線上被讀期間在數(shù)據(jù)線從高電平跳低后15微秒內(nèi)將數(shù)據(jù)送到數(shù)據(jù)線上。主機(jī)在15微秒后讀取數(shù)據(jù)線。.讀時(shí)隙時(shí)序圖讀數(shù)據(jù)之前,主機(jī)應(yīng)先將數(shù)據(jù)線拉低,再釋放34以18B20測(cè)溫芯片為例,下圖是它的內(nèi)部框圖:64位ROM和一線端口存儲(chǔ)和控制邏輯高速暫存器8位CRC生成器溫度傳感器高溫觸發(fā)器TH低溫觸發(fā)器TL配置寄存器供電方式選擇
.以18B20測(cè)溫芯片為例,下圖是它的內(nèi)部框圖:存儲(chǔ)和控制35跟一般的1-WIRE器件一樣,有ROM和RAM操作命令.1.ROM的主要操作命令:讀序列號(hào)命令(33H):讀總線上DS18B20的序列號(hào)器件匹配命令(55H):對(duì)總線上DS18B20尋址搜索ROM命令(F0H):識(shí)別總線上多個(gè)器件的ROM編碼跳過ROM(CCH):命令執(zhí)行后,將省去每次與ROM有關(guān)的操作報(bào)警檢測(cè)命令(ECH):搜索有報(bào)警的器件2.RAM的主要操作命令寫入命令 (4EH):寫上、下限值到DS18B20中讀出命令 (BEH):從DS18B20讀出9字節(jié)數(shù)據(jù)(其中有溫度 值,報(bào)警值等)開始轉(zhuǎn)換 (44H):啟動(dòng)溫度變換無讀存儲(chǔ)器命令,讀電源標(biāo)志 (B4H):檢測(cè)DS18B20的供電方式
.跟一般的1-WIRE器件一樣,有ROM和RAM操作命令.362、I2C總線結(jié)構(gòu)及其擴(kuò)展方法(1)總線系統(tǒng)結(jié)構(gòu)SDASCLSDASCLSDASCLVCC主機(jī)從機(jī)1從機(jī)2SCLSDA
I2C總線用兩跟雙向傳輸線SDA和SCL進(jìn)行全雙工數(shù)據(jù)傳送,可以并行擴(kuò)展多個(gè)外圍器件。總線采用了器件地址硬件設(shè)置,無須用外圍器件片選信號(hào)方式的尋址方法。
總線平時(shí)通過上拉電阻接到電源,在空閑情況下,2根線都處于高電平。
.2、I2C總線結(jié)構(gòu)及其擴(kuò)展方法SDASCLSDA37(2)總線的四種狀態(tài)和數(shù)據(jù)傳輸時(shí)序總線狀態(tài)SCLSDA總線不忙高電平高電平開始傳送數(shù)據(jù)高電平停止傳送數(shù)據(jù)高電平
數(shù)據(jù)傳送SCL低電平時(shí)更改數(shù)據(jù),用SCL的上升沿讀取數(shù)據(jù),在SCL高電平時(shí)數(shù)據(jù)不能變動(dòng)I2C數(shù)據(jù)傳送時(shí)序.(2)總線的四種狀態(tài)和數(shù)據(jù)傳輸時(shí)序總線狀態(tài)SCL38(3)數(shù)據(jù)傳輸格式由于數(shù)據(jù)和地址信號(hào)都用一根數(shù)據(jù)線SDA來傳輸,何時(shí)傳輸?shù)刂?什么時(shí)候是主器件讀?什么時(shí)候是主器件寫?如何保證傳輸?shù)恼_?必須有一個(gè)共同接受的規(guī)定:①.主控器件寫操作主器件向被控器件發(fā)送n個(gè)數(shù)據(jù)的數(shù)據(jù)格式如下:起始信號(hào)S送7位地址和一位(為”0”)傳送方向SLAW應(yīng)答信號(hào)A發(fā)送數(shù)據(jù)DATA1應(yīng)答信號(hào)A……發(fā)送數(shù)據(jù)DATAn-1應(yīng)答信號(hào)A發(fā)送數(shù)據(jù)DATAn非應(yīng)答信號(hào)A/A’停止信號(hào)P②主控器件讀操作主器件向被控器件讀n個(gè)數(shù)據(jù)的數(shù)據(jù)格式如下:起始信號(hào)S送7位地址和一位(為”1”)傳送方向SLAR應(yīng)答信號(hào)A接收數(shù)據(jù)DATA1應(yīng)答信號(hào)A……接收數(shù)據(jù)DATAn-1應(yīng)答信號(hào)A接收數(shù)據(jù)DATAn非應(yīng)答信號(hào)A/A’停止信號(hào)P.(3)數(shù)據(jù)傳輸格式起始信號(hào)送7位地址和一位(為”0”)傳送39③主控器讀寫操作
主控器讀寫操作是指主控期間在一次數(shù)據(jù)過程中需要改變數(shù)據(jù)傳送方向的操作。原則上此過程中的讀寫操作分別與上述方法一樣,只是在數(shù)據(jù)傳送方向改變后,必須由主控器件發(fā)出從新啟動(dòng)信號(hào)。(4)串行EEPROM的擴(kuò)展技術(shù)串行EEPROM主要的型號(hào)如下表:型號(hào)容量AT24C01128X8AT24C02256X8AT24C04512X8AT24C081024X8AT24C0162048X8SDAVCCSCLA0TESTA1VSSA256748123NCNCSDAVCCSCLTESTNCNCVSSA0NCA1NCA219104678141312112351)引腳排列AT24系列芯片有8腳和14腳2種,其中:SDA:數(shù)據(jù)線SCL:時(shí)鐘線TEST:測(cè)試線, 平時(shí)接地..③主控器讀寫操作型號(hào)容量AT24C01128X8AT2402)地址選擇
AT24CX系列存儲(chǔ)芯片有多個(gè)型號(hào),容量從128字節(jié)到2K字節(jié),若單靠I2C的尋址字節(jié)(SLAW/R),不能全部解決所有空間的尋址,為此它規(guī)定在訪問其單元時(shí),在程序中增加一個(gè)字節(jié)尋找片內(nèi)單元;而SLAW/R提供的尋址用于片間的選擇,該字節(jié)中高4位作識(shí)別位,最低位為讀寫方向位,其余3位與地址引腳相對(duì)應(yīng),提供作片選,因此用AT24CX系列擴(kuò)展,最多可擴(kuò)展到2K字節(jié),用24C02,則最多可擴(kuò)展8片,若是24C16,則只能擴(kuò)展一片。下面是用4片24C02擴(kuò)展的2K電路:對(duì)于只用單片芯片,可用書中表7-17方法連接。.2)地址選擇對(duì)于只用單片芯片,可用書中表7-17方法連接。413)AT24CX系列芯片的寫操作a,字節(jié)寫格式如下:起始信號(hào)S尋址字節(jié)SLAW應(yīng)答信號(hào)A寫單元地址WORDADR應(yīng)答信號(hào)A寫數(shù)據(jù)DATA應(yīng)答信號(hào)A停止信號(hào)Pb,頁寫頁寫是在指定地址開始連續(xù)寫入若干字節(jié),提高寫入的速度.一次最大字節(jié)數(shù)對(duì)01/02/04/08/16型號(hào)分別為4/8/16/16/16個(gè),格式如下:起始信號(hào)S尋址字節(jié)SLAW應(yīng)答信號(hào)A寫單元地址WORDADR應(yīng)答信號(hào)A寫數(shù)據(jù)DATA1應(yīng)答信號(hào)A寫數(shù)據(jù)DATA2應(yīng)答信號(hào)A…寫數(shù)據(jù)DATAn應(yīng)答信號(hào)A停止信號(hào)P.3)AT24CX系列芯片的寫操作起始信號(hào)尋址字節(jié)應(yīng)答寫4224CX芯片內(nèi)部有頁地址,對(duì)01/02/04/08/16型號(hào),對(duì)應(yīng)的頁地址有2/3/4/4/4位,頁寫入時(shí)有規(guī)定,對(duì)同一頁面進(jìn)行頁寫時(shí),低位數(shù)據(jù)必須寫入到低位地址,否則會(huì)出現(xiàn)”翻卷”現(xiàn)象。4)AT24CX系列芯片的讀操作24CX芯片的讀也有三種格式:a,當(dāng)前地址讀:b,指定地址讀:c,序列讀:SSLARADATAA’PSSLAWAWORDATAASSLARADATAA’PSSLARADATA1ADATA2A…DATAnA’P.24CX芯片內(nèi)部有頁地址,對(duì)01/02/04/08/435)AT24CX的接口電路及編程SDAVCCSCLA0TESTA1VSSA256748123P1.7P1.68051VCCR=5.1KAT24C02啟動(dòng)子程序:要求在時(shí)鐘為高電平期間數(shù)據(jù)線由高變低。
STA:SETB P1.7;SDA=1SETB P1.6;SCL=1NOPNOPCLR P1.7;SDA=0NOPNOPCLR P1.6;SCL=0RET停止子程序:要求在時(shí)鐘為高電平期間數(shù)據(jù)線由低變高。STOP: CLR P1.7;SDA=0 SETB P1.6;SCL=1 NOP NOP SETB P1.7;SDA=1 NOP NOP CLR P1.6;SCL=0 RETSDASCLSDASCL.5)AT24CX的接口電路及編程SDAVCC544發(fā)送應(yīng)答位”0”子程序:要求在SCL高電平期間主控器件向被控器件 發(fā)送”0”應(yīng)答信號(hào)。SACK:CLR P1.7 SETB P1.6 NOP NOP CLR P1.6 SETB P1.7 RETSDASCL發(fā)送非應(yīng)答位”1”子程序:要求在SCL高電平期間主控器件向被控器 件發(fā)送”1”應(yīng)答信號(hào)。SDASCLSNACK:SETBP1.7 SETBP1.6 NOP NOP CLR P1.6 CLR P1.7 RET.發(fā)送應(yīng)答位”0”子程序:要求在SCL高電平期間主控器件向被控45應(yīng)答位檢查子程序:用于檢查一字節(jié)數(shù)據(jù)傳送后,主控器件在 第9位是否發(fā)回”0”的應(yīng)答,若是,程序置 F0標(biāo)志為0,否則置F0標(biāo)志為1。ACK_CHK:SETBP1.7 ;設(shè)P1.7為輸入,由接收端發(fā)回低電平 SETB P1.6 ;輸出時(shí)鐘 CLR F0 JNBACC.7,EXIT;查由接收端是否發(fā)回低電平? SETB F0 ;不是,則置F0=1EXIT: CLR P1.6 ;結(jié)束時(shí)鐘 NOP RETSDASCL9正常應(yīng)答信號(hào).應(yīng)答位檢查子程序:用于檢查一字節(jié)數(shù)據(jù)傳送后,主控器件在 46作業(yè):1.用8031單片機(jī),并采用一片2716(2KB)和一片6116(2KB)組成一個(gè)既有程序存儲(chǔ)器又有數(shù)據(jù)存儲(chǔ)器的擴(kuò)展系統(tǒng),請(qǐng):(1)畫出邏輯電路圖(2)說明其存儲(chǔ)空間2.請(qǐng)利用74HC138設(shè)計(jì)一個(gè)譯碼電路,分別選中4片2764,且列出各芯片所占的地址范圍:Y0芯片地址范圍0000H-1FFFH,Y1芯片地址范圍2000H-3FFFH,Y2芯片地址范圍4000H-5FFFH,Y3芯片地址范圍6000H-7FFFH.3.利用TTL芯片,設(shè)計(jì)擴(kuò)展一個(gè)8位并行輸入口和一個(gè)8位并行輸出口,輸入口接8個(gè)開關(guān),輸出口接8個(gè)發(fā)光二極管,并編程用8個(gè)開關(guān)的狀態(tài)控制8個(gè)二極管的亮滅..作業(yè):.47第7、8章
MCS-51單片機(jī)的RAM與I/O擴(kuò)展技術(shù)1.存儲(chǔ)器概述2.存儲(chǔ)器與I/O并行擴(kuò)展的基本知識(shí)3.存儲(chǔ)器的擴(kuò)展4.I/O的擴(kuò)展5.串行擴(kuò)展技術(shù).第7、8章
MCS-51單片機(jī)的RAM與I/O擴(kuò)展技術(shù)48由于單片機(jī)內(nèi)部資源有限,在實(shí)際應(yīng)用系統(tǒng)中,常在片外連接相應(yīng)的外圍芯片來擴(kuò)展的資源,滿足應(yīng)用系統(tǒng)需求。51系列單片機(jī)的系統(tǒng)擴(kuò)展主要有程序存儲(chǔ)器(ROM)的擴(kuò)展、數(shù)據(jù)存儲(chǔ)器(RAM)的擴(kuò)展、I/O口的擴(kuò)展、中斷系統(tǒng)擴(kuò)展以及其它特殊功能接口的擴(kuò)展等。擴(kuò)展方法既可以并行擴(kuò)展,也可以串行擴(kuò)展,且擴(kuò)展方法較典型、規(guī)范。并行擴(kuò)展是指利用單片機(jī)三組總線(AB、
BD、
CB)進(jìn)行的擴(kuò)展,早年的應(yīng)用系統(tǒng)基本上都是這種并行擴(kuò)展。串行擴(kuò)展是通過串行信號(hào)線進(jìn)行的擴(kuò)展,串行擴(kuò)展總線有單總線(1-Wire總線)、雙總線(I2C總線)、三總線(SPI總線)三種結(jié)構(gòu),是近年來主要發(fā)展的方向。.由于單片機(jī)內(nèi)部資源有限,在實(shí)際應(yīng)用系統(tǒng)中,常在片外49一、存儲(chǔ)器和I/O口并行擴(kuò)展的基本知識(shí)
1、51單片機(jī)機(jī)的系統(tǒng)總線
系統(tǒng)并行擴(kuò)展的重點(diǎn)是掌握單片機(jī)的系統(tǒng)總線,如圖8-1所示,三總線即地址總線(AB)數(shù)據(jù)總線(DB)和控制總線(CB)。具有總線的外部芯片都通過這三組總線進(jìn)行擴(kuò)展。(1)地址總線(AB)
由P0口提供低8位地址A0~A7。由P2口提供高8位地址A8~A15。
(2)數(shù)據(jù)總線(DB)
數(shù)據(jù)總線由P0口提供,用D0~D7表示。51系列單片微機(jī)的三總線結(jié)構(gòu).一、存儲(chǔ)器和I/O口并行擴(kuò)展的基本知識(shí)1、51單片機(jī)機(jī)的系50
地址低8位總線和數(shù)據(jù)總線都是由P0口提供,通過分時(shí)實(shí)現(xiàn)傳輸功能。并且地址總線總是在ALE信號(hào)的下降沿有效,因此可通過ALE信號(hào)把低8位地址信號(hào)鎖存在外接的鎖存器上。下圖為地址、數(shù)據(jù)、及ALE信號(hào)的時(shí)序圖:
.地址低8位總線和數(shù)據(jù)總線都是由P0口提供,通過分時(shí)實(shí)51
根據(jù)上圖的時(shí)序,不難用TTL的鎖存芯片從P0口的復(fù)合信號(hào)中分離出低8位的地址信號(hào)。
D0D1D2D3D4D5D6D7GQ0Q1Q2Q3Q4Q5Q6Q7OE256912151619174LS373引腳圖GOEQN01=DN01=DN00保持1X高阻74LS373真值表34781314171811P0口ALE805174LS373D0~D7Q0~Q7OEGA0~A7A8~A15P2口.D0Q0274LS373引腳圖GOEQN01=D52
數(shù)據(jù)線總是在PSEN、WR、RD三個(gè)信號(hào)之一為低電平時(shí)有效,外圍芯片就是通過這三個(gè)信號(hào)之一來控制數(shù)據(jù)信號(hào)的傳輸。當(dāng)有多個(gè)外圍芯片并連到的數(shù)據(jù)線上時(shí),同一時(shí)間里只能夠有一個(gè)是有效的數(shù)據(jù)傳送通道,此時(shí)則由地址線譯碼出片選信號(hào)來選擇指定芯片數(shù)據(jù)通道進(jìn)行數(shù)據(jù)傳送。(3)控制總線(CB)
控制總線包括片外系統(tǒng)擴(kuò)展用控制線和片外信號(hào)對(duì)單片機(jī)的控制線。系統(tǒng)擴(kuò)展用控制線有ALE、PSEN、WR、RD。 ALE:用于鎖存P0口輸出的低8位地址的控制線。通常,ALE在P0口輸出地址期間出現(xiàn)低電平,用這個(gè)低電平信號(hào)的上升沿控制鎖存器來鎖存地址數(shù)據(jù)。.數(shù)據(jù)線總是在PSEN、WR、RD三個(gè)信號(hào)之一為低電53
PSEN:輸出,用于讀片外程序存儲(chǔ)器(EPROM)中的數(shù)據(jù)?!白x”取EPROM中數(shù)據(jù)(指令)時(shí),不能用“RD”信號(hào),而只用PSEN信號(hào)。
EA:輸入,用于選擇片內(nèi)或片外程序存儲(chǔ)器。 當(dāng)EA=0時(shí),只訪問外部程序存儲(chǔ)器。當(dāng)EA=1時(shí),先訪問內(nèi)部程序存儲(chǔ)器,內(nèi)部程序存儲(chǔ)器全部訪問完之后,再訪問外部程序存儲(chǔ)器。
WR、RD:輸出,用于片外數(shù)據(jù)存儲(chǔ)器(RAM)的讀、寫控制。當(dāng)執(zhí)行片外數(shù)據(jù)存儲(chǔ)器操作指令MOVX時(shí),自動(dòng)生成、控制信號(hào),并在數(shù)據(jù)線有效時(shí)輸出。
. PSEN:輸出,用于讀片外程序存儲(chǔ)器(EPROM)中的數(shù)據(jù)54
在單片微機(jī)應(yīng)用系統(tǒng)中,為了對(duì)唯一地選擇片外某一存儲(chǔ)單元或I/O端口進(jìn)行操作,需要進(jìn)行選址。
一是必須先找到該存儲(chǔ)單元或I/O端口所在的芯片,一般稱為“片選”。二是通過對(duì)芯片本身所具有的地址線進(jìn)行譯碼。這樣才能確定唯一的存儲(chǔ)單元或I/O端口。片選常用有“線選”、“地址譯碼”2種方法。2.片選控制.在單片微機(jī)應(yīng)用系統(tǒng)中,為了對(duì)唯一地選擇片外55
(1)線選法:I/O接口芯片的“片選”控制線。線選法常一般是利用單片微機(jī)的最高幾位空余的地址線中一根(如P2.7)作為某一片存儲(chǔ)器芯片或用于應(yīng)用系統(tǒng)中擴(kuò)展芯片的片選,適用于芯片較少的場(chǎng)合。下圖是擴(kuò)展3片存儲(chǔ)器“線選”方按圖:
A10...A0CEA10...A0CEA10...A0CEA10~A0A10~A0A10~A0A13A12A11IIIIII. (1)線選法:I/O接口芯片的“片選”控制線。線選法常一56
三個(gè)芯片地址分配如下:
線選方式的電路連接簡(jiǎn)單,不必專門設(shè)計(jì)邏輯電路,其缺點(diǎn)是占用地址資源較多,地址重疊區(qū)多,芯片的地址空間可能不連續(xù),不能充分利用微處理器的內(nèi)存空間,因此這種方法只能在存儲(chǔ)器容量較小的場(chǎng)合。. 三個(gè)芯片地址分配如下: 線選方式的電路連接簡(jiǎn)單,不必專57(2)譯碼法:用譯碼器對(duì)空余的高位地址線進(jìn)行譯碼,而譯碼器的輸出作為“片選”控制線。常用的譯碼器有3/8譯碼器74LS138、雙2/4譯碼器74LS139、4/16譯碼器74LS154等。如下圖;CBAG1/G2A/G2B/Y0/Y1/Y2/Y3/Y4/Y5/Y6/Y774LS138
A10...A0CEA10...A0CEA10...A0CEA10~A0IIIIIIA13A12A11A15A14A15A14A13A12A11A10……A0十六進(jìn)制地址芯片I100000……08000H~~100001……187FFH芯片II1100010……08800H~~100011……18FFFH芯片III1100100……09000H~~100101……197FFH.(2)譯碼法:用譯碼器對(duì)空余的高位地址線進(jìn)行譯碼,而譯583.總線驅(qū)動(dòng)器在外圍擴(kuò)展芯片擴(kuò)展較多的情況下,單片機(jī)總線驅(qū)動(dòng)不足,這時(shí)要考慮在單片機(jī)的總線上加總線驅(qū)動(dòng)器.常用驅(qū)動(dòng)器芯片有74LS244和74LS245,其內(nèi)部電路如下:單向驅(qū)動(dòng)器74LS244雙向驅(qū)動(dòng)器74LS245利用這些芯片不難開展單片機(jī)的驅(qū)動(dòng)能力.如下圖:.3.總線驅(qū)動(dòng)器單向驅(qū)動(dòng)器74LS244雙向驅(qū)動(dòng)器74LS2459..60二、外部存儲(chǔ)器的并行擴(kuò)展
1.程序存儲(chǔ)器的操作時(shí)序CPU讀取指令有兩種情況:一種是不訪問外部數(shù)據(jù)存儲(chǔ)器的指令;二是訪問外部數(shù)據(jù)存儲(chǔ)器的指令。CPU在執(zhí)行這兩種指令時(shí),其時(shí)序是不同的。a,不訪問外部RAM的指令時(shí)序.二、外部存儲(chǔ)器的并行擴(kuò)展1.程序存儲(chǔ)器的操作時(shí)序a,不61b,訪問外部RAM的指令時(shí)序從圖中可知:低8位地址總是在ALE為低時(shí)有效;指令數(shù)據(jù)總是在PSEN或RD/WR為低電平時(shí)出現(xiàn)。根據(jù)此原則,就可以設(shè)計(jì)RAM和ROM的擴(kuò)展電路。.b,訪問外部RAM的指令時(shí)序從圖中可知:低8位地址622.?dāng)U展片外程序存儲(chǔ)器的硬件電路例:擴(kuò)展16K*8位片外程序存儲(chǔ)器
EPROM的擴(kuò)展電路.2.?dāng)U展片外程序存儲(chǔ)器的硬件電路EPROM的擴(kuò)展電路63用譯碼方法擴(kuò)展4片27128的EPROM電路原理圖.用譯碼方法擴(kuò)展4片27128的EPROM電路原理圖.64在圖中,圖中用2片8K的RAM來擴(kuò)展。采線選法尋址。用一口線P2.7來尋址。
當(dāng)P2.7=0時(shí)訪問片(0),地址范圍為6000H~7FFFH
當(dāng)P2.7=l時(shí)訪問片(1),地址范圍為E000H~FFFFH圖8–1116K片外數(shù)據(jù)存儲(chǔ)器擴(kuò)展電路3.外數(shù)據(jù)存儲(chǔ)器的擴(kuò)展.在圖中,圖中用2片8K的RAM來擴(kuò)展。采線選法尋址。65P0.0~P0.7D0~D7A0~A7A8~A10P2.0~P2.2P2.7WRRDPSENCEWEOEALED0~D7Q0~Q7805174LS37328173888LEG2817與8051的接口電路4.?dāng)U展片外EEPROM的硬件電路EEPROM存儲(chǔ)器既可斷電保護(hù)數(shù)據(jù),又可在線寫入數(shù)據(jù),具有SRAM和EPROM兩者的優(yōu)點(diǎn),且引腳和讀寫方式與EPROM相近,只是寫入時(shí)間較長(zhǎng),寫入次數(shù)有限,適宜于斷電后需要數(shù)據(jù)保護(hù),數(shù)據(jù)變換不太頻繁的場(chǎng)合。.P0.0~P0.7D0~D7A0~A7A8~A10P2.0~665.FLASH存儲(chǔ)器的擴(kuò)展
FLASH存儲(chǔ)器是Intel公司于20世紀(jì)80年代后期推出的新型存儲(chǔ)器,其主要的性能特點(diǎn)有:(1)快速整片電擦除,典型時(shí)間為1秒鐘。(2)采用快速脈沖編程算法進(jìn)行高速編程。(3)可擦/寫10萬次。(4)寫入和擦除電壓為12V±5%。(5)最大的存取時(shí)間為135ns。(6)先進(jìn)的CMOS工藝,最大工作電流為30mA,備用狀態(tài)下的最大電流為100μA。(7)命令寄存器的結(jié)構(gòu)與微處理器/微控制器寫入接口兼容,抗噪聲能力強(qiáng),允許±5%的電源噪聲波動(dòng)。(8)片內(nèi)地址和數(shù)據(jù)鎖存FLASHMEMORY的一個(gè)主要的確定就是只能進(jìn)行整片或者分塊擦除,不能按存儲(chǔ)單元進(jìn)行字節(jié)擦除,此外,F(xiàn)LASH存儲(chǔ)器的寫入速度比SRAM慢1~2個(gè)數(shù)量級(jí)。.5.FLASH存儲(chǔ)器的擴(kuò)展FLASH存儲(chǔ)器67FLASH存儲(chǔ)器的操作單片機(jī)對(duì)存儲(chǔ)器的操作可以分為兩種情況,一種是VPP引腳不加高壓的情況,另一種是VPP引腳加高壓的情況。當(dāng)VPP引腳不加高壓時(shí),F(xiàn)LASH存儲(chǔ)器相當(dāng)于一個(gè)只讀存儲(chǔ)器EPROM,在這種情況下,可以通過控制線對(duì)FLASH進(jìn)行的操作有讀操作,備用狀態(tài),禁止輸出和對(duì)Intel標(biāo)識(shí)符進(jìn)行操作。當(dāng)在VPP引腳上施加12V±5%的高壓時(shí),單片機(jī)還可以對(duì)FLASH存儲(chǔ)器進(jìn)行擦除和編程操作。
.FLASH存儲(chǔ)器的操作.68FLASH存儲(chǔ)器的擴(kuò)展舉例:用一片28F256(32KB)FLASH存儲(chǔ)器對(duì)8031單片機(jī)系統(tǒng)進(jìn)行擴(kuò)展作為外部數(shù)據(jù)存儲(chǔ)器的電路連接圖如圖所示。.FLASH存儲(chǔ)器的擴(kuò)展舉例:.69三、I/O口的并行擴(kuò)展
單片機(jī)沒有專門的I/O輸入輸出指令,擴(kuò)展的I/O與外部RAM是統(tǒng)一編址,也就是說并行擴(kuò)展的I/O口要占用外部RAM的地址空間,對(duì)擴(kuò)展I/O口的訪問,像對(duì)待外部RAM一樣,CPU用MOVX指令與I/O口進(jìn)行數(shù)據(jù)交流。1.用TTL芯片進(jìn)行I/O口的擴(kuò)展由于I/O輸出是用:MOVX@DPYR,A或MOVX @Ri,A指令進(jìn)行,指令通過P0口數(shù)據(jù)總線輸出所需要的數(shù)據(jù),此時(shí)的P0口并沒有鎖存功能,為了有穩(wěn)定的輸出,可以用簡(jiǎn)單的TTL或CMOS的鎖存芯片把數(shù)據(jù)鎖存輸出。如下圖:.三、I/O口的并行擴(kuò)展.70例:將一個(gè)數(shù)據(jù)字節(jié)從74LS377輸出,則執(zhí)行下面程序段: MOV DPTR,#7FFFH ;地址指針指向74LS377 MOV A,#DATA ;將輸出數(shù)據(jù)送A MOVX@DPTR,A ;輸出數(shù)據(jù)對(duì)于輸入,由于也是通過數(shù)據(jù)總線進(jìn)行,輸入時(shí)一定要加三態(tài)芯片,以免平時(shí)對(duì)數(shù)據(jù)總線的影響。CK為時(shí)鐘輸入端G為鎖存允許.例:將一個(gè)數(shù)據(jù)字節(jié)從74LS377輸出,則執(zhí)行下面程序段:C71 對(duì)于常態(tài)數(shù)據(jù)的輸入,只需采用8位三態(tài)門控制電路芯片即可。圖8-13是用74LS244通過P0口擴(kuò)展的8位并行輸入口,圖中,三態(tài)門由P2.6和RD相或控制,其端口地址為BFFFH。例:數(shù)據(jù)輸入MOV DPTR,#0BFFFH ;指向74LS244口地址A14=0MOVXA,@DPTR ;讀入數(shù)據(jù)74LS244是雙4位三態(tài)輸入緩沖器DRDP21G、2G為輸出控制端. 對(duì)于常態(tài)數(shù)據(jù)的輸入,只需采用8位三態(tài)門控制電路芯片即可。圖722.用8155芯片進(jìn)行I/O口的擴(kuò)展(1)8155的主要功能:內(nèi)部有2個(gè)8位,1個(gè)6位的并行I/O口,還帶有256字節(jié)的RAM,一個(gè)14位的定時(shí)/計(jì)數(shù)器。
與8255相類似,I/O口和定時(shí)器的工作方式通過控制字來設(shè)定。其地址安排如下:CEIO/MA2A1A0選通端口CEIO/MA2A1A0選通端口01000控制口01100計(jì)數(shù)器低801001A口01101計(jì)數(shù)器高801010B口00XXXRAN單元01011C口.2.用8155芯片進(jìn)行I/O口的擴(kuò)展(1)8155的主要功73(2)8155的命令和狀態(tài)字.(2)8155的命令和狀態(tài)字.74(3)8155與單片機(jī)的接口電路P0.0~P0.7RSTP2.1P2.7ALERDWR8051AD0~AD7RSTIO/MCEALERDWRPAPBPC8155由右圖可得各口地址為:控制口:7F00HA口:7F01HB口:7F02HC口:7F03H定時(shí)/計(jì)數(shù)器低8位:7F04H定時(shí)/計(jì)數(shù)器高8位:7F05HRAM地址范圍:7E00H~7EFFH例:設(shè)AB為輸出,C口為輸入,則控制字為03H,初始化編程為:MOVDPTR,#7F00HMOV A,#03HMOVX@DPTR,A.(3)8155與單片機(jī)的接口電路P0.0~P0.7875四、串行擴(kuò)展介紹單片機(jī)的外部串行擴(kuò)展主要包括1-WIRE、I2C和SPI三種總線的擴(kuò)展。1.1-WIRE總線結(jié)構(gòu)1-WIRE總線結(jié)構(gòu)在一根單總線上可以懸掛多個(gè)器件的總線,總線由主機(jī)控制,數(shù)據(jù)可雙向傳輸。1-Wire單總線器件的硬件結(jié)構(gòu)如右圖所示。為了在單條傳輸線上能夠雙向傳輸?shù)刂?、?shù)據(jù)、控制信號(hào),序列號(hào)接收發(fā)射電源單總線電源地實(shí)現(xiàn)并行傳輸同樣的功能,總線只能采用特殊的接口協(xié)議,每次通信都要按規(guī)定的次序來傳輸?shù)刂贰?shù)據(jù)和控制信息。同時(shí)為了解決接收雙方的同步,規(guī)定了信號(hào)雙方傳輸時(shí)的時(shí)序和握手方式。.四、串行擴(kuò)展介紹1.1-WIRE總線結(jié)構(gòu)序列號(hào)接收發(fā)射電源單76對(duì)器件的地址和產(chǎn)品的識(shí)別,每個(gè)器件產(chǎn)品上都刻錄了電子識(shí)別碼—即產(chǎn)品的序列號(hào)。此序列號(hào)(ID)采用64位的二進(jìn)制ROM代碼,將個(gè)產(chǎn)品分開。具體的格式是:第一個(gè)字節(jié)是器件的家族代碼;接著的6個(gè)字節(jié)是每個(gè)器件唯一的序列號(hào);最后一個(gè)字節(jié)是前56位的CRC校驗(yàn)碼。此外一般的產(chǎn)品還含有接收控制、發(fā)射控制和電源存儲(chǔ)電路,可以直接從信號(hào)線上獲取電源,而無須再接電源引腳。1-WIRE總線具有結(jié)構(gòu)簡(jiǎn)單、成本低廉、節(jié)省I/O資源、便于總線擴(kuò)展和維護(hù)等優(yōu)點(diǎn)。單總線端口為漏極開路,要求外接一個(gè)約5k的上拉電阻以確保單總線的閑置狀態(tài)為高電平,并要求主機(jī)或從機(jī)通過一個(gè)漏極開路或三態(tài)端口連接至該單總線,使到設(shè)備在不發(fā)送數(shù)據(jù)時(shí)釋放單總線,以便總線被其他設(shè)備使用。.對(duì)器件的地址和產(chǎn)品的識(shí)別,每個(gè)器件產(chǎn)品上都刻錄了電子識(shí)77單總線的數(shù)據(jù)傳輸通常以16.3kbit/s的速率通信,超速模式下,可設(shè)定傳輸速率為100kbit/s左右,一般用于對(duì)速度要求不高的應(yīng)用系統(tǒng)中。單總線技術(shù)的作用距離一般達(dá)到200m,并允許掛上百個(gè)器件。2.1-Wire單總線器件的軟件操作為了識(shí)別單總線上的不同器件,在軟件的程序設(shè)計(jì)中,一般有以下步驟:(1)初始化命令(復(fù)位)
;(2)傳送ROM命令(尋找匹配器件和器件內(nèi)尋址;(3)傳送RAM命令(讀寫口地址或單元內(nèi)容)。除了搜索ROM命令和報(bào)警搜索命令例外,每次訪問單總線器件必須嚴(yán)格遵守這3個(gè)步驟,如果出現(xiàn)序列混亂則單總線器件不會(huì)響應(yīng)主機(jī)要求,在執(zhí)行兩者中任何一條命令之后,主機(jī)不能執(zhí)行其后的功能命令時(shí)必須返回至第一步。.單總線的數(shù)據(jù)傳輸通常以16.3kbit/s的速率通78上述三種命令可分解位總線上的三種操作:(1)初始化(復(fù)位)(2)寫0、1;(3)讀0、1。每種操作都有自己時(shí)序的要求,軟件設(shè)計(jì)中應(yīng)保證按規(guī)定的時(shí)序要求進(jìn)行編程。以下是三種操作的時(shí)序:主機(jī)發(fā)出低電平主機(jī)發(fā)復(fù)位脈沖480-960us等待15-60us
器件發(fā)響應(yīng)脈沖60-240us電阻上拉激發(fā)低電平VCCGND1線總線圖:復(fù)位時(shí)序.上述三種命令可分解位總線上的三種操作:主機(jī)發(fā)出低電平79寫時(shí)隙時(shí)序圖
主機(jī)寫數(shù)據(jù)時(shí),應(yīng)先將數(shù)據(jù)線拉低1微秒以上,再寫入數(shù)據(jù)(寫“1”高,寫“0”為低)。待主機(jī)寫入的數(shù)據(jù)變化15~60微秒后,總線上的器件將對(duì)數(shù)據(jù)線采樣。要求主機(jī)寫入數(shù)據(jù)的時(shí)間保持在60~120微秒之間。兩次寫數(shù)據(jù)操作之間的間隙應(yīng)大于1微秒。復(fù)位信號(hào)要求主機(jī)將數(shù)據(jù)線拉低并保持480~960微秒,再釋放數(shù)據(jù)線,由上拉電阻拉高15~60微秒。然后再由被復(fù)位的器件發(fā)出低電平60~240微秒,就完成了復(fù)位操作。
.寫時(shí)隙時(shí)序圖主機(jī)寫數(shù)據(jù)時(shí),應(yīng)先將數(shù)據(jù)線拉低80讀時(shí)隙時(shí)序圖讀數(shù)據(jù)之前,主機(jī)應(yīng)先將數(shù)據(jù)線拉低,再釋放??偩€上被讀期間在數(shù)據(jù)線從高電平跳低后15微秒內(nèi)將數(shù)據(jù)送到數(shù)據(jù)線上。主機(jī)在15微秒后讀取數(shù)據(jù)線。.讀時(shí)隙時(shí)序圖讀數(shù)據(jù)之前,主機(jī)應(yīng)先將數(shù)據(jù)線拉低,再釋放81以18B20測(cè)溫芯片為例,下圖是它的內(nèi)部框圖:64位ROM和一線端口存儲(chǔ)和控制邏輯高速暫存器8位CRC生成器溫度傳感器高溫觸發(fā)器TH低溫觸發(fā)器TL配置寄存器供電方式選擇
.以18B20測(cè)溫芯片為例,下圖是它的內(nèi)部框圖:存儲(chǔ)和控制82跟一般的1-WIRE器件一樣,有ROM和RAM操作命令.1.ROM的主要操作命令:讀序列號(hào)命令(33H):讀總線上DS18B20的序列號(hào)器件匹配命令(55H):對(duì)總線上DS18B20尋址搜索ROM命令(F0H):識(shí)別總線上多個(gè)器件的ROM編碼跳過ROM(CCH):命令執(zhí)行后,將省去每次與ROM有關(guān)的操作報(bào)警檢測(cè)命令(ECH):搜索有報(bào)警的器件2.RAM的主要操作命令寫入命令 (4EH):寫上、下限值到DS18B20中讀出命令 (BEH):從DS18B20讀出9字節(jié)數(shù)據(jù)(其中有溫度 值,報(bào)警值等)開始轉(zhuǎn)換 (44H):啟動(dòng)溫度變換無讀存儲(chǔ)器命令,讀電源標(biāo)志 (B4H):檢測(cè)DS18B20的供電方式
.跟一般的1-WIRE器件一樣,有ROM和RAM操作命令.832、I2C總線結(jié)構(gòu)及其擴(kuò)展方法(1)總線系統(tǒng)結(jié)構(gòu)SDASCLSDASCLSDASCLVCC主機(jī)從機(jī)1從機(jī)2SCLSDA
I2C總線用兩跟雙向傳輸線SDA和SCL進(jìn)行全雙工數(shù)據(jù)傳送,可以并行擴(kuò)展多個(gè)外圍器件。總線采用了器件地址硬件設(shè)置,無須用外圍器件片選信號(hào)方式的尋址方法。
總線平時(shí)通過上拉電阻接到電源,在空閑情況下,2根線都處于高電平。
.2、I2C總線結(jié)構(gòu)及其擴(kuò)展方法SDASCLSDA84(2)總線的四種狀態(tài)和數(shù)據(jù)傳輸時(shí)序總線狀態(tài)SCLSDA總線不忙高電平高電平開始傳送數(shù)據(jù)高電平停止傳送數(shù)據(jù)高電平
數(shù)據(jù)傳送SCL低電平時(shí)更改數(shù)據(jù),用SCL的上升沿讀取數(shù)據(jù),在SCL高電平時(shí)數(shù)據(jù)不能變動(dòng)I2C數(shù)據(jù)傳送時(shí)序.(2)總線的四種狀態(tài)和數(shù)據(jù)傳輸時(shí)序總線狀態(tài)SCL85(3)數(shù)據(jù)傳輸格式由于數(shù)據(jù)和地址信號(hào)都用一根數(shù)據(jù)線SDA來傳輸,何時(shí)傳輸?shù)刂?什么時(shí)候是主器件讀?什么時(shí)候是主器件寫?如何保證傳輸?shù)恼_?必須有一個(gè)共同接受的規(guī)定:①.主控器件寫操作主器件向被控器件發(fā)送n個(gè)數(shù)據(jù)的數(shù)據(jù)格式如下:起始信號(hào)S送7位地址和一位(為”0”)傳送方向SLAW應(yīng)答信號(hào)A發(fā)送數(shù)據(jù)DATA1應(yīng)答信號(hào)A……發(fā)送數(shù)據(jù)DATAn-1應(yīng)答信號(hào)A發(fā)送數(shù)據(jù)DATAn非應(yīng)答信號(hào)A/A’停止信號(hào)P②主控器件讀操作主器件向被控器件讀n個(gè)數(shù)據(jù)的數(shù)據(jù)格式如下:起始信號(hào)S送7位地址和一位(為”1”)傳送方向SLAR應(yīng)答信號(hào)A接收數(shù)據(jù)DATA1應(yīng)答信號(hào)A……接收數(shù)據(jù)DATAn-1應(yīng)答信號(hào)A接收數(shù)據(jù)DATAn非應(yīng)答信號(hào)A/A’停止信號(hào)P.(3)數(shù)據(jù)傳輸格式起始信號(hào)送7位地址和一位(為”0”)傳送86③主控器讀寫操作
主控器讀寫操作是指主控期間在一次數(shù)據(jù)過程中需要改變數(shù)據(jù)傳送方向的操作。原則上此過程中的讀寫操作分別與上述方法一樣,只是在數(shù)據(jù)傳送方向改變后,必須由主控器件發(fā)出從新啟動(dòng)信號(hào)。(4)串行EEPROM的擴(kuò)展技術(shù)串行EEPROM主要的型號(hào)如下表:型號(hào)容量AT24C01128X8AT24C02256X8AT24C04512X8AT24C081024X8AT24C0162048X8SDAVCCSCLA0TESTA1VSSA256748123NCNCSDAVCCSCLTESTNCNCVSSA0NCA1NCA219104678141312112351)引腳排列AT24系列芯片有8腳和14腳2種,其中:SDA:數(shù)據(jù)線SCL:時(shí)鐘線TEST:測(cè)試線, 平時(shí)接地..③主控器讀寫操作型號(hào)容量AT24C01128X8AT287
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年公司商品交換合同
- 2025年寫字樓租賃合同要點(diǎn)速覽
- 2025年住宅集成吊頂裝飾合同樣本
- 加盟意向合同是否構(gòu)成正式加盟合同
- 2025年個(gè)人快遞送貨合同
- 私人車輛買賣合同細(xì)則
- 2025年分支機(jī)構(gòu)策劃合作經(jīng)營(yíng)授權(quán)合同
- 校園設(shè)施維護(hù)與管理合同
- 2025年人力資源策劃管理合同樣本
- 新能源汽車租賃合同之一
- 人教版一年級(jí)數(shù)學(xué)2024版上冊(cè)期末測(cè)評(píng)(提優(yōu)卷一)(含答案)
- 浙江省杭州市2024年中考語文試卷(含答案)
- 碼頭安全生產(chǎn)知識(shí)培訓(xùn)
- 初中數(shù)學(xué)解《一元二次方程》100題含答案解析
- 種植二期手種植義齒II期手術(shù)護(hù)理配合流程
- 安全隱患舉報(bào)獎(jiǎng)勵(lì)制度
- 牛津書蟲系列1-6級(jí) 雙語 4B-03.金銀島中英對(duì)照
- 瀝青拌合站安裝專項(xiàng)施工方案
- 2024-2025學(xué)年深圳市南山區(qū)六年級(jí)數(shù)學(xué)第一學(xué)期期末學(xué)業(yè)水平測(cè)試試題含解析
- 2024-2030年中國(guó)免疫細(xì)胞存儲(chǔ)行業(yè)市場(chǎng)發(fā)展分析及競(jìng)爭(zhēng)形勢(shì)與投資戰(zhàn)略研究報(bào)告
- 工貿(mào)行業(yè)企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化建設(shè)實(shí)施指南
評(píng)論
0/150
提交評(píng)論