單片機系統擴展與接口技術_第1頁
單片機系統擴展與接口技術_第2頁
單片機系統擴展與接口技術_第3頁
單片機系統擴展與接口技術_第4頁
單片機系統擴展與接口技術_第5頁
已閱讀5頁,還剩101頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第7章 單片機系統擴展與接口技術 第第7章章 單片機系統擴展與接口技術單片機系統擴展與接口技術 7.1 外部總線的擴展外部總線的擴展 7.2 外部存儲器的擴展外部存儲器的擴展7.3 輸入輸入/輸出接口的擴展輸出接口的擴展 7.4 管理功能部件的擴展管理功能部件的擴展 7.5 A/D和和D/A接口功能的擴展接口功能的擴展 第7章 單片機系統擴展與接口技術 7.1 外部總線的擴展外部總線的擴展 一、一、 外部總線的擴展外部總線的擴展 圖圖 7.1 MCS - 51外部三總線示意圖外部三總線示意圖 第7章 單片機系統擴展與接口技術 圖圖 7.2 地址鎖存器的引腳和接口地址鎖存器的引腳和接口 第7章

2、單片機系統擴展與接口技術 二、總線驅動二、總線驅動 在單片機應用系統中, 擴展的三總線上掛接很多負載, 如存儲器、并行接口、A/D接口、顯示接口等, 但總線接口的負載能力有限, 因此常常需要通過連接總線驅動器進行總線驅動。 總線驅動器對于單片機的I/O口只相當于增加了一個TTL負載, 因此驅動器除了對后級電路驅動外,還能對負載的波動變化起隔離作用。 在對TTL 負載驅動時, 只需考慮驅動電流的大小; 在對MOS負載驅動時, MOS負載的輸入電流很小, 更多地要考慮對分布電容的電流驅動。 第7章 單片機系統擴展與接口技術 1 常用的總線驅動器常用的總線驅動器 系統總線中地址總線和控制總線是單向的

3、, 因此驅動器可以選用單向的, 如74LS244。 74LS244還帶有三態控制, 能實現總線緩沖和隔離。 . 系統中的數據總線是雙向的, 其驅動器也要選用雙向的, 如74LS245 。74LS245 也是三態的, 有一個方向控制端DIR, DIR=1時輸出(AnBn), DIR=0時輸入(AnBn)。 第7章 單片機系統擴展與接口技術 圖 7.3 總線驅動器芯片管腳(a) 單向驅動器;(b) 雙向驅動器 第7章 單片機系統擴展與接口技術 2. 總線驅動器的接口總線驅動器的接口 圖 7.4 8051與總線驅動器的接口(a) P2 口的驅動; (b) P0 口的驅動 第7章 單片機系統擴展與接口

4、技術 7.2 外部存儲器的擴展外部存儲器的擴展 圖 7.5 MCS - 51 單片機程序存儲器的擴展原理 7.2.1 外部程序存儲器的擴展外部程序存儲器的擴展 1. 外部程序存儲器的擴展原理及時序外部程序存儲器的擴展原理及時序 第7章 單片機系統擴展與接口技術 2. EPROM擴展電路擴展電路 圖 7.6 2716的引腳圖 第7章 單片機系統擴展與接口技術 2716 有五種工作方式, 見表 7.1。 表 7.1 2716工作方式選擇 第7章 單片機系統擴展與接口技術 圖 7.7 2716與8031的連接圖 第7章 單片機系統擴展與接口技術 由圖 7.7可確定2716芯片的地址范圍。方法是A10

5、A0從全0開始, 然后從最低位開始依次加 1, 最后變為全1, 相當于211=2 048個單元地址依次選通, 稱為字選。即 第7章 單片機系統擴展與接口技術 3. E2PROM 2864A的擴展的擴展 圖圖 7.8 2864A管腳及原理框圖管腳及原理框圖(a) 管腳;管腳;(b) 原理框圖原理框圖 第7章 單片機系統擴展與接口技術 表表 7.2 2864A 工作方式工作方式 (1) 維持和讀出方式: 2864A的維持和讀出方式與普通EPROM完全相同。 (2) 寫入方式: 2864A提供了兩種數據寫入操作方式, 字節寫入和頁面寫入。 (3) 數據查詢方式:第7章 單片機系統擴展與接口技術 圖

6、7.9 2864A與8031的接口電路第7章 單片機系統擴展與接口技術 7.2.2 外部數據存儲器的擴展外部數據存儲器的擴展 1. 外部數據存儲器的擴展方法及時序外部數據存儲器的擴展方法及時序 圖 7.10 MCS - 51 數據存儲器的擴展示意圖 第7章 單片機系統擴展與接口技術 2. 靜態靜態RAM擴展擴展 圖 7.11 6264 管腳圖 第7章 單片機系統擴展與接口技術 表 7.3 6264的工作方式 第7章 單片機系統擴展與接口技術 圖 7.12 擴展6264 靜態RAM第7章 單片機系統擴展與接口技術 6264的8 KB地址范圍不唯一(因為A14A13可為任意值), 6000H7FF

7、FH是一種地址范圍。當向該片6000H單元寫一個數據DATA時, 可用如下指令: MOV A, DATA MOV DPTA, 6000H MOVX DPTR, A從FFFH單元讀一個數據時, 可用如下指令: MOV DPTR, 7FFFH MOVX , DPTR 第7章 單片機系統擴展與接口技術 7.2.3 多片存儲器芯片的擴展多片存儲器芯片的擴展 1. 線選法尋址線選法尋址 圖 7.13 用線選法實現片選 第7章 單片機系統擴展與接口技術 各芯片的地址范圍如下: 第7章 單片機系統擴展與接口技術 2. 譯碼法尋址譯碼法尋址 譯碼法尋址就是利用地址譯碼器對系統的片外高位地址進行譯碼, 以其譯碼

8、輸出作為存儲器芯片的片選信號, 將地址劃分為連續的地址空間塊, 避免了地址的間斷。 譯碼法仍用低位地址線對每片內的存儲單元進行尋址, 而高位地址線經過譯碼器譯碼后輸出作為各芯片的片選信號。常用的地址譯碼器是 3/8 譯碼器 74LS138。 譯碼法又分為完全譯碼和部分譯碼兩種。 第7章 單片機系統擴展與接口技術 例例 要求用 2764 芯片擴展 8031 的片外程序存儲器空間, 分配的地址范圍為 0000H3FFFH。 本例采用完全譯碼方法。 (1) 確定片數。 因0000H 3FFFH的存儲空間為16 KB, 則 所需芯片數=實際要求的存儲容量/單個芯片的存儲容量 = 16 KB/ 8 KB

9、 = 2(片) 第7章 單片機系統擴展與接口技術 (2) 分配地址范圍。 第7章 單片機系統擴展與接口技術 (3) 存儲器擴展連接如圖 7.14 所示。 圖 7.14 采用地址譯碼器擴展存儲器的連接圖 第7章 單片機系統擴展與接口技術 7.3 輸入輸入/輸出接口的擴展輸出接口的擴展 7.3.1 8255A可編程并行可編程并行I/O接口接口 8255A具有 3 個 8 位并行I/O口, 稱為PA口、 PB口和PC口。 其中PC口又分為高 4 位和低 4 位, 通過控制字設定可以選擇三種工作方式: 基本輸入/輸出; 選通輸入/輸出; PA口為雙向總線。 1. 8255A的內部結構和引腳的內部結構和

10、引腳 8255A內部結構包括三個并行數據輸入/輸出端口, 兩個工作方式控制電路, 一個讀/寫控制電路和 8 位總線緩沖器。 第7章 單片機系統擴展與接口技術 圖 7.15 8255A內部結構和引腳(a) 內部結構; (b) 引腳第7章 單片機系統擴展與接口技術 (1) 端口A、 B、 C。 A口: 是一個8位數據輸出鎖存器/緩沖器和一個8位數據輸入鎖存器。 B口: 是一個8位數據輸出鎖存器/緩沖器和一個8位數據輸入緩沖器。 C口: 是一個8位數據輸出鎖存器/緩沖器和一個8位數據輸入緩沖器。 通常, A口#, B口作為數據輸入/輸出端口, C口作為控制/狀態信息端口。C口內部又分為兩個 4 位端

11、口, 每個端口有一個 4 位鎖存器, 分別與A口和B口配合使用, 作為控制信號輸出或狀態信息輸入端口。 第7章 單片機系統擴展與接口技術 (2) 工作方式控制。 工作方式控制電路有兩個, 一個是A組控制電路, 另一個是B組控制電路。 這兩組控制電路共有一個控制命令寄存器, 用來接收中央處理器發來的控制字。 A 組 控 制 電 路 用 來 控 制 A 口 和 C 口 的 上 半 部 分(PC7PC4)。B組控制電路用來控制B口和C口的下半部分(PC3PC0)。 第7章 單片機系統擴展與接口技術 (3) 總線數據緩沖器。 總線數據緩沖器是一個三態雙向8位緩沖器, 作為 8255 與系統總線之間的接

12、口, 用來傳送數據、指令、控制命令以及外部狀態信息。 (4) 讀/寫控制邏輯電路。 讀/寫控制邏輯電路接收CPU發來的控制信號RD、WR、 RESET、地址信號A1、A0 等, 然后根據控制信號的要求, 將端口數據讀出, 送往CPU或將CPU送來的數據寫入端口。 第7章 單片機系統擴展與接口技術 表表 7.4 8255A 接口工作狀態選擇表接口工作狀態選擇表 第7章 單片機系統擴展與接口技術 圖 7.16 8255A三種工作方式示意圖(a) 方式 0; (b) 方式 1; (c) 方式 第7章 單片機系統擴展與接口技術 2. 工作方式選擇工作方式選擇 (1) 方式 0: 基本輸入/輸出方式。

13、這種方式不需選通信號。PA,PB和PC中任一端口都可以通過方式控制字設定為輸入或輸出。 (2) 方式 1: 選通輸入/輸出方式。共有 3 個口, 被分為兩組。 A組包括A口和PC7PC4, A口可由編程設定為輸入或輸出, PC7PC4 作為輸入/輸出操作的選通信號和應答信號。B組包括B口和PC3PC0, 這時C口作為 8255A和外設或CPU之間傳送某些狀態信息及中斷請求信號。 第7章 單片機系統擴展與接口技術 (3) 方式 2: 雙向傳送方式。 只有A口有方式 2, 此時, A口為8位雙向傳送數據口, C口的高5位PC7PC3用來作為指定A口輸入/輸出的控制聯絡線。 表 7.5 8255A的

14、C口聯絡控制信號線 第7章 單片機系統擴展與接口技術 3. 8255A 的控制字的控制字(1) 方式控制字圖 7.17 8255A的方式控制字第7章 單片機系統擴展與接口技術 (2) 端口C置位/復位控制字 圖 7.18 8255A端口C置位/復位控制字 第7章 單片機系統擴展與接口技術 例例 1 要求A口工作在方式0輸入, B口為方式1輸出, C口高4位PC7PC4為輸入, C口低4位PC3PC0為輸出。實現上述要求的初始化程序為: MOV R1, 03H; 03H為 8255A 控制寄存器地址 MOV A, 9CH; 8255A工作方式字為 9CH MOVX R1, A; 方式字送入 82

15、55A 控制口 第7章 單片機系統擴展與接口技術 4. 8255A 和和 8031 單片機的硬件接口單片機的硬件接口 圖 7.19 8255A與8031單片機接口 第7章 單片機系統擴展與接口技術 設 8255A的A、B、C口和控制寄存器地址依次為 00H、 01H、 02H 和 03H。 如果用戶需要將C口的PC3 置 1, PC5 置 0, 可編程如下: MOV R0, 03H; 8255A 控制口地址 MOV A, 07H ; 將PC3 置 1 控制字 MOVX R0, A; 置PC3=1 MOV A, 0AH; 將PC5 置 0 控制字 MOVX R0, A; 置PC5=0 第7章 單

16、片機系統擴展與接口技術 例例 2 圖 7.20 是 8031 擴展 8255A 與打印機接口的電路。 8255A 的片選線為P0.7, 打印機與 8031 采用查詢方式交換數據。打印機的狀態信號輸入給PC7, 打印機忙時BUSY=1, 打印機的數據輸入采用選通控制, 當STB上出現負跳變時數據被打入, 要求編寫向打印機輸出 80 個數據的程序。設 8255A 的A、 B、C和控制寄存器的口地址分別為: 7CH、7DH、7EH和7FH。 第7章 單片機系統擴展與接口技術 圖 7.20 8031擴展打印機接口8255A 第7章 單片機系統擴展與接口技術 8255A 的方式1中OBF為低電平有效,

17、而打印機STB要求下降沿選通。所以8255A采用方式0, 由PC0 模擬產生STB信號。因PC7輸入, PC0輸出, 則方式選擇命令字為: 10001110B=8EH。 自內部RAM 20H單元開始向打印機輸出80個數據的程序如下: MOV R0, 7FH ; R0 指向控制口MOV A, 8EH ; 方式控制字為8EHMOV R0 , A ; 送方式控制字MOV R1, 20H ; 送內部RAM數據塊首地址至指針R1MOV R2, 50H ; 置數據塊長度 第7章 單片機系統擴展與接口技術 LP: MOV R0, 7EH ; R0指向C口LP1: MOVX A, R0 ; 讀PC7連接BUS

18、Y狀態 JB ACC.7, LP1 ; 查詢等待打印機 MOV R0, 7CH ; 指向A口 MOV A, R1 ; 取RAM 數據 MOVX R0, A ; 數據輸出到8255A口鎖存 INC R1 ; RAM地址加1 MOV R0, 7FH ; R0指向控制口 MOV A, 00H ; PC0復位控制字 MOVX R0, A ; PC0=0, 產生STB的下降沿 MOV A, 01H ; PC0置位控制字 MOVX R0, A ; PC0=1, 產生STB的上升沿 DJNZ R2, LP ; 未完, 則反復 第7章 單片機系統擴展與接口技術 7.3.2 8155 可編程并行可編程并行I/O

19、接口接口 1. 8155的結構與引腳的結構與引腳 圖 7.21 8155引腳及結構框圖 第7章 單片機系統擴展與接口技術 2. 8155 的的RAM和和I/O口的編址口的編址 表 7.6 8155 端口地址表 第7章 單片機系統擴展與接口技術 3. 8155 I/O的工作方式的工作方式 8155 I/O的工作方式有兩種: 基本I/O和選通I/O。 1) 基本I/O 基本I/O為無條件傳送, 不需任何聯絡信號, 8155 的A口、 B口、 C口都可以工作于該方式。 第7章 單片機系統擴展與接口技術 2) 選通I/O 選通I/O為條件傳送, 傳送的方式可用查詢方式, 也可用中斷方式。8155的A

20、口、B口均可工作于此方式, 這時需由C口提供聯絡控制信號線。 這些聯絡控制信號線有: (1) BF: I/O緩沖器滿標志, 輸出, 高電平有效。 (2) STB: 選通信號, 輸入, 低電平有效。 (3) INTR: 中斷請求信號, 輸入, 低電平有效。 以上信號線對A口和B口均適用, 分別稱為ABF, ASTB, AINTR 和 BBF、BSTB、BINTR。它們都由C口提供, 如表 7.7 所示。 第7章 單片機系統擴展與接口技術 表 7.7 8155 的PC口線聯絡信號 第7章 單片機系統擴展與接口技術 4. 8155的命令的命令/狀態字狀態字 8155 有一個命令/狀態字寄存器, 實際

21、上這是兩個不同的寄存器, 分別存放命令字和狀態字。由于對命令寄存器只能進行寫操作, 對狀態寄存器只能進行讀操作, 因此把它們統一編址, 合稱命令/狀態寄存器。 1) 命令字 命令字共 8 位, 用于定義I/O口及定時器的工作方式。 第7章 單片機系統擴展與接口技術 圖 7.22 8155的命令字格式 第7章 單片機系統擴展與接口技術 對C口工作方式的說明: D3D2=00(ALT1): A口、B口為基本I/O, C口為輸入。 D3D2=11(ALT2): A口、B口為基本I/O, C口為輸出。 D3D2=01(ALT3): A口為選通I/O, B口為基本I/O, C口低 3 位為聯絡信號, 高

22、 3 位輸出。 D3D2=10(ALT4): A口、B口均為選通I/O, C口低3位作A口聯絡信號, 高 3 位作 B口聯絡信號。 第7章 單片機系統擴展與接口技術 對定時器運行控制位(TM2, TM1)的說明: 當TM2TM1=11 時, 其操作為: 當計數器未計數時, 裝入計數長度后, 立即開始計數; 當計數器正在計數時, 待計數器溢出后以新裝入的計數長度和方式進行計數。 第7章 單片機系統擴展與接口技術 2) 狀態字 圖 7.23 8155的狀態字格式 第7章 單片機系統擴展與接口技術 5. 8155 的定時器的定時器/計數器計數器 8155 的定時器/計數器是一個14位的減法計數器,

23、由兩個8位寄存器構成, 其格式如下: T7T6T5T4T3T2T1T0M2M1T13T12T11T10T9T8TL(04H)TL(05H)第7章 單片機系統擴展與接口技術 圖 7.24 8155定時器方式及輸出波形 第7章 單片機系統擴展與接口技術 6. 8155的接口電路及應用的接口電路及應用 圖 7.25 8155 與MCS - 51 的接口 第7章 單片機系統擴展與接口技術 例例 3 在圖 7.25 所示的接口電路中, 設A口與C口為輸入口, B口為輸出口, 均為基本I/O。定時器為連續方波工作方式, 對輸入脈沖進行 24 分頻。試編寫 8155 的初始化程序。 命令字可選取為: PA=

24、0, PB=1, PC2PC1=00, IEA=0, IEB=0, TM2TM1=11。即命令字為11000010B=C2H。 初始化程序: 第7章 單片機系統擴展與接口技術 MOV OPTR, 0204H ; 指向定時器的低 8 位MOV A , 18H ; 設置定時器的低 8 位的值MOVX DPTR, A ; 寫入定時器低 8 位INC DPTR ; 指向定時器的高位MOV A, 40H ; 設置定時器的高 6 位及 2 位輸出 方式位的值MOVX DPTR, A ; 寫入位的值MOV DPTR, 0200H ; 指向命令口MOV A, C2H ; 取 8155 的命令字MOVX DPT

25、R, A ; 寫入命令字 第7章 單片機系統擴展與接口技術 例例 4 采用圖 7.25 所示的電路, 從 8155 的A口輸入數據, 并進行判斷: 若不為0, 則將該數據存入 8155 的RAM中(從起始單元開始, 數據總數不超過256個), 同時從B口輸出, 并將PC0 置“1”; 若為 0, 則停止輸入數據, 同時將PC0清“0”, 試編寫程序。 MOV DPTR, 0200H ; 指向命令口MOV A, 06H ; 設置命令字MOVX DPTR, A ; 寫入命令字MOV R0, 00H ; 指向 8155 的RAM區首址MOV R1, 00H ; 數據總數為 256 個 LP1: MO

26、V DPTR, 0201H ; 指向A口MOVX A, DPTR ; 從A口讀入數據JZ LP3 ; 為 0 則轉 第7章 單片機系統擴展與接口技術 MOVX R0, A ; 存入RAM單元INC R0 ; 指向下一單元INC DPTR ; 指向B口MOVX DPTR, A ; B口輸出INC DPTR ; 指向C口MOVX A, DPTR ; C口讀入SETB ACC, 0 ; 使PC0=1MOVX DPTR, A ; 回送DJNZ R1, LP1 ; 未完則反復 LP2: SJMP $ ; 暫停 LP3: MOV DPTR, 0203H ; 指向C口MOVX DPTR, A ; 回送SJM

27、P LP2 第7章 單片機系統擴展與接口技術 7.4 管理功能部件的擴展管理功能部件的擴展 7.4.1 鍵盤接口鍵盤接口 鍵盤實際上是由排列成矩陣形式的一系列按鍵開關組成, 用戶通過鍵盤可以向CPU輸入數據、地址和命令。 鍵盤按其結構形式可分為: 編碼式鍵盤和非編碼式鍵盤兩類。 單片機系統中普遍使用非編碼式鍵盤, 這類鍵盤主要解決以下幾個問題: 鍵的識別; 如何消除鍵的抖動; 鍵的保護。 第7章 單片機系統擴展與接口技術 1. 非編碼式鍵盤工作原理非編碼式鍵盤工作原理 非編碼式鍵盤識別按鍵的方法有兩種: 一是行掃描法, 二是線反轉法。 1) 行掃描法 通過行線發出低電平信號, 如果該行線所連接

28、的鍵沒有按下的話, 則列線所接的端口得到的是全“1”信號, 如果有鍵按下的話, 則得到非全“1”信號。 為了防止雙鍵或多鍵同時按下, 往往從第 0 行一直掃描到最后 1 行, 若只發現 1 個閉合鍵, 則為有效鍵, 否則全部作廢。 找到閉合鍵后, 讀入相應的鍵值, 再轉至相應的鍵處理程序。 第7章 單片機系統擴展與接口技術 2) 線反轉法 線反轉法也是識別閉合鍵的一種常用方法, 該法比行掃描速度快, 但在硬件上要求行線與列線外接上拉電阻。 先將行線作為輸出線, 列線作為輸入線, 行線輸出全“0”信號, 讀入列線的值, 然后將行線和列線的輸入輸出關系互換, 并且將剛才讀到的列線值從列線所接的端口

29、輸出, 再讀取行線的輸入值。那么在閉合鍵所在的行線上值必為 0。這樣, 當一個鍵被按下時, 必定可讀到一對唯一的行列值。 第7章 單片機系統擴展與接口技術 2. 鍵盤接口電路鍵盤接口電路 圖 7.26 采用8155的鍵盤接口電路 第7章 單片機系統擴展與接口技術 下面的程序是用行掃描法進行鍵掃描的程序, 其中KS1 為判鍵閉合的子程序。 有鍵閉合時(A)=0。 DIR為數碼顯示器掃描顯示子程序, 執行一遍的時間約6 ms。 程序執行后, 若鍵閉合, 鍵值存入A中, 鍵值的計算公式是: 鍵值=行號4+列號; 若無鍵閉合, 則A中存入標志FFH。 KEY1:LCALL KS1 ; 檢查有無閉合鍵?

30、 JNZ LK1 ; (A)=0, 有鍵閉合則轉 LJMP LK8 ; 無閉合鍵則返回 LK1: LCALL DIR ; 延時 12 ms LCALL DIR ; 清抖 LCALL LS1 ; 再檢查有鍵閉合否? JNZ LK2 ; 有鍵閉合則轉 LJMP LK8 ; 無鍵閉合則返回 第7章 單片機系統擴展與接口技術 LK2: MOV R3, 00H ; 行號初值送R3 MOV R2, FEH ; 行掃描初值送R2LK3: MOV DPTR, 0101H ; 指向 8155 口A MOV A, R2 ; 行掃描值送A MOVX DOTR, A ; 掃描 1 行 INC DPTR INC DPT

31、R ; 指向 8155 口C MOVX A, DPTR ; 讀入列值 ANL A, 0FH ; 保留低 4 位 MOV R4, A ; 暫存列值 CJNZ A, 0FH, LK4 ; 列值非全“1”則轉 MOV A, R2 ; 行掃描值送A 第7章 單片機系統擴展與接口技術 JNB ACC.7, LK8 ; 掃至最后一行則轉RL A ; 未掃完, 則移至下一行MOV R2, A ; 行值存入R2 中INC R3 ; 行號加 1SJMP LK3 ; 轉至掃描下一行 LK4: MOV A, R3 ; 行號送入A ADD A, R3 ; 行號2 MOV R5, A ADD A, R5 ; 行號4 M

32、OV R5, A ; 存入R5 中 MOV A, R4 ; 列值送A 第7章 單片機系統擴展與接口技術 LK5: RRC A ; 右移一位 JNC LK6 ; 該位為 0 則轉 INC R5 ; 列號加 1 SJMP LK5 ; 列號未判完則繼續LK6: MOV 20H, R5; 存鍵值LK7: LCALL DIR ; 掃描一遍顯示器 LCALL KS1 ; 發掃描信號 JNZ LK7 ; 鍵未釋放等待 LCALL DIR ; 鍵已釋放 LCALL DIR ; 延時 12 ms, 清抖 MOV A, 20H ; 鍵值存入A中KND: RET 第7章 單片機系統擴展與接口技術 LK8: MOV

33、A, FFH ; 無鍵標志FFH存入A中 RET KS1: MOV DPTR, 0101H ; 判鍵子程序 MOV A, 00H ; 全掃描信號 MOVX DPTR, A ; 發全掃描信號 INC DPTR INC DPTR ; 指向8155口C MOVX A, DPTR ; 讀入列值 ANL A, 0FH ; 保留低4位 ORL A, F0H ; 高4位取“1” CPL A ; 取反, 無鍵按下則全“0” RET 第7章 單片機系統擴展與接口技術 7.4.2 LED顯示器接口顯示器接口 1. LED顯示器結構與原理顯示器結構與原理 圖 7.27 7段LED數碼顯示器 第7章 單片機系統擴展與

34、接口技術 各段碼位的對應關系如下: 第7章 單片機系統擴展與接口技術 表 7.8 十六進制數及空白與P的顯示段碼 第7章 單片機系統擴展與接口技術 2. LED顯示器接口電路顯示器接口電路 圖 7.28 6 位動態顯示器接口 第7章 單片機系統擴展與接口技術 圖 7.29 顯示子程序流程圖 第7章 單片機系統擴展與接口技術 程序清單如下:DIR: MOV R0, 79H ; 顯示緩沖區首址送R0MOV R3, 01H ; 使顯示器最右邊位亮MOV A, R3LD0: MOV DPTR, 0101H ; 掃描值送PA口MOVX DPTR, AINC DPTR ; 指向PB口MOV A, R0 ;

35、 取顯示數據ADD A, 12H ; 加上偏移量MOVX A, A+PC ; 取出字形MOVX DPTR, A ; 送出顯示 第7章 單片機系統擴展與接口技術 ACALL DL1; 延時 INC R0; 緩沖區地址加 1 MOV A, R3; JB ACC.5, LD1; 掃到第 6 個顯示位了嗎? RL A ; 沒有, R3 左環移一位, 掃描下一個顯示位 MOV R3, A AJMP LD0LD1: RETDSEG: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH ; 顯示段碼表DSEG1: DB 7DH, 07H, 7FH, 6FH, 77H, 7CH 第7章 單片機系統

36、擴展與接口技術 DSEG2: DB 39H, 5EH, 79H, 71H, 73H, 3EHDSEG3: DB 31H, 61H, 1CH, 23H, 40H, 03HDSEG4: DB 18H, 00H, 00H, 00HDL1: MOV R7, 02HDW; 延時子程序DL: MOV R6, 0FFHDL6: DJNZ R6, DL6 DJNZ R7, DL RET 第7章 單片機系統擴展與接口技術 7.4.3 鍵盤顯示器接口鍵盤顯示器接口8279 1. 8279的組成及引腳的組成及引腳 8279 芯片有 40 條引腳, 由單一+5 V電源供電。 它主要由以下幾部分組成: (1) I/O控

37、制和數據緩沖器; (2) 控制和定時寄存器及定時控制部分; (3) 掃描計數器; (4) 回送緩沖器與鍵盤去抖動控制電路; (5) FIFO(先進后出)寄存器和狀態電路; (6) 顯示器地址寄存器及顯示RAM。 第7章 單片機系統擴展與接口技術 圖 7.30 8279的引腳圖 第7章 單片機系統擴展與接口技術 2. 8279的接口電路與應用的接口電路與應用 圖 7.31 8031與 8279 接口連接框圖 第7章 單片機系統擴展與接口技術 更新顯示器和用查詢方法讀出 16 個鍵輸入數的程序如下: STRT1: MOV OPTR, 7FFFH ; 7FFFH為 8279 狀態地址 MOV A,

38、0D1H; 清除命令 MOVX DPTR, A; 命令字輸入 WAITD:MOVX A, DPTR ; 讀入狀態 JB ACC.7, WAITD; 清除等待 MOV A, 2AH ; 對時鐘編程, 設ALE為 1 MHz, ; 10 分頻為 100 kHz MOVX DPTR, A ; 命令送入 MOV A, 08H ; 顯示器左邊輸入外部譯碼, 雙鍵 ;互鎖方式 MOVX DPTR , A 第7章 單片機系統擴展與接口技術 MOV R0, 30H ; 設30H3FH存放顯示字形的段數據MOV R7, 10H ; 顯示16位數 MOV A, 90H ; 輸出寫顯示數據命令 MOVX DPTR,

39、 A MOV DPTR , 7EFFH ; 7EFFH是 8279 數據地址LOOP1:MOV A, R0 MOVX DPTR, A ; 段選碼送 8279 顯示RAM INC R0 ; 指向下一個段選碼 DJN2 R7, LOOP1 ; 16 個段選碼送完? MOV R0, 40H ; 40H為鍵值存放單元首址 MOV R7, 10H ; 有 16 個鍵值LOOP2: MOV DPTR, 7FFFH ; 讀 8279 狀態 第7章 單片機系統擴展與接口技術 LOOP3:MOVX A, DPTR ANL A, 0FH ; 取狀態字低 4 位 JZ LOOP3 ; FIFO中無鍵值時等待輸入 M

40、OV A, 40H ; 輸出讀FIFO的RAM命令 MOVX DPTR, A ; 命令送入 MOV DPTR, 7EFFH ; 讀鍵輸入數據 MOVX A, DPTR ; 讀入鍵值 MOV R0, A ; 鍵值存入內存 40H4FH INC R0 ; 指向下一個鍵值存放單元 DJNZ R7, LOOP2 ; 讀完 10H個鍵入數據? HERE: AJMP HERE ; 鍵值讀完等待 第7章 單片機系統擴展與接口技術 7.5 A/D和和D/A接口功能的擴展接口功能的擴展 7.5.1 A/D轉換器接口轉換器接口 1. 概述概述 A/D轉換器用以實現模擬量向數字量的轉換。 按轉換原理可分為 4 種:

41、 計數式、 雙積分式、逐次逼近式以及并行式A/D轉換器。 逐次逼近式A/D轉換器是一種速度較快, 精度較高的轉換器, 其轉換時間大約在幾微秒到幾百微秒之間。常用的這種芯片有: (1) ADC0801ADC0805型 8 位MOS型A/D轉換器; (2) ADC0808/0809 型 8 位MOS型A/D轉換器; (3) ADC0816/0817 型 8 位MOS型A/D轉換器; 第7章 單片機系統擴展與接口技術 量化間隔和量化誤差是A/D轉換器的主要技術指標之一。 量化間隔由下式計算: 12 n滿量程輸入電壓 其中n為A/D轉換器的位數。 量化誤差有兩種表示方法: 一種是絕對量化誤差; 另一種

42、是相對量化誤差。 絕對量化誤差 22量化間隔121n第7章 單片機系統擴展與接口技術 2. 典型典型A/D轉換器芯片轉換器芯片ADC0809 簡介簡介 圖 7.32 ADC0809的內部結構 第7章 單片機系統擴展與接口技術 圖 7.33 ADC0809引腳圖 第7章 單片機系統擴展與接口技術 表 7.9 地址碼與輸入通道的對應關系 第7章 單片機系統擴展與接口技術 圖 7.34 ADC0809時序圖 第7章 單片機系統擴展與接口技術 3. ADC0809與與8031 的接口電路的接口電路 1) 查詢方式 圖 7.35 ADC0809查詢方式硬件接口第7章 單片機系統擴展與接口技術 下面的程序

43、是采用查詢方法, 分別對 8 路模擬信號輪流采樣一次, 并依次把結果轉存到數據存儲區的采樣轉換程序。 MOV R1, data ; 置數據區首址 MOV DPTR, 7FF8H ; P2.7=0, 指向通道 0 MOV R7, 08H ; 置通道數LP1: MOVX DPTR, A ; 啟動A/D轉換 MOV R6, 0AH ; 軟件延時DALY: NOP NOP NOP 第7章 單片機系統擴展與接口技術 NOPNOPDJNZ R6, DALYMOVX A, DPTR ; 讀取轉換結果MOV R1, A ; 存儲數據INC DPTR ; 指向下一個通道INC R1 ; 修改數據區指針DJNZ

44、R7, LP1 ; 8 個通道全采樣完了嗎? 第7章 單片機系統擴展與接口技術 4. 中斷方式中斷方式 圖 7.36 ADC0809 中斷方式硬件接口 第7章 單片機系統擴展與接口技術 這里將ADC0809 作為一個外部擴展的并行I/O口, 直接由8031的P2.0和WR脈沖進行啟動。因而其端口地址為 0FEFFH。用中斷方式讀取轉換結果的數字量, 模擬量輸入通道選擇端ADD A、ADD B、ADD C分別與8031的P0.0、 P0.1、P0.2 直接相連, CLK由 8031 的ALE提供。其讀取通道 0 轉換后的數字量程序段如下: ORG 1000H INADC: SETB IT1 ; INT1設為邊沿觸發 SETB EA ; 開中斷INT1 SETB EX1 第7章 單片機系統擴展與接口技術

溫馨提示

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

評論

0/150

提交評論