כללי:
אחרי שכל
החומרה ברורה לנו ואנו יודעים את רמות המתחים שהמחשב מקבל ומוציא כיצד ניתן דרך
תוכנה להורות למחשב לשלוח להדק מסויים רמת מתח מסויימת או לבדוק על אחד מהדקי
הכניסה מה היא רמת המתח שהתקבלה?
הממשק
תוכנה לחומרה (דריבר):
ככל Visual Basic
אינו יודע לפנות ישירות למיפתח. לכן אנו ניעזר בתוכנה חיצונית ל- Visual Basic
שמאפשרת גישה לממשק. לתוכנה זו קוראים DLL.
את ה- DLL ניתן למצוא כקובץ בשם port.dll
בכל אחד מהדוגמאות שניתן להוריד דרך האתר או בכתובת הבא: http://home.t-online.de/home/B.Kainka
.
את הקובץ
יש להעתיק לתיקייה הבא: c:\windows\system בכל
מחשב שמפעיל את המיפתח. אפשרות שניה להעתיק את הקובץ לאותה תיקייה שבה מופעל
קובץ ההרצה של התוכנה. אישית אני מעדיף את האפשרות השניה.
כתיבת
התוכנה ב- Visual Basic:
לפני כתיבת
השורה הראשונה במחשב יש להפנות את התוכנה לקובץ ה- DLL שלנו. הפניה זו מתבצעת דרך הוספת מודול
(Module) לחלון הפרויקט של ה- Visual Basic.
באופן הבא:
Declare Sub OUTPORT Lib "Port" (ByVal A%, ByVal
b%)
Declare Function INPORT Lib "Port" (ByVal p%)
As Integer
קוד זה מגדיר את שמות
הפונקציות שכתובות בתוך קובץ ה- DLL ומאפשר לתוכנה שלך לגשת את הפונקציות
הנ"ל ולהשתמש בהם כאילו היו חלק מהתוכנית שלך.
אוסף זה
של פונקציות (לשם הדיוק פונקציה אחת ושגרה אחת) נכתב על ידי B.Kainka
ומאפשר שימוש חינם במודול.
לסיכום ניתן
להוריד מהאתר קובץ בשם model_plt.zip שמכיל את כל מה שדרוש
כדי להתחיל לכתוב את שורת הקוד הראשונה לתקשורת עם המיפתח המקבילי
של המחשב. לתחילת עבודה הפעל את הקובץ lptio.vbp .
מבנה אוגרי ה- LPT וכתובתם
במחשב:
הקשר בין
הדקי המפתח לבין התוכנה מתבסס על 3 תאי זיכרון במחשב הנקראים אוגרים. אוגרים
אלה משפיעים על רמת המתח בהדקי המוצא של המפתח כלומר כאשר נשנה את אחד הביטים
של אחד האוגרים רמת המתח באחד הפינים תשתנה. לגבי הדקי הכניסה שינוי ברמת המתח
של אחד מהדקי הכניסה ישנה את המצב הלוגי של אחד הביטים באוגרים.
אוגרים אלה מאוכסנים בזיכרון של המחשב בכתובות הבאות:
|
אפשרות
1 |
אפשרות
2 |
אפשרות
3 |
אוגר
D (Data) |
378 |
278 |
3BC |
אוגר
S (Status) |
379 |
279 |
3BD |
אוגר
C (Control) |
37A |
27A |
3BE |
לפי הטבלה ניתן לראות שלכל אוגר בזיכרון יש 3 אפשרויות לכתובת. ניתן לדעת את
הכתובת הזמינה במחשב שלך על ידי לחיצה על המאפיינים של המפתח במחשב שלך. הגישה
למאפיינים היא דרך לוח הבקרה, מערכת.
ברוב המחשבים
הכתובת היא כמו במחשב שלי: 378H
.
טבלה הבאה
מתארת את הקשר בין הדקי המפתח לביט באוגר:
הביט באוגר |
מספר
ההדק במחבר |
כיוון
ההדק |
C0 |
1 |
יציאה |
D0 |
2 |
יציאה |
D1 |
3 |
יציאה |
D2 |
4 |
יציאה |
D3 |
5 |
יציאה |
D4 |
6 |
יציאה |
D5 |
7 |
יציאה |
D6 |
8 |
יציאה |
D7 |
9 |
יציאה |
S6 |
10 |
כניסה |
S7 |
11 |
כניסה |
S5 |
12 |
כניסה |
S4 |
13 |
כניסה |
C1 |
14 |
יציאה |
S3 |
15 |
כניסה |
C2 |
16 |
יציאה |
C3 |
17 |
יציאה |
הערה:
שים לב לכך שחלק מהביטים עובדים בלוגיקה הפוכה כמו S7,C3,C1,C0.
לכל הדק
יש קשר לתא אחד באוגר לדוגמה: להדק היציאה 2 במפתח (פין 2 במחבר) יש ביט בשם
DO באוגר שבכתובת 378H. זאת אומר שאם נכתוב בתוכנה
הוראה כמו "שלח לכתובת זיכרון 378H
את המילה
(01H) 00000001 " המתח על ההדק
D0
יעלה ל- 5V
אחרת המתח על ההדק יהיה 0V.
דוגמה נוספת:
אם המתח על הדק 12 במפתח (פין 12 במחבר) יהיה 0V
(אדמה) אז המילה באוגר בכתובת 379H יהיה 20H (00100000)
השגרה
OUTPORT:
שגרה זו
מקבלת שני ערכים הראשון מספר האוגר שיש לכתוב לתוכו והשני המספר שיש להעביר לו.
לדוגמה כדי להעלות את רמת המתח בהדק 4 במפתח ל- 5V יש לכתוב את השורה הבאה:
OUTPORT &H378 , &H04 כי השגרה שולחת לאוגר 378H את המילה 04H:
D0 |
D1 |
D2 |
D3 |
D4 |
D5 |
D6 |
D7 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
הערה: בדוגמה
זו יש גם שינוי של כל שאר 7 הדקי המוצא לרמה של 0V .
הפונקציה
INPORT:
פונקציה
זו מקבלת את כתובת האוגר בזיכרון ומחזירה את הערך של האוגר
לדוגמה את
נכתוב את השורה: A=INPORT(&H379) המספר שיהיה בתא A יהיה מצב האוגר.
שימוש
בתוכנה לשליטה על ה- LPT
כדי לשלוט ביציאות
ה- LPT הדקיםD0-D7 ניתן למשל להשתמש בדוגמה הבאה:
כדי לשלוט ביציאות ה- LPT
הדקים D0-D7
וגם
בכניסות אוגר הבקרה הדקים S3-S7
ניתן להשתמש בדוגמה הבאה:
הורד את התוכנה הבאה לשליטה בסיסית במפתח המקבילי של
המחשב: test_lpt.zip
|