微型計(jì)算機(jī)輸入輸出接口

上傳人:san****019 文檔編號(hào):21206867 上傳時(shí)間:2021-04-25 格式:PPT 頁(yè)數(shù):74 大?。?.22MB
收藏 版權(quán)申訴 舉報(bào) 下載
微型計(jì)算機(jī)輸入輸出接口_第1頁(yè)
第1頁(yè) / 共74頁(yè)
微型計(jì)算機(jī)輸入輸出接口_第2頁(yè)
第2頁(yè) / 共74頁(yè)
微型計(jì)算機(jī)輸入輸出接口_第3頁(yè)
第3頁(yè) / 共74頁(yè)

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《微型計(jì)算機(jī)輸入輸出接口》由會(huì)員分享,可在線閱讀,更多相關(guān)《微型計(jì)算機(jī)輸入輸出接口(74頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、第 5章 微 型 計(jì) 算 機(jī) 輸 入 輸 出 接 口 5.1 輸 入 輸 出 接 口 5.2 輸 入 輸 出 數(shù) 據(jù) 傳 輸 的 控 制 方 式 5.3 開(kāi) 關(guān) 量 輸 入 輸 出 接 口 5.1 輸 入 輸 出 接 口 5.1.1 外 部 設(shè) 備 及 其 信 號(hào) 5.1.2 I/O接 口 的 功 能5.1.3 I/O端 口 的 編 址 方 法 5.1.4 簡(jiǎn) 單 I/O接 口 的 組 成 5.1.1 外 部 設(shè) 備 及 其 信 號(hào) 1. 外 部 設(shè) 備 ( Peripheral Device)按 照 與 CPU數(shù) 據(jù) 傳 輸 的 方 向 劃 分 :( 1) 輸 入 設(shè) 備 鍵 盤(pán) 、 鼠 標(biāo)

2、 、 光 筆 輸 入 圖 形 信 息 的 掃 描 儀 、 數(shù) 碼 相 機(jī) 檢 測(cè) 現(xiàn) 場(chǎng) 信 息 的 數(shù) 字 化 測(cè) 試 儀 表 模 擬 量 采 集 和 模 擬 量 數(shù) 字 量 轉(zhuǎn) 換 裝 置 等 ( 2) 輸 出 設(shè) 備 顯 示 器 、 打 印 機(jī) 繪 圖 儀 現(xiàn) 場(chǎng) 控 制 的 數(shù) 字 量 模 擬 量 轉(zhuǎn) 換 裝 置 和 執(zhí) 行 元 件( 3) 復(fù) 合 輸 入 輸 出 設(shè) 備外 存 儲(chǔ) 設(shè) 備 是 典 型 的 復(fù) 合 輸 入 輸 出 設(shè) 備 : 磁 帶 機(jī) ( Tape Driver) 軟 磁 盤(pán) 驅(qū) 動(dòng) 器 ( Floppy Driver) 硬 磁 盤(pán) 驅(qū) 動(dòng) 器 ( Hard Disk

3、 Driver) 光 盤(pán) 驅(qū) 動(dòng) 器 ( Compact Disk Driver)許 多 光 盤(pán) 只 能 讀 出 信 息 , 稱 為 CDROM ( Compact DiskRead Only Memory) , 只 讀 光 盤(pán) 只 能 用 作 輸 入 設(shè) 備 。 2. 外 部 設(shè) 備 的 信 號(hào)( 1) 數(shù) 據(jù) 信 號(hào)按 照 信 號(hào) 的 物 理 形 態(tài) , 可 分 為 以 下 幾 種 ; 數(shù) 字 量 : 以 二 進(jìn) 制 形 式 表 述 的 數(shù) 據(jù) 、 圖 形 或 文 字 信 息 。 模 擬 量 : 現(xiàn) 場(chǎng) 的 物 理 量 通 過(guò) 傳 感 器 件 , 轉(zhuǎn) 換 為 大 小 與之 對(duì) 應(yīng) 的 電

4、壓 或 電 流 信 號(hào) 。 這 些 量 呈 連 續(xù) 變 化 的 形 態(tài) ,稱 為 模 擬 量 ( Analog) 。 開(kāi) 關(guān) 量 : 開(kāi) 關(guān) 量 是 只 有 二 種 狀 態(tài) ( 0, 1) 的 量 , 如 開(kāi)關(guān) 的 接 通 ( ON) 與 斷 開(kāi) ( OFF) , 電 機(jī) 的 啟 停 等 脈 沖 量 : 計(jì) 數(shù) 脈 沖 、 定 時(shí) 脈 沖 和 控 制 脈 沖 對(duì) 于 輸 入 設(shè) 備 , 數(shù) 據(jù) 信 號(hào) 從 外 設(shè) 送 往 CPU對(duì) 于 輸 出 設(shè) 備 , 數(shù) 據(jù) 信 號(hào) 從 CPU發(fā) 往 外 部 設(shè) 備 。 ( 2) 狀 態(tài) 信 號(hào) 狀 態(tài) 信 號(hào) 表 明 外 部 設(shè) 備 當(dāng) 前 的 工 作

5、狀 態(tài) , 用 來(lái) 協(xié) 調(diào)CPU與 外 部 設(shè) 備 之 間 的 操 作 。 典 型 的 狀 態(tài) 信 號(hào) : READY, BUSY 有 的 設(shè) 備 有 指 示 出 錯(cuò) 狀 態(tài) 的 信 號(hào) , 如 打 印 機(jī) 的 紙 盡( Paper Out) , 故 障 ( Fault) 。 不 同 的 外 設(shè) 可 以 有 不 同 的 狀 態(tài) 信 號(hào) 。 狀 態(tài) 信 號(hào) 總 是 從 外 部 設(shè) 備 發(fā) 往 CPU。 ( 3) 控 制 信 號(hào) 控 制 信 號(hào) 是 CPU向 外 設(shè) 發(fā) 出 的 命 令 , 它 指 定 設(shè) 備 的 工作 方 式 , 啟 動(dòng) 或 停 止 設(shè) 備 控 制 信 號(hào) 的 格 式 因 設(shè) 備

6、 而 異 控 制 信 號(hào) 從 CPU發(fā) 往 外 部 設(shè) 備 數(shù) 據(jù) 信 號(hào) 、 狀 態(tài) 信 號(hào) 、 控 制 信 號(hào) 都 是 以 “ 數(shù) 據(jù) ”的 形 式 , 通 過(guò) 數(shù) 據(jù) 總 線 在 CPU和 外 部 設(shè) 備 之 間 進(jìn)行 傳 輸 的 。 5.1.2 I/O接 口 的 功 能接 口 : 計(jì) 算 機(jī) 一 個(gè) 部 件 與 另 一 個(gè) 部 件 之 間 的 連 接 界 面 。功 能 :1. 設(shè) 備 選 擇 功 能 CPU通 過(guò) 地 址 代 碼 來(lái) 標(biāo) 識(shí) 和 選 擇 不 同 的 外 部 設(shè) 備 接 口 對(duì) 系 統(tǒng) 總 線 上 傳 輸 的 外 設(shè) 地 址 進(jìn) 行 譯 碼 , 在 檢 測(cè)到 本 設(shè) 備

7、地 址 代 碼 時(shí) , 產(chǎn) 生 相 應(yīng) 的 “ 選 中 ” 信 號(hào)2. 信 息 傳 輸 功 能設(shè) 備 被 “ 選 中 ” 時(shí) : 從 CPU/數(shù) 據(jù) 總 線 接 收 數(shù) 據(jù) 或 控 制 信 息 外 部 設(shè) 備 的 數(shù) 據(jù) 或 狀 態(tài) 信 息 發(fā) 往 數(shù) 據(jù) 總 線 /CPU 3. 數(shù) 據(jù) 格 式 轉(zhuǎn) 換 功 能外 設(shè) 使 用 的 數(shù) 據(jù) 格 式 與 CPU數(shù) 據(jù) 格 式 不 同 時(shí) , 接 口 要 進(jìn)行 二 種 數(shù) 據(jù) 格 式 之 間 的 相 互 轉(zhuǎn) 換 。4. 聯(lián) 絡(luò) 功 能 從 系 統(tǒng) 總 線 或 外 設(shè) 接 收 一 個(gè) 數(shù) 據(jù) 后 , 發(fā) 出 “ 數(shù) 據(jù) 到 ”聯(lián) 絡(luò) 信 號(hào) , 通 知

8、 外 設(shè) 或 CPU取 走 數(shù) 據(jù) 數(shù) 據(jù) 傳 輸 完 成 , 向 對(duì) 方 發(fā) 出 信 號(hào) , 準(zhǔn) 備 進(jìn) 行 下 次 傳 輸5. 中 斷 管 理 功 能 向 CPU申 請(qǐng) 中 斷 ; 向 CPU發(fā) 中 斷 類(lèi) 型 號(hào) ; 中 斷 優(yōu) 先 權(quán) 的 管 理 ; 在 以 8086為 CPU的 系 統(tǒng) 中 , 這 些 功 能 大 部 份 可 以 由 專(zhuān)門(mén) 的 中 斷 控 制 器 實(shí) 現(xiàn) 。 6. 復(fù) 位 功 能 接 口 在 接 收 系 統(tǒng) 的 復(fù) 位 信 號(hào) 后 , 將 接 口 電 路 及 其 所連 接 的 外 部 設(shè) 備 置 成 初 始 狀 態(tài) 。7. 可 編 程 功 能 有 些 接 口 具 有

9、可 編 程 特 性 , 可 以 用 指 令 來(lái) 設(shè) 定 接 口的 工 作 方 式 、 工 作 參 數(shù) 和 信 號(hào) 的 極 性 。 8. 錯(cuò) 誤 檢 測(cè) 功 能 ( 1) 物 理 信 道 上 的 傳 輸 錯(cuò) 誤 信 號(hào) 在 線 路 上 傳 輸 時(shí) , 如 果 遇 到 干 擾 信 號(hào) , 可 能 發(fā) 生傳 輸 錯(cuò) 誤 。 檢 測(cè) 傳 輸 錯(cuò) 誤 的 常 見(jiàn) 方 法 是 奇 偶 檢 驗(yàn) 。( 2) 數(shù) 據(jù) 傳 輸 中 的 覆 蓋 錯(cuò) 誤 輸 入 設(shè) 備 完 成 一 次 輸 入 操 作 后 , 把 所 獲 得 的 數(shù) 據(jù) 暫 存在 接 口 內(nèi) 如 果 在 該 設(shè) 備 完 成 下 一 次 輸 入 操 作

10、 之 后 , CPU還 沒(méi) 有從 接 口 取 走 數(shù) 據(jù) , 那 么 , 在 新 的 數(shù) 據(jù) 送 入 接 口 后 , 上一 次 的 數(shù) 據(jù) 被 覆 蓋 , 從 而 導(dǎo) 致 數(shù) 據(jù) 的 丟 失 輸 出 操 作 中 也 可 能 產(chǎn) 生 類(lèi) 似 的 錯(cuò) 誤 覆 蓋 錯(cuò) 誤 導(dǎo) 致 數(shù) 據(jù) 的 丟 失 , 易 發(fā) 生 在 高 速 數(shù) 據(jù) 傳 輸 的場(chǎng) 合 5.1.3 I/O端 口 的 編 址 方 法有 兩 種 不 同 的 I/O端 口 編 址 方 式 :1. I/O端 口 與 內(nèi) 存 統(tǒng) 一 編 址 把 內(nèi) 存 的 一 部 分 地 址 分 配 給 I/O端 口 , 一 個(gè) 8位 端 口 占用 一 個(gè)

11、內(nèi) 存 單 元 地 址 , 也 稱 為 存 儲(chǔ) 器 映 射 編 址 方 式 優(yōu) 點(diǎn) : 訪 問(wèn) 內(nèi) 存 單 元 和 I/O端 口 使 用 相 同 的 指 令 , 使 用 方 便 降 低 CPU電 路 的 復(fù) 雜 性 缺 點(diǎn) : 減 少 了 內(nèi) 存 可 用 范 圍 難 以 區(qū) 分 訪 問(wèn) 內(nèi) 存 和 I/O的 指 令 , 降 低 了 程 序 的 可 讀 性和 可 維 護(hù) 性 2. I/O端 口 與 內(nèi) 存 獨(dú) 立 編 址 內(nèi) 存 儲(chǔ) 器 和 I/O端 口 各 自 有 自 己 獨(dú) 立 的 地 址 空 間 訪 問(wèn) I/O端 口 需 要 專(zhuān) 門(mén) 的 I/O指 令 8086/8088 CPU采 用 這

12、種 方 式 訪 問(wèn) 內(nèi) 存 儲(chǔ) 器 使 用 20根 地 址 線 A0A19 使 M/IO#=1 內(nèi) 存 地 址 范 圍 為 00000 0FFFFFH共 1MB 訪 問(wèn) I/O端 口 使 用 低 16根 地 址 線 A 0A15 使 M/IO#= 0 I/O端 口 地 址 范 圍 為 0000 0FFFFH共 64K 3 IBM PC 微 型 計(jì) 算 機(jī) I/O端 口 地 址 分 配 在 PC系 列 微 機(jī) 中 , 僅 使 用 A0 A9共 10條 地 址 線 定 義I/O端 口 ( 設(shè) A11A15= 0) , 尋 址 范 圍 為 0 3FFH 前 256個(gè) 端 口 地 址 供 主 板 上

13、尋 址 I/O接 口 芯 片 使 用 , 后768個(gè) 供 擴(kuò) 展 槽 接 口 卡 使 用 用 戶 設(shè) 計(jì) I/O接 口 電 路 的 時(shí) 候 , 應(yīng) 使 用 系 統(tǒng) 未 占 用 的 端口 地 址 區(qū) 域 為 避 免 所 選 擇 的 地 址 與 其 他 擴(kuò) 展 卡 沖 突 , 最 好 將 其 設(shè)計(jì) 成 地 址 可 選 的 型 式 IBM-PC微 機(jī) 系 統(tǒng) 板 各 I/O接 口 器 件 端 口 地 址 見(jiàn) 表 5-1。 5.1.4 簡(jiǎn) 單 I/O接 口 的 組 成 1. 端 口 端 口 : 接 口 內(nèi) 的 寄 存 器 , 用 來(lái) 暫 存 CPU和 外 設(shè) 之 間 傳 輸?shù)?數(shù) 據(jù) 、 狀 態(tài) 和

14、命 令 。 端 口 地 址 : 每 一 個(gè) 端 口 有 一 個(gè) 獨(dú) 立 的 地 址 。 外 部 設(shè) 備 地 址 : 設(shè) 備 接 口 內(nèi) 各 端 口 的 地 址 , 一 臺(tái) 外 部 設(shè) 備可 以 擁 有 幾 個(gè) 通 常 是 相 鄰 的 端 口 地 址 。 端 口 種 類(lèi) : 數(shù) 據(jù) 端 口 、 命 令 端 口 ( 控 制 端 口 ) 和 狀 態(tài) 端 口 。 如 果 外 部 設(shè) 備 的 信 息 ( 數(shù) 據(jù) /狀 態(tài) ) 已 經(jīng) 鎖 存 , 端 口 也 可以 由 三 態(tài) 緩 沖 電 路 組 成 。 2. 地 址 譯 碼 電 路 地 址 譯 碼 是 接 口 的 基 本 功 能 之 一 。 一 個(gè) 接

15、口 上 的 幾 個(gè) 端 口 地 址 通 常 是 連 續(xù) 排 列 的 ,可 以 把 16位 地 址 碼 分 解 為 二 個(gè) 部 分 : 高 位 地 址 碼 用 作 對(duì) 接 口 的 選 擇 ; 低 位 地 址 碼 用 來(lái) 選 擇 接 口 內(nèi) 不 同 的 端 口 。 例 如 : 某 接 口 占 有 地 址 330H333H: 高 8位 地 址 為 11001100B時(shí) , 本 接 口 被 選 中 ; 低 2位 地 址 為 00, 01, 10, 11時(shí) , 選 擇 接 口 內(nèi) 的 不 同 端 口 。 圖 5-1 端 口 的 地 址 譯 碼 電 路 和 跳 線 器 為 了 避 免 地 址 沖 突 ,

16、許 多 接 口 電 路 允 許 用 “ 跳 線 器( JUMPER) ”改 變 端 口 地 址 。 上 頁(yè) 圖 3-1( b) 將 異 或 門(mén) 的 輸 出 代 替 圖 3-1( a) 中 的 A8, A9引 腳 : 二 個(gè) 跳 線 引 腳 均 接 地 時(shí) , 上 面 譯 碼 電 路 仍 然 產(chǎn) 生330H333H的 端 口 譯 碼 信 號(hào) ; 當(dāng) 二 個(gè) 跳 線 引 腳 均 接 “ 1” 時(shí) , 上 面 譯 碼 電 路 會(huì) 產(chǎn) 生030H033H的 端 口 譯 碼 信 號(hào) 同 理 還 可 以 產(chǎn) 生 130H133H, 230H233H的 譯 碼 信 號(hào) 。 8086工 作 于 最 大 模 式

17、 時(shí) , 上 面 的 M/IO#、 WR#、 RD#信號(hào) 由 8288總 線 控 制 器 發(fā) 出 的 IORC#、 IOWC#代 替 。 由 于 讀 、 寫(xiě) 操 作 不 會(huì) 同 時(shí) 進(jìn) 行 , 一 個(gè) 輸 入 端 口 和 另 一 個(gè) 輸出 端 口 可 以 使 用 同 一 個(gè) 地 址 編 碼 。 例 如 , 可 安 排 數(shù) 據(jù) 輸 入 端 口 、 數(shù) 據(jù) 輸 出 端 口 使 用 同 一 個(gè) 地址 330H, 命 令 端 口 和 狀 態(tài) 端 口 共 同 使 用 地 址 331H。 需 要 注 意 的 是 , 數(shù) 據(jù) 輸 入 端 口 和 數(shù) 據(jù) 輸 出 端 口 雖 然 使 用 相同 的 地 址 ,

18、但 卻 是 二 個(gè) 各 自 獨(dú) 立 的 不 同 的 端 口 。 3. 數(shù) 據(jù) 鎖 存 器 與 緩 沖 器數(shù) 據(jù) (狀 態(tài) )輸 入 端 口 : 必 須 通 過(guò) 三 態(tài) 緩 沖 器 與 系 統(tǒng) 總 線 相 連 , 保 證 數(shù) 據(jù) 總 線能 夠 正 常 地 進(jìn) 行 數(shù) 據(jù) 傳 送 。 輸 入 設(shè) 備 在 完 成 一 次 輸 入 操 作 后 , 在 輸 出 數(shù) 據(jù) 的 同 時(shí) ,產(chǎn) 生 數(shù) 據(jù) 選 通 信 號(hào) , 把 數(shù) 據(jù) 打 入 八 位 鎖 存 器 74LS273 鎖 存 器 的 輸 出 信 號(hào) 通 過(guò) 三 態(tài) 八 位 緩 沖 器 74LS244連 接到 系 統(tǒng) 數(shù) 據(jù) 總 線 。 數(shù) 據(jù) 端

19、口 讀 信 號(hào) 由 地 址 譯 碼 電 路 產(chǎn) 生 。 高 電 平 ( 無(wú) 效 ) : 緩 沖 器 輸 出 端 呈 高 阻 態(tài) 。 低 電 平 ( 有 效 , 端 口 被 選 中 ) : 已 鎖 存 的 數(shù) 據(jù) 通 過(guò)74LS244送 往 系 統(tǒng) 數(shù) 據(jù) 總 線 , 被 CPU所 接 收 。 圖 5-3 輸 入 設(shè) 備 接 口 的 數(shù) 據(jù) 鎖 存 和 緩 沖 電 路 數(shù) 據(jù) ( 命 令 ) 輸 出 端 口 : CPU送 往 外 設(shè) 的 數(shù) 據(jù) 或 命 令 , 應(yīng) 由 接 口 進(jìn) 行 鎖 存 ,以 便 使 外 設(shè) 有 充 分 的 時(shí) 間 接 收 和 處 理 。 八 位 輸 出 鎖 存 電 路 例

20、 ( 圖 5-4) 。 圖 5-4 輸 出 鎖 存 電 路 簡(jiǎn) 單 的 輸 入 輸 出 接 口 ( 圖 5-5) 把 地 址 譯 碼 、 數(shù) 據(jù) 鎖 存 與 緩 沖 、 狀 態(tài) 寄 存 器 、 命 令 寄存 器 各 個(gè) 電 路 組 合 起 來(lái) , 構(gòu) 成 簡(jiǎn) 單 輸 入 輸 出 接 口 接 口 連 接 的 信 號(hào) : 與 系 統(tǒng) 總 線 連 接 : 地 址 總 線 A0 A15 數(shù) 據(jù) 總 線 D0D7 控 制 總 線 M/IO#、 RD# 、 WR# ( 最 小 模 式 時(shí) ) 或IOWC#、 IORC#( 最 大 模 式 時(shí) ) 相 連 接 與 外 部 設(shè) 備 相 連 : 數(shù) 據(jù) 、 狀

21、態(tài) 、 命 令 。 圖 5-5 簡(jiǎn) 單 接 口 的 組 成 5.2 輸 入 輸 出 數(shù) 據(jù) 傳 輸 的 控 制 方 式 5.2.1 程 序 方 式 5.2.2 中 斷 方 式5.2.3 直 接 存 儲(chǔ) 器 存 取 (DMA)方 式 5.2.1 程 序 方 式 在 程 序 控 制 下 進(jìn) 行 信 息 傳 送 分 為 無(wú) 條 件 傳 送 和 條 件 傳 送 二 種1 無(wú) 條 件 傳 送 方 式 對(duì) 于 簡(jiǎn) 單 的 外 部 設(shè) 備 的 I O操 作 可 以 隨 時(shí) 進(jìn) 行 ; 例 如 , 開(kāi) 關(guān) 、 發(fā) 光 二 極 管 這 些 簡(jiǎn) 單 設(shè) 備 的 輸 入 信 號(hào) 一 般 不 需 要 鎖 存 , 可

22、以 通 過(guò) 三態(tài) 緩 沖 器 與 系 統(tǒng) 數(shù) 據(jù) 總 線 直 接 相 連 。 簡(jiǎn) 單 輸 出 設(shè) 備 的 信 號(hào) 一 般 需 要 由 鎖 存 器 鎖 存 圖 5-6 無(wú) 條 件 輸 入 輸 出 傳 送 接 口 2. 條 件 傳 送 方 式 條 件 傳 送 也 稱 為 查 詢 式 傳 送 、 異 步 傳 送 ; 接 口 電 路 除 了 有 傳 送 數(shù) 據(jù) 的 端 口 以 外 , 還 應(yīng) 有 儲(chǔ) 存 和傳 送 狀 態(tài) 的 端 口 。 對(duì) 于 輸 入 過(guò) 程 : 外 設(shè) 將 數(shù) 據(jù) 準(zhǔn) 備 好 , “ 準(zhǔn) 備 好 ( READY) ”標(biāo) 志 位 置 1; CPU將 數(shù) 據(jù) 取 走 , READY=0

23、 對(duì) 于 輸 出 過(guò) 程 : 外 設(shè) 接 收 到 數(shù) 據(jù) , 將 “ 忙 ( BUSY) ”標(biāo) 志 位 置 1 數(shù) 據(jù) 輸 出 完 成 , 將 “ BUSY”清 零 。 一 個(gè) 數(shù) 據(jù) 的 “ 條 件 傳 送 ” 過(guò) 程 : CPU從 接 口 中 讀 取 狀 態(tài) 字 ; CPU檢 測(cè) 狀 態(tài) 字 的 對(duì) 應(yīng) 位 是 否 滿 足 “ 就 緒 ” 條 件 , 如果 不 滿 足 , 則 回 到 前 一 步 重 新 讀 取 狀 態(tài) 字 ; 如 狀 態(tài) 字 表 明 外 設(shè) 已 處 于 “ 就 緒 ” 狀 態(tài) , 則 傳 送 數(shù) 據(jù) 。 圖 5-9 查 詢 式 輸 入 流 程 查 詢 方 式 輸 入 接

24、口 電 路 ( 圖 5-7) 接 口 內(nèi) 有 兩 個(gè) 端 口 : 數(shù) 據(jù) 端 口 ( 8位 , 輸 入 ) 狀 態(tài) 端 口 ( 1位 , 輸 入 , 連 接 在 D7上 , =1表 示 有 數(shù) 據(jù) ) 選 通 信 號(hào) 有 二 個(gè) 作 用 : 將 外 設(shè) 的 數(shù) 據(jù) 送 到 接 口 的 鎖 存 器 中 ; 使 接 口 中 的 D觸 發(fā) 器 置 “ l”( READY=1) 數(shù) 據(jù) 信 息 和 狀 態(tài) 信 息 從 不 同 端 口 經(jīng) 過(guò) 數(shù) 據(jù) 總 線 送到 CPU。 圖 5-7 查 詢 式 輸 入 接 口 電 路 匯 編 語(yǔ) 言 程 序 : AGAIN: IN AL, STAT_PORT; 讀

25、狀 態(tài) 端 口 , D7=1表 示 “ 數(shù) 據(jù) 就 緒 ” TEST AL, 80H ; 測(cè) 試 “ 數(shù) 據(jù) 就 緒 ” 位 JZ AGAIN ; 未 就 緒 , 繼 續(xù) 讀 狀 態(tài) 端 口 IN AL, DATA_PORT ; 已 就 緒 , 從 數(shù) 據(jù) 端 口 讀 取 數(shù) 據(jù) C語(yǔ) 言 程 序 :do stat = inportb( stat_port ); while (stat /* 數(shù) 據(jù) 未 準(zhǔn) 備 好 反 復(fù) 讀 狀 態(tài) */data = inportb( data_port ); /* 數(shù) 據(jù) 已 準(zhǔn) 備 好 則 讀 取 數(shù) 據(jù) */ 查 詢 方 式 輸 出 接 口 電 路 (

26、圖 5-8) 接 口 內(nèi) 有 兩 個(gè) 端 口 : 數(shù) 據(jù) 端 口 ( 8位 , 輸 出 ) 狀 態(tài) 端 口 ( 1位 , 輸 入 , 連 接 在 D7上 , =1表 示 正 在輸 出 , “ BUSY”) CPU讀 取 接 口 中 的 狀 態(tài) : 外 設(shè) 忙 ( BUSY =1) , CPU等 待 外 設(shè) 空 閑 ( BUSY =0) , 向 外 設(shè) 輸 出 數(shù) 據(jù) 圖 5-8 查 詢 式 輸 出 接 口 電 路 “ 數(shù) 據(jù) 端 口 寫(xiě) ” 信 號(hào) 作 用 : 把 數(shù) 據(jù) 打 入 “ 鎖 存 器 ” ; 將 “ 狀 態(tài) 觸 發(fā) 器 ” 置 1 D觸 發(fā) 器 的 作 用 : 為 外 設(shè) 提 供

27、一 個(gè) 聯(lián) 絡(luò) 信 號(hào) STB, 告 訴 外 設(shè) 現(xiàn) 在 接 口中 已 有 數(shù) 據(jù) 可 供 提 取 ; 用 作 該 設(shè) 備 的 狀 態(tài) 標(biāo) 志 ( “ 忙 ” , BUSY) 。 匯 編 語(yǔ) 言 程 序 :ONE: IN AL, STATUS_PORT ; 讀 狀 態(tài) 端 口TEST AL, 80H ; 測(cè) 試 “ 忙 ” 位 JNZ ONE ; 忙 , 再 讀 狀 態(tài) 端 口 MOV AL, DATA ; 不 忙 , 取 來(lái) 數(shù) 據(jù)OUT DATA_PORT, AL ; 送 入 數(shù) 據(jù) 端 口C語(yǔ) 言 程 序 :do stat = inportb( status_port ); while

28、( stat /*設(shè) 備 “ 忙 ” :反 復(fù) 讀 狀 態(tài)*/outportb( data_port, data ); /*設(shè) 備 空 閑 :輸 出 數(shù) 據(jù) */ 查 詢 式 輸 入 輸 出 的 程 序 設(shè) 計(jì) 例某 字 符 輸 入 設(shè) 備 以 查 詢 方 式 工 作 : 數(shù) 據(jù) 輸 入 端 口 : 0054H, 狀 態(tài) 端 口 : 0056H。 狀 態(tài) 寄 存 器 : D0=1, 數(shù) 據(jù) 準(zhǔn) 備 好 , 可 以 輸 入 ; 狀 態(tài) 寄 存 器 : D1=1, 輸 入 設(shè) 備 發(fā) 生 故 障要 求 : 從 該 設(shè) 備 上 輸 入 80個(gè) 字 符 , 配 上 水 平 和 垂 直 校 驗(yàn) 碼( 偶

29、 校 驗(yàn) ) , 向 串 行 口 輸 出 。 如 果 設(shè) 備 出 錯(cuò) , 顯 示 錯(cuò) 誤 信 息 后 停 止 。 匯 編 語(yǔ) 言 程 序 : .dataBuffer DB 81 dup( ? ) Message DB Device Fault !, 0DH, 0AH, $ .codeStart: MOV AX, data ; 對(duì) DS初 始 化 MOV DS, AX LEA SI, Buffer ; 設(shè) 置 SI為 緩 沖 區(qū) 指 針 MOV CX, 80 ; 設(shè) 置 CX為 計(jì) 數(shù) 器 MOV DL, 0 ; DL置 垂 直 校 驗(yàn) 碼 初 值 Next: IN AL, 56H ; 讀 入

30、狀 態(tài) TEST AL, 02H ; 測(cè) 狀 態(tài) 寄 存 器 D1 JNZ ERROR ; 設(shè) 備 故 障 , 轉(zhuǎn) ERROR TEST AL, 01H ; 測(cè) 狀 態(tài) 寄 存 器 D0JZ Next ; 未 準(zhǔn) 備 好 , 則 等 待 , 再 測(cè) IN AL, 54H ; 準(zhǔn) 備 好 , 輸 入 字 符AND AL, 7FH ; 清 最 高 位 , 進(jìn) 行 校 驗(yàn)JPE Store ; 已 經(jīng) 是 偶 數(shù) 個(gè) 1, 則 轉(zhuǎn) Store OR AL, 80H ; 奇 數(shù) 個(gè) 1, 將 最 高 位 置 為 1Store: XOR DL, AL ; 產(chǎn) 生 垂 直 校 驗(yàn) 碼MOV SI, AL

31、; 將 字 符 送 緩 沖 區(qū) INC SI ; 修 改 地 址 指 針LOOP Next ; 80個(gè) 字 符 未 輸 入 完 成 , 繼 續(xù) MOV SI, DL ; 輸 入 完 成 , 保 存 垂 直 校 驗(yàn) 碼Tranfer:LEA SI, Buffer ; 準(zhǔn) 備 發(fā) 送 ,SI中 置 字 符 串 首 址 MOV CX, 81 ; 發(fā) 送 字 符 數(shù)One: MOV AH, 04H ; 設(shè) 置 串 口 輸 出 功 能 號(hào)MOV DL, SI ; 取 出 一 個(gè) 字 符INT 21H ; 從 串 口 輸 出 INC SI ; 修 改 指 針 LOOP One ; 輸 出 下 一 個(gè) 字

32、符JMP Done Error:MOV AH, 09H ; 設(shè) 備 故 障 , 輸 出 出 錯(cuò) 信 息LEA DX, Message INT 21HDone: MOV AH, 4CHINT 21H ; 返 回 DOSEND Start 說(shuō) 明 : 程 序 由 二 段 循 環(huán) 程 序 組 成 : 第 一 段 程 序 從 設(shè) 備 輸 入 80個(gè) 字 符 , 同 時(shí) 產(chǎn) 生 它 的 水 平 /垂 直 校 驗(yàn) 碼 存 入 緩 沖 區(qū) ; 第 二 段 程 序 將 緩 沖 區(qū) 內(nèi) 容 通 過(guò) 串 口 輸 出 。 測(cè) 試 狀 態(tài) 位 要 注 意 先 后 次 序 :由 于 設(shè) 備 故 障 將 導(dǎo) 致 該 設(shè)

33、備 不 能 正 常 輸 入 , 使 完 成 標(biāo)志 ( D0) 恒 為 零 。 所 以 , 在 設(shè) 備 發(fā) 生 故 障 時(shí) 先 判 是 否完 成 可 能 導(dǎo) 致 程 序 死 循 環(huán) 。 產(chǎn) 生 水 平 校 驗(yàn) 碼 : 從 設(shè) 備 讀 入 數(shù) 據(jù) , 清 除 最 高 位 ,根 據(jù) 剩 余 七 位 的 奇 偶 特 性 決 定 最 高 位 置 1或 不 變( 保 持 為 0) 。 產(chǎn) 生 垂 直 校 驗(yàn) 碼 : 將 80個(gè) 字 節(jié) 半 加 ( 異 或 ) 得 到 。 多 個(gè) 設(shè) 備 循 環(huán) 查 詢 方 法 舉 例 : 三 個(gè) 設(shè) 備 , 它 們 狀 態(tài) 端 口 地 址 分 別 為 STATl、 STA

34、T2、STAT3, 三 個(gè) 狀 態(tài) 端 口 均 使 用 第 5位 作 為 準(zhǔn) 備 好 標(biāo) 志 。 TREE: MOV FLAG, 0INPUT: IN AL, STAT l TEST AL, 20H JZ DEV2 CALL PROC l DEV2: IN AL, STAT2 TEST AL, 20H JZ DEV3 CALL PROC2DEV3; IN AL, STAT3 TEST AL, 20H JZ NOINPUT CALL PROC3NOINPUT: CMP FLAG, 07H JNE INPUT 說(shuō) 明 : PROCl、 PROC2、 PROC3是 三 個(gè) 設(shè) 備 輸 入 數(shù) 據(jù) 并

35、 進(jìn)行 處 理 的 子 程 序 。 FLAG存 放 三 個(gè) 設(shè) 備 輸 入 完 成 的 標(biāo) 志 , D0, D1, D2分 別代 表 一 個(gè) 設(shè) 備 的 輸 入 完 成 情 況 ( =0表 示 未 完 成 , =1表示 完 成 ) 。 上 例 僅 適 用 于 三 個(gè) 設(shè) 備 工 作 速 度 都 比 較 慢 的 情 況 ; 如 果 其 中 一 個(gè) 設(shè) 備 工 作 速 度 很 快 , 而 其 他 設(shè) 備 的 輸 入輸 出 處 理 程 序 運(yùn) 行 時(shí) 間 又 較 長(zhǎng) , 可 能 發(fā) 生 “ 覆 蓋 錯(cuò)誤 ” 。 在 這 種 情 況 下 , 應(yīng) 優(yōu) 先 執(zhí) 行 工 作 速 度 較 快 的 外 設(shè) 的

36、I O過(guò) 程 , 然 后 再 執(zhí) 行 其 他 設(shè) 備 的 I O過(guò) 程 。 5.2.2 中 斷 方 式程 序 查 詢 方 式 的 特 點(diǎn) : 程 序 查 詢 方 式 解 決 了 CPU與 外 設(shè) 工 作 的 協(xié) 調(diào) 問(wèn) 題 , 但是 卻 大 大 降 低 了 CPU的 使 用 效 率 ; 在 程 序 查 詢 方 式 中 , CPU處 于 主 動(dòng) 地 位 , 外 設(shè) 處 于 消極 等 待 查 詢 的 被 動(dòng) 地 位 ; 設(shè) 備 較 多 時(shí) , 查 詢 方 式 的 數(shù) 據(jù) 傳 送 很 難 使 每 一 個(gè) 外 設(shè)都 能 工 作 在 最 佳 狀 態(tài) 。 程 序 中 斷 方 式 特 點(diǎn) : 賦 予 系 統(tǒng)

37、 中 的 外 設(shè) 某 種 主 動(dòng) 申 請(qǐng) 、 配 合 CPU工 作 的“ 權(quán) 利 ” 。 外 設(shè) 把 數(shù) 據(jù) 準(zhǔn) 備 好 時(shí) , 主 動(dòng) 向 CPU發(fā) 出 一 個(gè) 請(qǐng) 求 信 號(hào) 。 CPU接 收 到 請(qǐng) 求 信 號(hào) 后 , 暫 停 當(dāng) 前 的 工 作 , 進(jìn) 行 該 設(shè)備 的 數(shù) 據(jù) 傳 送 操 作 。 賦 予 外 設(shè) “ 主 動(dòng) 權(quán) ” 之 后 , CPU可 以 不 必 反 復(fù) 查 詢?cè)?設(shè) 備 的 狀 態(tài) , 而 是 正 常 地 處 理 系 統(tǒng) 任 務(wù) ; CPU與 外 設(shè) 處 于 某 種 “ 并 行 工 作 ” 的 狀 態(tài) , 從 而 提 高CPU的 工 作 效 率 。 中 斷 方 式

38、 舉 例 : 某 外 設(shè) 在 1秒 內(nèi) 傳 送 100個(gè) 字 節(jié) 。 若 用 程 序 查 詢 的 方 式 傳 送 , 則 CPU為 傳 送 100個(gè) 字 節(jié) 所化 費(fèi) 的 時(shí) 間 等 于 1秒 。 用 中 斷 控 制 方 式 傳 送 , CPU為 執(zhí) 行 一 個(gè) 字 節(jié) 的 傳 送 需要 進(jìn) 入 一 次 中 斷 服 務(wù) 程 序 。 設(shè) CPU執(zhí) 行 一 次 中 斷 服 務(wù) 程 序 需 要 100s; 傳 遞 100個(gè) 字 節(jié) CPU所 使 用 的 時(shí) 間 為 100s 100=10ms; CPU處 理 中 斷 開(kāi) 銷(xiāo) 為 1 , 99 的 時(shí) 間 可 執(zhí) 行 其 他 任 務(wù) ; 中 斷 方 式

39、 的 數(shù) 據(jù) 傳 送 仍 在 程 序 的 控 制 下 執(zhí) 行 , 稱 為 程序 中 斷 方 式 ; 適 應(yīng) 于 中 、 慢 速 的 外 部 設(shè) 備 數(shù) 據(jù) 傳 送 。 3.2.3 直 接 存 儲(chǔ) 器 存 取 (DMA)方 式程 序 中 斷 方 式 , 程 序 查 詢 方 式 的 缺 點(diǎn) : 中 斷 方 式 : 每 傳 送 一 次 數(shù) 據(jù) , CPU必 須 執(zhí) 行 一 次 中 斷 服 務(wù) 程 序 ; 對(duì) 于 高 速 數(shù) 據(jù) 傳 輸 , 容 易 產(chǎn) 生 “覆 蓋 錯(cuò) 誤 ” 。 程 序 查 詢 方 式 : 響 應(yīng) 速 度 比 中 斷 方 式 要 快 一 些 , 完 成 一 次 數(shù) 據(jù) 傳 輸 仍然

40、 需 要 執(zhí) 行 七 、 八 條 以 上 的 指 令 。 CPU的 工 作 速 度 不 高 時(shí) 仍 有 可 能 跟 不 上 外 設(shè) 數(shù) 據(jù) 傳 輸?shù)?需 要 。 直 接 存 儲(chǔ) 器 傳 送( Direct Memory AccessDMA) 將 外 設(shè) 的 數(shù) 據(jù) 不 經(jīng) 過(guò) CPU直 接 送 入 內(nèi) 存 儲(chǔ) 器 ; 或 者 , 從 內(nèi) 存 儲(chǔ) 器 不 經(jīng) 過(guò) CPU直 接 送 往 外 部 設(shè) 備 ; 一 次 DMA傳 送 只 需 要 執(zhí) 行 一 個(gè) DMA周 期 ( 相 當(dāng) 于 一個(gè) 總 線 讀 寫(xiě) 周 期 ) ; 能 夠 滿 足 高 速 外 設(shè) 數(shù) 據(jù) 傳 輸 的 需 要 ; 需 要 一

41、個(gè) 專(zhuān) 門(mén) 的 器 件 來(lái) 協(xié) 調(diào) 外 設(shè) 接 口 和 內(nèi) 存 儲(chǔ) 器 的 數(shù)據(jù) 傳 輸 , 稱 為 DMA控 制 器 ( DMAC) 圖 5-10 DMA數(shù) 據(jù) 傳 送 示 意 圖 5.3 開(kāi) 關(guān) 量 輸 入 輸 出 接 口 5.3.1 開(kāi) 關(guān) 量 輸 入 接 口 5.3.2 開(kāi) 關(guān) 量 輸 出 接 口 5.3.1 開(kāi) 關(guān) 量 輸 入 接 口 1 基 本 的 開(kāi) 關(guān) 量 輸 入 接 口 開(kāi) 關(guān) 形 態(tài) : 單 刀 單 擲 開(kāi) 關(guān) /單 刀 雙 擲 開(kāi) 關(guān) /按 鈕 開(kāi) 關(guān) 量 通 過(guò) 三 態(tài) 緩 沖 器 與 系 統(tǒng) 數(shù) 據(jù) 總 線 連 接 常 用 的 三 態(tài) 緩 沖 器 : 74LS244(

42、 輸 入 輸 出 同 相 ) /74LS240( 輸 入 輸 出 反 相 ) 一 條 輸 入 指 令 可 以 同 時(shí) 讀 入 8位 或 16位 開(kāi) 關(guān) 量 。 圖 5-11 基 本 開(kāi) 關(guān) 量 輸 入 接 口 2 矩 陣 式 開(kāi) 關(guān) 量 輸 入 接 口開(kāi) 關(guān) 數(shù) 量 多 時(shí) , 可 以 排 列 成 矩 陣 , 例 如 : 圖 5-12( 鍵 盤(pán) ) 數(shù) 據(jù) 輸 出 端 口 連 接 8根 “ 行 線 ” (Row, R0R7); 數(shù) 據(jù) 輸 入 端 口 連 接 8根 “ 列 線 ” (Column, C0C7);電 路 特 點(diǎn) : 沒(méi) 有 鍵 按 下 時(shí) , 列 線 端 口 輸 入 為 全 “

43、1” ; 行 線 端 口 輸 出 全 “ 1” 時(shí) , 不 論 有 無(wú) 鍵 按 下 , 列 線 端 口 輸入 仍 然 為 全 “ 1” ; 某 一 行 線 輸 出 “ 0” 時(shí) , 如 果 該 行 上 有 一 個(gè) 鍵 按 下 , 則 輸入 端 口 輸 入 代 碼 為 7個(gè) “ 1” , 1個(gè) “ 0” , 0的 位 置 與 被 按下 鍵 的 位 置 相 對(duì) 應(yīng) 。 圖 5-12 鍵 盤(pán) (矩 陣 式 開(kāi) 關(guān) 量 輸 入 )接 口 鍵 盤(pán) 掃 描 與 編 碼 : 對(duì) 8根 行 線 逐 行 掃 描 , 識(shí) 別 按 鍵 的 所 在 行 、 列 , 從 而獲 得 該 鍵 的 代 碼 ; 一 個(gè) 鍵 的

44、 編 碼 可 以 用 它 的 二 字 節(jié) “ 行 列 碼 ” 表 示 。 例如 , ( R3, C2) 的 二 字 節(jié) “ 行 列 碼 ” 為 F7FBH: F7H=11110111 : 按 鍵 在 R3行 上 ; FBH=11111011 : 按 鍵 在 C2列 上 ; 用 “ 行 列 碼 ” 查 表 , 可 以 得 到 這 個(gè) 鍵 的 代 碼 。 鍵 的 編 碼 也 可 以 用 一 字 節(jié) “ 掃 描 碼 ” 表 示 。 上 例 中 按鍵 的 一 字 節(jié) “ 掃 描 碼 ” 為 32H: 高 4位 0011: 鍵 所 在 的 行 ; 低 4位 0010: 鍵 所 在 的 列 ; 鍵 剛 按

45、 下 時(shí) , 會(huì) 產(chǎn) 生 “ 抖 動(dòng) ” 。 鍵 盤(pán) 掃 描 程 序 : 沒(méi) 有 鍵 被 按 下 , 返 回 1; 有 鍵 按 下 時(shí) 返 回 按 鍵 的 二 字 節(jié) “ 行 列 碼 ” ( 行 碼 為 高 8位 , 列 碼 為 低 8位 ) ; RPORT, CPORT 定 義 為 行 、 列 端 口 的 地 址 。 unsigned int kbinput( ) unsigned int row, row0, column, code, k=0; outportb( RPORT, 0); /*各 行 輸 出 全 0,測(cè) 試 有 無(wú) 鍵 按 下 */ if (inportb(CPORT) /

46、* 沒(méi) 有 鍵 按 下 , 返 回 全 “ 1” */ delay(20); /* 延 時(shí) 20ms, 消 除 抖 動(dòng) */ if (inportb(CPORT) /* 再 次 測(cè) 試 , 確 認(rèn) 有 鍵 被 按 下 */ row0 = row = 0 xff7f; column = 0 xff; k=0; /* 置 行 碼 初 值 :從 最 高 位 對(duì) 應(yīng) 行 開(kāi) 始 逐 行 掃 描 */ while( k 1) ; k+; /* 形 成 下 一 個(gè) 行 碼 */ if (column = = 0 xff ) return( 0 xffff ); /* 未 找 到 按 鍵 所 在 行 , 返

47、 回 全 “ 1” */ code = (row0 /* 由 行 碼 、 列 碼 組 合 得 到 “ 行 列 碼 ” */ return (code ); 5.3.2 開(kāi) 關(guān) 量 輸 出 接 口1 基 本 的 開(kāi) 關(guān) 量 輸 出 接 口常 見(jiàn) 的 開(kāi) 關(guān) 量 輸 出 : LED發(fā) 光 二 極 管 LED指 示 燈 用 于 指 示 室 內(nèi) 儀 表 狀 態(tài) 小 功 率 LED可 以 由 邏 輯 電 路 直 接 驅(qū) 動(dòng) : 輸 出 0: LED發(fā) 光 輸 出 1: LED熄 滅 執(zhí) 行 元 件 驅(qū) 動(dòng) 線 圈 器 件 型 號(hào) 高 電 平 輸 出 電 流 低 電 平 吸 收 電 流74LS00,04,

48、10,20,30(邏 輯 門(mén) ) 400A 8m A74LS01,03,05,12,22(OC門(mén) ) 100A 8m A7407(OC驅(qū) 動(dòng) 器 ) 250A 40m A(Voh=30V)74LS244(總 線 驅(qū) 動(dòng) 器 ) 15m A 24m A74LS273(D觸 發(fā) 器 ) 400A 8m A74LS373(三 態(tài) 輸 出 鎖 存 器 ) 2.6m A 24m A表 5-3 部 分 邏 輯 電 路 輸 出 端 電 流 Di +5V +12V+5VDiDi (a)小 功 率 LED用 邏 輯 門(mén) 驅(qū) 動(dòng) ( b) 外 接 功 率 放 大 三 極 管 驅(qū) 動(dòng) +15VD i Di +15V

49、 (c)用 集 電 極 開(kāi) 路 驅(qū) 動(dòng) 器 ( OC門(mén) )驅(qū) 動(dòng) 大 功 率 LED驅(qū) 動(dòng) 或 執(zhí) 行 元 件 驅(qū) 動(dòng) 線 圈 的 驅(qū) 動(dòng) : 普 通 邏 輯 電 路 輸 出 , 外 接 功 率 放 大 三 極 管 驅(qū) 動(dòng) ; 集 電 極 開(kāi) 路 驅(qū) 動(dòng) 器 ( OC驅(qū) 動(dòng) 器 ) , 輸 出 端 通 過(guò) 上 拉 電 阻 接 高 壓 。 2 LED七 段 數(shù) 碼 顯 示 管 接 口 a bcdef g dp (a) LED顯 示 管 外形 與 二 極 管 編 碼 abcdefgdp (b) 共 陽(yáng) 極 LED顯 示 管 abcdefgdp (c) 共 陰 極 LED顯 示 管 74LS244

50、74LS273 74LS273位 碼 端 口 寫(xiě) 段 碼 端 口 寫(xiě) D7D0 7407 8G圖 5-15 多 位 LED數(shù) 碼 顯 示 接 口 多 位 LED顯 示 器 驅(qū) 動(dòng) : 設(shè) 置 位 碼 , 熄 滅 所 有 數(shù) 碼 管 ; 將 一 個(gè) 數(shù) 碼 管 的 字 形 代 碼 ( 段 碼 ) 送 入 段 碼 端 口 ; 設(shè) 置 位 碼 , 點(diǎn) 亮 一 個(gè) 數(shù) 碼 管 適 當(dāng) 延 時(shí) 后 , 重 復(fù) 以 上 過(guò) 程 多 位 不 同 的 數(shù) 字 同 時(shí) 顯 示 在 不 同 的 數(shù) 碼 管 上 。 送 段 碼 之 前 熄 滅 所 有 數(shù) 碼 管 可 以 消 除 “ 段 碼 ” 和“ 位 碼 ” 不

51、 同 步 產(chǎn) 生 的 閃 爍 。 多 位 LED數(shù) 碼 顯 示 程 序 : 需 要 輸 出 的 數(shù) 字 分 別 是 1,2,3,4,5,6,7,8 段 碼 和 位 碼 的 端 口 地 址 分 別 是 segport 和 bitport ; 數(shù) 據(jù) 段 和 堆 棧 段 dataSegtab db 40h, 4fh, 24h, 30h, 19h db 12h, 02h, 78h, 00h, 10hbuffer db 1, 2, 3, 4, 5, 6, 7, 8 segcode db ?bitcode db ? stack 100h codeleddisp proc farpush ds ; 保 護(hù)

52、 各 寄 存 器 內(nèi) 容push axpush bxpush cxpush simov ax, data ; 裝 載 dsmov ds, axlea bx, segtab ; bx 置 為 七 段 碼 表 首 址mov bitcode, 80h ; 位 碼 初 始 值 為 80H(從 左 邊 開(kāi) 始 )mov si, 0 ; si用 作 輸 出 緩 沖 區(qū) 指 針 , 初 值 0mov cx, 8 ; cx 用 作 循 環(huán) 計(jì) 數(shù) 器 , 初 值 8 one: mov al, 0out bitport, al ; 送 位 碼 0, 熄 滅 各 LED mov al, buffersi ; 取

53、出 一 個(gè) 待 輸 出 數(shù) 字xlat ; 轉(zhuǎn) 換 成 七 段 碼out segport, al ; 向 段 碼 端 口 輸 出mov al, bitcodeout bitport, al ; 輸 出 位 碼 , 點(diǎn) 亮 一 個(gè) LEDror bitcode, 1 ; 修 改 位 碼 , 得 到 下 一 個(gè) 位 碼inc si ; 修 改 輸 出 緩 沖 區(qū) 指 針call delay ; 延 時(shí)loop one ; 循 環(huán) , 點(diǎn) 亮 下 一 個(gè) LED pop sipop cx ; 恢 復(fù) 各 寄 存 器pop bxpop axpop dsret ; 返 回 主 程 序leddisp en

54、dpend 習(xí) 題 51. 接 口 電 路 與 外 部 設(shè) 備 之 間 傳 送 的 信 號(hào) 有 哪 幾 種 ? 傳輸 方 向 怎 樣 ?2. 接 口 電 路 有 哪 些 功 能 ? 哪 些 功 能 是 必 需 的 ?3. I/O端 口 的 編 址 有 哪 幾 種 方 法 ? 各 有 什 么 利 弊 ?80X86系 列 CPU采 用 哪 種 方 法 ?4. 按 照 傳 輸 信 號(hào) 的 種 類(lèi) , I/O端 口 有 幾 種 ? 它 們 信 號(hào) 的傳 輸 方 向 怎 樣 ?5. I/O端 口 譯 碼 電 路 的 作 用 是 什 么 ? 在 最 小 模 式 和 最 大模 式 下 分 別 有 哪 些 輸

55、 入 信 號(hào) ?6. 外 部 設(shè) 備 數(shù) 據(jù) 傳 送 有 哪 幾 種 控 制 方 式 ? 從 外 部 設(shè) 備的 角 度 , 比 較 不 同 方 式 對(duì) 外 部 設(shè) 備 的 響 應(yīng) 速 度 。 7. 敘 述 一 次 查 詢 式 輸 出 過(guò) 程 中 , 接 口 內(nèi) 各 電 路 、 信 號(hào) 的狀 態(tài) 變 化 過(guò) 程 。8. 比 較 程 序 中 斷 方 式 和 查 詢 方 式 的 區(qū) 別 , 根 據(jù) 比 較 , 指出 中 斷 工 作 方 式 的 優(yōu) 缺 點(diǎn) 。9. 比 較 DMA方 式 和 程 序 中 斷 方 式 的 區(qū) 別 , 根 據(jù) 比 較 , 指出 DMA工 作 方 式 的 優(yōu) 缺 點(diǎn) 。10.

56、 某 輸 入 設(shè) 備 數(shù) 據(jù) 端 口 、 狀 態(tài) 端 口 、 控 制 端 口 地 址 分 別為 70H, 71H, 72H。 狀 態(tài) 端 口 D5=1表 示 輸 入 完 成 , 控制 端 口 D7=1表 示 啟 動(dòng) 設(shè) 備 輸 入 ( 輸 入 完 成 后 由 設(shè) 備清 除 該 位 ) 。 從 該 設(shè) 備 輸 入 100個(gè) 字 節(jié) 數(shù) 據(jù) , 存 入 以BUFFER為 首 地 址 的 緩 沖 區(qū) 。 如 果 啟 動(dòng) 該 設(shè) 備 1秒 后仍 未 完 成 一 次 輸 入 , 則 視 為 超 時(shí) 錯(cuò) , 顯 示 出 錯(cuò) 信 息 后返 回 。 分 別 用 8086匯 編 語(yǔ) 言 和 C語(yǔ) 言 編 寫(xiě) 完

57、 成 上 述 功能 的 I/O程 序 。 11. 某 輸 出 設(shè) 備 數(shù) 據(jù) 端 口 、 狀 態(tài) 端 口 地 址 分 別 為 220H, 221H。 狀 態(tài) 端 口 D0=1表 示 輸 出 完 成 。 將 數(shù) 據(jù) 段 中 以STRING為 首 地 址 的 20個(gè) 字 符 ( 用 七 位 ASCII代 碼 存儲(chǔ) ) 添 加 水 平 和 垂 直 校 驗(yàn) 發(fā) 送 到 該 外 部 設(shè) 備 。 用 8086匯 編 語(yǔ) 言 編 寫(xiě) 完 成 上 述 功 能 的 I/O程 序 。12. 試 畫(huà) 出 矩 陣 式 鍵 盤(pán) 查 詢 的 程 序 流 程 圖 。13. 試 畫(huà) 出 公 用 端 口 多 位 LED輸 出 的 程 序 流 程 圖 。

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!