版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、p總線的概念p總線的并行擴(kuò)展p總線的串行擴(kuò)展3.1 總線總線是單片機(jī)應(yīng)用系統(tǒng)中,各部件之間傳輸信息的通路,為CPU和其他部件之間提供數(shù)據(jù)、地址以及控制信息。按總線所在位置可分:內(nèi)部總線和外部總線,前者是指CPU系統(tǒng)內(nèi)部各部件之間的通路,后者指CPU系統(tǒng)和其外圍單元之間的通路,通常所說(shuō)總線是指外部總線。按通路上傳輸?shù)男畔⒖煞郑簲?shù)據(jù)總線(DB,Data Bus)、地址總線(AB,Address Bus)和控制總線(CB,Control Bus)。 3.1 總線 1. 數(shù)據(jù)總線數(shù)據(jù)總線數(shù)據(jù)總線(DB)用于單片機(jī)與存儲(chǔ)器之間或單片機(jī)與I/O端口之間傳輸數(shù)據(jù)。數(shù)據(jù)總線的位數(shù)與單片機(jī)處理數(shù)據(jù)的字長(zhǎng)一致,如
2、8051單片機(jī)是8位字長(zhǎng),數(shù)據(jù)總線的位數(shù)也是8位。從結(jié)構(gòu)上來(lái)說(shuō)數(shù)據(jù)總線是雙向的,即數(shù)據(jù)既可以從單片機(jī)送到I/O端口,也可以從I/O端口送到單片機(jī)。3.1 總線2. 地址總線地址總線地址總線AB用于傳送單片機(jī)送出的地址信號(hào),以便進(jìn)行存儲(chǔ)單元和I/O端口的選擇。地址總線的位數(shù)決定了單片機(jī)可擴(kuò)展存儲(chǔ)容量的大小。如8051單片機(jī)地址總線為16位,其最大可擴(kuò)展存儲(chǔ)容量為216=64K字節(jié)。地址總線是單向的,因地址信息總是由CPU發(fā)出的。3. 控制總線控制總線控制總線用來(lái)傳輸控制信號(hào),其中包括CPU送往外圍單元的控制信號(hào),如讀信號(hào)、寫(xiě)信號(hào)和中斷響應(yīng)信號(hào)等;還包括外圍單元發(fā)給送給CPU的信號(hào),如時(shí)鐘信號(hào)、中
3、斷請(qǐng)求信號(hào)以及準(zhǔn)備就緒信號(hào)等。3.2 并行擴(kuò)展I/O擴(kuò)展總線擴(kuò)展3.2.1 并行總線擴(kuò)展1.并行總線組成并行總線組成 80C51系列總線型單片機(jī)中,由P0口做地址/數(shù)據(jù)復(fù)用口;P2口做地址線的高八位;P3口的RD、WR加上控制線EA、ALE、PSEN等組成控制總線。(1) 地址總線A0A15l地址總線的高8位是由P2口提供的,低8位是由P0口提供的。l在訪問(wèn)外部存儲(chǔ)器時(shí),由地址鎖存信號(hào)ALE的下降沿把P0口的低8位以及P2口的高8位鎖存至地址鎖存器中,從而構(gòu)成系統(tǒng)的16位地址總線。l實(shí)際應(yīng)用系統(tǒng)中,高位地址線并不固定為8位,需要用幾位就從P2口中引出幾條口線。3.2.1 并行總線擴(kuò)展(2) 數(shù)
4、據(jù)總線D0D7l數(shù)據(jù)總線是由P0口提供的,因?yàn)镻0口線既用作地址線,又用作數(shù)據(jù)線(分時(shí)使用),因此,需要加一個(gè)8位鎖存器。l在實(shí)際應(yīng)用時(shí),先把低8位地址送鎖存器暫存,然后再由地址鎖存器給系統(tǒng)提供低8位地址,而把P0口線作為數(shù)據(jù)線使用。l在讀信號(hào)RD與寫(xiě)信號(hào)WR有效時(shí),P0口上出現(xiàn)的為數(shù)據(jù)信息。 3.2.1 并行總線擴(kuò)展 (3) 控制總線 系統(tǒng)控制總線共12根,既P3口的第二功能再加上RESET、EA、ALE和PSEN。實(shí)際應(yīng)用中的常用控制信號(hào)如下。l使用ALE作為地址鎖存的選通信號(hào),以實(shí)現(xiàn)低8位地址的鎖存。l以PSEN信號(hào)作為擴(kuò)展程序存儲(chǔ)器的讀選通信號(hào)。l以EA信號(hào)作為內(nèi)、外程序存儲(chǔ)器的選擇信
5、號(hào)。l以RD和WR作為擴(kuò)展數(shù)據(jù)存儲(chǔ)器和I/O端口的讀、寫(xiě)選通信號(hào)。執(zhí)行MOVX指令時(shí),這兩個(gè)信號(hào)分別自動(dòng)有效。 3.2.1 并行總線擴(kuò)展單片機(jī)的三總線結(jié)構(gòu) 3.2.1 并行總線擴(kuò)展2. 總線擴(kuò)展的特性總線擴(kuò)展的特性(1) 三態(tài)輸出 總線在無(wú)數(shù)據(jù)傳送時(shí)呈高阻態(tài),可同時(shí)擴(kuò)展多個(gè)并行接口器件,因此存在尋址問(wèn)題。單片機(jī)通過(guò)控制信號(hào)來(lái)選通芯片,然后實(shí)現(xiàn)一對(duì)一的通信。(2) 時(shí)序交互 單片機(jī)并行擴(kuò)展總線有嚴(yán)格的時(shí)序要求,該時(shí)序由單片機(jī)的時(shí)鐘系統(tǒng)控制,嚴(yán)格按照CPU的時(shí)序進(jìn)行數(shù)據(jù)傳輸。(3) 總線協(xié)議的CPU控制 通過(guò)并行總線接口的數(shù)據(jù)傳輸,不需要握手信號(hào),雙方都嚴(yán)格按照CPU的時(shí)序協(xié)議進(jìn)行,也不需要指令的
6、協(xié)調(diào)管理。 3.2.1 并行總線擴(kuò)展并行總線擴(kuò)展的主要問(wèn)題是總線連接電路設(shè)計(jì)、器件的選擇以及器件內(nèi)部的尋址等。并行總線擴(kuò)展時(shí),其所有的外圍擴(kuò)展設(shè)備的并行總線引腳都連到相同的數(shù)據(jù)總線(DB)、地址總線(AB)以及公共的控制總線RD、WR上。其中數(shù)據(jù)總線為三態(tài)口,在不傳送數(shù)據(jù)時(shí)為高阻態(tài)。總線分時(shí)對(duì)不同的外設(shè)進(jìn)行數(shù)據(jù)傳送。總線總線連接方式的重點(diǎn)在于外圍設(shè)備片選信號(hào)的產(chǎn)生連接方式的重點(diǎn)在于外圍設(shè)備片選信號(hào)的產(chǎn)生。該信號(hào)主要由以下兩種方法產(chǎn)生。l線選法:用所需的低位地址線進(jìn)行片外存儲(chǔ)單元I/O端口尋址,余下的高位地址線輸出各芯片的片選信號(hào),當(dāng)芯片對(duì)應(yīng)的片選地址線輸出有效電平時(shí),該芯片選通操作。l譯碼法:
7、該方法需要用到譯碼器。采用譯碼法時(shí),仍由低位地址線作片外尋址,而高位地址線用于譯碼器的輸入,譯碼器的輸出信號(hào)作各芯片的選通信號(hào)。3.2.1 并行總線擴(kuò)展3. 程序存儲(chǔ)器擴(kuò)展程序存儲(chǔ)器擴(kuò)展n單片機(jī)外部擴(kuò)展常用程序存儲(chǔ)器芯片為EPROM,其掉電后信息不會(huì)丟失,且只有在紫外線的照射下,存儲(chǔ)器的單元信息才可擦除。n用作擴(kuò)展的EPROM主要是27系列,如2716、2732、2764、27128、27256等,其中高位數(shù)字27表示該芯片是EPROM,低位數(shù)字表明存儲(chǔ)容量,如2716表示16K個(gè)存儲(chǔ)位,亦即字節(jié)容量為2K的EPROM。n常用的還有EEPROM ,即28系列,如2816/2817、2864等,
8、型號(hào)含義同上。 3.2.1 并行總線擴(kuò)展單片機(jī)與外部ROM的連接 片外擴(kuò)展,片外擴(kuò)展,EA低電平有效低電平有效3.2.1 并行總線擴(kuò)展3. 數(shù)據(jù)存儲(chǔ)器擴(kuò)展數(shù)據(jù)存儲(chǔ)器擴(kuò)展數(shù)據(jù)存儲(chǔ)器用于存儲(chǔ)現(xiàn)場(chǎng)采集的原始數(shù)據(jù)、運(yùn)算結(jié)果等。外部數(shù)據(jù)存儲(chǔ)器應(yīng)能隨機(jī)讀/寫(xiě),通常由半導(dǎo)體靜態(tài)隨機(jī)讀/寫(xiě)存儲(chǔ)器RAM組成。EEPROM芯片有時(shí)也會(huì)用作外部數(shù)據(jù)存儲(chǔ)器。靜態(tài)RAM主要有讀出、寫(xiě)入、維持三種工作方式。常用的靜態(tài)RAM(SRAM)電路有61系列的6116以及62系列的6264、62128、62256等。 3.2.1 并行總線擴(kuò)展 單片機(jī)的RD接EPROM的輸出允許OE;WR接EPROM的寫(xiě)允許WE。 P2口的P2.3
9、、P2.4未用,所以它們的狀態(tài)與2764的尋址無(wú)關(guān);假設(shè)無(wú)關(guān)位P2.3和P2.4為0,則1號(hào)片的地址為C000HC7FFH,2號(hào)片的地址為 A000HA7FFH,3號(hào)片的地址為6000H67FFH。3.2.1 并行總線擴(kuò)展8051擴(kuò)展6KB RAM 3.2.1 并行總線擴(kuò)展用線選法同時(shí)擴(kuò)展一片62256 RAM和一片27256 ROM,邏輯電路圖如下圖所示。 32KB EPROM的地址為 0000H7FFFH, 32KB RAM的地址也為 0000H7FFFH; 雖然片選信號(hào)同為P2.7,兩者的地址相同,但不會(huì)發(fā)生地址沖突;因?yàn)橥獠縍AM的讀寫(xiě)控制信號(hào)為RD和WR,它們由MOVX指令產(chǎn)生,而外
10、部ROM的讀控制信號(hào)在CPU向外部ROM取指令時(shí)才產(chǎn)生,也就是說(shuō)外部RAM的讀寫(xiě)控制信號(hào)與外部ROM的讀控制信號(hào)不會(huì)同時(shí)產(chǎn)生。3.2.1 并行總線擴(kuò)展8051擴(kuò)展ROM與RAM的邏輯電路圖 3.2.1 并行總線擴(kuò)展5. 簡(jiǎn)單輸入簡(jiǎn)單輸入/輸出擴(kuò)展輸出擴(kuò)展簡(jiǎn)單I/O接口擴(kuò)展所用芯片為74系列的TTL電路,CMOS電路也可作為MCS-51的擴(kuò)展I/O接口。這些芯片結(jié)構(gòu)簡(jiǎn)單,配置靈活方便,比較容易擴(kuò)展,使系統(tǒng)降低了成本、縮小了體積,因此在單片機(jī)應(yīng)用系統(tǒng)中經(jīng)常被采用。常用芯片有74LS244(八緩沖器/線驅(qū)動(dòng)器/線接收器)、74LS245(八雙向總線收發(fā)器)、74LS273(八D觸發(fā)器)、74LS37
11、3(八D鎖存器)、74LS377(帶使能的八D觸發(fā)器)等。74LS244是八緩沖器/線驅(qū)動(dòng)器/線接收器,內(nèi)部有兩組4位三態(tài)緩沖器,具有數(shù)據(jù)緩沖隔離和驅(qū)動(dòng)作用,其輸入阻抗較高,輸出阻抗低,常用于單向三態(tài)緩沖輸出。3.2.1 并行總線擴(kuò)展P0口作為雙向數(shù)據(jù)總線,用74LS244擴(kuò)展8位輸入,輸入八只控制開(kāi)關(guān)的控制信號(hào);用74LS273擴(kuò)展8位輸出,輸出信號(hào)控制八只發(fā)光二極管。編寫(xiě)控制程序,可使八只發(fā)光二極管分別受各自對(duì)應(yīng)的控制開(kāi)關(guān)的控制。 只要P2.7為0,就選中74LS244或74LS273,其他位均為無(wú)關(guān)位,所以74LS244和74LS273的地址均為7FFFH。 3.2.1 并行總線擴(kuò)展簡(jiǎn)單
12、I/O口擴(kuò)展電路 3.2.2 并行I/O擴(kuò)展1. 8255A的結(jié)構(gòu)的結(jié)構(gòu)8255A是一個(gè)可編程并行接口芯片,它主要作為外圍設(shè)備與微型計(jì)算機(jī)總線之間的I/O接口。8255A可以通過(guò)軟件來(lái)設(shè)置芯片的工作方式,因此用8255A連接外部設(shè)備時(shí),通常不需要再附加外部電路,給使用帶來(lái)很大的方便。 8255A有三個(gè)8位可編程并行I/O端口,從編程上可分成2組,每組12個(gè),有3種工作模式。8255A各引腳定義如下:lD7D0:雙向數(shù)據(jù)線,用于傳送數(shù)據(jù)和控制字。lPA7PA0、PB7PB0、PC7PC0:輸入/輸出信號(hào)線,用于傳送數(shù)據(jù)。lCS:片選信號(hào),低電平有效。只有該引腳為低電平時(shí),8255A才與CPU建立
13、通信。lRD:芯片讀出信號(hào),低電平有效。當(dāng)引腳為低電平時(shí),CPU可以從8255A中讀取輸入數(shù)據(jù)。lWR:芯片寫(xiě)入信號(hào),低電平有效。當(dāng)引腳為低電平時(shí),CPU可以往8255A中寫(xiě)入數(shù)據(jù)或控制字。3.2.2 并行I/O擴(kuò)展lA0 、A1:端口選擇信號(hào),這兩個(gè)引腳的輸入和RD、WR兩個(gè)引腳的輸入,一起控制8255A內(nèi)部三個(gè)數(shù)據(jù)端口及一個(gè)控制端口的選擇。它們一般和地址總線的兩個(gè)最低位(A0、A1)相連。選擇如下: A1A0為00時(shí)選中端口A;為01時(shí)選中端口B;為10時(shí)選中端口C;為11時(shí)選中命令字口。lRESET:復(fù)位,當(dāng)該輸入信號(hào)為高電平時(shí),控制寄存器被清除,所有的端口(A、B、C)都被設(shè)為輸入狀態(tài)
14、。復(fù)位引腳上的高電平,使各個(gè)端口都置為輸入模式(也就是24個(gè)引腳都被置為高阻態(tài))。 3.2.2 并行I/O擴(kuò)展3.2.2 并行I/O擴(kuò)展8255A8255A的引腳與封裝的引腳與封裝 8255A8255A的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu) 3.2.2 并行I/O擴(kuò)展8255A可編程接口的組成l數(shù)據(jù)總線緩沖器 這是一個(gè)雙向三態(tài)的8位數(shù)據(jù)緩沖器,8255A正是通過(guò)它和系統(tǒng)數(shù)據(jù)總線相連。該緩沖器根據(jù)CPU的輸入或輸出指示來(lái)傳遞或接收數(shù)據(jù)。CPU發(fā)給8255A的控制字和狀態(tài)字也是通過(guò)這個(gè)緩沖器傳遞的。l讀/寫(xiě)控制邏輯電路 這部分電路管理所有數(shù)據(jù)、控制信息、狀態(tài)信息的內(nèi)部及外部的傳遞。它接收來(lái)自CPU地址總線和控制總線
15、的信號(hào),據(jù)此向控制部件提出請(qǐng)求。3.2.2 并行I/O擴(kuò)展lA組控制和B組控制 每個(gè)端口的功能配置都是由系統(tǒng)軟件來(lái)實(shí)現(xiàn)的。實(shí)質(zhì)上也就是CPU給8255A一個(gè)控制字??刂谱种泻小肮ぷ鞣绞健薄ⅰ鞍次恢梦弧?、“按位復(fù)位”等一些信息,依此來(lái)初始化8255A的功能配置。每個(gè)控制塊(A組控制和B組控制)一方面接收來(lái)自讀/寫(xiě)控制邏輯電路的“請(qǐng)求”信號(hào),一方面接收來(lái)自內(nèi)部數(shù)據(jù)總線的“控制字”,并據(jù)此決定相連端口的合適工作方式。但控制字寄存器只能寫(xiě),不能讀??刂谱挚煞譃閮深?,一類為各端口的方式選擇控制字;一類為端口C按位置位/復(fù)位的控制字。 A組控制:控制端口A和端口C的高位(PC7PC4) B組控制:控制端
16、口B和端口C的低位(PC3PC0) 3.2.2 并行I/O擴(kuò)展l端口A、B、C 8255A有三個(gè)8位數(shù)據(jù)端口(A、B、C)。設(shè)計(jì)人員可以用軟件使它們分別作為輸入端口或輸出端口。不過(guò),這3個(gè)端口有著各自的特點(diǎn)以增強(qiáng)8255A的能動(dòng)性和彈性。端口A:對(duì)應(yīng)一個(gè)8位數(shù)據(jù)輸出的鎖存器/緩沖器和一個(gè)8位數(shù)據(jù)輸入的鎖存器。端口B:對(duì)應(yīng)一個(gè)8位數(shù)據(jù)輸入輸出的鎖存器/緩沖器和一個(gè)8位數(shù)據(jù)輸入的緩沖器。3.2.2 并行I/O擴(kuò)展端口C:對(duì)應(yīng)一個(gè)8位數(shù)據(jù)的輸出鎖存器/緩存器和一個(gè)8位數(shù)據(jù)的輸入緩存(對(duì)于輸入沒(méi)有鎖存)。該端口可以在8255A的不同工作方式下被分成2個(gè)4位端口,每個(gè)4位端口都包括一個(gè)4位的鎖存,并為端
17、口A和端口B提供控制信號(hào)輸出和狀態(tài)信號(hào)輸入。3.2.2 并行I/O擴(kuò)展8255A可編程接口主要由以下幾部分組成:l端口A、B、C端口A、B的工作方式可以分別定義,而端口C要依據(jù)A、B的工作方式來(lái)分成兩部分。所有的輸出寄存器,包括狀態(tài)鎖存器(Status Flip-Flops),在任何模式轉(zhuǎn)換時(shí)都會(huì)被復(fù)位。各個(gè)工作方式可以相結(jié)合,因此對(duì)于所有的I/O結(jié)構(gòu)來(lái)說(shuō),它們的功能都可以被裁剪。例如:端口B可以設(shè)置為方式0,監(jiān)視簡(jiǎn)單的開(kāi)關(guān)結(jié)束,或者顯示計(jì)算的結(jié)果,而端口A可以在方式1下工作,檢測(cè)鍵盤(pán)的輸入,或者檢測(cè)一個(gè)靠基本中斷工作的磁帶播放機(jī)的播放。3.2.2 并行I/O擴(kuò)展2. 8255A的工作方式的工
18、作方式 8255A在三種基本的方式下工作:l方式 0:基本輸入/輸出。l方式 1:選通的輸入/輸出。l方式 2:雙向傳輸。 3.2.2 并行I/O擴(kuò)展方式方式0(0(基本輸入基本輸入/ /輸出輸出) ) 這種工作方式是指三個(gè)數(shù)據(jù)端口提供簡(jiǎn)單的輸入和輸出功能。不需要“握手”信號(hào),數(shù)據(jù)僅是簡(jiǎn)單地寫(xiě)進(jìn)特定的端口,或從該端口讀出。方式0的基本工作特點(diǎn)如下:l兩個(gè)八位的端口和兩個(gè)4位的端口。l任何端口都可以輸入或者輸出。l輸出被鎖存。l輸入不被鎖存。l在該方式下,各端口的輸入/輸出有16種不同的組合。 3.2.2 并行I/O擴(kuò)展方式方式1(1(選通的輸入選通的輸入/ /輸出輸出) ) 這種工作方式要依據(jù)
19、選通信號(hào)或者“握手”信號(hào)來(lái)進(jìn)行數(shù)據(jù)的傳遞。在該方式下,端口A、B要利用端口C來(lái)產(chǎn)生或接收“握手”信號(hào)。方式1的基本工作特點(diǎn)如下:l端口A、B都可單獨(dú)在方式1下作輸入端口或輸出端口,以支持各種選通的I/O應(yīng)用程序。l每組包括一個(gè)8位的數(shù)據(jù)端口和一個(gè)4位的控制/數(shù)據(jù)端口。l4位的端口要為8位的數(shù)據(jù)端口提供控制和狀態(tài)信息。3.2.2 并行I/O擴(kuò)展輸入的控制信號(hào)功能如下:lSTB(選通信號(hào)輸入端):該引腳為低電平時(shí),數(shù)據(jù)被送入輸入鎖存器。lIBF(輸入緩沖器滿信號(hào)):8255A的輸出狀態(tài)信號(hào),高電平有效,表明輸入緩沖器已滿,即已有一個(gè)新數(shù)據(jù)寫(xiě)入緩存器。IBF信號(hào)是由STB信號(hào)使其置位的,而由讀信號(hào)R
20、D的上升沿復(fù)位。lINTR(中斷請(qǐng)求):當(dāng)某個(gè)輸入裝置需要服務(wù)時(shí),該信號(hào)為高電平,向CPU提出中斷請(qǐng)求。當(dāng)STB、IBF以及INTE(中斷允許標(biāo)志)均為高電平時(shí),INTR將被置為高電平;由讀信號(hào)RD的下降沿使其復(fù)位。這個(gè)程序使得輸入設(shè)備僅通過(guò)選通信號(hào)就可向CPU提出中斷,要求其給予服務(wù)。3.2.2 并行I/O擴(kuò)展輸出控制信號(hào)功能如下:lOBF(輸出緩存滿信號(hào)):低電平有效,由8255A送給外設(shè)。有效時(shí)表明CPU已經(jīng)向指定的端口輸出了數(shù)據(jù)。由輸入信號(hào)WR的上升沿使OBF置位,由輸入信號(hào)ACK的有效信號(hào)使其復(fù)位。lACK(外設(shè)響應(yīng)輸入):該輸入信號(hào)的低電平通知8255A端口A或端口B的數(shù)據(jù)已被接收
21、,從本質(zhì)上來(lái)說(shuō)該信號(hào)是來(lái)自外圍設(shè)備的響應(yīng)信號(hào),表明外圍設(shè)備已經(jīng)接收來(lái)自CPU的數(shù)據(jù)。lINTR(中斷請(qǐng)求):當(dāng)一輸出設(shè)備已接收來(lái)自CPU的數(shù)據(jù)時(shí),該信號(hào)為高電平,用來(lái)向CPU提出中斷請(qǐng)求。當(dāng)ACK、OBF以及INTE均為高電平時(shí),該信號(hào)被置為高電平;寫(xiě)信號(hào)WR的下降沿使其復(fù)位。lINTE A(A口中斷允許標(biāo)志)由按位置位/復(fù)位的PC6控制;INTE B(B口中斷允許標(biāo)志)由PC2控制。3.2.2 并行I/O擴(kuò)展方式方式2(2(選通的雙向總線輸入選通的雙向總線輸入/ /輸出輸出) ) 這種工作方式方便了8255A和外圍設(shè)備或外圍系統(tǒng)之間在一個(gè)8位總線上的通信(雙向輸入輸出總線)?!拔帐帧毙盘?hào)用來(lái)
22、維持適當(dāng)?shù)目偩€流動(dòng)規(guī)則,使該方式與方式1有相似的風(fēng)格。中斷產(chǎn)生機(jī)制和允許/不允許機(jī)制也適用于方式。方式2的基本工作特點(diǎn)如下:l只適用于端口A。l一個(gè)8位的雙向總線端口(端口A)和一個(gè)5位的控制端口(端口C)。l輸入和輸出數(shù)據(jù)都被鎖存。l端口C的5個(gè)數(shù)位為8位的雙向總線端口A提供控制和狀態(tài)信息。l雙向輸入/輸出總線的控制信號(hào)INTR(中斷請(qǐng)求),這是一個(gè)高電平有效的輸出信號(hào),是8255A發(fā)給CPU要求其寫(xiě)入或接收數(shù)據(jù)的中斷請(qǐng)求。3.2.2 并行I/O擴(kuò)展輸出的控制信號(hào)功能如下:lOBF(輸出緩沖滿):該輸出信號(hào)低電平有效,表明CPU已往端口寫(xiě)入數(shù)據(jù)。lACK(響應(yīng)信號(hào)):該輸入信號(hào)低電平有效,有
23、效時(shí)使得端口A的三態(tài)輸出緩沖器輸出數(shù)據(jù),反之,輸出緩沖器將處于高阻態(tài)。lINTE1(和OBF相連的雙穩(wěn)態(tài)多諧振蕩器的INTE信號(hào)):由按位置位/復(fù)位的PC6控制。3.2.2 并行I/O擴(kuò)展輸入的控制信號(hào)功能如下:lSTB(選通輸入):該輸入信號(hào)低電平有效,有效時(shí)將外設(shè)傳來(lái)的數(shù)據(jù)輸入鎖存器。lIBF(輸入緩存滿):該輸出信號(hào)高電平有效,表明數(shù)據(jù)已被輸入鎖存器。lINTE2(和IBF相連的雙穩(wěn)態(tài)多諧振蕩器的INTE信號(hào)):由按位置位/復(fù)位的PC4控制。3.2.2 并行I/O擴(kuò)展端口端口C C按位置位按位置位/ /復(fù)位的特點(diǎn)復(fù)位的特點(diǎn)l端口C的任一位都可由一個(gè)輸出指令置位或者復(fù)位。這個(gè)特點(diǎn)也減少了基
24、于控制的應(yīng)用軟件中的軟件請(qǐng)求。當(dāng)端口C用來(lái)為端口A、B提供狀態(tài)/控制信號(hào)時(shí),C的每一位都可由按位置位/復(fù)位操作來(lái)置位或復(fù)位,看起來(lái)就像是數(shù)據(jù)輸出端口。l8255A工作在方式1或方式2下時(shí),控制信號(hào)也就是8255A發(fā)給CPU的中斷請(qǐng)求。中斷請(qǐng)求信號(hào)一般是由端口C發(fā)出的,由相連的INTE(中斷允許) 雙穩(wěn)態(tài)多諧振蕩器用端口C的按位置位/復(fù)位功能來(lái)禁止或允許。這種方式允許編程人員控制特定的I/O設(shè)備向CPU發(fā)出的中斷信號(hào),同時(shí)不會(huì)影響中斷體系中的其他設(shè)備。 3.2.2 并行I/O擴(kuò)展方式選擇控制字的格式如下: D7 D6 D5 D4 D3 D2 D1 D0lD7:1。lD6D5:端口A工作方式選擇。
25、00代表方式0;01代表方式1;1x代表方式2。lD4:端口A的輸入/輸出選擇。1代表輸入;0代表輸出。lD3:PC7PC4的輸入/輸出選擇。1代表輸入;0代表輸出。lD2:端口B工作方式選擇。0代表方式0;1代表方式1。lD1:端口B的輸入/輸出選擇。1代表輸入;0代表輸出。lD0:PC3PC0的輸入/輸出選擇。1代表輸入;0代表輸出。3.2.2 并行I/O擴(kuò)展端口C按位置位/復(fù)位的控制字的格式如下: D7 D6 D5 D4 D3 D2 D1 D0lD7:0。lD6D5D4:無(wú)關(guān)。lD3D2D1:端口C的位選擇: 000代表PC0;001代表PC1;010代表PC2;011代表PC3。 10
26、0代表PC4;101代表PC5;110代表PC6;111代表PC7。lD0:1代表置1;0代表置0。 3.2.2 并行I/O擴(kuò)展 3.8255A可編程并行接口擴(kuò)展應(yīng)用實(shí)例可編程并行接口擴(kuò)展應(yīng)用實(shí)例【例】 用8255的PA、PB、PC口分別作為輸入口接八只控制開(kāi)關(guān),或作為輸出口接八只發(fā)光二極管,編寫(xiě)控制程序,使八只發(fā)光二極管分別受各自對(duì)應(yīng)的控制開(kāi)關(guān)的控制。解:假設(shè):端口A地址為FF28H,端口B地址為FF29H,端口C地址為FF2AH,控制端口地址為FF2BH。PA口作為輸入口接八只控制開(kāi)關(guān),PB口作為輸出口接八只發(fā)光二極管。3.2.2 并行I/O擴(kuò)展3.2.2 并行I/O擴(kuò)展【例例】 用用82
27、558255控制打印機(jī),打印機(jī)與控制打印機(jī),打印機(jī)與80518051采用查詢方式交換采用查詢方式交換數(shù)據(jù)數(shù)據(jù)。解:下圖是8255A作為打印機(jī)接口與8051相連的電路圖。其工作方式為0,片選信號(hào)為P0.7,端口A作數(shù)據(jù)輸出通道,端口B不用,PC7與打印機(jī)的狀態(tài)信號(hào)BUSY相連,PC0與打印機(jī)的選通信號(hào)STB。打印機(jī)與8051采用查詢方式交換數(shù)據(jù)。當(dāng)BUSY為0,在STB負(fù)跳變時(shí),數(shù)據(jù)被輸入。 按照接口電路可知(無(wú)關(guān)的位全設(shè)為1),端口A地址為7CH,端口B地址為7DH,端口C地址為7EH,控制端口地址為7FH。方式選擇字(無(wú)關(guān)的位全設(shè)為0)為88H。要打印的數(shù)據(jù)開(kāi)始地址為30H;要打印的數(shù)據(jù)個(gè)數(shù)
28、設(shè)為50。 3.2.2 并行I/O擴(kuò)展3.2.2 并行I/O擴(kuò)展3.2.2 并行I/O擴(kuò)展#include#include#define COM8255 XBYTE0 x007F#define PA8255 XBYTE0 x007C#define PB8255 XBYTE0 x007D#define PC8255 XBYTE0 x007E#define uchar unsigned charvoid main()COM8255=0 x8E;while(1)PA8255=0 xFF;3.3 串行擴(kuò)展I2CSPI1-Wire3.3 串行擴(kuò)展采用串行總線擴(kuò)展技術(shù)可以使系統(tǒng)的硬件設(shè)計(jì)簡(jiǎn)化,系統(tǒng)的體積減
29、小,同時(shí),系統(tǒng)的更改和擴(kuò)充更為容易。串行擴(kuò)展總線的應(yīng)用是單片機(jī)目前發(fā)展的一種趨勢(shì) 常用的串行擴(kuò)展總線有:I2C(Inter IC BUS)總線、SPI(Serial Peripheral Interface)總線、Microwire 總線及單總線(1-Wire BUS)。MCS-51單片機(jī)沒(méi)有串行總線接口,利用其自身的通用并行線可以模擬多種串行總線時(shí)序信號(hào),因此可以充分利用各種串行接口芯片資源。 1.SPI總線介紹總線介紹SPI(Serial Peripheral Interface)總線是Motorola公司提出的一種同步串行外設(shè)接口, 它可以使微控制器(MCU)與各種外圍設(shè)備以串行方式進(jìn)行
30、通信以交換信息。外圍設(shè)備包括FLASHRAM、網(wǎng)絡(luò)控制器、LCD顯示驅(qū)動(dòng)器、A/ D 轉(zhuǎn)換器和微控制器等。 SPI總線使用同步協(xié)議傳送數(shù)據(jù),接收或發(fā)送數(shù)據(jù)時(shí)由主機(jī)產(chǎn)生的時(shí)鐘信號(hào)控制。SPI接口可以連接多個(gè)SPI芯片或裝置,主機(jī)通過(guò)選擇它們的片選來(lái)分時(shí)訪問(wèn)不同的芯片。 3.3.1 SPI總線介紹及應(yīng)用(1)SPI總線構(gòu)成總線構(gòu)成MOSI(Master Out Slave In):主機(jī)發(fā)送從機(jī)接收。 MISO(Master In Slave Out):主機(jī)接收從機(jī)發(fā)送 SCLK或SCK(Serial Clock):串行時(shí)鐘 CS 外圍器件的片選。 有的微控制器設(shè)有專用的SPI接口的片許,稱為從機(jī)選
31、擇(SS)。MOSI (SI或SDI)信號(hào)由主機(jī)產(chǎn)生,接收者為從機(jī);ISO (SO或SDO)信號(hào)由從機(jī)發(fā)出;CLK或SCK由主機(jī)發(fā)出,用來(lái)同步數(shù)據(jù)傳送;片選信號(hào)也由主機(jī)產(chǎn)生,用來(lái)選擇從機(jī)芯片或裝置。3.3.1 SPI總線介紹及應(yīng)用(2)主從方式)主從方式SPI總線接口系統(tǒng)總線接口系統(tǒng)的典型結(jié)構(gòu)的典型結(jié)構(gòu)在大多數(shù)應(yīng)用場(chǎng)合,可使用1個(gè)微控制器作為主控機(jī)來(lái)控制數(shù)據(jù)傳送,并向1個(gè)或幾個(gè)外圍器件傳送數(shù)據(jù)。從機(jī)只有在主機(jī)發(fā)命令時(shí)才能接收或發(fā)送數(shù)據(jù) 。當(dāng)一個(gè)主機(jī)通過(guò)SPI與多個(gè)芯片相連時(shí),必須使用每個(gè)芯片的片選,這可通過(guò)MCU的I/O端口輸出線來(lái)實(shí)現(xiàn)。3.3.1 SPI總線介紹及應(yīng)用MCUIC1IC2IC3
32、SCKSISOCSCSCSSCKMOSIMISOSCKSISOSCKSISOIO1IO2IO32.SPI總線時(shí)鐘總線時(shí)鐘DS1302應(yīng)用應(yīng)用DS1302是美國(guó) DALLAS 公司推出的一種高性能、 低功耗的實(shí)時(shí)時(shí)鐘芯片,附加31字節(jié)靜態(tài) RAM,采用 SPI 三線接口與 CPU 進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)和 RAM數(shù)據(jù)。實(shí)時(shí)時(shí)鐘可提供秒、分、時(shí)、日、星期、月和年,一個(gè)月小與31天時(shí)可以自動(dòng)調(diào)整,且具有閏年補(bǔ)償功能。工作電壓寬達(dá)2.55.5V。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。DS1302的外部引腳分
33、配如圖1所示及內(nèi)部結(jié)構(gòu)如圖2所示。DS1302用于數(shù)據(jù)記錄,特別是對(duì)某些具有特殊意義的數(shù)據(jù)點(diǎn)的記錄上, 能實(shí)現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時(shí)間同時(shí)記錄,因此廣泛應(yīng)用于測(cè)量系統(tǒng)中。 3.3.1 SPI總線介紹及應(yīng)用3.3.1 SPI總線介紹及應(yīng)用3.3.1 SPI總線介紹及應(yīng)用3.3.1 SPI總線介紹及應(yīng)用3.3.1 SPI總線介紹及應(yīng)用3.3.1 SPI總線介紹及應(yīng)用DS1302工作模式工作模式3.3.1 SPI總線介紹及應(yīng)用3.3.1 SPI總線介紹及應(yīng)用3.3.1 SPI總線介紹及應(yīng)用3.3.1 SPI總線介紹及應(yīng)用3.3.1 SPI總線介紹及應(yīng)用3.3.1 SPI總線介紹及應(yīng)用3.3.1 SPI
34、總線介紹及應(yīng)用3.3.1 SPI總線介紹及應(yīng)用3.3.1 SPI總線介紹及應(yīng)用3.3.1 SPI總線介紹及應(yīng)用3.3.1 SPI總線介紹及應(yīng)用3.3.2 I2C總線介紹及應(yīng)用1、I2C總線介紹 I2C總線是Philips公司開(kāi)發(fā)的一種雙向兩線串行總線,以實(shí)現(xiàn)集成電路之間的有效控制,這種總線也稱為Inter IC 總線。目前,Philips及其它半導(dǎo)體廠商提供了大量的含有I2C總線的外圍接口芯片,I2C總線已成為廣泛應(yīng)用的工業(yè)標(biāo)準(zhǔn)之一。標(biāo)準(zhǔn)模式下,基本的I2C總線規(guī)范的規(guī)定的數(shù)據(jù)傳輸速率為100kb/s。快速模式下,數(shù)據(jù)傳輸速率為400KB/s。高速模式下,數(shù)據(jù)傳輸速率為3.4Mb/s。I2C總
35、線始終和先進(jìn)技術(shù)保持同步,并保持其向下兼容性。 3.3.2 I2C總線介紹及應(yīng)用(1)I2C總線采用二線制傳輸,一根是數(shù)據(jù)線SDA(Serial Data Line),另一根是時(shí)鐘線SCL(serial clock line),所有I2C器件都連接在SDA和SCL上,每一個(gè)器件具有一個(gè)唯一的地址。 (2)I2C總線是一個(gè)多主機(jī)總線,總線上可以有一個(gè)或多個(gè)主機(jī)(或稱主控制器件),總線運(yùn)行由主機(jī)控制。 主機(jī)是指啟動(dòng)數(shù)據(jù)的傳送(發(fā)起始信號(hào))、發(fā)出時(shí)鐘信號(hào)、發(fā)出終主機(jī)是指啟動(dòng)數(shù)據(jù)的傳送(發(fā)起始信號(hào))、發(fā)出時(shí)鐘信號(hào)、發(fā)出終止信號(hào)的器件。通常,主機(jī)由單片機(jī)或其它微處理器擔(dān)任。止信號(hào)的器件。通常,主機(jī)由單片
36、機(jī)或其它微處理器擔(dān)任。 被主機(jī)訪問(wèn)的器件叫從機(jī)(或稱從器件),它可以是其它單片機(jī),被主機(jī)訪問(wèn)的器件叫從機(jī)(或稱從器件),它可以是其它單片機(jī),或者其他外圍芯片,如:或者其他外圍芯片,如:A/D、D/A、LED或或LCD驅(qū)動(dòng)、串行存儲(chǔ)器驅(qū)動(dòng)、串行存儲(chǔ)器芯片。芯片。 3.3.2 I2C總線介紹及應(yīng)用 (3)I2C總線支持多主(multi-mastering)和主從(master-slave)兩種工作方式。 多主方式下,多主方式下,I2C總線上可以有多個(gè)主機(jī)??偩€上可以有多個(gè)主機(jī)。I2C總總線需通過(guò)硬件和軟件仲裁來(lái)確定主機(jī)對(duì)總線的控制權(quán)。線需通過(guò)硬件和軟件仲裁來(lái)確定主機(jī)對(duì)總線的控制權(quán)。 主從工作方式時(shí)
37、,系統(tǒng)中只有一個(gè)主機(jī),總線上主從工作方式時(shí),系統(tǒng)中只有一個(gè)主機(jī),總線上的其它器件均為從機(jī)(具有的其它器件均為從機(jī)(具有I2C總線接口),只有主總線接口),只有主機(jī)能對(duì)從機(jī)進(jìn)行讀寫(xiě)訪問(wèn),因此,不存在總線的競(jìng)爭(zhēng)機(jī)能對(duì)從機(jī)進(jìn)行讀寫(xiě)訪問(wèn),因此,不存在總線的競(jìng)爭(zhēng)等問(wèn)題。在主從方式下,等問(wèn)題。在主從方式下,I2C總線的時(shí)序可以模擬總線的時(shí)序可以模擬 ,I2C總線的使用不受主機(jī)是否具有總線的使用不受主機(jī)是否具有I2C總線接口的制約。總線接口的制約。 MCS-51系列單片機(jī)本身不具有系列單片機(jī)本身不具有I2C總線接口,可總線接口,可以用其以用其I/O口線模擬口線模擬I2C總線總線 3.3.2 I2C總線介紹及
38、應(yīng)用單主機(jī)系統(tǒng)I2C總線擴(kuò)展示意圖 3.3.2 I2C總線介紹及應(yīng)用標(biāo)準(zhǔn)模式和快速模式下器件連接到I2C總線的形式 2、數(shù)據(jù)傳輸3.3.2 I2C總線介紹及應(yīng)用(1)數(shù)據(jù)位的傳送I2C總線上主機(jī)與從機(jī)之間一次傳送的數(shù)據(jù)稱為一幀。由啟動(dòng)信號(hào)、若干個(gè)數(shù)據(jù)字節(jié)、應(yīng)答位和停止信號(hào)組成。數(shù)據(jù)傳送的基本單元為一位數(shù)據(jù)。時(shí)鐘線SCL的一個(gè)時(shí)鐘周期只能傳輸一位數(shù)據(jù)。在SCL時(shí)鐘線為高電平期間內(nèi),數(shù)據(jù)線SDA上的數(shù)據(jù)必須穩(wěn)定。當(dāng)SCL時(shí)鐘線變?yōu)榈碗娖綍r(shí),數(shù)據(jù)線SDA的狀態(tài)才能改變。3.3.2 I2C總線介紹及應(yīng)用(2)啟始和停止?fàn)顟B(tài)起始和停止?fàn)顟B(tài)是由主機(jī)發(fā)出 起始(START)狀態(tài):I2C總線傳輸過(guò)程中,當(dāng)時(shí)鐘
39、線SCL為高電平時(shí),數(shù)據(jù)線SDA出現(xiàn)高電平到低電平跳變時(shí),標(biāo)志I2C總線傳輸數(shù)據(jù)開(kāi)始。 停止(STOP)狀態(tài):I2C總線傳輸過(guò)程中,當(dāng)時(shí)鐘線SCL為高電平時(shí),數(shù)據(jù)線SDA出現(xiàn)低電平到高電平跳變時(shí),標(biāo)志著I2C總線傳輸數(shù)據(jù)結(jié)束。3.3.2 I2C總線介紹及應(yīng)用(3)傳輸數(shù)據(jù) 傳輸?shù)綌?shù)據(jù)線SDA上的每個(gè)字節(jié)必須為8位 每次傳輸?shù)淖止?jié)數(shù)不受限制。每個(gè)字節(jié)后必須跟一個(gè)應(yīng)答(acknowledge)位。數(shù)據(jù)傳輸時(shí),首先傳送最高位,如圖10.5所示,如果從機(jī)暫時(shí)不能接收下一個(gè)字節(jié)數(shù)據(jù),如從機(jī)響應(yīng)內(nèi)部中斷,那么,可以使時(shí)鐘線SCL保持為低電平,迫使主機(jī)處于等待狀態(tài);當(dāng)從機(jī)準(zhǔn)備就緒后,再釋放時(shí)鐘線SCL,使數(shù)
40、據(jù)傳輸繼續(xù)進(jìn)行。 3.3.2 I2C總線介紹及應(yīng)用(4)應(yīng)答I2C協(xié)議規(guī)定,在每個(gè)字節(jié)傳送完畢后,必須有一個(gè)應(yīng)答位。應(yīng)答位的時(shí)鐘脈沖由主機(jī)產(chǎn)生。在應(yīng)答時(shí)鐘有效期間,發(fā)送設(shè)備把數(shù)據(jù)線SDA置為高電平;接收設(shè)備必須把數(shù)據(jù)線SDA置為低電平,并且在此期間保持低電平狀態(tài),以便產(chǎn)生有效的應(yīng)答信號(hào)。3.3.2 I2C總線介紹及應(yīng)用(5)數(shù)據(jù)傳輸格式3.3.2 I2C總線介紹及應(yīng)用 在I2C總線啟動(dòng)或應(yīng)答信號(hào)后的第18個(gè)時(shí)鐘脈沖,對(duì)應(yīng)一個(gè)字節(jié)的8位數(shù)據(jù)傳送。高電平期間,數(shù)據(jù)串行傳送;低電平期間為數(shù)據(jù)準(zhǔn)備,允許總線上數(shù)據(jù)電平變化。一旦I2C總線啟動(dòng),傳送的字節(jié)數(shù)沒(méi)有限制,只要求每傳送一個(gè)字節(jié)后,對(duì)方回應(yīng)一個(gè)應(yīng)
41、答位。發(fā)送時(shí),最先發(fā)送的是數(shù)據(jù)的最高位。每次傳送開(kāi)始有起始信號(hào),結(jié)束時(shí)有停止信號(hào)。傳送完一個(gè)字節(jié),可以通過(guò)對(duì)時(shí)鐘線的控制使傳送暫停。 在起始狀態(tài)S之后,先發(fā)送一個(gè)7位從機(jī)地址,接著第8位是數(shù)據(jù)方向位, 0表示發(fā)送(寫(xiě)), 1表示請(qǐng)求數(shù)據(jù)(讀)。一次數(shù)據(jù)傳輸總是由主機(jī)產(chǎn)生停止?fàn)顟B(tài)P而結(jié)束。但是,如果主機(jī)還希望在總線上傳輸數(shù)據(jù),那么,它可以產(chǎn)生另一個(gè)起始狀態(tài)和尋址另一個(gè)從機(jī),不需要先產(chǎn)生一個(gè)停止?fàn)顟B(tài)。在這種傳輸方式中,就可能有讀寫(xiě)方式的組合。 WR/WR/3.3.2 I2C總線介紹及應(yīng)用81在I2C總線上,傳輸數(shù)據(jù)可能的數(shù)據(jù)格式:A A、主機(jī)發(fā)送器發(fā)送到從機(jī)接收器。數(shù)據(jù)傳輸?shù)姆较?、主機(jī)發(fā)送器發(fā)送到
42、從機(jī)接收器。數(shù)據(jù)傳輸?shù)姆较虿蛔兓?。不變化?3.3.2 I2C總線介紹及應(yīng)用B B、在第一個(gè)字節(jié)后主機(jī)立即讀從機(jī)。在第一個(gè)字節(jié)后主機(jī)立即讀從機(jī)。 在I2C總線上,傳輸數(shù)據(jù)可能的數(shù)據(jù)格式:3.3.2 I2C總線介紹及應(yīng)用C C、組合格式、組合格式 在I2C總線上,傳輸數(shù)據(jù)可能的數(shù)據(jù)格式:3.3.2 I2C總線介紹及應(yīng)用 每個(gè)連接在I2C總線的器件,都具有一個(gè)唯一確定的地址。在任何時(shí)刻,I2C總線上只能有一個(gè)主機(jī)對(duì)總線實(shí)行控制權(quán),分時(shí)地實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)傳送。器件(從機(jī))的地址由7位組成,它與1位方向位構(gòu)成了I2C總線數(shù)據(jù)傳輸時(shí)起始狀態(tài)S之后第1個(gè)字節(jié)。 A6A5A4A3A2A1A0D7D6D5D4
43、D3D2D1D0WR/ 從機(jī)地址由固定位和可編程位組成。固定位由器件出廠時(shí)給定,用戶不能自行設(shè)置,它是器件的標(biāo)識(shí)碼。3.3.2 I2C總線介紹及應(yīng)用WR/當(dāng)主機(jī)發(fā)送了第1個(gè)字節(jié)后,系統(tǒng)中的每個(gè)從機(jī)(器件)都在起始狀態(tài)S之后把高7位與本機(jī)的地址比較,如果與本機(jī)地址一樣,則該從機(jī)被主機(jī)選中,是接收數(shù)據(jù)還是發(fā)送數(shù)據(jù)由 確定。3.3.2 I2C總線介紹及應(yīng)用3、I2C總線擴(kuò)展E2PROM AT24CXX系列串行E2PROM是Atme1公司生產(chǎn)的I2C總線接口功能的串行E2PROM器件,具有掉電保護(hù)功能 ,AT24C02容量為256字節(jié)。AT24CXX系列的寫(xiě)入時(shí)間一般需要510ms。VCCSDASCL
44、GNDA1A2A0WPAT240C212346578SDA、SCL: I2C總線接口;A2A0:地址引腳;WP:寫(xiě)保護(hù)。當(dāng)接低電平時(shí),可進(jìn)行正常讀/寫(xiě)操作;接高電平時(shí),只能讀取數(shù)據(jù)。 3.3.2 I2C總線介紹及應(yīng)用數(shù)據(jù)讀/寫(xiě)操作格式 (1)輸出操作(SADR為AT24C02片內(nèi)地址) SSLAWASADRAData1Adata2AdataNAPSLAW為1010(A2A1A0)0 (2)輸入操作SSLARASADRAPSSLARAdata1Adata2AdataNPSLAW為1010(A2A1A0)1 3.3.2 I2C總線介紹及應(yīng)用MCS-51單片機(jī)與AT24C02的連接電路 3.3.2
45、I2C總線介紹及應(yīng)用代碼參考:sbit AT24C02_SCL = P11;sbit AT24C02_SDA = P10;/24C02void Delaym(uchar delaym_temp)/延時(shí)子程序uchar i;for(i=0;idelaym_temp;i+);3.3.2 I2C總線介紹及應(yīng)用void Start(void)/啟動(dòng)IIC總線AT24C02_SDA=1;AT24C02_SCL=1;Delaym(1);AT24C02_SDA=0;Delaym(1);AT24C02_SCL=0;void Stop(void)/停止IIC總線數(shù)據(jù)傳送AT24C02_SDA=0;AT24C02
46、_SCL=1;Delaym(1);AT24C02_SDA=1;Delaym(1);AT24C02_SCL=0;3.3.2 I2C總線介紹及應(yīng)用uchar IIcack(void)/應(yīng)答位檢查uchar i;i=0 x00;AT24C02_SDA=1;AT24C02_SCL=1;if(AT24C02_SDA=1)i=0 xff;AT24C02_SCL=0;return i;void Mnack(void) /發(fā)送非應(yīng)答位AT24C02_SDA=1;AT24C02_SCL=1;Delaym(1);AT24C02_SCL=0;AT24C02_SDA=0;3.3.2 I2C總線介紹及應(yīng)用void Wr
47、iteByte(uchar date_w24)/向SDA線上發(fā)送一個(gè)數(shù)據(jù)字節(jié)uchar i,j;j=0 x80;for(i=0;i1;3.3.2 I2C總線介紹及應(yīng)用uchar ReadByte(void)/從SDA線上讀取一個(gè)數(shù)據(jù)字節(jié)uchar i,j;j=0 x00;for(i=0;i8;i+)AT24C02_SDA=1;AT24C02_SCL=1;if(AT24C02_SDA=0)j=j&0 xfe;elsej=j|0 x01; if(i!=7)j=j1;AT24C02_SCL=0;return j;3.3.2 I2C總線介紹及應(yīng)用/寫(xiě)數(shù)據(jù)到指定地址void IIc_Write(
48、uchar IIcadr,uchar TempData) LOOP:Start();WriteByte(0 xa0);if(IIcack() != 0)goto LOOP;WriteByte(IIcadr);if(IIcack() != 0)goto LOOP;WriteByte(TempData);if(IIcack() != 0)goto LOOP;Stop();Delay(20);3.3.2 I2C總線介紹及應(yīng)用/從指定地址讀數(shù)據(jù)uchar IIc_Read(uchar IIcadr)uchar temp_1;LOOP: Start();WriteByte(0 xa0);if(IIcac
49、k() != 0)goto LOOP;WriteByte(IIcadr);if(IIcack() != 0)goto LOOP;Start();WriteByte(0 xa1);if(IIcack() != 0)goto LOOP;temp_1 = ReadByte();Mnack();Stop();Delay(20);return temp_1;3.3.3 1-Wire總線介紹及應(yīng)用1、1-wire簡(jiǎn)介1-wire單總線是Dallas公司的專有技術(shù),采用單根信號(hào)線,既傳輸時(shí)鐘又傳輸數(shù)據(jù),且數(shù)據(jù)傳輸是雙向的。3.3.3 1-Wire總線介紹及應(yīng)用2、單總線命令及單總線信號(hào)(1)初始化主機(jī)發(fā)復(fù)位脈沖,從機(jī)響應(yīng)脈沖。3.3.3 1-Wire總線介紹及應(yīng)用(2)ROM命令搜索搜索ROMF0H讀ROM(單節(jié)點(diǎn))33H匹配ROM55H跳越ROM(單節(jié)點(diǎn))CCH報(bào)警搜索ROMECH3.3.3 1-Wire總線介紹及應(yīng)用寫(xiě)0/1時(shí)隙3.3.3 1-Wire總線介紹及應(yīng)用讀0/1時(shí)隙3.3.3 1-Wire總線介紹及應(yīng)用3、DS18b20數(shù)字溫度傳感器3.3.3 1-Wire總線介紹及應(yīng)用3
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 術(shù)后肺部并發(fā)癥防治策略
- 《GB-T 22970-2010紡織面料編碼 化纖部分》專題研究報(bào)告
- 《GBT 33387-2016 工業(yè)用反式 - 1,3,3,3 - 四氟丙烯 HFO-1234ze(E)》專題研究報(bào)告
- 2026年貴州盛華職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫(kù)及答案詳解一套
- 《正常人體功能》課件-心臟的泵血過(guò)程和機(jī)制
- 《藥品生物檢定技術(shù)》創(chuàng)新課件-利用現(xiàn)代智能數(shù)據(jù)分析做中藥養(yǎng)生奶茶
- 流動(dòng)資金循環(huán)貸款擔(dān)保合同
- 2026醫(yī)院護(hù)理部工作計(jì)劃(5篇)
- 2026年消防施工公司年度工作計(jì)劃(5篇)
- 2025年3月7日下午山東公務(wù)員省考面試題簡(jiǎn)析及參考答案
- 中國(guó)淋巴瘤治療指南(2025年版)
- 2025年云南省人民檢察院聘用制書(shū)記員招聘(22人)考試筆試模擬試題及答案解析
- 2026年空氣污染監(jiān)測(cè)方法培訓(xùn)課件
- 實(shí)習(xí)2025年實(shí)習(xí)實(shí)習(xí)期轉(zhuǎn)正協(xié)議合同
- 2025年廣西公需科目答案6卷
- 立體構(gòu)成-塊材課件
- 純化水再驗(yàn)證方案
- 神泣命令代碼
- 北京林業(yè)大學(xué) 研究生 學(xué)位考 科技論文寫(xiě)作 案例-2023修改整理
- 四年級(jí)《上下五千年》閱讀測(cè)試題及答案
- 江蘇省五高等職業(yè)教育計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)專業(yè)指導(dǎo)性人才培養(yǎng)方案
評(píng)論
0/150
提交評(píng)論