[摘要] 本文詳細說明了VB利用計算機并行端口實現對外部設備的控制及狀態(tài)檢測的方法,通過對并口地址及各腳的作用的分析,指明如何控制并口各腳的高低電平,配合具體電路來進行商場內一些設備的自動化控制,并給出了VB控制并口的有關代碼。
[關鍵詞] VB 并行端口 自動化控制
一、問題提出
隨著計算機在商場的應用,人們對商場計算機的利用已經不再滿足于文字編輯、娛樂享受、數據管理等功能,商場內廣告播放,燈光控制、上下班鈴聲、安保系統(tǒng)的運行等能不能用計算機實現自動控制呢,回答當然是肯定的,筆者在實踐中就找到了一種解決方法,即:通過并行端口來控制外部設備的自動化運行。
二、并行端口探密
普通計算機的并口為LPT1,它是一個標準的25針插座,有3個端口:數據端口、狀態(tài)端口和控制端口,它的3個端口的地址分別為:378H、379H和37AH。其中378H和37AH可讀可寫,而379H為只讀端口。也就是說它包含一個八位二進制數據端口(地址為378H),即第2腳到第9腳;一個輸入控制端口(地址為379H),即第15腳、13腳、12腳、10腳、11腳,其另外低三位無定義;一個輸出控制口(地址為37AH),即第1腳、14腳、16腳、17腳,其另外高四位無定義,由此可見后面兩個端口都不是完全的8位。綜上所述,普通并口可以實現一個5輸入12輸出數字量的功能,利用計算機的并口,可以去控制外部繼電器的吸合從而控制外部設備,同樣可以利用它來檢測外部設備的狀態(tài)。從而使一臺普通的計算機實現可編程控制器的功能。
在計算機通電后的自然狀態(tài),378H端口的每個數據位為1,上表中每個管腳對地(25腳)為高電平5V,即378H地址的內容為FF(十進制是255)。當控制378H的內容為1二進制碼是00000001時,即2腳對地輸出高電平,其他對地是0電平。如控制378H的內容為3(十進制)二進制碼是00000011,即2、3腳對地輸出高電平,其它對地是0電平。依次類推。
在自然狀態(tài),37AH端口的低四位每個數據位為1,上表中每個管腳對地為高電平,即37AH地址的內容為00000100(十進制是4)。當控制37AH的內容為10(十進制)二進制碼是00001010時,即9腳對地輸出高電平,其他腳對地是低電平。
當某管腳對地是高電平5V時,理論上可以接5V的直流繼電器,通過繼電器的觸點再去控制其他的設備,如電磁閥、電機等。但并口中每個管腳的輸出電流僅為20mA,一般很難驅動5V繼電器,可有兩種方式解決。
1.接3V繼電器,通過1腳的高低電平來控制3V繼電器J1的通斷,從而控制燈泡的開與關,如圖1所示:
2.有源方式通過電路控制,可從USB端口取5V電源,USB口的5V電源電流可達到500mA,完全可以驅動5V繼電器,具體電路,如圖2所示:
在自然狀態(tài),379H端口的數據位第7位是0,其余每個數據位為1,即379H地址的內容為127(十進制)二進制碼是01111111。當把某管腳(如10腳)通過500Ω的電阻接到25腳,則它所對應的數據位是0,其他的數據位不變,則379H的內容為63(十進制)二進制碼是00111111。如12腳接地,則379H的內容為95(十進制)二進制碼是01011111,依次類推。
圖3是用并行端口實現的開關控制檢測電路,當K1斷開時,379H為127(十進制)二進制數是01111111,當K1閉合時,379H為111(十進制)二進制數是01101111,即13腳所連接的第4數據位為0。
三、 VB實現并口控制
VB中沒有專門的對并口的操作控件,需要調用動態(tài)鏈接庫對并口進行操作。下面給出用WinIo.dll實現操作并口的代碼。
Public Declare Function GetPortVal Lib“WinIo.dll”(ByVal PortAddr As Integer, ByRef PortVal As Long, ByVal bSize As Byte) As Boolean
Public Declare Function SetPortVal Lib“WinIo.dll” (ByVal PortAddr As Integer, ByVal PortVal As Long, ByVal bSize As Byte) As Boolean
Private Sub Command1_Click()
Re1 = SetPortVal(Val(“H378H”), Val(“H1”), 1)‘設置第二腳為高電平
Re2 = GetPortVal(Val(“H379H”), PortVal, 1)’讀取379H
Re3 = Hex$(PortVal And HFF)
End Sub
這樣,在上位機中采用VB語言編程及界面設計,配合電路利用并口可方便地實現5入12出的開關量控制,即可以檢測5路外部設備的運轉情況及控制12路外部設備的運行,如打開及關閉等,使商場設備控制系統(tǒng)做到監(jiān)控一體。
參考文獻:
[1]范逸之陳之元孫德萱程正孚:利用Visual Basic實現串并行通信技術[M].北京:清華大學出版社,2001
[2](美)迦德里:并行端口編程[M].北京:中國電力出版社,2000
[3]黃山趙亞鋒:使用PC機并行口與下位單片機并行通信的方法[J]計算機工程, 2000,(06)
[4]崔彥鋒許小榮:VB網絡與遠程控制編程實例教程[M].北京:北京希望電子出版社,2002
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。