控制parallel port 的問題, PC LPT control


review :
http://www.hkepc.com/forum/viewthread.php?tid=1471068&highlight=parallel

for my no good memory

Question –

本人想用PC嘅 parallel port 去控制 LED, 我從 google search 到好多關於呢方面嘅資料, 我知道如果用win NT 之後嘅 OS 係唔可以直接由 DOS 度控制 parallel port, 係要裝一個driver, 網上比較常見嘅就係Inpout32.dll, 問題就出現啦, 我唔知點可以用呢個 driver 去做到我嘅要求, 麻煩各位師兄指教

Answer –

這個想法不錯. 先用 DEBUG 試試你部 PC 可否用 LPT (parallel port)

準備硬件 –
3V 電池, 1K 電阻, 1粒 LED.
PC 的 LPT 一般用 25 孔 F接頭, 孔的數字有標出來
LPT#2 = 第2個孔
LPT#3 = 第3個孔
LPT#18 = 第18個孔, 如此類推

連接硬件 –
電池+極 接到 LED +極,
LED – 極 接到電阻其中一只腳,
電阻另一只腳插入 LPT#2 至 LPT#9, 隨便一個都可以
電池- 極 接到 LPT 的鐵殼 或者 LPT#18 至 LPT#25, 隨便一個都可以

準備測試軟件 –

假設你用 XP, 開個 DOS BOX, 然後啟動 DEBUG, 見到一個黑底的窗口, 一橫以及一條閃動的底線, 表示 DEBUG 已經啟動. 跟住下面的步驟就可以看到 LPT 是否可用,

按a, 然後按 ENTER, 會出現 xxxx:0100, xxxx 每次不同, 但是每次用 DEBUG, a, 都會看到 :0100

輸入 mov dx,378 然後按 ENTER, 會跳出下一行 xxxx:0103

輸入 mov al,ff 然後按 ENTER, 會跳出下一行 xxxx:0105

輸入 out dx,al 然後按 ENTER, 會跳出下一行 xxxx:0106

輸入 xor ax,ax 然後按 ENTER, 會跳出下一行 xxxx:0108

輸入 out dx,al 然後按 ENTER, 會跳出下一行 xxxx:0109

輸入 jmp 103 然後按 ENTER, 會跳出下一行 xxxx:010B

如果輸入以上完畢, 看到 xxxx:010B 緊接一條閃動的底線, 表示你的軟件已經準備好了, 這時候, 直接再按一次 ENTER, 就回到 DEBUG 的準備狀態.

這個時候, 只要你 輸入  u 100, 然後按 ENTER, 就會看到剛才輸入指令如下 (我看到1392:0100, 你看到會是XXXX:0100, XXX表示你看到不會是 1329, 但是沒關係, 不重要的)

-u 100
1392:0100 BA7803        MOV     DX,0378 ; LPT1 的地址是0x378
1392:0103 B0FF          MOV     AL,FF ; 設定 LPT1輸出 HIGH (= +5V)
1392:0105 EE            OUT     DX,AL ; 把設定送到 LPT1
1392:0106 31C0          XOR     AX,AX ; 設定 LPT1輸出 LOW (= 0V)
1392:0108 EE            OUT     DX,AL ;把設定送到 LPT1
1392:0109 EBF8          JMP     0103 ; 重複以上動作
1392:010B …..

看完了, 這個時候, 只要你 輸入 p, 然後按 ENTER, PC 從 xxxx:0100 開始一步一步的執行.

每次 p + ENTER, 執行一步, 直至執行完了 xxxx:0109, 就會跳回到 xxxx:0103, 重複開始.

那到底做了什麼 ? 和 parallel port去控制LED 有何關係 ?

解釋 –

1392:0105 EE            OUT     DX,AL
做完這句, LPT 的輸出為 +5V, 你的 LED 不亮

1392:0108 EE            OUT     DX,AL
做完這句, LPT 的輸出為 0V 或接地, 電流由你的電池流入 LED 到 GOUND, 使其發光.

好了, 實驗完畢, 直接關閉 DOX BOX 就可.

任何接錯線, 輸入錯誤, 都不會傷害 PC 或 你的 LED, 可以放心玩, 唯一不要做的事, 電池正負極不要直接短路.

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s