• 沒有找到結果。

並列埠軟體控制

在文檔中 中 華 大 學 (頁 59-62)

第四章 軟體設計與應用

4.3 並列埠軟體控制

4.3.1 並列埠 I/O 控制 4.3.1.1 I/O 埠的函數

若要對電腦並列埠 I/O 做控制時首先要先了解下面兩個非常重要的函 數一是 In Port 函數,它的作用為對記憶體暫存的位址做資料的讀入,另一 個函數為 Out Port 函數,其作用為對記憶體暫存的位址輸出資料表 4.1 為對 這兩個函述詳細的定義與用法.

路徑 函數面板(Functions)→(Advanced)

→Port I/O→In Port.vi 說明 針對記憶體暫存位址,進行讀取 輸入 設定暫存器位址(register address)

讀取位元組或文字

Register address

輸出 數值(Value)

路徑 函數面板(Functions)→(Advanced)

→Port I/O→Out Port.vi

說明 針對記憶體暫存位址,進行資料輸出 設定暫存器位址(register address) 讀取位元組或文字

Register address

輸入

數值(Value)

表 4.1 基本 Port In/Out 函數

並列埠的特性在之前介紹的很詳細,當我們使用 LPT1 時電腦系統安排 給它的位址是 378h(資料暫存器),379h(狀態暫存器),37Ah(控制暫存器),

所以當要對 LPT1 做輸出時首先要先將控制暫存器的第五位元設為 0,目的 是將資料線八個位元都設定為輸出,然後再設定資料暫存器的資料內容,作 為欲輸出的資料值,如此就可以達到對 LPT1 埠作資料的輸出了程式如圖 4.1 所示,將資料 FFh 輸出至 LPT1 埠(P2~P9,DATA0~DATA7).

(F:byte) Value

(F:b) Valu

CHAPTER 4 SOFTWARE DESIGN AND APPLICATION

圖 4.1 LPT1 埠 P2~P9 輸出 FF 程式圖

程式的部份使用到了 Sequence,程序上會先執行"0"再執行"1",

當"0"時先做 37A 位址輸出資料為 0,之後再做"1"378 位址輸出資料為 FF,至於關於 In Port 的函數由於本系統並不會用到,故在此不詳加討論。

4.3.1.2 8255 控制程式

在程式的主體中經常會對 8255 IC 做控制,因此有必要將 8255 控制程式 獨立出來成一個副程式,以方便主程式的呼叫,此程式的寫法會需要搭配圖 3.7 並列埠與 8255 轉換電路圖,才能夠清楚各腳位的輸出訊號為何,在 8255 副程式中需要利用 Sequence 並設成 8 道程序,而且還要建立兩個輸入變數 分別為輸出資料與 8255 位址,程式的架構解說為下列 8 個程序,如圖 4.2 所示:

程序 0:設定並列埠八條資料現為輸出,而且 8255 的 ALE,/RD,/WR 為沒 動作(參考圖 3.7),即 ALE 為低準位,/RD 為高準位,/WR 為高準 位.

程序 1:這個動作是送出 8255 的位址,也就是 00h,01h,02h,03h,三個 Port 及一個控制字組暫存器.

程序 2:是設定 8255 的 ALE 為高準位,也就是要 74LS373 這顆 IC 栓鎖住送 出的位址線.

程序 3:是設定 8255 的 ALE 為低準位.

程序 4:為將資料送出,如果要送到 PORT A,則之前程序 1 的 8255 位址就要 設定為 00h,再將輸出資料送到 8255 的 PORT A,若是要設定 8255 的控制字組暫存器,而且將三個 PORT 都設定為輸出,那麼 8255 位址就要設為 03h 輸出資料就是 80h.

程序 5:為設定/WR 為低準位代表要寫入資料

程序 6:為延遲 1ms,代表 8255 的/WR 必須再一個有效的時序範圍內所寫入

CHAPTER 4 SOFTWARE DESIGN AND APPLICATION 的資料才會正確的收到.

程序 7:為設定/WR 為高準位,代表要結束寫入的動作

圖 4.2 8255 控制程式圖

在程式設計完成後,必須將此程式設計成一個副程式,並在程式編輯的右上 角點選 Edit Icon,且在文字工具的方框中設計成如圖 4.3 所示,在儲存於 use.lib 目錄下以後的主程式設計就可以將此圖示直接套用.

CHAPTER 4 SOFTWARE DESIGN AND APPLICATION

圖 4.3 8255 輸出副程式圖示

在文檔中 中 華 大 學 (頁 59-62)

相關文件