Új hozzászólás Aktív témák
-
#10382336
törölt tag
válasz
#10382336
#1196
üzenetére
Az LPT port programozására sikerült készítettem egy egyszerü kis
példaprogramot VB.NET - re. A lefordított program 16.5 Kbyte. CPU - használata
közel 0%.
A program XP-n tökéletesen működik!
Ha valaki kipróbálja VISTA-n megírhatná, hogy működik-e?
Ha valaki egyszerűbb megoldást tud azt is megírhatja.A program készítésének lépései:
1: "IO.DLL" letöltése. Pl. [innen]
2: "IO.DLL" bemásolása a C:\WINDOWS\SYSTEM mappéba. (NEM a system32 -be!!!)
3: Start menu futtatás parancsba beírni:
Regsvr32.exe C:\WINDOWS\SYSTEM\io.dll
Erre a parancsra a "REGSVR32.EXE" valószínűleg kiabálni fog,
hogy a fájl betöltése sikerült, de regisztrálni nem lehet.
Ezzel nem kell foglalkozni, "OK" oszt jó napot!4: "PARMON.EXE" letöltése. Pl. [innen]
A program 446 Kbyte. CPU használata 50-80%.5: Most jöhet a VB.NET indítása.
File menü - New project - Windowsapplication létrehozása6: Project menü - add class - "konzol.vb" osztály létrehozása.
A konzol tartalma:Public Class Konzol
Private Declare Sub PortOut Lib "io.dll" _
(ByVal Port As Integer, ByVal Value As Byte)
Private Declare Function PortIn Lib "io.dll" _
(ByVal Port As Integer) As Byte
Private esemeny As New System.Threading.AutoResetEvent(False)
Private megszakitas As System.Threading.TimerCallback = _
AddressOf végrehajtás
Private idozito As System.Threading.Timer, szamlalo As Integer
Sub adatki(ByRef adat As Byte)
PortOut(888, adat)
End Sub
Function adatbe() As Byte
adatbe = PortIn(888)
End Function
Sub start()
szamlalo = 0
idozito = _
New System.Threading.Timer(megszakitas, esemeny, 0, 1000)
End Sub
Sub állj()
idozito.Dispose()
End Sub
Sub végrehajtás(ByVal stateInfo As Object)
Dim autoEvent As System.Threading.AutoResetEvent = _
DirectCast(stateInfo, System.Threading.AutoResetEvent)
adatki(szamlalo) : szamlalo += 1
If szamlalo >= 256 Then szamlalo = 0
End Sub
End Class7: "Form1 [design]" fül aktiválása, majd Dupla katt a "Form" közepébe.
A form1 így nézzen ki:Public Class Form1
Private button1, button2 As New Button
Private konz As New Konzol, konzinditvae As Boolean = False
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
With button1 : .Top = 10 : .Left = 10 : .Text = "INDÍTÁS"
AddHandler .Click, AddressOf Indítás_Click
End With
With button2 : .Top = button1.Top : .Left = button1.Right + 5
.Text = "Állj"
AddHandler .Click, AddressOf Állj_Click
End With
With Me
AddHandler .FormClosing, AddressOf Form1_FormClosing
.Text = "LPT próba" : .Width = 185 : .Height = 75
With .Controls
.Add(button1) : .Add(button2)
End With
End With
End Sub
Private Sub Indítás_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
If konzinditvae Then Exit Sub
konzinditvae = True : konz.start()
End Sub
Private Sub Állj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
If Not konzinditvae Then Exit Sub
konz.állj() : konzinditvae = False
End Sub
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs)
If konzinditvae Then konz.állj()
RemoveHandler button1.Click, AddressOf Indítás_Click
RemoveHandler button2.Click, AddressOf Állj_Click
RemoveHandler Me.FormClosing, AddressOf Form1_FormClosing
End Sub
End Class8: Build menü - Build parancs
9: "PARMON.EXE" indítása.
A "PARMON.EXE" -ben a "connector" - t illik átállítani "MALE" - re.
10: Lefordított program indítása.
Az "INDÍTÁS" gombra kattitva a "PARMON.EXE" mutatja a munka eredményét.Ha valaki közvetlenül az LPT-n szeretne feszültséget mérni, annak sincs akadálya, csak arra
figyeljen, hogy rövidzár ne keletkezzen!Ha az űrlapon létrehozunk egy "LABEL" - t, valamint egy új időzitőt kb. 0.3, 0.5 sec időzítéssel
és az "adatbe" függvénnyel lekérdezzük a port értékét, akkor a "PARMON.EXE" használata
feleslegessé válik.Jó programozást mindenkinek!

Új hozzászólás Aktív témák
- Futás, futópályák
- Az AMD X870 platform meghódítására tör a Sapphire alaplapos divíziója
- Metal topik
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Épített vízhűtés (nem kompakt) topic
- Papírvékony a jövő a Samsungnál: íme, a Galaxy TriFold!
- 5 kilowattos GPU-k előtt nyitná meg az utat az Intel
- Villanyszerelés
- Lexus, Toyota topik
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- További aktív témák...
- Thinkpad X13 Gen3 13.3" FHD+ IPS i7-1265U 16GB 512GB NVMe SSD gar
- ZBook Power 15 G8 15.6" FHD IPS i7-11800H T1200 32GB 512GB NVMe gar
- Apple iPad 9. Generáció . 10.2 (2021) / 64GB / Bluetooth / Wi-fi / Újszerű állapot / 12 Hó Garancia
- X1 Carbon 10th 14" 3K OLED i7-1260P 16GB 512GB NVMe ujjlolv IR kam gar
- Számlával, Garanciával! Nintendo Switch 2
- ÁRGARANCIA!Épített KomPhone i5 14400F 16/32/64GB RAM RX 9060 XT 16GB GAMER PC termékbeszámítással
- Apple iPad 9th Gen 256GB, Wi-Fi+Cellular, Kártyafüggetlen, 1 Év Garanciával
- Xiaomi Redmi Note 13 8/256GB / 12 hónap jótállással!
- Samsung Galaxy A20e 32GB, Kártyafüggetlen, 1 Év Garanciával
- GYÖNYÖRŰ iPhone SE 2020 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3920, 100% Akksi
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest


