C 並口操作

2021-04-01 21:01:49 字數 1851 閱讀 7066

並口

d0-d7為資料線, s0-s7為狀態線, 但是s0,s1,s2是看不見的(從圖中你也可以看出), 狀態線是用來讀取資料的, 但s0卻不同, 它是超時標誌位, 其他的狀態線從第10-11-12-13-15針是用來傳送資料的(可以看出是5位).

印表機針位的意義:

l         s0: 在epp(增強的串列埠)模式下, 如果超時的話, 這位置1.

l         s1: 沒用(估計是裝飾).

l         s2: 大多數情況下沒有使用.

l         s3: 如果印表機發生了錯誤則置0. 它通常被叫做nerror或者nfault.

l         s4: 如果資料達到, 則置1.我們通常叫做select.

l         s5: 如果沒有列印紙了則置1.通常叫做*****end或者*****empty或者perror.

l         s6: 如果印表機得到了乙個位元組的資料則此位置0, 通常叫做nack或者nacknowledge.

l         s7: 如果印表機處於繁忙的狀態則此位置0, 通常叫做busy.

控制線:

這些線通常用來輸出,但有時也可以用於輸入. 他們占用c0-c7(如圖), 但是在介面上c4, c5, c6, c7是不可見, 他們占用的埠位址是0x37a.

l         c0: 這一針腳是保留的. 他傳送命令去讀取埠上的資料(d0-d7). 當計算機啟動的時候,這一位被置1,通常叫做nstrobe.

l         c1: 保留.通過他傳送命令給印表機, 可以得到下一條列印線.(lf)

l         c2: 重置印表機並且清空資料緩衝區.(ninitialize)

l         c3: 保留.置高電平開啟資料輸入.啟動計算機時置0.(nselectin)

地線:從g0-g7的針是接地用的, 他們一般是用來完善電路的.

並口接外掛程式訊號

並口輸入/輸出位址

在我的portinterop.cs檔案中, 我如下使用這個dll

using system;

using system.runtime.interopservices;

public class portaccess

output函式為給埠傳送資料, input是從埠讀取資料

如:portaccess.input( 888 );//從888(即0x378)埠讀取資料

portaccess.output( 888, 4 )//把4從888埠輸出

C 操作並口

並口 d0 d7為資料線,s0 s7為狀態線,但是s0,s1,s2是看不見的 從圖中你也可以看出 狀態線是用來讀取資料的,但s0卻不同,它是超時標誌位,其他的狀態線從第10 11 12 13 15針是用來傳送資料的 可以看出是5位 印表機針位的意義 l s0 在epp 增強的串列埠 模式下,如果超時...

C 操作並口

並口 d0 d7為資料線,s0 s7為狀態線,但是s0,s1,s2是看不見的 從圖中你也可以看出 狀態線是用來讀取資料的,但s0卻不同,它是超時標誌位,其他的狀態線從第10 11 12 13 15針是用來傳送資料的 可以看出是5位 印表機針位的意義 l s0 在epp 增強的串列埠 模式下,如果超時...

並口除錯助手

並口除錯助手 工具本身完全對並口資料線進行電平控制,可以做些試驗之類的,我現在用作flash的cs 開發包 以前做過用並口模擬jtag時序來配置 回讀 動態區域性重配置fpga,參考24a0的jtag。總結並口程式設計如下 使用25針並口 針方向 2,3,4,5,6,7,8,9 雙向1,14,16,...