freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機i2c串口總線擴展設(shè)計(編輯修改稿)

2025-07-26 21:21 本頁面
 

【文章內(nèi)容簡介】 者中斷矢量地址送入PC,程序流向發(fā)生變化,執(zhí)行子程序或中斷服務(wù)程序。子程序或中斷服務(wù)程序執(zhí)行完畢,遇到返回指令RET或RETI時,將棧頂?shù)膬?nèi)容送到PC寄存器中,程序流程又返回到原來的地方,繼續(xù)執(zhí)行。 時鐘和時序1)80C51的時鐘80C51時鐘電路由振蕩器及定時控制單元、時鐘發(fā)生器及地址鎖存允許信號ALE組成。單片機內(nèi)部帶有時鐘電路,因此,只要在片外通過XTAL1和XTAL2引腳接入定時控制單元(晶體振蕩器和電容),即可構(gòu)成一個穩(wěn)定的自激振蕩器。~12MHZ之間,現(xiàn)在由于制造工藝的改進,頻率范圍可達0~40MHZ。本設(shè)計電路選用12M晶振。 2)80C51指令時序80C51共有111條指令,全部指令按其長度可分為單字節(jié)指令、雙字節(jié)指令和三字節(jié)指令。執(zhí)行這些指令所需要的機器周期數(shù)目是不同的,概括起來共有以下幾種情況:單字節(jié)單機器周期指令、單字節(jié)雙機器周期指令、雙字節(jié)單機器周期指令和雙字節(jié)雙機器周期指令;三字節(jié)指令都是雙機器周期的,而單字節(jié)乘除指令則均為四機器周期的。 復(fù)位電路 、復(fù)位條件和復(fù)位后狀態(tài)復(fù)位是單片機的初始化操作,其主要功能是把PC初始化為0000H,是單片機從0000H單元開始執(zhí)行程序。除了進入系統(tǒng)的正常初始化外,當由于程序運行錯誤或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也需按復(fù)位鍵以重新啟動。1)復(fù)位電路復(fù)位操作有上電自動復(fù)位、按鍵電平復(fù)位和外部脈沖復(fù)位三種方式,本設(shè)計采用按鍵電平復(fù)位,其中接低電平,允許使用外部存儲器,圖7 復(fù)位電路3 硬件電路設(shè)計 硬件總體設(shè)計框圖 圖8 硬件總體設(shè)計框圖 圖9 硬件設(shè)計總圖3.2 總線介紹地址總線P0口作為低八位地址,P2口作為高八位地址,兩者共同構(gòu)造地址總線。由此可見,單片機最多可以有16條地址線,因此最大尋址范圍為64 KB(0000H~FFFFH)。地址總線是單向的,只能由單片機向外發(fā)送。數(shù)據(jù)總線數(shù)據(jù)總線由P0口構(gòu)成,雙向。需要注意的是P0口兼作地址總線的低八位,所以需要將這低八位地址先鎖存起來??刂瓶偩€單片機方面,根據(jù)不同的擴展情況使用PSEN,ALE,RD,WR等作為控制總線。RAM的OE和WE分別接單片機的RD和WR。ROM只能讀不能寫,OE接PSEN。地址鎖存器的使能信號接單片機的ALE。地址分配有線選法和譯碼法。線選法連線簡單,無需譯碼器,但是地址不連續(xù)。譯碼法(部分譯碼、全譯碼)使用譯碼器的譯碼輸出作為存儲器的片選信號。 單片機的外部擴展圖10 單向片機外部擴展3.3.1 常用芯片74LS373:74LS373是帶三態(tài)緩沖輸出的8D鎖存器。74LS373的鎖存控制端G直接與單片機的鎖存控制信號ALE相連,在ALE的下降沿鎖存低8位地址。74LS138:38線譯碼器ROM芯片:(27EPROM)2716(2K8)、2732(4K8)、2764(8K8)、27128(16K8)、27256(32K8)、27512(64K8)等。(28EEPROM):2816(2K8)、2864(8K8)。RAM芯片:6116(2K8位)、6264(8K8位)、62256(32K8位)。3.3.2 電路圖:圖11 ROM擴展電路圖12 RAM擴展電路I/O擴展接口的目的 單片機與外設(shè)的速度匹配。 輸出數(shù)據(jù)鎖存(由于數(shù)據(jù)在數(shù)據(jù)總線上保留的時間很短)。 輸入數(shù)據(jù)三態(tài)緩沖(避免占用總線)。I/O與片外RAM統(tǒng)一編址51單片機擴展I/O的時候,擴展的I/O口采用與片外數(shù)據(jù)存儲器統(tǒng)一編址。因此,擴展I/O的電路與擴展存儲器的電路與差別不大。而且對片外I/O口的輸入/輸出指令就是訪問片外RAM的指令。 3. 4 單片機的最小系統(tǒng)1.80C51/89C51最小應(yīng)用系統(tǒng)。由于集成度的限制,這種最小應(yīng)用系統(tǒng)只能用作一些小型的控制單元。其應(yīng)用特點是:(1)全部I/O口線均可供用戶使用。(2)內(nèi)部存儲器容量有限(只有4KB地址空間)。(3)應(yīng)用系統(tǒng)開發(fā)具有特殊性。 圖13 單片機最小系統(tǒng)圖 圖14 顯示部分最小系統(tǒng)圖圖15 外部擴展存儲器的最小系統(tǒng)圖 圖16 鍵盤最小系統(tǒng)圖3. 5 I2C總線擴展的設(shè)計I2C總線是PHILIPS公司開發(fā)的一種簡單、雙向二線制同步串行總線, 它只需要兩根線(串行時鐘線和串行數(shù)據(jù)線)即可在連接于總線上的器件之間傳送信息。 這種總線的主要特性如下:l 總線只有兩根線:串行時鐘線和串行數(shù)據(jù)線。 l 每個連到總線上的器件都可由軟件以唯一的地址尋址,并建立簡單的主/從關(guān)系, 主器件既可作為發(fā)送器, 也可作為接收器。l 它是一個真正的多主總線, 帶有競爭檢測和仲裁電路, 可使多主機任意同時發(fā)送而不破壞總線上的數(shù)據(jù)。l 同步時鐘允許器件通過總線以不同的波特率進行通信。l 同步時鐘可以作為停止和重新啟動串行口發(fā)送的握手方式。l 連接到同一總線的集成電路數(shù)只受400PF的最大總線電容的限制。I2C總線極大地方便了系統(tǒng)設(shè)計者, 無須設(shè)計總線接口, 因為總線接口已經(jīng)集成在片內(nèi)了,從而使設(shè)計時間大為縮短, 并且從系統(tǒng)中移去或增加集成電路芯片對總線上的其它集成電路芯片沒有影響。I2C總線的簡單結(jié)構(gòu)便于產(chǎn)品改型或升級, 改型或升級時只須從總線上取消或增加相應(yīng)的集成電路芯片即可。目前PHILIPS公司推出帶I2C總線的單片機有8XC550、8XC558XC658XC658XC758XC752等, 以及包括LED驅(qū)動器、LCD驅(qū)動器、A/D、D/A轉(zhuǎn)換器、RAM、EPROM及I/O接口等在內(nèi)的上百種I2C接口電路芯片供應(yīng)市場。對于原來沒有I2C總線的單片機如8031等, 可以使用I2C總線接口擴展器件PCD8548擴展出I2C總線接口,也可以采用軟件模擬I2C總線時序,編寫出I2C總線驅(qū)動程序。帶有I2C總線接口的單片機通過相關(guān)特殊功能寄存器來完成I2C總線操作,沒有I2C總線接口的單片機可以通過模擬I2C總線時序來完成總線運行操作。I2C總線接口的電氣結(jié)構(gòu)如圖所示, 組成I2C總線的串行數(shù)據(jù)線SDA和串行時鐘線SCL 必須經(jīng)過上拉電阻Rp接到正電源上, 連接到總線上的器件的輸出級必須為“開漏”或“開集” 的形式,以便完成“線與”功能。SDA和SCL都為雙向I/O口線, 總線空閑時皆為高電平。 總線上數(shù)據(jù)傳送最高速率可達100Kbit/s。圖17 I2C總線接口的電氣結(jié)構(gòu)I2C總線上可以實現(xiàn)多主雙向同步數(shù)據(jù)傳送, 所有主器件都可發(fā)出同步時鐘, 但由于SCL接口的“線與”結(jié)構(gòu), 一旦一個主器件時鐘跳變?yōu)榈碗娖? 將使SCL線保持為低電平直至?xí)r鐘達到高電平, 因此SCL 線上時鐘低電平期間由各器件中時鐘最長的低電平時間決定, 而時鐘高電平時間則由高電平時間最短的器件決定。為了使多主數(shù)據(jù)能夠正確傳送, I2C總線中帶有競爭檢測和仲裁電路。總線競爭的仲裁及處理由內(nèi)部硬件電路來完成。當兩個主器件發(fā)送相同數(shù)據(jù)時不會出現(xiàn)總線競爭。 當兩個主器件發(fā)送不同數(shù)據(jù)時才出現(xiàn)總線競爭。其競爭過程如圖所示。當某一時刻主器件1發(fā)送高電平而主器件2發(fā)送低電平, 此時由于SDA的“線與”作用, 主器件1發(fā)送的高電平在SDA線上反映的是主器件2的低電平狀態(tài), 這個低電平狀態(tài)通過硬件系統(tǒng)反饋到數(shù)據(jù)寄存器中, 與原有狀態(tài)比較不同而退出競爭。 圖18 總線競爭的仲裁過程 I2C總線可以構(gòu)成多主數(shù)據(jù)傳送系統(tǒng), 但只有帶CPU的器件可以成為主器件。 主器件發(fā)送時鐘、啟動位、數(shù)據(jù)工作方式, 從器件則接收時鐘及數(shù)據(jù)工作方式。接收或發(fā)送則根據(jù)數(shù)據(jù)的傳送方向決定。I2C總線上數(shù)據(jù)傳送時的啟動、結(jié)束和有效狀態(tài)都由SDA、SCL的電平狀態(tài)決定, 在I2C總線規(guī)程中啟動和停止條件規(guī)定如下:啟動條件: 在SCL為高電平時, SDA出現(xiàn)一個下降沿則啟動I2C總線。 停止條件: 在SCL為高電平時, SDA出現(xiàn)一個上升沿則停止使用I2C總線。 除了啟動和停止狀態(tài), 在其余狀態(tài)下, SCL的高電平都對應(yīng)于SDA的穩(wěn)定數(shù)據(jù)狀態(tài)。每一個被傳送的數(shù)據(jù)位由SDA線上的高、低電平表示, 對于每一個被傳送的數(shù)據(jù)位都在SCL線上產(chǎn)生一個時鐘脈沖。在時鐘脈沖為高電平期間, SDA線上的數(shù)據(jù)必須穩(wěn)定, 否則被認為是控制信號。SDA只能在時鐘脈沖SCL為低電平期間改變。啟動條件后總線為“忙”, 在結(jié)束信號過后的一定時間總線被認為是“空閑”的。在啟動和停止條件之間可轉(zhuǎn)送的數(shù)據(jù)不受限制,但每個字節(jié)必須為8位。首先傳送最高位, 采用串行傳送方式, 但在每個字節(jié)之后必須跟一個響應(yīng)位。主器件收發(fā)每個字節(jié)后產(chǎn)生一個時鐘應(yīng)答脈沖, 在這期間, 發(fā)送器必須保證 SDA為高, 由接收器將SDA拉低, 稱為應(yīng)答信號(ACK)。主器件為接收器時, 在接收了最后一個字節(jié)之后不發(fā)應(yīng)答信號, 也稱為非應(yīng)答信號(NOT ACK)。 當從器件不能再接收另外的字節(jié)時也會出現(xiàn)在種情況。I2C總線的數(shù)據(jù)傳送如圖所示。 圖19 I2C總線上的數(shù)據(jù)傳送總線中每個器件都有自己唯一確定的地址, 啟動條件后主機發(fā)送的第一個字節(jié)就是被讀寫的從器件地址, 其中第8位為方向位, “0”(W)表示主器件發(fā)送,“1”(R)表示主器件接收??偩€上每個器件在啟動條件后都把自己的地址與前7位相比較, 如相同則器件被選中, 產(chǎn)生應(yīng)答, 并根據(jù)讀寫位決定在數(shù)據(jù)傳送中是接收還是發(fā)送。如圖所示為主器件發(fā)送和接收數(shù)據(jù)的過程,無論是主發(fā)、主收還是從發(fā)、從收都是由主器件控制。圖 20 主器件發(fā)送和接收數(shù)據(jù)的過程在主發(fā)送方式下, 由主器件先發(fā)出啟動信號(S), 接著 發(fā)從器件的7 位地址(SLA)和表明主器件發(fā)送的方向位“0”(W), 即這個字節(jié)為SLA+W。被尋址的從器件在收到這個字節(jié)后, 返回一個應(yīng)答信號(A), 在確定主從握手應(yīng)答正常后, 主器件向從器件發(fā)送字節(jié)數(shù)據(jù), 從器件每收到一個字節(jié)數(shù)據(jù)后都要返回一個應(yīng)答信號, 直到全部數(shù)據(jù)都發(fā)送完為止。在主接收方式下, 主器件先發(fā)出啟動信號(S),接著發(fā)從器件的7位地址(SLA)和表明主器件接收的方向位“1”(R), 即這個字節(jié)為SLA+R。在發(fā)送完這個字節(jié)后, (SCL)繼續(xù)輸出時鐘, (SDA)接收從器件發(fā)來的串行數(shù)據(jù)。 主器件每接收到一個字節(jié)后都要發(fā)送一個應(yīng)答信號(A)。當全部數(shù)據(jù)都發(fā)送或接收完畢后, 主器件應(yīng)發(fā)出停止信號(P)。典型的I2C總線應(yīng)用系統(tǒng)結(jié)構(gòu)如圖所示。I2C總線上可掛接n個單片機應(yīng)用系統(tǒng)及m個帶I2C接口的器件, 每個I2C接口作為一個節(jié)點, 節(jié)點的數(shù)量和種類主要受總電容量和地址容量的限制。單片機節(jié)點可編程為主器件或從器件, 而器件節(jié)點則只能編程為從器件。8XC552 單片機帶有I2C接口, 可以直接掛在I2C總線上, 對于沒有I2C接口的單片機, 可通過I2C接口擴展芯片PCD8584擴展出I2C接口。I2C 總線系統(tǒng)中的單片機原有的并行接口和異步通信接口資源可不受I2C總線限制任意擴展, I2C總線系統(tǒng)中的 器件節(jié)點可構(gòu)成各種標準功能模塊。I2C總線上所有節(jié)點都有約定的地址以便實現(xiàn)可靠的數(shù)據(jù)傳送。單片機節(jié)點可作為主器件或從器件, 作為主器件時其地址無意義, 作為從器件時其從地址在初始化程序中定位在I2C總線地址寄存器S1ADR的高7位中。器件節(jié)點的7位地址由兩部分組成, 完全由硬件確定。 一部分為器件編號地址, 由芯片廠家規(guī)定, 另一部分為引腳編號地址, 由引腳的高低電平?jīng)Q定。如四位LED驅(qū)動器SAA1064的地址為01110A1A0, 其中01110為器件編號地址,表明該器件為LED驅(qū)動器, A1A0為該器件的兩個引腳, 分別接高、低電平時可以有四片不同地址的LED驅(qū)動模塊節(jié)點。256個字節(jié)的EEPROM器件 PCF8582的地址為1010A2A1A0 , 它的器件編號地址為1010, 而地址引腳則有3個: A2A1A0 ,通過這3個引腳的不同電平設(shè)置, 可連接8 片不同地址的EEPROM芯片。芯片內(nèi)地址則由主器件發(fā)送的第一個數(shù)據(jù)字節(jié)來選擇。圖 21 典型I2C總線應(yīng)用系統(tǒng)結(jié)構(gòu)I2C總線是一種串行通信總線, 它與并行總線不同, 并行總線中有地址總線, CPU 可通過地址總線來選擇所需要器件的地址。I2C總線只有一根數(shù)據(jù)線和一根時鐘線, 沒有專門的地址線, 而是利用數(shù)據(jù)傳送中的頭幾個字節(jié)來傳送地址信息。I2C總線的尋址方式有主器件的節(jié)點尋址和通用呼叫尋址兩種, 具體實現(xiàn)方法是由主器件在發(fā)出啟動位S 后緊接著
點擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1