
📌 En un coup d’œil : communication matérielle Visual Basic 6.0
| Environnement de développement | Microsoft Visual Basic 6.0 (SP6) |
|---|---|
| Contrôle du port série | Composant MSComm32.ocx ou API COM Win32 |
| Contrôle des ports parallèles | InpOut32.dll / Adressage direct du port (0x378) |
| Domaine d’utilisation | Automatisation industrielle, communication par microcontrôleur (PIC, AVR), cartes relais |
| Avantage | Développement rapide d’interfaces graphiques, lecture de données basée sur les événements |
| Système opérateur | Modes de compatibilité Windows 98, XP, 7 et 32 bits |
Bien que Visual Basic 6.0 soit une technologie ancienne, il reste l’une des plates-formes les plus compréhensibles pour apprendre le contrôle matériel sur le port série (COM) et le port parallèle (LPT) dans les laboratoires d’électronique industrielle et les projets de loisirs.
Introduction : La porte d’entrée vers le monde enseveli
Bien que l’accès direct aux ports matériels soit restreint pour des raisons de sécurité dans les systèmes d’exploitation modernes, dans la période Visual Basic 6.0, les lignes série RS-232 et les ports d’imprimante parallèles à 25 broches constituaient la principale artère de communication avec les microcontrôleurs et les cartes relais [1].
1. Communication du port série avec le composant MSComm
L’objet MSComm intégré de Microsoft est utilisé pour le contrôle du port série dans l’environnement VB6 :
Private Sub Form_Load()
MSComm1.CommPort = 1 ' COM1 Portu
MSComm1.Settings = "9600,N,8,1" ' 9600 Baud, Parity Yok, 8 Data Biti, 1 Stop Biti
MSComm1.InputLen = 0 ' Tüm tamponu oku
MSComm1.PortOpen = True ' Portu aç
End Sub
Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = comEvReceive Then
txtGelenVeri.Text = txtGelenVeri.Text & MSComm1.Input
End If
End Sub
2. Déclenchement de LED et de relais via le port parallèle (LPT1)
Étant donné que la lecture/écriture directe du port (commandes IN / OUT) est bloquée dans les systèmes basés sur Windows NT (XP et versions ultérieures), InpOut32.dll est utilisé, qui fournit un pilote au niveau du noyau [2] :
Private Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Private Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)
' LPT1 Data Port Adresi: &H378 (Hex)
Private Sub btnLediYak_Click()
Out &H378, 255 ' Tüm pinleri (D0-D7) 5V Yüksek (HIGH) seviyeye çek
End Sub
Sources et références indépendantes
[1] Jan Axelson : Port série complet : ports COM et ports COM virtuels USB
[2] Interface de port parallèle haute performance : Port parallèle complet et référence de l’architecture InpOut32