第7章 單片機系統(tǒng)擴展_第1頁
第7章 單片機系統(tǒng)擴展_第2頁
第7章 單片機系統(tǒng)擴展_第3頁
第7章 單片機系統(tǒng)擴展_第4頁
第7章 單片機系統(tǒng)擴展_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第7 7章章 單片機系統(tǒng)擴展單片機系統(tǒng)擴展 教學目標教學目標介紹單片機程序存儲器的擴展方法介紹單片機程序存儲器的擴展方法介紹單片機數(shù)據(jù)存儲器的擴展方法介紹單片機數(shù)據(jù)存儲器的擴展方法 介紹單片機介紹單片機I/O口的擴展方法口的擴展方法 學習要求學習要求熟悉單片機片外三總線結構和擴展能力熟悉單片機片外三總線結構和擴展能力 掌握系統(tǒng)擴展掌握系統(tǒng)擴展EPROM,RAM,I/O口方法口方法 掌握地址譯碼及片選方法掌握地址譯碼及片選方法 了解單片機總線驅動能力和擴展方法了解單片機總線驅動能力和擴展方法 通常情況下,采用8051/8751/89C51的最小應用系統(tǒng)最能發(fā)揮單片機體積小、成本低的優(yōu)點。但在很

2、多情況下,構成一個工業(yè)測控系統(tǒng)時,考慮到傳感器接口、伺服控制接口以及人機對話接口等的需要,最小應用系統(tǒng)常常不能滿足要求,因此,必須在片外擴展相應的外圍芯片,這就是系統(tǒng)擴展。它包括程序存儲器(ROM)擴展、數(shù)據(jù)存儲器(RAM)擴展、I/O口擴展、定時/計數(shù)器擴展、中斷系統(tǒng)擴展以及其它特殊功能擴展等。7.1 MCS-517.1 MCS-51系列單片機的外部擴展性能系列單片機的外部擴展性能 7.1.1 MCS-51系列單片機的片外總線結系列單片機的片外總線結構構 為了滿足系統(tǒng)擴展要求,MCS-51系列單片機的片外引腳可以構成圖7-1所示的三總線結構,即地址總線(AB)、數(shù)據(jù)總線(DB)和控制總線(C

3、B)。所有的外部芯片都是通過這三組總線進行擴展。圖圖7-1 單片機的片外三總線結構單片機的片外三總線結構 高8位地址 低8位地址 16位地址總線 8位數(shù)據(jù)總線 控制總線 P2口 ALE 8051 P0口 RDEA WR PSEN 地址鎖存器 1.地址總線地址總線(AB) 地址總線寬度為16位,因此可尋址范圍為216=64KB。地址總線由P0口提供低8位地址A7A0,由P2口提供高8位地址A15A8。 2.數(shù)據(jù)總線數(shù)據(jù)總線(DB) 數(shù)據(jù)總線由P0口提供,其寬度為8位。 3.3.控制總線控制總線( (CB)CB) 控制總線包括片外系統(tǒng)擴展用線和片外信號對單片機的控制線。 , :用于片外數(shù)據(jù)存儲器(

4、RAM)的讀寫控制。當執(zhí)行片外數(shù)據(jù)存儲器操作指令MOVX時,這兩個信號自動生效。 :用于片外程序存儲器(EPROM)的讀數(shù)控制。 ALE:用于鎖存P0口輸出的低8位地址的控制線。通常,ALE在P0口輸出地址期間用其下降沿控制鎖存器鎖存地址數(shù)據(jù)。 :用于選擇片內或片外程序存儲器。當 =0時,只訪問片外程序存儲器,而不管片內有無程序存儲器。因此,在擴展并使用外部程序存儲器時,必須將 接地。 WRRDPSENEAEAEA7.1.2 7.1.2 MCS-51MCS-51系列單片機的系統(tǒng)擴展能力系列單片機的系統(tǒng)擴展能力 根據(jù)地址總線寬度,MCS-51系列單片機在片外可擴展的存儲器最大容量為64KB,地址

5、范圍為0000HFFFFH。 1.片外數(shù)據(jù)存儲器與程序存儲器的地址范圍一樣為64KB,地址也可重復,它們由單片機不同的指令和控制信號區(qū)分:讀片外程序存儲器的指令為MOVC,讀寫片外數(shù)據(jù)存儲器的指令為MOVX;讀片外程序存儲器的控制信號為 ,讀寫片外數(shù)據(jù)存儲器的控制信號為 和 。 2.片外數(shù)據(jù)存儲器與片內數(shù)據(jù)存儲器的地址可重復,但操作指令不同。對片內數(shù)據(jù)存儲器讀寫的指令為MOV,對片外數(shù)據(jù)存儲器讀寫的指令為MOVX。 3.為配置外圍設備而需要擴展的I/O接口,如A/D、D/A等,與片外數(shù)據(jù)存儲器統(tǒng)一編址, WRRDPSEN7.1.3 7.1.3 MCS-51MCS-51系列單片機的總線驅動能力及

6、擴展方法系列單片機的總線驅動能力及擴展方法 一、總線的驅動能力一、總線的驅動能力 MCS-51系列單片機作為數(shù)據(jù)總線和低8位地址總線的P0口可驅動8個LSTTL電路,而P1、P2、P3只能驅動4個LSTTL電路。當應用系統(tǒng)規(guī)模過大時,可能造成負載過重,致使驅動能力不夠,系統(tǒng)不能可靠地工作。 二、總線的擴展概述二、總線的擴展概述 在設計計算機應用系統(tǒng)硬件電路時,首先要估計總線的負載情況,以確定是否需要對總線的驅動能力進行擴展。 地址總線和控制總線為單向的,可采用單向三態(tài)線驅動器(如74LS244)進行驅動能力的擴展。數(shù)據(jù)總線為雙向的,必須采用雙向三態(tài)線驅動器(如74LS245)進行驅動能力的擴展

7、。 7.2 7.2 MCS-51MCS-51系列單片機存儲器擴展系列單片機存儲器擴展 7.2.1程序儲存器擴展程序儲存器擴展 一、 儲存器擴展概述 外部程序存儲器芯片與單片機可按如下方式連接: 1.地址線的連接 外部程序存儲器低8位地址線A0A7與P0口的口線P0.0P0.7對應相連;外部程序存儲器高8位地址線A8A15與P2口的口線P2.0P2.7對應相連。 2.數(shù)據(jù)線的連接 外部程序存儲器8位數(shù)據(jù)線D0D7與P0口的口線P0.0P0.7對應相連。 3.控制線的連接 (片外程序存儲器取指信號)和 (程序存儲器輸出允許信號)相連;ALE(地址鎖存允許信號)和 (地址鎖存器鎖存信號)相連; (片

8、內/片外程序存儲器選擇信號),當選用8031/8032時,應接地;單片機的相關地址線經(jīng)過地址譯碼和程序存儲器的片選信號 相連。 由上面論述可以得到外部擴展程序存儲器的一般連接方法,見圖7-2所示。EACEPSENOEG圖圖7-2 單片機的外部程序存儲器一般連接方法單片機的外部程序存儲器一般連接方法 地址鎖存器 P2.7 P2.0 ALE 8031 P0.7P0.0 EA PSENA15 A8A7外部程序 A0存儲器D7D0 OE二、程序儲存器二、程序儲存器EPROM的擴展的擴展 1.使用單片使用單片EPROM的擴展電路的擴展電路 圖7-3為8031單片機外接一片EPROM 27256的擴展電路

9、。圖圖7-3 8031單片機擴展一片單片機擴展一片27256的電路的電路 1234ABCD4321DCBATitleNumberRevisionSizeA4Date:11-Dec-2001Sheet of File:D:教 材 編 寫 電 路 圖 7-5.ddbDrawn By:EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P272

10、8PSEN29ALE/P30TXD11RXD10 U18031A010A19A28A37A46A55A64A73A825A924A1021A1123A122A1326A1427CE20OE22VPP1D011D112D213D315D416D517D618D719 U327256D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11 U274LS373Y6MHZC133PC233PC310uFR110KVccVcc 27256的 端是輸出使能端,與8031的 端相連,當 有效時,把27256中的指令送上P0口線。由于只擴展

11、一片EPROM,27256的片選端 可直接接地。27256的編程電壓端VPP接電源。 當用戶熟悉了其它EPROM芯片后,很容易改成其它容量EPROM的單片擴展電路:擴展27128時,去掉P2.7引出線,將27128的27腳接Vcc;擴展2764時,去掉P2.6、P2.5引出線,并將2764的27腳接Vcc,26腳不接;擴展2732時,去掉P2.6、P2.5和P2.4引出線;擴展2716時,去掉P2.6、P2.5、P2.4和P2.3引出線,并將2764的Vpp接Vcc即可。OEPSENPSENCE 3.使用多片使用多片EPROM的擴展電路的擴展電路 在擴展多片EPROM時,所有芯片的片選端都必須

12、按照地址線進行選擇。芯片的片選是在保證對EPROM片內存儲空間尋址條件下,使用剩余的地址線進行的,分為線選法和譯碼法?,F(xiàn)以擴展多片2764 EPROM為例來說明這兩種片選法: 2764的片內地址為8K,因此片內尋址需占用A12A0的13根地址線,尚剩余3根地址線A13、A14、A15,采用線選法時,剩余的三根地址線每根可接一個芯片的片選信號,則只能擴展3片2764,見圖7-4(a)所示;采用譯碼法時,剩余三根地址線經(jīng)過3-8譯碼得到8根片選信號,可擴展8片2764,見圖7-4(b)所示。圖圖7-4(a) 線選法擴展三片線選法擴展三片2764的電路的電路 1234ABCD4321DCBATitl

13、eNumberRevisionSizeA4Date:12-Dec-2001Sheet of File:D:劉 電 霆 教 材 編 寫 圖 7-5.ddbDrawn By:EA/VP31X119X218RESET9RD17W R16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U18031D03Q02D14Q15D27Q26D38Q39

14、D413Q412D514Q515D617Q616D718Q719OE1LE11U274LS373A010A19A28A37A46A55A64A73A825A924A1021A1123A122CE20OE22PGM27VPP1D011D112D213D315D416D517D618D719U32764A010A19A28A37A46A55A64A73A825A924A1021A1123A122CE20OE22PGM27VPP1D011D112D213D315D416D517D618D719U42764A010A19A28A37A46A55A64A73A825A924A1021A1123A122C

15、E20OE22PGM27VPP1D011D112D213D315D416D517D618D719U52764Y 6M HZC1 33pC2 33pC310uR110KVcc數(shù)據(jù)總線地址總線AB0AB1AB2AB3AB4AB5AB6AB7AB0AB1AB2AB3AB4AB5AB6AB7A8A9A10A11A12A13A14A15A0A1A2A3A4A5A6A7A0A1A2A3A4A5A6A7A8A9A10A11A12D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7A0A1A2A3A4A5A6A7A8A9A10A11A12A0A1A2A3A4A5A6A7A8A9A10A11A12D

16、0D1D2D3D4D5D6D7VccVccA13A14A15圖圖7-4(b) 譯碼法擴展三片譯碼法擴展三片2764的電路的電路 1234ABCD4321DCBATitleNumberRevisionSizeA4Date:12-Dec-2001Sheet of File:D:劉 電 霆 教 材 編 寫 圖 7-5.ddbDrawn By:EA/VP31X119X218RESET9RD17W R16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P212

17、2P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U18031D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U274LS373A010A19A28A37A46A55A64A73A825A924A1021A1123A122CE20OE22PGM27VPP1D011D112D213D315D416D517D618D719U32764A010A19A28A37A46A55A64A73A825A924A1021A1123A122CE20OE22PGM27VPP1D0

18、11D112D213D315D416D517D618D719U42764A010A19A28A37A46A55A64A73A825A924A1021A1123A122CE20OE22PGM27VPP1D011D112D213D315D416D517D618D719U52764Y 6MHZC1 33pC2 33pC310uR110KVcc數(shù)據(jù)總線地址總線AB0AB1AB2AB3AB4AB5AB6AB7AB0AB1AB2AB3AB4AB5AB6AB7A8A9A10A11A12A13A14A15A0A1A2A3A4A5A6A7A0A1A2A3A4A5A6A7A8A9A10A11A12D0D1D2D3

19、D4D5D6D7D0D1D2D3D4D5D6D7A0A1A2A3A4A5A6A7A8A9A10A11A12A0A1A2A3A4A5A6A7A8A9A10A11A12D0D1D2D3D4D5D6D7VccVccA1B2C3E14E25E36Y015Y114Y213Y312Y411Y510Y69Y77U674LS138VccA13A14A15Y0Y1Y2Y1Y2Y3 目前,隨著大容量EPROM的出現(xiàn),像圖7-4(b)這種多片地址譯碼的方法已不太常用,它完全可以用兩片27256代替。對于擴展兩片27256 EPROM的電路如圖7-5所示,它是帶反相器的線選法:用一根地址線,使它不經(jīng)反相器和經(jīng)反向器后

20、分別連接到兩個EPROM的片選。圖圖7-5 兩片兩片27256的擴展電路的擴展電路 1234ABCD4321DCBATitleNumberRevisionSizeA4Date:12-Dec-2001Sheet of File:D:劉 電 霆 教 材 編 寫 圖 7-5.ddbDrawn By:EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2

21、627P2728PSEN29ALE/P30TXD11RXD10U18031D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U274LS373Y 6MHZC133pC233pC310uR110KVcc數(shù)據(jù)總線地址總線AB0AB1AB2AB3AB4AB5AB6AB7AB0AB1AB2AB3AB4AB5AB6AB7A8A9A10A11A12A13A14A15A0A1A2A3A4A5A6A7A0A1A2A3A4A5A6A7A8A9A10A11A12D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7A0A1A2A

22、3A4A5A6A7A8A9A10A11A12VccA13A010A19A28A37A46A55A64A73A825A924A1021A1123A122A1326A1427CE20OE22VPP1D011D112D213D315D416D517D618D719U327256A010A19A28A37A46A55A64A73A825A924A1021A1123A122A1326A1427CE20OE22VPP1D011D112D213D315D416D517D618D719U427256A14A13A14Vcc12U5A74LS04 三、作為程序儲存器三、作為程序儲存器EEPROM的擴展的擴展 電

23、擦除可編程只讀存儲器EEPROM(Electrically Erasable PROM)具有能在應用系統(tǒng)中進行在線改寫、并可在斷電情況下保存數(shù)據(jù)而不需保護電源等優(yōu)點,在智能儀表、控制裝置、分布式監(jiān)控系統(tǒng)子站以及開發(fā)裝置中得到了廣泛的應用。 圖7-6為8031單片機的EEPROM 28C16的擴展電路,圖中使用了控制線 、 、 。圖中 線是 由 和 相“與”后提供,無論 有效還是 有效都能使28C16的輸出允許端有效,這種聯(lián)接方法是把EEPROM既作為程序存儲器,也作為數(shù)據(jù)存儲器用;28C16的 與8031的 相連,單片機可以向28C16寫指令數(shù)據(jù)或數(shù)據(jù)、表格;28C16的 與8031的P2.7

24、進行線選,當系統(tǒng)中有其它程序存儲器或數(shù)據(jù)存儲器時,要統(tǒng)一考慮地址選擇。WRRDOERDRDWEWRPSENPSENPSENCE7.2.27.2.2數(shù)據(jù)儲存器擴展數(shù)據(jù)儲存器擴展 一、一、 數(shù)據(jù)儲存器擴展概述數(shù)據(jù)儲存器擴展概述外部數(shù)據(jù)存儲器芯片與單片機可按如下方式連接: 1.地址線的連接地址線的連接外部程序存儲器低8位地址線A0A7與P0口的口線P0.0P0.7對應相連;外部程序存儲器高8位地址線A8A15與P2口的口線P2.0P2.7對應相連。2.數(shù)據(jù)線的連接數(shù)據(jù)線的連接外部程序存儲器8位數(shù)據(jù)線D0D7與P0口的口線P0.0P0.7對應相連。3.控制線的連接控制線的連接 (單片機片外數(shù)據(jù)讀信號)

25、和 (數(shù)據(jù)存儲器讀信號)相連;ALE(單片機地址鎖存允許信號)和G(地址鎖存器鎖存信號)相連; (單片機片外數(shù)據(jù)寫信號)和 (數(shù)據(jù)存儲器寫信號)相連;單片機的相關地址線經(jīng)過線譯碼或地址譯碼和數(shù)據(jù)存儲器的片選信號 相連。由上面論述可以得到外部擴展數(shù)據(jù)存儲器的一般連接方法,見圖7-6所示。 RDRDWEWRCE圖圖7-6 單片機的外部數(shù)據(jù)存儲器一般連接方法單片機的外部數(shù)據(jù)存儲器一般連接方法 地址鎖存器 P2.7 P2.0 ALE 8031 P0.7P0.0EA WR RDA15 CE A8A7A0 外部數(shù)據(jù) 存儲器D7D.0 WE RD 訪問外部數(shù)據(jù)區(qū)可只采用低8位地址線尋址,這時可尋址空間為25

26、6B,采用下面讀、寫指令來訪問此數(shù)據(jù)存儲區(qū): MOVX A,Ri (i=0,1) MOVX Ri,A (i=0,1) 由于8位尋址指令所占字節(jié)少,指令執(zhí)行速度快,故在數(shù)據(jù)量不大的情況下,應盡可能采用這種8位尋址指令。在單片機系統(tǒng)中通常選用8155外圍芯片,其內部的256B就可以作為外部擴展RAM使用。 也可以采用16位地址線尋址外部數(shù)據(jù)區(qū),這時可尋址空間為64KB,采用下面8位尋址指令來讀、寫此數(shù)據(jù)存儲區(qū): MOVX A,DPTR MOVX DPTR,A 當外部RAM容量較大(大于256B)時,采用此尋址方法。 二、數(shù)據(jù)儲存器靜態(tài)二、數(shù)據(jù)儲存器靜態(tài)RAM的擴展的擴展 由于單片機是面向測、控為主

27、的,實際所需要的數(shù)據(jù)存儲器的擴展容量不會很大,所以在擴展時為了電路的簡單,一般使用靜態(tài)RAM,如6116和6264。 圖7-7為擴展單片6116時的電路。前面講過,擴展單片程序存儲器時,片選端直接接地即可,因為系統(tǒng)中不會再有其它程序存儲器芯片。但擴展單片數(shù)據(jù)存儲器時,其片選端能否直接接地則還要考慮應用系統(tǒng)中有無I/O口及外圍設備擴展,如果有,則要統(tǒng)一進行片選選擇。圖圖7-7 6116的擴展電路的擴展電路 1234ABCD4321DCBATitleNumberRevisionSizeA4Date:27-Dec-2001Sheet of File:D:劉 電 霆 教 材 編 寫 圖 7-7,8.D

28、DBDrawn By:EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U18031D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U274LS373Y 6MHZC133pC233pC310uR110KV

29、cc數(shù)據(jù)總線地址總線AB0AB1AB2AB3AB4AB5AB6AB7AB0AB1AB2AB3AB4AB5AB6AB7A8A9A10A11A12A13A14A15A0A1A2A3A4A5A6A7D0D1D2D3D4D5D6D7A0A1A2A3A4A5A6A7A8A9A08A17A26A35A44A53A62A71A823A922A1019E18G20W21D09D110D211D313D414D515D616D717U36116A10A15 三、作為數(shù)據(jù)儲存器三、作為數(shù)據(jù)儲存器EEPROM的擴展的擴展 EEPROM兼有程序存儲器與數(shù)據(jù)存儲器的特點,故在單片機應用系統(tǒng)中既可作為程序存儲器,又可作為

30、數(shù)據(jù)存儲器。作為程序存儲器,其操作主要是程序運行操作,必須嚴格按照程序存儲器的地址總線、數(shù)據(jù)總線、控制總線的聯(lián)接方式。而將EEPROM作為數(shù)據(jù)存儲器時,與單片機的接口較靈活,既可直接將EEPROM作為片外數(shù)據(jù)存儲器擴展,也可以作為一般外圍設備電路擴展,而不影響數(shù)據(jù)的存取。 圖7-8為并行EEPROM的數(shù)據(jù)存儲器擴展電路。圖中2816A可按照典型的數(shù)據(jù)存儲器擴展電路聯(lián)接方式,如2814A(1)芯片。也可以作為外設電路,通過擴I/O口8255連接,如2816A(2)??梢钥闯?,作為數(shù)據(jù)存儲器時其電路連接較為靈活。2816A(2)工作時,要使8255進入工作狀態(tài)(P2.7使8255有效),2816A

31、所需的地址采用通過8255用MOVX指令送入。圖圖7-8 28C16作為數(shù)據(jù)存儲器的擴展電路作為數(shù)據(jù)存儲器的擴展電路 1234ABCD4321DCBATitleNumberR evisionSizeA4Date:28-Dec-2001Sheet of File:D:劉 電 霆 教 材 編 寫 圖 7-7,8.DDBDrawn B y:EA/VP31X119X218R ESET9R D17W R16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P21

32、22P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11R XD10U18031D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U274LS373Y 6M HZC 133pC 233pC 310uR 110KVcc數(shù)據(jù)總線地址總線AB 0AB 1AB 2AB 3AB 4AB 5AB 6AB 7AB 0AB 1AB 2AB 3AB 4AB 5AB 6AB 7A8A9A10A11A12A13A14A15A0A1A2A3A4A5A6A7D0D1D2D3D4D5D6D7A71A62

33、A53A44A35A26A17A08DQ09DQ110DQ211DQ313DQ414DQ515DQ616DQ717C E18A1019OE20W E21A922A823U328C 16A0A1A2A3A4A5A6A7A8A9A10A14W RR DD034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB 018PB 119PB 220PB 321PB 422PB 523PB 624PB 725PC 014PC 115PC 216PC 317PC 413PC 512PC 611PC 710R D5W R36A09

34、A18R ESET35C S6U58255R DW RA71A62A53A44A35A26A17A08DQ09DQ110DQ211DQ313DQ414DQ515DQ616DQ717C E18A1019OE20W E21A922A823U428C 16D0D1D2D3D4D5D6D7W RR DA0A1A15A13W RR DPA0PA1PA2PA3PA4PA5PA6PA7PA0PA1PA2PA3PA4PA5PA6PA7PC 0PC 1PC 2PC 3PC 4PC 5PC 6PC 7PC 0PC 1PC 27.3 MCS-517.3 MCS-51系列單片機系列單片機I/OI/O口擴展口擴展 MC

35、S-51單片機共有四個8位并行I/O口,但這些I/O口并不能完全提供給用戶使用。只有對于片內有ROM/EPROM/FLASH-RAM單片機8051/8751/89C51,在不使用外部擴展時,才允許這四個I/O口作為用戶I/O口使用。然而對于大多數(shù)使用8031以及使用8051/8751/89C51需外部擴展時,MCS-51單片機可提供給用戶使用的I/O只有P1口和部分P3口線。因此,在大部分的MCS-51單片機應用系統(tǒng)設計中都不可避免地要進行I/O口的擴展。 擴展I/O口可以通過MCS-51單片機的數(shù)據(jù)總線進行,也可以利用移位寄存器通過MCS-51單片機的串行口進行。 7.3.17.3.1通過數(shù)

36、據(jù)總線擴展通過數(shù)據(jù)總線擴展 通過數(shù)據(jù)總線擴展I/O口,是采用外部數(shù)據(jù)存儲器映射方式進行輸入、輸出的,與外部數(shù)據(jù)存儲器的擴展在方法上是基本相同的。從功能上看,通過數(shù)據(jù)總線擴展的I/O口有兩種基本類型:簡單I/O口擴展和可編程I/O口的擴展。 一、采用簡單并行一、采用簡單并行I/O接口芯片擴展接口芯片擴展 P0口是數(shù)據(jù)總線口,通過P0口擴展I/O口時,P0口只能分時使用,故 輸 出 時 , 接 口 電 路 應 具 有 鎖 存 功 能 , 如 采 用 8 D 鎖 存 器74LS273,74LS373,74LS377組成輸出口;輸入時,接口電路應能三態(tài)緩沖,如采用8位三態(tài)緩沖器74LS244組成輸入口

37、。 1用三態(tài)門擴展用三態(tài)門擴展8位輸入并行口位輸入并行口 圖7-9是用74LS244通過P0口擴展的8位并行輸入接口。74LS244由兩組4位三態(tài)緩沖器組成,分別由選通端和控制。當它們?yōu)榈碗娖綍r,這兩組緩沖器被選通,數(shù)據(jù)從輸入端A送到輸出端Y。 和 同時由P2.7和相或后控制,由此可知74LS244的地址為7FFFH,其數(shù)據(jù)的輸入使用以下幾條指令即可: MOVX DPTR,#7FFFH ;數(shù)據(jù)指針指向74LS244口地 址 MOVX A,DPTR ;讀入數(shù)據(jù)G1G2圖圖7-9 簡單簡單I/O口的擴展電路口的擴展電路 1234ABCD4321DCBATitleNumberR evisionSiz

38、eA4Date:29-Dec-2001Sheet of File:D:劉 電 霆 教 材 編 寫 圖 7-7,8.DDBDrawn B y:1A121A241A361A482A1112A2132A3152A4171Y1181Y2161Y3141Y4122Y192Y272Y352Y431G12G19U274LS244D13Q12D24Q25D37Q36D48Q49D513Q512D614Q615D717Q716D818Q819C LK11C LR1U374LS273EA/VP31X119X218R ESET9R D17WR16INT012INT113T014T115P101P112P123P13

39、4P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11R XD10U18031Y 6M HZC 133pC 233pC 310uR 110KVccVC C123U4A74LS32456U4B74LS32D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7 2用鎖存器擴展簡單的用鎖存器擴展簡單的8位輸出口位輸出口 圖7-9是用74LS273通過P0口擴展的8位并行輸出接口。74L

40、S273是帶三態(tài)門控的鎖存器,CLR為數(shù)據(jù)清零端,其為低電平時有效,故此處應接高電平。CLK為鎖存時鐘端,由P2.7和相或后控制,當同時為低電平時,將P0口的數(shù)據(jù)鎖存到74LS273。因此74LS273的地址為7FFFH,和輸入口地址相同,但由于它們分別由和信號控制,仍然不會發(fā)生沖突。其數(shù)據(jù)的輸出使用以下幾條指令即可: MOVX DPTR,#7FFFH;數(shù)據(jù)指針指向 74LS273口地址 MOVX A,#data;輸出數(shù)據(jù)要通過累加器傳送 MOVX DPTR,A;P0口通過74LS273輸出數(shù)據(jù) 當要擴展多個簡單的8位輸入口和輸出口,多個74LS244的選通端和和多個74LS273的鎖存時鐘C

41、LK,應采用類似前面所講述的多片EPROM擴展時的片選方法。但要注意8031的I/O口驅動能力,在實際應用時,要根據(jù)負載的大小適當增設驅動電路。 二、采用可編程并行二、采用可編程并行I/O接口芯片擴展接口芯片擴展 在單片機接口中,常使用一些結構復雜的接口芯片,以完成各種復雜的操作。這類芯片一般具有多種功能,在使用前,必須由CPU對其編程,以確定其工作方式,之后才能使芯片按設定的方式進行操作,這就是可編程接口。下面將通過使用8255擴展并行I/O口重點說明這個問題。 1. 8255的初始化的初始化 使用8255時,首先要由CPU對8255寫入控制命令字,有兩種控制命令字:一個是方式選擇控制字,另

42、一個是C口按位置位/復位控制字,8255的各種工作方式都要由控制命令字來設定,這個設置過程稱為“初始化”。 (1)方式選擇控制字方式選擇控制字(D7=1) D0D2三位用來對B組的端口進行工作方式設定。D2設置B口的工作方式,D2=1為方式1;D2=0為方式0。D1位設定B口的輸入或輸出,D1=1為輸入;D1=0為輸出。D0位設定C口的低半部,D0=1為輸入,D0=0為輸出。 D3D6四位用來對A組的端口進行設定。D6D5組合起來設定A口工作方式,D6D5=00,為方式0;D6D5=01為方式1;D6D5=10和11都為方式2。D4位用來設定A口的輸入或輸出。D3位用來設定C口上半部的輸入或輸

43、出,D3=1為輸入,D3=0為輸出。 (2) C口按位置口按位置/復位控制字復位控制字(D7=0) 因為C口共有8個二進制位,要確定對其中某一位進行操作,就要在控制字中指定該位的編號。圖中用了D3D2D1三位的編碼與C口的某一位相對應,對指定位進行的操作則由D0確定,如D0=1時,將指定位置“1”。D0=0則將指定位置“0”。 2. 8255和和8031的接口方法的接口方法 MCS-51單片機與8255的接口邏輯簡單,其接口電路如圖7-10所示。圖中,8255的片選信號及口地址選擇線A0、A1分別由8031的P0.7和P0.0、P0.1經(jīng)地址鎖存后提供。故8255的A、B、C口及控制口地址分別

44、為FF7CH、FF7DH、FF7EH、FF7FH。8255的復位端與8031的復位端相連,都接到8031的復位電路上。 1234ABCD4321DCBATitleNumberRevisionSizeA4Date:3-Jan-2002 Sheet of File:D:劉 電 霆 教 材 編 寫 圖 7-7,8.DDBDrawn By:D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413

45、PC512PC611PC710RD5WR36A09A18RESET35CS6U38255EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U18031D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U27

46、4LS373Y 6MHZC133pC233pC310uR110KVcc數(shù)據(jù)總線地址總線AB0AB1AB2AB3AB4AB5AB6AB7AB0AB1AB2AB3AB4AB5AB6AB7A8A9A10A11A12A13A14A15A0A1A2A3A4A5A6A7D0D1D2D3D4D5D6D7A0A1A7圖圖7-10 8031與與8255接口電路接口電路7.3.27.3.2通過串行口擴展通過串行口擴展 一、用并入串出移位寄存器擴展并行輸入口一、用并入串出移位寄存器擴展并行輸入口 圖7-11是利用兩片74LS165擴展2個8位并行輸入口的電路。74LS165是8位并行輸入串行輸出移位寄存器,單片機的

47、RXD(P3.0)作為串行數(shù)據(jù)輸入端與74LS165的串行輸出端Q7相連;單片機的TXD(P3.1)為移位脈沖輸出端,與所有的74LS164芯片的移位脈沖輸入端CLK相連;用1根I/O線(P1.0)與74LS165的移位/置位端相連,來控制其移位與置位。當 為低電平時,并行數(shù)據(jù)置入74LS165的寄存器;當 為高電平時,開始串行移位。當擴展多個8位輸入口時,相鄰兩芯片的首尾(串行輸出端Q7與串行輸入端SER)相連。 串行接收時,由RI引起中斷或對RI查詢來決定何時接受下一個字符(在采用查詢方式時,也需預先關閉中斷)。 PLPL圖圖7-11 利用串行口擴展并行輸入口利用串行口擴展并行輸入口 12

48、34ABCD4321DCBATitleNumberRevisionSizeA4Date:30-Dec-2001Sheet of File:D:劉 電 霆 教 材 編 寫 圖 7-7,8.DDBDrawn By:EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U18031Y 6MH

49、ZC133pC233pC310uR110KVccSER10P011P112P213P314P43P54P65P76CLK12CLK215PL1Q79Q77U274LS165SER10P011P112P213P314P43P54P65P76CLK12CLK215PL1Q79Q77U374LS165 下面程序為利用圖下面程序為利用圖7-11讀入讀入16位數(shù)據(jù)并存入位數(shù)據(jù)并存入8031的的片內片內RAM30H和和31H兩個端單元中:兩個端單元中:MOVR0,#30H;建立指針MOVR7,#02H;字節(jié)計數(shù)初值CLRP1.0;=0,并置入數(shù)據(jù)SETBP1.0;=1,允許串行移位LOOP:MOVSCON

50、,#10H;置串行口方式0,REN=1,RI=0NBRI,$;等待一幀數(shù)據(jù)接受完MOVA,SBUF;讀接受數(shù)據(jù)MOVR0,A;存入RAM緩沖區(qū)INCR0;調整指針DJNZR7,LOOP;數(shù)據(jù)未接受完,繼續(xù)CLRRI;清接收標志 二、采用串入并出移位寄存器擴展并行輸出口二、采用串入并出移位寄存器擴展并行輸出口 圖7-12是利用兩片74LS164擴展2個2位輸出口的接口電路。 74LS164是8位串入并出移位寄存器,單片機的RXD(P3.0)為串行輸出與74LS164數(shù)據(jù)輸入端(1,2)相連;TXD(P3.1)為移位脈沖輸出,與74LS164的時鐘脈沖輸出端(8)相連;由P1.0口線控制74LS1

51、64的清除端 (9)。當 為低電平時,清除74LS165中的數(shù)據(jù);當 為高電平時,開始串行移位。當擴展多個8位輸入口時,相鄰兩芯片的首尾(串行輸出端Q7與串行輸入端A、B)相連。MRMRMR圖圖7-12 利用串行口擴展并行輸出口利用串行口擴展并行輸出口 1234ABCD4321DCBATitleNumberRevisionSizeA4Date:30-Dec-2001Sheet of File:D:劉 電 霆 教 材 編 寫 圖 7-7,8.DDBDrawn By:EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P

52、145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U18031Y 6MHZC133pC233pC310uR110KVccA1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9U274LS164A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9U374LS164 下面程序為利用圖下面程序為利用圖7-12擴展一個擴展一個16位并行輸出口,位并行輸出口,將將8031的片內的片內RAM30H和和31H兩個單元中的數(shù)據(jù)通過兩個單元中的數(shù)據(jù)通過兩片兩片74LS164輸出:輸出:MOVR0,#30H;建立指針MOVR7,#02H

溫馨提示

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

評論

0/150

提交評論