單片機編程4【精制材料】_第1頁
單片機編程4【精制材料】_第2頁
單片機編程4【精制材料】_第3頁
單片機編程4【精制材料】_第4頁
單片機編程4【精制材料】_第5頁
已閱讀5頁,還剩133頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機原理及應用 課程講義 第四章: MCS-51單片機的系統(tǒng)擴展 ,本章內(nèi)容,4.1 系統(tǒng)擴展的基本概念 4.2 程序存儲器的擴展 4.3 數(shù)據(jù)存儲器的擴展 4.4 定時器/計數(shù)器的擴展 4.5 輸入/輸出口的擴展 4. 6 外部中斷源的擴展 4.7 綜合功能擴展,4.1 系統(tǒng)擴展的基本概念,最小系統(tǒng)回顧 系統(tǒng)擴展的相關概念 MCS-51單片機的片外總線結構,最小系統(tǒng)回顧,18051/8751最小應用系統(tǒng)(如圖4.1.1所示)。由于集成度的限制,這種最小應用系統(tǒng)只能用作一些小型的控制單元。其應用特點是: (1)全部I/O口線均可供用戶使用。 (2)內(nèi)部存儲器容量有限(只有4KB地址空間)。

2、(3)應用系統(tǒng)開發(fā)具有特殊性。,圖4.1.1 8051/8751最小應用系統(tǒng),28031最小應用系統(tǒng) 8031是片內(nèi)無程序存儲器的單片機芯片,因此,其最小應用系統(tǒng)應在片外擴展EPROM。圖4.1.2為用8031外接程序存儲器構成的最小系統(tǒng)。,圖4.1.2 8031最小應用系統(tǒng),系統(tǒng)擴展的含義 單片機中雖然已經(jīng)集成了CPU、I/O口、定時器、中斷系統(tǒng)、存儲器等計算機的基本部件(即系統(tǒng)資源),但是對一些較復雜應用系統(tǒng)來說有時感到以上資源中的一種或幾種不夠用,這就需要在單片機芯片外加相應的芯片、電路,使得有關功能得以擴充,我們稱為系統(tǒng)擴展(即系統(tǒng)資源的擴充)。 需要解決的問題是單片機與相應芯片的接口

3、電路連接(即地址總線、數(shù)據(jù)總線、控制總線的連接)與編程。,系統(tǒng)擴展的主要內(nèi)容: 1. 外部總線的擴展 2. 外部存儲器的擴展 3. 輸入、輸出接口的擴展 4. 管理功能部件(如定時/計數(shù)器、鍵盤/顯示器等)的擴展 5. A/D和D/A的接口技術,MCS-51單片機的片外總線結構,MCS-51系列單片機片外引腳可以構成如圖所示的三總線結構,所有外部芯片都通過這三組總線進行擴展。,4.2 程序存儲器擴展技術,4.2.1設計步驟及片選方法 4.2.2 EPROM擴展電路 4.2.3 EEPROM擴展電路,4.2.1 設計步驟及片選方法,根據(jù)需要,選擇適當?shù)拇鎯ζ餍酒?合理分配存儲器的地址空間 根據(jù)系

4、統(tǒng)總線的負載能力,選擇接入總線驅(qū)動器 校驗存儲器的讀取速度,存儲器芯片的選擇有兩種方法: 線選法和譯碼法。 1. 線選法 所謂線選法, 就是直接以系統(tǒng)的地址線作為存儲器芯片的片選信號, 為此只需把用到的地址線與存儲器芯片的片選端直接相連即可。 2. 譯碼法 所謂譯碼法就是使用地址譯碼器對系統(tǒng)的片外地址進行譯碼, 以其譯碼輸出作為存儲器芯片的片選信號。,譯碼法又分為完全譯碼和部分譯碼兩種。 (1) 完全譯碼。 地址譯碼器使用了全部地址線, 地址與存儲單元一一對應, 也就是1個存儲單元只占用1個唯一的地址。 (2) 部分譯碼。 地址譯碼器僅使用了部分地址線, 地址與存儲單元不是一一對應, 而是1個

5、存儲單元占用了幾個地址。 1根地址線不接, 一個單元占用2(21)個地址; 2根地址線不接, 一個單元占用4(22)個地址; 3根地址線不接, 則占用8(23)個地址, 依此類推。,在設計地址譯碼器電路時, 如果采用地址譯碼關系圖的話, 將會帶來很大的方便。 所謂地址譯碼關系圖, 就是一種用簡單的符號來表示全部地址譯碼關系的示意圖。 例如: A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0,從地址譯碼關系圖上可以看出以下幾點: 屬完全譯碼還是部分譯碼; 片內(nèi)譯碼線和片外譯碼線各有多少根; 所占用的全部地址范圍為多少。 例如在上面的關系圖中, 有1個“”(A15不接)

6、, 表示為部分譯碼, 每個單元占用2個地址。 片內(nèi)譯碼線有11根(A100), 片外譯碼線有4根。 其所占用的地址范圍如下:,當A15為0時, 所占用地址為00100000000000000010011111111111, 即2000H27FFH。 當A15為1時, 所占用地址為10100000000000001010011111111111, 即A000HA7FFH。 共占用了兩組地址, 這兩組地址在使用中同樣有效。 應該指出的是, 隨著半導體存儲器的不斷發(fā)展, 大容量、 高性能、 低價格的存儲器不斷推出, 這就使得存儲器的擴展變得更加方便, 譯碼電路也越來越簡單了。,4.2.2 EPROM

7、擴展電路,擴展原理 訪問外部程序存儲器的時序 程序存儲器擴展使用的典型芯片 2764 2716、2732 2764A 27128A 27256A 27512A,擴展原理,圖 4.2.1 MCS - 51 單片機程序存儲器的擴展原理,訪問外部程序存儲器時序 操作時序如圖4.2.2所示,其操作過程如下。 (1)在S1P2時刻產(chǎn)生ALE信號。 (2)由P0、P2口送出16位地址,由于P0口送出的低8位地址只保持到S2P2,所以要利用ALE的下降沿信號將P0口送出的低8位地址信號鎖存到地址鎖存器中。而P2口送出的高8位地址在整個讀指令的過程中都有效,因此不需要對其進行鎖存。從S2P2起,ALE信號失效

8、。 (3)從S3P1開始,開始有效,對外部程序存儲器進行讀操作,將選中的單元中的指令代碼從P0口讀入,S4P2時刻,失效。 (4)從S4P2后開始第二次讀入,過程與第一次相似。,圖4.2.2 MCS-51系列單片機訪問外部程序存儲器的時序圖,程序存儲器擴展使用的典型芯片,以2764作為程序存儲器擴展的典型芯片為例進行說明 1 2764的引線 2764是一塊8K8bit的EPROM芯片,其管腳圖如圖4.2.3所示 A12A013位地址信號輸入線,說明芯片的容量為8K213個單元。 D7D0 8位數(shù)據(jù),表明芯片的每個存貯單元存放一個字節(jié)(8位二進制數(shù))。 為輸入信號。當它有效低電平時,能選中該芯片

9、,故又稱為選片信號。 為輸出允許信號。當 為低電平時,芯片中的數(shù)據(jù)可由D7D0輸出。 為編程脈沖輸入端。當對EPROM編程時,由此加入編程脈沖。讀時 為高電平。,圖4.2.3 EPROM2764管腳圖,2 2764的連接使用 圖為系統(tǒng)擴展一片EPROM的最小系統(tǒng)。 圖4.2.4單片ROM擴展連線圖,例1: 要求用2764芯片擴展 8031 的片外程序存儲器空間, 分配的地址范圍為 0000H3FFFH。 解:本例采用完全譯碼的方法, 即所有地址線全部連接, 每個單元只占用唯一的1個地址。 確定片數(shù):,字片數(shù)為 字片數(shù)=,(末地址-首地址)+1,芯片字數(shù),=,(3FFFH-0000H) +1,2

10、000H,=,4000H,2000H,=2(片), 分配地址范圍: 第1組(1片)所占用的地址范圍為: 0000H 0001 FFFH 第2組(1片)所占用的地址范圍為: 0010 000H 0011 FFFH,位片數(shù)為,位片數(shù)=,單元位數(shù),芯片位數(shù),=,總片數(shù)=字片數(shù)位片數(shù)=21=2(片), 畫出地址譯碼關系圖: 第1組,P2.7P2.6P2.5P2.4 P2.0 P0.7 P0.0 (A15)(A14)(A13)(A12) (A8)(A7) (A0),第2組,上面打部分為片內(nèi)譯碼, 對于2764來說有13位, 其地址變化范圍為從全0變到全1, 其余部分為片外譯碼。 設計外譯碼電路: 本例只

11、介紹采用譯碼器芯片的設計方法, 現(xiàn)采用3-8譯碼器74LS138。 片外譯碼只有3根線(P2.7, P2.6, P2.5), 分別接至譯碼器的C、 B、 A輸入端。,圖614 74LS138譯碼器連接圖, 畫出存儲器擴展連接圖: 該連接圖如圖615所示。 圖中3-8譯碼器74LS138只用了兩個譯碼輸出端, 如果需要的話, 還可利用其余6個譯碼輸出端。,圖615 采用地址譯碼器擴展程序存儲器的連接圖,其他 EPROM擴展芯片,圖 4.2.5 2716的引腳圖,2716容量: 2K*8位,圖 4.2.6 2716與8031的連接圖,圖4.2.7 28引腳EPROM芯片管腳配置,其他EPROM芯片

12、的擴展電路,圖4.2.8 2764 EPROM擴展電路,12764A EPROM擴展電路,227128A EPROM擴展電路,圖4.2.9 27128A EPROM擴展電路,4.2.3 EEPROM擴展電路,EEPROM是一種電擦除可編程只讀存儲器,其主要特點是能在計算機系統(tǒng)中進行在線修改,并能在斷電的情況下保持修改的結果。因而在智能化儀器儀表、控制裝置等領域得到普遍采用。 EEPROM的主要產(chǎn)品有高壓編程的2816、2817,低壓編程的2817A、2816A和2864A、28512以及1M位以上的28010、28040等等。,另:2816A和2817A均屬于5V電擦除可編程只讀存儲器,其容量

13、都是2K8位。2816A與2817A 的不同之處在于:2816A的寫入時間為915ms,完全由軟件延時控制,與硬件電路無關;2817A 利用硬件引腳來檢測寫操作是否完成。,圖4.2.3 2817A管腳配置,12817A EEPROM擴展,圖4.2.4 2817A EEPROM擴展電路,22864A EEPROM 擴展,圖4.2.6 2864A管腳配置,圖4.2.7 2864A EEPROM擴展電路,4.3 數(shù)據(jù)存儲器擴展,常用的靜態(tài)RAM芯片有6116,6264,62256等,其管腳配置如圖4.3.1所示。時序如圖4.3.0所示。動態(tài)RAM芯片有2164A、 2186集成動態(tài)RAM等。 162

14、64靜態(tài)RAM擴展 圖4.3.2為6264靜態(tài)RAM擴展電路。 262256靜態(tài)RAM擴展 62256是32K8位靜態(tài)隨機存儲器芯片,CMOS工藝制作,單一+5V供電。28腳雙列直插式封裝。,訪問外部數(shù)據(jù)存儲器時序 下面以讀時序為例進行介紹,其相應的操作時序如圖5.4所示。 圖4.3.0 MCS-51系列單片機訪問外部數(shù)據(jù)存儲器的時序圖,外部RAM寫時序為:,圖4.3.1 常用靜態(tài)RAM芯片管腳配置,圖4.3.2 6264靜態(tài)RAM擴展電路,3. 數(shù)據(jù)存儲器擴展舉例 數(shù)據(jù)存儲器的擴展與程序存儲器的擴展相類似, 不同之處主要在于控制信號的接法不一樣, 不用 信號, 而用 和 信號, 且直接與數(shù)據(jù)

15、存儲器的 端和 端相連即可。 下圖為外擴1片6264的連接圖。 采用線選法, 將片選信號 與P2.7相連, 片選信號CE2與P2.6相連。 其地址譯碼關系為:,A15A14A13A12A11A10 A0,所占用的地址為: 第1組 4000H5FFFH (A13=0) 第2組 6000H7FFFH (A13=1),4 全地址范圍的存儲器最大擴展系統(tǒng) 現(xiàn)以8031為例, 說明全地址范圍的存儲器最大擴展系統(tǒng)的構成方法, 如下圖所示。 8031的片外程序存儲器和數(shù)據(jù)存儲器的地址各為64 K。 若采用EPROM2764和RAM6264芯片, 則各需8片才能構成全部有效地址。 芯片的選擇采用38譯碼器74

16、LS138, 片外地址線只有3根(A15、A14、A13), 分別接至74LS138的C、 B、 A端, 其8路譯碼輸出分別接至8個2764和8個6264的片選端 。,圖: 單片機外存儲器最大擴展電路,4.4 定時器/計數(shù)器的擴展,需求:現(xiàn)有資源有限 方法:外接8253、8254芯片 本質(zhì):把8253作為8031的幾個外部數(shù)據(jù)存儲單元。,8253 的基本性能參數(shù),1、一片8253內(nèi)部有3個16位的計數(shù)器(相互獨立) 2、每個計數(shù)器的內(nèi)部結構相同,可通過編程手段設置為6種不同的工作方式來進行定時/計數(shù) 3、每個計數(shù)器再開始工作前必須預制時間常數(shù)(時間初始) (注:時間常數(shù)也可在計數(shù)過程中更改),

17、8253 定時器/計數(shù)器的內(nèi)部結構,8253的引腳,8253與單片機接口 的引腳如圖所 示,(a)是引腳圖, (b)是8253的功能 結構。,1、CLK CLK為時鐘輸入引腳,用以輸入計數(shù)執(zhí)行部件CE(減法計數(shù)器)的計數(shù)脈沖信號。 2、OUT 它是通道輸出信號引腳,從功能上來說也可稱為“計數(shù)到零/定時時間到”輸出引腳。8253的基本功能就是對外部輸入到CLK引腳的脈沖進行減法計數(shù)。 3、GATE 它是門控輸入信號引腳,當GATE為低電平時禁止計數(shù)器工作, 只有GATE為高電平時計數(shù)器才能工作。,8253的工作方式,8253的每個通道均可以通過編程選擇6種工作方式之一,這6種工作方式是: (1)

18、 方式0: 計數(shù)到零產(chǎn)生中斷請求 (2) 方式1: 硬件可重復觸發(fā)的單穩(wěn)態(tài)觸發(fā)器 (3) 方式2: 分頻器 (4) 方式3: 方波發(fā)生器(用得最多的方式) (5) 方式4: 軟件觸發(fā)選通 (6) 方式5: 硬件觸發(fā)選通,擴展8253計數(shù)器的典型電路,8253的端口尋址及基本操作,8253 的控制字格式,關于的控制字說明:,1、8253只有一個工作方式控制字寄存器,但是對每個計數(shù)器而言,它們的工作方式控制字內(nèi)容一定各不相同(前兩位不同),所用各計數(shù)器的控制字需要分別設置,先后不計。 2、8253的工作方式控制字的特殊形式可用于對計數(shù)器的當前計數(shù)值進行鎖存。 3、在工作方式控制字被設置之后,隨后必

19、須緊接著給計數(shù)器預設置計數(shù)初值,計數(shù)器方可開始工作。,鎖存計數(shù)器當前計數(shù)值控制字,4.計數(shù)初值 計數(shù)初值與輸入時鐘(CLK)頻率及輸出波形(OUT)頻率之間的關系為: Ci=CLK/OUT 或 Tc=CLK/OUT,5. 8253初始化的工作有兩個內(nèi)容: (1)一是向命令寄存器寫入方式命令,以選擇器(3個計數(shù)器之一),確定工作方式(6種方式之一),指定計數(shù)器計數(shù)初值的長度和裝入順序以及計數(shù)值的碼制(BCD或二進制碼)。 (2)二是向已選定的計數(shù)器按方式命令的要求寫入計數(shù)初值。,例1:選擇1號計數(shù)器,工作在0模式,采用二進制16位方式計數(shù)。(參見P78 例1) 控制字為:01110000B=70

20、H 其程序為 MOV R0,#3FH MOV A,#70H MOVX R0,A ;寫入控制字寄存器 MOV R1,#3DH MOV A,#LSBH ;計數(shù)初值 MOVX R1,A ;先送低字節(jié)到1號計數(shù)器 MOV A,#MSBH ;取高字節(jié)送A MOVX R1,A ;后送高字節(jié)到1號計數(shù)器,1)、計數(shù)器寫完計數(shù)值時,開始計數(shù),相應的輸出信號OUT就開始變成低電平。當計數(shù)器減到零時,OUT立即輸出高電平。,8253 工作方式0的特點,3)、在計數(shù)器工作期間,如果重新寫入新的計數(shù)值,計數(shù)器將按新寫入的計數(shù)值重新工作。,2)、門控信號GATE位高電平時,計數(shù)器工作;為低電平時,計數(shù)器停止工作,計數(shù)只

21、保持不變。,例2:選擇2號計數(shù)器,工作在1模式,采用二進制8位方式計數(shù)。(用低8位的只讀/只寫01操作方式)(參見P78 例2) 控制字為:10010010B=92H 其程序為 MOV R0,#3FH MOV A,#92H MOV R0,A ;寫入控制字寄存器 MOV R1,#3EH MOV A,#LSBH ;計數(shù)初值 MOVX R1,A ;先送低字節(jié)到1號計數(shù)器,1模式的特點: 1模式-低電平輸出(GATE信號上升沿重新計數(shù)) 1模式為可編程的單穩(wěn)態(tài)工作方式。 情況一: (1)寫入計數(shù)初值后,計數(shù)器并不立即開始工作; (2)門控信號GATE有效,才開始工作,使輸出OUT變成低電平; (3)直

22、到計數(shù)器值減到零后,輸出才變高電平。 情況二: 在計數(shù)器工作期間,當GATE又出現(xiàn)一個上升沿時,計數(shù)器 重新裝入原計數(shù)初值并重新開始計數(shù)。 如果工作期間對計數(shù)器寫入新的計數(shù)初值,則要等到當前的 計數(shù)值計滿回零且門控信號再次出現(xiàn)上升沿后,才按新寫入的 計數(shù)初值開始工作。,例3:選擇0號計數(shù)器,工作在2模式,采用二進制16位方式計數(shù)。(參見P79 例3) 控制字為:00110100B=34H 其程序為 MOV R0,#3FH MOV A,#34H MOVX R0,A ;寫入控制字寄存器 MOV R1,#3CH MOV A,#LSBH ;計數(shù)初值 MOVX R1,A ;先送低字節(jié)到1號計數(shù)器 MOV

23、 A,#MSBH ;取高字節(jié)送A MOVX R1,A ;后送高字節(jié)到1號計數(shù)器,方式2:頻率發(fā)生器 2模式是一種具有自動裝入時間常數(shù)(計數(shù)初 值N)的 N分頻器。,時序波形如下,特點:一次設置計數(shù)初值,計數(shù)器可自動重復進行減“1”計數(shù)操作,減“1”計數(shù)回“0”,可從輸出端輸出一負脈沖信號。,3模式-周期性方波輸出 3模式工作方式與2模式基本相同,也具有自動裝入時間常數(shù)(計數(shù)初值)的功能,不同之處在于: (1)工作在3模式,引腳OUT輸出的不是一個時鐘周期的負脈 沖 , 而是占空比為1:1或近似1:1的方波;當計數(shù)初值為偶 數(shù)時,輸出在前一半的計數(shù)過程中為高電平,在后一半的計數(shù) 過程中為低電平。

24、 (2)由于3方式輸出的波形是方波,并且具有自動重裝計數(shù)初 值的功能,因此,8253一旦計數(shù)開始,就會在輸出端OUT輸出 連續(xù)不斷的方波。,n=5,例4:選擇1號計數(shù)器,工作在4模式,采用二進制8位方式計數(shù)。(用高8位的只讀/只寫10操作方式)(參見P80 例4) 控制字為:01101000B=68H 其程序為 MOV R0,#3FH MOV A,#68H MOV R0,A ;寫入控制字寄存器 MOV R1,#3DH MOV A,#MSBH ;計數(shù)初值 MOVX R1,A ;送到1號計數(shù)器,4模式-單次負脈沖輸出(軟件觸發(fā)) 4方式工作方式是一種由軟件啟動的計數(shù)方式, 即由寫入計數(shù)初值來觸發(fā)計

25、數(shù)器開始工作。門控信GATE 為高電平時,允許計數(shù)器工作。,CLOCK,WRn,n=4,OUTPUT,n=4,0,1,2,3,4,4,4,3,2,1,0,LOADn,GATE,OUTPUT,方式4:軟件觸發(fā)選通時序圖,5模式-單次負脈沖輸出(硬件觸發(fā)) 5方式工作特點是由GATE上升沿觸發(fā)計數(shù)器開始工作。 在5方式工作方式下,當寫入計數(shù)初值后,計數(shù)器并不立 即開始計數(shù),而要由門控信號的上升沿啟動計數(shù)。 在計數(shù)過程中(或者計數(shù)結束后),如果門控再次出現(xiàn)上 升沿,計數(shù)器將從原裝入的計數(shù)初值重新計數(shù)。,4.5 輸入/輸出端口的擴展,4.5.1 接口電路的主要功能 4.5.2 簡單I/O口擴展 (可編

26、程I/O口擴展參見4.7 的綜合功能擴展),4.5.1 接口電路的主要功能,(1) 速度協(xié)調(diào) 由于速度上的差異,使得數(shù)據(jù)的I/O傳送難以異步方式進行,即只能在確認外設已為數(shù)據(jù)傳送作好準備的前提下才能進行I/O操作。而要知道外設是否準備好,就需要通過接口或產(chǎn)生或傳送外設的狀態(tài)信息,以此進行CPU與外設之間的速度協(xié)調(diào)。 (2) 數(shù)據(jù)鎖存 數(shù)據(jù)輸出都是通過系統(tǒng)的公用數(shù)據(jù)通道(即數(shù)據(jù)總線)進行的。但是由于CPU的工作速度快,數(shù)據(jù)在數(shù)據(jù)總線上保留的時間十分短暫,無法滿足慢速輸出設備的需要。為此在接口電路中需設置數(shù)據(jù)鎖存器。以保存輸出數(shù)據(jù)直至為輸出設備所接收。因此數(shù)據(jù)鎖存就成為接口電路的一項重要功能。,(

27、3)三態(tài)緩沖 數(shù)據(jù)輸入時,輸入設備向CPU傳送的數(shù)據(jù)也要通過數(shù)據(jù)總線,但數(shù)據(jù)總線是系統(tǒng)的公用數(shù)據(jù)通道,上面可能“掛”著許多數(shù)據(jù)源,工作十分繁忙。為了維護數(shù)據(jù)總線上數(shù)據(jù)傳送的秩序”,因此只允許當前時刻正在進行數(shù)據(jù)傳送的數(shù)據(jù)源作用數(shù)據(jù)總線,其余數(shù)據(jù)源都必須與數(shù)據(jù)總線處于隔離狀態(tài)。為此要求接口電路能為數(shù)據(jù)輸入提供三態(tài)緩沖功能。 (4)數(shù)據(jù)轉(zhuǎn)換 CPU只能輸入和輸出并行的電壓數(shù)字信號,但是有些外部設備所提供或所需要的并不是這種信號形式。為此需要使用接口電路進行數(shù)據(jù)信號的轉(zhuǎn)換。其中包括:模數(shù)轉(zhuǎn)換、數(shù)模轉(zhuǎn)換、串并轉(zhuǎn)換和并串轉(zhuǎn)換等。,4.5.2 簡單I/O口擴展,用并行口擴展I/O口 只要根據(jù)“輸入三態(tài),輸

28、出鎖存”與總線相連的原則,選擇74LS系列的TTL電路或MOS電路即能組成簡單的擴展I/O口。例如采用8位三態(tài)緩沖器74LS244組成輸入口,采用8D鎖存器74LS273,74LS373,74LS377等組成輸出口。,圖4.5.1所示為1種簡單的 I/O口連接方法, 圖中P2.0和P2.1經(jīng)與 、 組合后分別作為輸入口和輸出口的片選及鎖存信號。 74LS273的鎖存時鐘CP端為正跳變鎖存。 輸入輸出口相應的地址號為: 輸入口: 1 0 B=0200H 輸出口: 0 1 B=0100H (這是當 全部取0時的一組地址) 此時CPU與外設交換信息所采用的指令為: 輸入操作: MOV DPTR, 0

29、200H MOVX A,DPTR 輸出操作: MOV DPTR,0100H MOVX DPTR,A,圖4.5.1 簡單的輸入輸出接口,圖4.5.2 簡單I/O擴展接口,當要擴展多個輸入/輸出口時,可采用圖4.5.2所示連接方法。,2用串行口擴展I/O口 當MCS-51單片機串行口工作在方式0時,使用移位寄存器芯片可以擴展一個或多個8位并行I/O口。這種方法不會占用片外RAM地址,而且可節(jié)省單片機的硬件開銷。缺點是操作速度較慢,擴展芯片越多,速度越慢。 可用芯片: 74LS165、74LS164,4.6 外部中斷源的擴展,單片機僅有兩個外部中斷輸入端. 可用兩種方法擴展: 1. 定時器T0,T1

30、。(工作在計數(shù)方式下) 2. 中斷和查詢結合。,1用定時器作外部中斷源 例1 將定時器T0擴展為外部中斷源。,解:將定時器T0設定為方式2(自動恢復計數(shù)初值),TH0和TL0的初值均設置為FFH,允許T0中斷,CPU開放中斷,源程序如下: MOVTMOD,#06H MOVTH0,#0FFH MOVTL0,#0FFH SETBTR0 SETBET0 SETBEA T0引腳每輸入一個負跳變,TF0都會置1,向CPU請求中斷 T0腳相當于邊沿觸發(fā)的外部中斷源輸入線。,2中斷和查詢相結合,圖: 一個外中斷擴展成多個外中斷的原理圖,中斷服務程序如下:,ORG0003H;外部中斷0入口 AJMPINT0;

31、轉(zhuǎn)向中斷服務程序入口 INT0: PUSH PSW ;保護現(xiàn)場 PUSH ACC JB P1.0,EXT0 ;中斷源查詢并轉(zhuǎn)相應中斷服務程序 JB P1.1,EXT1 JB P1.2,EXT2 JB P1.3,EXT3 EXIT: POP ACC ;恢復現(xiàn)場 POP PSW RETI, EXT0: ; EXINT0中斷服務程序 AJMPEXIT EXT1: ; EXINT1中斷服務程序 AJMPEXIT EXT2: ;EXINT2中斷服務程序 AJMPEXIT EXT3: ;EXINT3中斷服務程序 AJMP EXIT 同樣,外部中斷1也可作相應的擴展。,例2:在P1.0上產(chǎn)生周期為10ms的

32、方波,設晶振頻率12MHz.(要求分別以查詢方式和中斷方式設計程序),查 詢 方 式:,ORG 0000H MOV TMOD,#10H MOV TH1,#0CEH MOV TL1,#78H SETB TR1 WAIT:JBC TF1,NX SJMP WAIT NX:CPL P1.0 MOV TH1,#0CEH MOV TL1,#78H SJMP WAIT END,中 斷 方 式:,ORG 0000H MOV TMOD,#10H MOV TH1,#0CEH MOV TL1,#78H MOV IE, #88H SETB TR1 WAIT: SJMP WAIT ORG 001BH CPL P1.0

33、MOV TH1,#0CEH MOV TL1,#78H RETI,4.7 綜合功能擴展,表4.7.1 常用Intel 系列可編程接口芯片,4.7.1 8155擴展,一、8155的技術性能 在8155內(nèi)部具有: (1)256字節(jié)的靜態(tài)RAM,存取時間為400ns。 (2)三個通用的輸入/輸出口。 (3)一個14位的可編程定時/計數(shù)器。 (4)地址鎖存器及多路轉(zhuǎn)換的地址和數(shù)據(jù)總線。 (5)單一+5V電源,40腳雙列直插式封裝。,二、8155的外部引腳及內(nèi)部邏輯結構 1. 外部引腳 8155芯片為40引腳雙列直插封裝,單一的5V電源,其引腳排列如圖(P87圖4.24)所示。其中: : A口的輸入輸出信

34、號線。該口作輸入還是輸出,由軟件決定。 : B口的輸入輸出信號線。該口作輸入還是輸出,由軟件決定。 : C口信號線。該口可作輸入、輸出口外,還可以傳送控制和狀態(tài)信號,因此C口共有四種工作方式,即:輸入方式(ALT1),輸出方式(ALT2),A口控制端口方式(ALT3)以及A口 和B口控制端口方式(ALT4)。其工作方式由軟件決定。,:地址數(shù)據(jù)復用線。 :片選信號。低電平有效。 :IO和RAM的選擇信號。 0,選中RAM; 1,選中IO口。 :地址鎖存信號。除了進行 的地址鎖存控制外還用于把片選信號 和 等信號進行鎖存。 :讀選通信號。 :寫選通信號。 RESET:復位信號。復位后A口、B口和C

35、口均為數(shù)據(jù)輸入方式。,TIMER IN:定時器/計數(shù)器的計數(shù)脈沖輸入端。 TIMER OUT:定時器/計數(shù)器。 2. 內(nèi)部邏輯結構 8155的內(nèi)部邏輯結構如下圖所示。由圖可以看出,8155由三部分組成,即:存儲單元為256字節(jié)的靜態(tài)RAM;3個可編程的I/O,其中2個口(A口和B口)為8位口,1個口(C口)為6位口;1個14位的定時器/計數(shù)器,圖4.7.1 : 8155的內(nèi)部邏輯結構 由以上可知8155有A口、B口、C口和定時器/計數(shù)器低8位以及定時器/計數(shù)器高8位五個端口,另外8155內(nèi)部還有一個命令/狀態(tài)寄存器,所以8155內(nèi)部共有6各端口。對它們只需要使用3位即可實現(xiàn)編址,如表4.7.2

36、所示。,表4.7.2 8155的端口地址編碼,三、 8155的命令/狀態(tài)字 1. 8155的命令字 由以上內(nèi)容可知,8155的A口有輸入和輸出兩種工作方式,B口也有輸入和輸出兩種工作方式,而C口有輸入方式(ALT1),輸出方式(ALT2),A口控制端口方式(ALT3)以及A口 和B口控制端口方式(ALT4)四種工作方式。這些端口的工作方式是由8155內(nèi)部的命令寄存器(命令字)來控制的。命令字除了規(guī)定端口的工作方式還規(guī)定了定時器/計數(shù)器的工作方式。命令字只能進行寫操作。其格式如圖4.7.2所示。,圖4.7.2 8155的命令字 當A口或者B口以中斷方式進行數(shù)據(jù)傳送時,所需要的聯(lián)絡信號由C口提供。

37、各聯(lián)絡信號的定義如表4.7.3所示。,表4.7.3聯(lián)絡信號,聯(lián)絡信號共有三個,其中: INTR:中斷請求信號(輸出),高電平有效。送給MCS-51單片機的外中斷請求,以便取走或送來緩沖區(qū)的數(shù)據(jù)。 BF :緩沖器滿狀態(tài)信號(輸出),高電平有效。 :選通信號(輸入),低電平有效。數(shù)據(jù)輸入時, 是外設送來的選通信號;數(shù)據(jù)輸出時, 是外設送來的應答信號。 以中斷方式進行數(shù)據(jù)輸入輸出時,其過程和8255基本相同。 2. 8155的狀態(tài)字 狀態(tài)字只能讀不能寫,所以8155的命令字和狀態(tài)字共用一個地址。當對命令/狀態(tài)字進行寫操作時,寫進去的是命令,當對命令/狀態(tài)字進行讀操作時,讀出來的是狀態(tài)。狀態(tài)字用于表明

38、各端口及定時器/計數(shù)器的工作狀態(tài)。其格式如圖4.7.3所示。,圖4.7.3 8155的狀態(tài)字 四、 8155的擴展邏輯電路 8155與MCS-51單片機的連接比較簡單,因為8155的許多信號與MCS-51單片機兼容,可以直接連接。表4.7.4列出了這些信號的對應關系。,這種方法實際就是編址技術中的線選法。例如以 接 ,則8155與8051的連接如圖7.20所示。 這種 信號產(chǎn)生方法中,對8155需要使用16位地址進行編址。這種方法適應于有多片I/O擴展及存儲器擴展的較大單片機系統(tǒng)中,因此要使用片選信號。例如圖中使用 作為片選信號與直接相連。,表4.7.4 8155與MCS-51單片機兼容的信號

39、,圖4.7.4高位地址直接作為信號 假設沒有用到的地址位其值為系統(tǒng)復位后的值,即為1。則 時,端口地址范圍為:0FDF8H0FDFDH; 時,8155內(nèi)部RAM地址范圍是:0FC00H0FCFFH。 五、 8155的定時器/計數(shù)器 1. 8155定時器/計數(shù)器的計數(shù)結構,8155的定時器/計數(shù)器是一個14位的減法計數(shù)器,由兩個8位寄存器構成,如圖4.7.5所示。以其中的低14位組成計數(shù)器,剩下的兩個高位( , )用于定義計數(shù)器輸出的信號形式。,圖4.7.5 8155定時器/計數(shù)器的計數(shù)結構 2. 定時器/數(shù)器的使用 8155的定時器/計數(shù)器是減法計數(shù),而MCS-51單片機的定時器/計數(shù)器卻是加

40、法計數(shù),因此確定計數(shù)初值的方法是不同的。, MCS-51單片機的定時器/計數(shù)器有多種工作方式,而8155的定時器/計數(shù)器只有一種固定的工作方式,即14位計數(shù)。通過軟件方法進行計數(shù)初加載。 MCS-51單片機的定時器計數(shù)器有兩種計數(shù)脈沖。定時功能時,以機器周期為計數(shù)脈沖;計數(shù)功能時,從芯片外部引入計數(shù)脈沖。但8155的定時器/計數(shù)器, 不論是定時功能還是計數(shù)功能都是由外部提供計數(shù)脈沖,其信號引腳是TIMERIN。 MCS-51單片機的定時器/計數(shù)器,計數(shù)溢出時,自動置位TCON寄存器的計數(shù)溢出標志位(TF),供用戶查詢或中斷方式使用;但8155的定時器/計數(shù)器,計數(shù)溢出時向芯片外部輸出一個信號(

41、TIMEROUT)。而且這一信號還有脈沖和方波兩種形式,可由用戶進行選擇。具體由 , 兩位定義:,=00 單個方波 =01 連續(xù)方波 =10 單個脈沖 =11 連續(xù)脈沖 這四種輸出形式如圖4.7.6所示。,圖4.7.6 8155信號輸出形式,3. 定時器/計數(shù)器的控制 8155定時器/計數(shù)器的工作方式由命令字中的最高兩位進行控制。具體說明如下: D7D6=00 不影響計數(shù)器工作。 D7D6=01 停止計數(shù)。如計數(shù)器未啟動則無操作,如計數(shù)器正運行則停止計數(shù)。 D7D6=10 達到計數(shù)值(計數(shù)器減為0)后停止。 D7D6=11 啟動,如果計數(shù)器沒運行,則在裝入計數(shù)值后開始計數(shù);如果計數(shù)器已運行,則

42、在當前計數(shù)值計滿后,再以新的計數(shù)值進行計數(shù)。,六、 8155的初始化 要求使用8155定時器/計數(shù)器對計數(shù)脈沖進行千分頻,即計數(shù)1000后,TIMEROUT端電平狀態(tài)發(fā)生變化,并重新置數(shù)以產(chǎn)生連續(xù)方波。此外假定A口為輸出方式,允許中斷;B口為輸入方式,不允許中斷;C口為對A口控制方式(ALT3)。請編寫初始化程序。 解:要求輸出連續(xù)方波,所以定時器/計數(shù)器的最高兩位M2 M101。計數(shù)器的其它14位裝入計數(shù)初值。8155為減法計數(shù),所以計數(shù)初值為1000,化為16進制數(shù)為03E8H。則定時器/計數(shù)器的高8位為:43H,低8位為:0E8H。 命令名字的設置如下:,因此,命令字的內(nèi)容為0D9H。假

43、定命令/狀態(tài)寄存器的地址為0FDF8H。則初始化程序為:,六、MCS-51單片機與8155的接口與操作,MCS-51單片機可直接和8155連接而不需要任何外加邏輯,可以直接為系統(tǒng)增加256字節(jié)外部RAM、22根I/O線及一個14位定時器。其基本硬件連接方法如圖4.7.7所示。,圖4.7.7 8155和8031的連接方法,圖4.7.8 8031單片機擴展系統(tǒng),4.7.2 8255的擴展 一、 8255的外部引腳和內(nèi)部結構 1. 外部引腳 8255的外部引腳如圖4.7.10所示,其中: :A口的輸入輸出信號線。該口是輸入還是輸出或雙向,由軟件決定。 :B口的輸入輸出信號線。該口是輸入還是輸出,由軟

44、件決定。 :C口信號線。該口可作輸入、輸出、控制和狀態(tài)線使用,由軟件決定。 :雙向數(shù)據(jù)信號線,用來傳送數(shù)據(jù)和控制字。 :讀信號線。 :寫信號線。,圖4.7.10 可編程并行接口8255引線圖,:片選信號線,低電平(有效)時, 才選中該芯片,才能對8255進行操作。 RESET:復位輸入信號,高電平有效時,復位8255。復位后8255的A口、B口和C口均被定為輸入。 :口地址選擇信號線。8255內(nèi)部共有三個口,A口、B口、C口和一個控制寄存器供用戶編程。不同編碼可分別選擇上述三個口和一個控制寄存器。地址編碼如表4.7.5所示。,表4.7.5 地址編碼,由 、 、 和 可以確定A口、B口、C口和控

45、制寄存器的讀寫邏輯,如表4.7.6所示。 表4.7.6讀寫邏輯,2. 內(nèi)部結構 8255的內(nèi)部結構框圖如圖4.7.11所示。從圖可以看到,左邊的信號與系統(tǒng)總線相連。而右邊是與外設相連接的三個口。三個口均為8位。其中A口輸出有鎖存能力,輸入亦有鎖存能力。B口輸入輸出均有鎖存能力。C口輸出有鎖存能力,輸入沒有鎖存能力,在使用上要注意到這一點。,圖4.7.11 8255的內(nèi)部結構框圖 為了控制方便,將8255的三個口分成A,B兩組。其中A組包括A口的8條口線和C口的高四位 。B組包括B口的8條口線和C口的低四位 。A組和B組分別由軟件編程來加以控制。,二、 8255的擴展邏輯電路 MCS-51單片機

46、可以和8255直接連接,圖4.7.12給出了一種擴展電路。,圖4.7.12 8255的擴展邏輯電路,三、 8255的工作方式 8255共有三種工作方式,這些工作方式可用軟件編程來指定。 1. 工作方式0,又稱基本輸入輸出方式 2. 工作方式1,又稱選通輸入輸出方式 在這種方式下,A口和B口仍作為數(shù)據(jù)的輸出或輸入口而同時要利用C口的某些位作為控制和狀態(tài)信號,從而實現(xiàn)這種工作方式。 (1)方式1下,A口和B口均為輸出 各條控制引線的定義如圖7.13所示。 各控制信號的含義如下:,: 輸出緩沖器滿信號,低電平有效。用來告訴外設,在規(guī)定的接口上CPU已輸出一個有效的數(shù)據(jù),外設可以從該口取走此數(shù)據(jù)。 :外設響應信號,低電平有效。用來通知接口外設已經(jīng)將數(shù)據(jù)接收,并使 。 INTR:中斷請求信號,高電平有效。當外設已從接口取走數(shù)據(jù),口的緩沖器變空,且接口允許中斷時,INTR有效。即, 且允許中斷,則INTR=1。,(2)方式1下,A口和B口均為輸入 這種情況和兩口均為輸出類似,各條控制引線的定義如圖4.7.14所示。,圖4.7.13 A口和B口作輸出口時, C口提供的控制引線,圖4.7.14 A口和B口作輸

溫馨提示

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

評論

0/150

提交評論