C 實現並口輸出輸入高低電位

2021-06-04 22:41:34 字數 1727 閱讀 1554

pc並行口各陣腳定義:

1.選通,pc->printer

2-9 資料(

d0-d7)

10.應答(ack

),printer->pc

11.忙(busy

),printer->pc

12.無紙(pe

),printer->pc

13.聯機(slct

),printer->pc

14.自動換行(auto fd

),pc->printer

15.錯誤(error

),printer->pc

16.初始化(init

),pc->printer

17.選擇輸出(select in

),pc->printer

18.-25.地(

gnd)

並口開機時預設狀態:

除了c3(17

)針及地線外,全部為高;

並口輸出輸入規則:

dataport      位址0x378   8

個針腳(d0-d7) 正常,寫入

0輸出低電平,寫入

1則輸出高電平;

contorlport  位址0x37a  4

個針腳(c0-c3) 

c2正常,c0、

c1、c3取反

-----寫入0

輸出高,寫入

1則輸出低;讀取同理;

stateport       位址0x379   5

個針腳(s3-s7) 

s7取反,其他正常; pc

並口的8位dataport 、4位contorlport都可以作為數字輸出埠,

兩個埠可以組成1~

12位的任意數字輸出埠;

而這4位stateport、5位contorlport 都可以作為數字輸入埠,狀態埠共

5位,控制埠共

4位,兩個埠可以組成1~

9位的任意數字輸入埠。

本人使用winio3.0庫操作並口,在xp下操作成功,附上原始碼如下

public class winio

/// /// 設定controlport輸出

/// 高4位預設設定,請不要修改,因此輸出時保持高位值不變,將要輸出的值從低4位輸出

/// control埠c2讀寫正常,c0、c1、c3寫入0則輸出高電平,寫入1輸出低電平;讀取亦然

///

/// 設定值

private void setcontrolbuff(int writevalue)

/// /// 讀取controlport值

/// control埠c2讀取正常,c0、c1、c3高電平則讀入0,低電平則讀入1

///

/// 返回c0-c3 四個埠的值:範圍為0~15

private int getcontrolbuff()

/// /// 讀取stateport值

/// state埠s7高電平則讀入0,低電平則讀入1;其他正常

///

/// 返回s3-s7 五個埠的值:範圍0-31

private int getstatebuff()

public bool openwinio()

else

}public void closewinio()

}

附上winio3.0庫:winio

及小弟例程原始碼:原始碼

C語言 按成績高低輸出學生資訊

例39 有n個學生的資訊 包括學號 姓名 成績 c語言程式設計實現按照成績的高低順序輸出學生的資訊。解題思路 用結構體陣列存放n個學生資訊,採用選擇法對各元素進行排序,在定義結構體陣列時進行初始化,為清晰起見,將每個學生的資訊用一對花括號包起來。源 演示 include 標頭檔案 struct st...

C 輸入輸出

一 標準輸入函式cin 不知道說它是個函式對還是不對,它是代表標準的輸入裝置 鍵盤。他是屬於流的,他的用法和流的用法是一樣的。也就是 cin 變數 小小的說明一下,輸入多個變數可以寫在一行,如 cin x y z 這樣寫不是不允許,而是不好看,如果是不同的變數型別,那就更是沒頭沒腦了。除了你,人家是...

C 檔案輸出輸入

此篇文章只是簡要介紹c 中檔案輸入輸出的基本步驟,詳細情況請看附加的鏈結 1.檔案流和檔案流物件 1 檔案流 檔案流是以外存檔案為輸入輸出物件的資料流。輸出檔案流是從記憶體流向外存檔案的資料,輸入檔案流是從外存檔案流向記憶體的資料。每乙個檔案流都有乙個記憶體緩衝區與之對應。請區分檔案流與檔案的概念。...