第六章單片機系統的并行擴展c_第1頁
第六章單片機系統的并行擴展c_第2頁
第六章單片機系統的并行擴展c_第3頁
第六章單片機系統的并行擴展c_第4頁
第六章單片機系統的并行擴展c_第5頁
已閱讀5頁,還剩47頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第六章單片機系統擴展技術3并行接口的擴展4D/A接口的擴展5A/D接口的擴展2存儲器的擴展151系統并行擴展原理6-1-1并行擴展總線P2口作為單片機的地址總線高八位A15~A8,P0為地址總線低八位A7~A0和數據總線D7~D0復用。地址鎖存原理(圖6-1)。

注意四個控制引腳的電平變化:ALE、、、。

CPU根據地址訪問外部存儲器,即根據地址線上送出的地址信息選中某一芯片的某個單元進行讀寫。邏輯上,芯片的選擇由高位地址譯碼實現、被選中芯片中單元的選擇則由低位地址信息確定。為了實現單片機與外部存儲器的連接,把單片機的地址線分為片內地址線和片選地址線兩部分。片選地址線通常直接或通過地址譯碼器與存儲器芯片的片選端相連,也可以懸空不用。片內地址線通常直接或通過地址鎖存器與相應存儲器地址線相連。6-1-2地址譯碼方法線選法用某一位地址線直接連到所擴展的芯片的片選端。

A15、A14、A13中不能有兩根以上地址線同時為低!!!

按照片選地址線的不同連接方式,單片機地址譯碼可分為:A15A14A13A12…A3A2A1A0

011X…X0000#單元011X…X0011#單元011X…X0102#單元011X…X0113#單元011X…X0004#單元011X…X1015#單元011X…X1106#單元011X…X1117#單元0#芯片

地址重疊:有兩個及以上地址與存儲單元對應。對于0#芯片,X為無關項,即不論X取0或1,對單元的確定都無影響,故0#芯片中每個單元都有210個重疊地址。當X由全“0”變到全“1”時,0#芯片的地址范圍為6000H~7FFFH。基本地址范圍:6000H~6007H。

全地址譯碼法

所有片選地址線全部參加譯碼。1#芯片只有唯一的地址與其存儲單元對應,不存在地址重疊。常用地址譯碼器:2-4譯碼器:74LS1393-8譯碼器:74LS1384-16譯碼器:74LS154部分地址譯碼法

片選線中只有一部分參與譯碼,其余部分懸空。有地址重疊。

一、MCS-51用于存儲器擴展的外部總線信號:P0.0~0.7:8位數據和低8位地址信號復用;P2.0~2.7:高8位地址信號;ALE:地址鎖存允許控制信號;PSEN:片外程序存儲器讀控制信號;RD:片外數據存儲器讀控制信號;WR:片外數據存儲器寫控制信號;EA:片內、外程序存儲器選擇信號。6-2 存儲器的擴展二、程序存儲器(ROM)擴展:

8031擴展32KBEPROMIntel27256

常用EPROM芯片:Intel2716(2K×8位)、2732(4KB)、2764(8KB)、27128(16KB)、27256(32KB)、27512(64KB)。三、數據存儲器(RAM)擴展:常用RAM芯片:Intel6116(2KB)、6264(8KB)、62256(32KB)。

8031擴展8KBRAMIntel6264四、程序與數據存儲器擴展:單片機連接8KBEPROM2764、8KBRAM6264各一片。單片機通常通過P0口和P2口構成數據、地址總線,擴展EPROM、RAM或其它功能芯片。這樣一來,只有剩下的P1口和部分P3口可提供給用戶用作I/O口。因此,在大部分的MCS-51單片機應用系統設計中都需要進行I/O口的擴展。6-4 并行接口的擴展并行接口的擴展6-4-2可編程并行I/O擴展接口8255A

1.數據總線(D7~D0)傳送CPU與8255A之間的數據、控制字和狀態字。2.控制總線(6條)CS:片選線A1和A0:口選線,用于尋址A口、B口、C口以及控制口寄存器中的一個。RD和WR:二者必須相反,控制CPU與8255A之間數據的傳送和流向。RESET:高電平復位,使內部寄存器全部清零。3.并行I/O總線(PA7~PA0、PB7~PB0、PC7~PC0)傳送8255A與外設之間的數據,其中的PC7~PC0還可用作聯絡線。4.電源線(2條)一、8255A的引腳功能二、8255A的芯片結構1.數據總線驅動器(與單片機數據總線相連)2.并行I/O端口(A口、B口和C口)A口:由一個8位數據輸出鎖存/緩沖器和一個8位數據輸入鎖存器組成。可設定為8位輸入或輸出,或雙向輸入/輸出方式。B口:由一個8位數據輸出鎖存/緩沖器和一個8位數據輸入緩沖器(輸入不鎖存,不可工作在方式2)組成。可設定為8位輸入或輸出方式,但不能設定為雙向輸入/輸出方式。C口:由一個8位數據輸出鎖存/緩沖器和一個8位數據輸入緩沖器(輸入不鎖存)組成。在方式1和方式2下,分為兩個4位口使用:高四位屬于A口,傳送A口上外設的控制/狀態信息,低四位屬于B口,傳送B口上所需的控制/狀態信息。3.讀/寫控制邏輯CS:8255A的片選引腳端;RD:讀控制端。為0時,允許單片機從8255A讀取數據或狀態字;WR:寫控制端。為0時,允許單片機將數據或控制字寫入8255A;A1、A0:口地址選擇線。通過A0、A1可選中8255A的四個寄存器。口地址選擇如下:A1A0寄存器00寄存器A(A口)01寄存器B(B口)10寄存器C(C口)11控制字寄存器(控制口)RESET:復位控制端。為1時,8255A復位。復位狀態:控制字寄存器被清零。

4.A組和B組控制塊每個控制塊接收來自讀/寫控制邏輯的命令和內部數據總線的控制字,并向對應口發出適當的命令。A組控制塊控制A口及C口的高4位。B組控制塊控制B口及C口的低4位。

三、8255A的控制字8255A有兩種控制字,即方式控制字和PC口位置位/復位控制字。

四、8255A的操作方式

(1)方式0(基本I/O方式)

PA、PB、PC可分別被定義為方式0輸入或方式0輸出。輸出具有鎖存功能,輸入沒有鎖存。適用于無條件傳輸數據的設備,如讀一組開關狀態、控制一組指示燈,不使用應答信號,CPU可以隨時讀出開關狀態,隨時把一組數據送指示燈顯示。如:令A口和C口高四位工作在方式0輸出方式,B口和C口低四位工作在方式0輸入方式。MOVR0,#0FBH;控制字寄存器地址MOVA,#83H;方式控制字MOVX@R0,A(2)方式1(應答I/O方式)有選通輸入和選通輸出兩種工作方式。

A口和B口皆可獨立地設置成這種工作方式,在方式1下,A口和B口通常用于傳送和它們相連外設的I/O數據,C口用作A口和B口的握手聯絡線,以實現中斷方式傳送I/O數據。方式1輸入

STB:設備的選通信號輸入線,低電平有效,通常是外設給8255A的信號,表示外設給8255的數據已到達引腳。IBF:端口鎖存器滿標志輸出線,高電平有效。通知外設數據已從引腳取入鎖存器中。INTE:8255A端口內部的中斷允許觸發器。“1”表示中斷允許(手動設置)。INTR:中斷請求信號線,高電平有效。當STB、IBF、INTE都為”1”時,INTR就置“1”。方式1輸出

:輸出鎖存器滿狀態標志輸出線。表示CPU已將數據輸出到此端口。:設備響應信號輸入線。表示外設已取走數據。

INTR:中斷請求信號輸出線,高電平有效。當、和INTE都為”1”時,INTR被置“1”,發出中斷請求。(3)方式2(雙向選通I/O方式)

方式2僅對PA口有意義。方式2使PA口成為8位雙向三態數據總線口,既可發送數據又可接收數據。PA口方式2工作時,PB口仍可作方式0和方式1I/O口,PC口高5位作狀態控制線。

五、8255A編程規定

初始化編程:往控制口寫入控制字,確定8255A工作方式。

方式控制字:D7=1;C口位置位/復位控制字:D7=0。

例:8255A的A口以方式0輸出單片機的片內RAM數據,B口以方式1輸入…(設控制口的口地址為7F03H) PIOS: MOVDPTR,#7F03H;控制口口地址 MOVA,#86H ;寫工作方式控制字 MOVX @DPTR,A MOVDPTR,#7F00H;A口口地址 MOVA,@R0 ;取片內RAM的數據 MOVX @DPTR,A ;由A口輸出 …例6-4

8255A采用方式1工作,CPU采用中斷方式控制打印機把內部RAM中30H開始的32個單元的內容經B口輸出打印。主程序:MAIN:MOV8,#30H;RAM首址→1區R0MOV0FH,#20H;長度→1區R7SETBEA;開中斷

SETBEX1;允許外中斷,電平觸發方式MOVDPTR,#7FFFH;將8255A的PC2(即INTEB)置“1”MOVA,#05HMOVX@DPTR,A;MOVA,#0BCH;寫方式控制字(B口方式1輸出)MOVX@DPTR,AMOVDPTR,#7FFDH;從PB口輸出第一個數據打印MOVA,30HMOVX@DPTR,A

INC8;RAM指針加1DEC0FH;長度減1…;執行其它任務

外部中斷1服務程序:PINT1:PUSHACC;現場保護(A、DPTR等進棧)PUSHDPHPUSHDPLPUSHPSWMOVPSW,#8;當前工作寄存器區切換到1區MOVA,@R0;從B口輸出下一個數據打印MOVDPTR,#7FFDHMOVX@DPTR,AINCR0;修改指針DJNZR7,BACKCLREX1;長度為0,關中斷返回SETBF0;置打印結束標志位F0BACK:POPPSW;現場恢復(DPTR、A等退棧)POPDPLPOPDPHPOPACCRETI6-5 D/A接口的擴展實現數模轉換的功能部件稱為D/A轉換器,衡量D/A轉換器性能的主要參數有:

分辨率:即輸出的模擬量的最小變化量,n位的D/A轉換器分辨率為2-n;滿刻度誤差:即輸入為全1時輸出電壓與其理想值之間的誤差,一般為2-(n+1);輸出范圍;轉換時間:指從轉換器的輸入改變到輸出穩定的時間間隔;是否容易和CPU連接。

6-5-1梯形電阻式D/A轉換原理:“按權展開,然后相加”

根據以上的分析計算,可推理得到n位二進制數的轉換表達式:其中D為n位二進制數的和,因此,電流和二進制數成線性關系。運算放大器的輸出電壓為:DAC0832是美國數據公司的8位D/A,片內帶數據鎖存器,電流輸出,輸出電流穩定時間為1us。+5V~+15V單電源供電,功耗為20mW。

6-5-2DAC08321.DAC0832的內部結構控制線(5條)ILE:

數據鎖存允許控制信號輸入線,高電平有效;

CS:片選片信號輸入線,低電平有效;WR1:數據鎖存器寫選通輸入線,負脈沖有效;WR2:DAC寄存器寫選通輸入線,負脈沖有效;XFER:數據傳輸控制信號輸入線,低電平有效;

輸出線(3條):IOUT1:電流輸出線,當DAC寄存器為全1時IOUT1最大;IOUT2:電流輸出線,其值與IOUT1值之和為一常數;Rfb:

反饋信號輸入線,改變Rfb端外接電阻值可調整轉換滿量程精度。

2.DAC0832的工作方式直通方式:使所有控制信號(CS、WR1、WR2、ILE、XFER)均有效,常用于不帶微機的控制系統;

單緩沖方式:只使一個數據緩沖器有效,適用于一路模擬量輸出或幾路模擬量非同步輸出;

雙緩沖方式:輸入寄存器和DAC寄存器各自分配有地址,可分別選通后同時輸出多路模擬信號,適用于多個DAC0832同時輸出。1.DAC用作單極性電壓輸出

Vout=-D×Vref/256

D=D7×27+D6×26+…+D0×203.DAC的應用-電流輸出轉換成電壓輸出

2.DAC用作雙極性電壓輸出列方程:I1+I2+I3=0I1=Va/R,I2=Vout

/2R,I3=Vref/2RVa=-D×Vref/256解得:

Vout=(D-128)×Vref/128只有一路模擬量輸出的MCS-51系統例:D/A轉換程序:用DAC0832輸出0~5V鋸齒波,電路為單緩沖方式(設VREF=-5V,DAC0832地址為7FFFH,脈沖周期要求為100ms)。100msDACS:MOVDPTR,#7FFFH;0832I/O地址 MOVA,#0 ;開始輸出0VDACL:MOVX @DPTR,A ;輸出模擬量 ACALL DELAY ;延時100ms/256

INCA ;升壓

AJMP DACL ;連續輸出DELAY:… ;延時子程序+5V0V例:D/A轉換程序,用DAC0832輸出-1~-5V方波,電路為單緩沖方式。設VREF=5V,DAC0832地址為7FFFH。解:ORG1000HSTART:MOVDPTR,#7FFFHLOOP:MOVA,#33H;(等于10進制的51)MOVX@DPTR,A;置上限電平ACALLDELAY;形成方波頂寬MOVA,#0FFH

MOVX@DPTR,A;置下限電平ACALLDELAY;形成方波底寬SJMPLOOP;循環DELAY:…-1V-5VA/D轉換器是將模擬量轉換成數字量的器件。模擬量可是電壓、電流等電信號,也可是聲、光、壓力和溫度等隨時間連續變化的非電物理量。非電物理量可通過合適的傳感器等轉換成電信號,模擬量只有轉換成數字量才能被計算機采集、分析和計算處理。6-6A/D接口的擴展

A/D轉換的種類計數器式:結構簡單,轉換速度很慢;雙積分式:抗干擾能力強,轉換速度低;逐次逼近式:轉換速度較快;并行轉換:轉換速度最快,但因結構復雜而造價較高。控制電路先使“N位寄存器”中最高位置1,其余位清零,“N位D/A轉換網絡”根據“N位寄存器”中的內容產生一個比較電壓Vs(為滿量程的一半),并將其與Vx比較,若Vx>Vs,則“N位寄存器”中最高位的“1”保留,表示Vx比滿量程的一半還大,否則置“0”。然后控制電路依次對N-1,N-2,…,1位重復上述比較過程,就可使“N位寄存器”中得到與模擬量Vx相對應的數字量。逐次逼近式A/D轉換原理:衡量A/D性能的主要參數:分辨率:即輸出的數字量最低位變化一位所對應的輸入模擬量的變化值;滿刻度誤差:即輸出全1時輸入電壓與其理想輸入量之差;轉換速率;轉換精度;是否可方便地和CPU連接。6-6-2集成A/D轉換器ADC0809/0808為8路8位逐次逼近式A/D轉換器,可分時轉換8路模擬信號。ADC0809由一個8位逐次逼近式A/D轉換器、8路模擬量轉換開關、3-8地址鎖存譯碼器和三態輸出數據鎖存器。ADC0809的引腳功能IN0~IN7:8路模擬量輸入通道;D7~D0:8位三態數據輸出線;A、B、C:通道選擇輸入線;ALE:通道鎖存控制信號輸入線;START:啟動轉換控制信號輸入線;CLK:轉換時鐘輸入線,典型值為640KHz,超過該頻率,轉換精度會下降;EOC:轉換結束信號輸出線,高電平有效;OE:輸出允許控制信號輸入線,OE為高電平時把轉換結果送數據線D7~D0,OE為低電平時D7~D0浮空;ADC0809時鐘信號的確定ADC0809時鐘信號由8031的ALE信號提供,8031的ALE引腳通常是每個機器周期出現兩次,故它的頻率是單片機振蕩頻率的1/6。若8031的主頻是6MHz,則ALE信號頻率是1MHz,若使ALE上信號二分頻后接ADC0809的CLK端,則可獲得500KHz的A/D轉換脈沖。1.啟動A/D轉換(3種啟動方式對應3種硬件連接方法)1)ADDA,ADDB,ADDC分別接地址鎖存器提供地址的低3位,指向IN7通道的相應程序指令為:MOVDPTR,#0EFF7H;指向A/D轉換器和模擬通道IN7地址MOVX@DPTR,A;啟動A/D轉換,A中可以是任意值

MCS-51單片機與ADC0809的接口方法2)ADDA,ADDB,ADDC分別接數據線中的低3位,則指向IN7通道的相應程序指令為:MOVDPH,#0E0H ;送A/D轉換器端口地址MOVA,#07H ;IN7地址送AMOVX@DPTR,A ;送地址并啟動A/D轉換3)ADDA,ADDB,ADDC分別接高8位地址中的低3位,則指向IN7通道的相應程序指令為:MOVDPTR,#0E700HMOVX@DPTR,A1)無條件傳送方式

轉換時間是轉換器的一項已知和固定的技術指標。例如:ADC0809轉換時間為128s,可在A/D轉換啟動后,調用一個延時足夠長的子程序,規定時間到,轉換也肯定已經完成。2)查詢方式

ADC0809的EOC端出現高電平,表明A/D轉換完成。查詢測試EOC的狀態,即可確知轉換是否完成。需注意從ADC0809復位到EOC變低約需10s時間,查詢時應首先確定EOC先變低,再變高,才說明A/D轉換完成。3)中斷方式

把表明轉換完成的狀態信號(EOC)作為中斷請求信號,以中斷方式進行數據傳送。2.確認A/D轉換完成3.轉換數據的傳送例6-6如圖6-40a電路中,對IN0~IN7上模擬電壓巡回采集一遍數字量,并送入內部RAM以50H為始址的輸入緩沖區的有關程序如下:ORG0000HSTMPMA1NORG0013HLJMPP1NT1MAIN:MOV10H,#50H;輸入數據區首址送工作寄存器2區R0MOV12H,#0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論