• Αρχικη Σελιδα
  • ΚΕ ΠΛΗΝΕΤ Ηρακλειου
  • Ανακοινωσεις
  • Συνδεσμοι
  • Επικοινωνια
  • Ροες Ειδησεων
ΚΕ.ΠΛΗ.ΝΕ.Τ. ΗΡΑΚΛΕΙΟΥ
Αρχική Υλικό Δημιουργία σημάτων εξόδου στην παράλληλη θύρα του PC

Χρήσιμα Έγγραφα

  • Υπεύθυνος ΣΕΠΕΗΥ
  • Έντυπα Εργαστηρίου
  • Νομοθεσία - Εγκύκλιοι
  • Μελέτες
  • Εκπαίδευση Καθηγητών ΣΕΠΕΗΥ

Τεχνική Στηρίξη

  • Λογισμικό
  • Υλικό
  • Διαχείριση
  • Οδηγίες
  • Ασφάλεια

Λογισμικό

  • ΟΕΔΒ
  • Πρόγραμμα Οδύσσεια
  • Άλλο Λογισμικό
  • Ελεύθερο Λογισμικό

Στατιστικά

Εμφανίσεις Περιεχομένου : 50356

Δημιουργία σημάτων εξόδου στην παράλληλη θύρα του PC

του Νίκου Αδαμόπουλου, εκπαιδευτικού ΠΕ19
Υπεύθυνου ΚΕ.ΠΛΗ.ΝΕ.Τ. ΔΔΕ Ηλείας

Η παράλληλη θύρα των PC χρησιμοποιείται πάνω από 30 χρόνια, κυρίως για τη σύνδεση εκτυπωτών και σαρωτών, ωστόσο τελεί υπό κατάργηση αφού τη θέση της παίρνει η περισσότερο ευέλικτη θύρα USB. Παρόλα αυτά, αποτελεί μία εύκολη λύση για την έξοδο/είσοδο πολλών ψηφιακών σημάτων παράλληλα.

Χαρακτηριστικά της παράλληλης θύρας

Η παράλληλη θύρα, ή Centronics, ή IEEE 1284, είναι συνήθως τύπου D female 25 ακροδεκτών:

image

Οι 8 γραμμές εξόδου (ακροδέκτες 2 έως 9) παρέχουν τάση από 2,4 έως 5,5 Volt για το λογικό 1 και από -0,5 έως 0,4 Volt για το λογικό 0.

Έλεγχος της παράλληλης θύρας μέσω λογισμικού

Παραδείγματα χρήσης της θύρας αποτελούν τα έργα «Βιονικό Χέρι» και «Τηλερομπότ» του 1ου Τ.Ε.Ε./ΕΠΑ.Λ. Πύργου. Και στα δύο έργα κάποιες ηλεκτρομηχανικές κατασκευές συνδέονται στην παράλληλη θύρα ενός PC ώστε να είναι δυνατός ο έλεγχός τους από κατάλληλο λογισμικό που αναπτύχθηκε σε Visual Basic 6. Για τον έλεγχο της παράλληλης θύρας χρησιμοποιήθηκε το αρχείο βιβλιοθήκης inpout32.dll, το οποίο μπορεί να αναζητήσει κανείς εύκολα από το διαδίκτυο, όπως και τη σχετική τεκμηρίωση για τη χρήση του.

Ακολουθεί η δήλωση της διαδικασίας Out για την έξοδο της τιμής Value (8 bit) στη διεύθυνση PortAddress της παράλληλης θύρας.

Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" 
(ByVal PortAddress As Integer, ByVal Value As Integer)

Παρακάτω φαίνεται ο τρόπος κλήσης της διαδικασίας Out. Η RefreshParallelSettings εφαρμόζει τις κατάλληλες αρχικοποιήσεις και πρέπει να κληθεί πριν από τη δημιουργία σημάτων εξόδου. Η διεύθυνση της παράλληλης θύρας για είσοδο/έξοδο δεδομένων θα είναι κάποια από τις 378, 278 και 3BC (στο δεκαεξαδικό σύστημα) ανάλογα με τον κατασκευαστή.

Dim data As Byte  'CurrentOutput
Dim ParallelDataPort As Integer
Dim ParallelControlPort As IntegerPrivate


Sub RefreshParallelSettings()
ParallelDataPort = &H378
ParallelControlPort = ParallelDataPort + 2
Out ParallelControlPort, 0
Out ParallelDataPort, 0
End Sub


Private Sub SendToPort(d As Byte)
Out ParallelDataPort, d
data = d
End Sub

Η SendToPort αλλάζει την τιμή και των 8 γραμμών εξόδου της θύρας σύμφωνα με την παράμετρο κλήσης της. Επειδή στις συγκεκριμένες εφαρμογές που προαναφέρθηκαν θα πρέπει να αλλάζουν συγκεκριμένες μόνο γραμμές εξόδου, για αυτό καταχωρείται στη μεταβλητή data η τρέχουσα κατάσταση των εξόδων, ενώ στη συνέχεια γίνεται χρήση τελεστών χειρισμού bit (bitwise operators) ώστε κάθε φορά να μεταβάλλεται ένα μόνο bit της μεταβλητής αυτής.

Χρήση τελεστών χειρισμού bit

Οι τελεστές αυτοί χρησιμοποιούνται σπανιότατα, μοιάζουν αρκετά με τους λογικούς τελεστές, όμως εφαρμόζονται σε ακέραιους τελεστέους και λειτουργούν σε επίπεδο bit, θεωρώντας την δυαδική τιμή 1 ως true και την δυαδική τιμή 0 ως false.

Για παράδειγμα, 157 OR 23 = 159 ή στο δυαδικό σύστημα: 10011101 OR 00010111 = 10011111. Επίσης, 157 AND 23 = 21 ή στο δυαδικό σύστημα: 10011101 AND 00010111 = 00010101.

Έτσι, για τον έλεγχο των 8 εξόδων της παράλληλης θύρας εφαρμόζονται αυτοί οι τελεστές στη μεταβλητή data. Παράδειγμα εξόδου λογικού 1 στο D5:

πριν D7 D6 D5 D4 D3 D2 D1 D0
OR 0 0 1 0 0 0 0 0
μετά D7 D6 1 D4 D3 D2 D1 D0

Γενικότερα, αν data είναι η τρέχουσα κατάσταση των 8 ακροδεκτών εξόδου, για να προκύψει λογικό 1 στον ακροδέκτη εξόδου Dn (όπου 0≤n≤7) αρκεί να εκτελεστεί ο υπολογισμός: data OR 2n.

Παράδειγμα εξόδου λογικού 0 στο D5:

πριν D7 D6 D5 D4 D3 D2 D1 D0
AND 1 1 0 1 1 1 1 1
μετά D7 D6 0 D4 D3 D2 D1 D0

Γενικότερα, για να προκύψει λογικό 0 στον ακροδέκτη εξόδου Dn (όπου 0≤n≤7) αρκεί να εκτελεστεί ο υπολογισμός: data AND (255 - 2n).

Παρακάτω φαίνεται η διαδικασία ChangePin που αλλάζει τον N-ιοστό ακροδέκτη εξόδου στο λογικό επίπεδο Lev (όπου 0≤N≤7 και Lev = 0 ή 1).

Private Sub ChangePin(N As Integer, Lev As Integer)
If Lev = 1 Then
SendToPort data Or CByte(2 ^ N)
Else
SendToPort data And CByte(255 - 2 ^ N)
End If
End Sub

Να σημειωθεί ότι για τον έλεγχο της παράλληλης θύρας σε περιβάλλον Visual Basic .NET εφαρμόζονται άλλες μέθοδοι.

 

Με μια ματιά

  • Σύντομες Οδηγίες Ρύθμισης Νέας ADSL Σύνδεσης στα Σχολεία
  • Πρόσφατες Προδιαγραφές Η/Υ
  • Έντυπα Εργαστηρίου
  • Αναβάθμιση γραμμής σε ADSL

RSS ΥΠΕΠΘ

  • 21-05-12 Πλήρωση μίας (1) θέσης Διδακτικού Ερευνητικού Προσωπικού (Δ.Ε.Π.) του Δημοκριτείου Πανεπιστημίου Θράκης
  • 21-05-12 Νεοελληνική Γλώσσα Γενικής Παιδείας
  • 21-05-12 Νεοελληνική Γλώσσα Γενικής Παιδείας

RSS Sch.gr

  • Προσωρινή αναστολή της λειτουργίας του Πανελλήνιου ...
  • 4th CIE2012, Conference on Informatics in Education 2012 - Η Πληροφορική στην ...
  • Α.Π.Θ. την Κυριακή: Το ΑΠΘ μετατρέπεται κάθε Κυριακή ...

ΚΕ.ΠΛΗ.ΝΕ.Τ. Ηρακλείου © 2011 - Joomla

Valid XHTML and CSS.