פרויקט לדוגמה 1 מימוש חוצצים לממשק

הצורך בחוצצים:

זרמי המוצא במצב 1 לוגי  ובמצב 0 לוגי משתנים מאד ממחשב למחשב בתחום של 2.6mA  במצב 1 לוגי עד 12mA במצב 0 לוגי, אבל לא ניתן לסמוך על זה בודאות, על כן אדגים דרך לשימוש בחוצצים כדי להבטיח צריכת זרם מספיקה. ניתן לראות פרויקט זה כבסיס לכל פרויקט אחר נוסף שעושה שימוש במפתח המקבילי של המחשב (LPT) .

שלבי העבודה:

1.      בנה את המעגל האלקטרוני הבא:


הסבר המעגל:
במעגל זה נעשה שימוש בחוצץ דו-כיווני בשם
74LS245.
הדק 1
(DIR) קובע את כיוון העברת הנתונים לכן בחוצץ U2 מחובר ההדק ל- Vcc כדי שכיוון האות יהיה מ- A ל- B. ובחוצץ U1 ההדק מחובר לאדמה כלומר כיוון האות יהיה מ- B ל- A.
הדק 19 בחוצץ מעלה את קווי היציאה לרמה של עכבה גבוהה (משתמשים בו כאשר מדובר על קו נתונים משותף כמו במיקרו
Data Bus  במעגל שלנו הוא תמיד באדמה - משמע המוצא פעיל כל הזמן.
חשוב!!! יש לחבר בין האדמות של ה-
5V  במחשב המקור לבין הדקי האדמה של המפתח (הדקים 18-25).
הלדים מחוברים כך שזרם העבודה שלהם זורם ממקור המתח החיצוני אל הרכיב ולא להיפך כך אנו מונעים העמסה של הרכיבים – חיבור
Common Anode.

לנוחיותך מצורף חלך מדף הנתונים של החוצץ
74ls245 :


2.     הורד את הקובץ model_lpt.zip

3.     הפעל את הקובץ .

4.     גש לחלון הטופס והוסף לו את הפקדים הבאים:


 


5. גש לכתיבת חלון הקוד של Form1 וכתוב בו את הקוד הבא:

Dim OutW As Byte

Dim InWord As Integer

Private Sub Check1_Click()

If Check1.Value = 1 Then OutW = OutW Or 1 Else OutW = OutW And 254

OUTPORT &H378, OutW

End Sub

Private Sub Check2_Click()

If Check2.Value = 1 Then OutW = OutW Or 2 Else OutW = OutW And 253

OUTPORT &H378, OutW

End Sub

Private Sub Check3_Click()

If Check3.Value = 1 Then OutW = OutW Or 4 Else OutW = OutW And 251

OUTPORT &H378, OutW

End Sub

Private Sub Check4_Click()

If Check4.Value = 1 Then OutW = OutW Or 8 Else OutW = OutW And 247

OUTPORT &H378, OutW

End Sub

Private Sub Check5_Click()

If Check5.Value = 1 Then OutW = OutW Or 16 Else OutW = OutW And 239

OUTPORT &H378, OutW

End Sub

Private Sub Check6_Click()

If Check6.Value = 1 Then OutW = OutW Or 32 Else OutW = OutW And 223

OUTPORT &H378, OutW

End Sub

Private Sub Check7_Click()

If Check7.Value = 1 Then OutW = OutW Or 64 Else OutW = OutW And 191

OUTPORT &H378, OutW

End Sub

Private Sub Check8_Click()

If Check8.Value = 1 Then OutW = OutW Or 128 Else OutW = OutW And 127

OUTPORT &H378, OutW

End Sub

Private Sub Timer1_Timer()

InWord = INPORT(&H379)

InWord = InWord And &HFF

If (InWord And &H8) = &H8 Then Check9.Value = 0 Else Check9.Value = 1

If (InWord And &H10) = &H10 Then Check10.Value = 0 Else Check10.Value = 1

If (InWord And &H20) = &H20 Then Check11.Value = 0 Else Check11.Value = 1

If (InWord And &H40) = &H40 Then Check12.Value = 0 Else Check12.Value = 1

If (InWord And &H80) = &H80 Then Check13.Value = 1 Else Check13.Value = 0

End Sub

הסבר התוכנית:

שליטה על המוצאים באוגר 378H:

נגדיר בתחילת התוכנית משתנה בשם OutW בגודל של בית אחד אשר ישמש אותנו לזכור את מצב אוגר המוצא (מה כבר דולק ומה לא).

התוכנית כוללת שמונה אירועים אחד לכל תיבת בחירה מ- 1  עד 8 כאשר משתנה מצב אחת הבחירות מופעל האירוע שמוסיף 1 לוגי או  0 לוגי לביט המתאים במשתנה OutW בהתאם למצב תיבת בחירה. מיד לאחר השינוי בתא הזיכרון OutW. נשלח OutW ליציאה על ידי השיגרה OUTPORT &H378, OutW .
לדוגמה: כאשר משתנה מצב תיבת הסימון השלישית משמע שיש להוסיף 1 או 0 לוגי בביט השלישי של אוגר היציאה. כדי להוסיף 1 לוגי למילה בלי לפגוע במצב הקודם אנו עושים פעולת
OR לוגי עם המספר 4 (00000100) כאשר רוצים לאפס את הביט השלישי אנו עושים פעולת AND לוגי למספר 251 (11111011).

שליטה על המבואות (אוגר 379H):

שלב ראשון אנו קולטים את מצב אוגר 379H אחת לחצי שניה בעזרת Timer1 ומפרקים ממנו על ידי פעולת AND את המצב של כל ביט.

שים לב שביט S7 (ביט MSB של האוגר) מגיע הפוך על כן הפכנו את מצב הבחירה של תיבת הבחירה.

בדיקת המוצאים והחוצצים:

הפעל את התוכנה או הורד מהאתר את הקובץ lptIOtest.zip  והפעל אותו.

שנה את מצב תיבות הבחירה של האוגר 378H ובדוק בעזרת מד מתח את המתח ברגליים 11 עד 18 של הרכיב U2.
כל רגל ברכיב נשלטת על ידי תיבת סימון נפרדת כאשר תיבת הבחירה לחוצה המתח באותה רגל ישתנה ל-
3.5V - 4.5V   כאשר תיבת הבחירה לא מסומנת המתח על הרגל יהיה 0V .

כדי לבדוק את אוגר המבוא 379H ספק אדמה להדקים 11 עד 15 של רכיב U1 ובדוק שלכל רגל שסיפקת לה אדמה יופיע סימן בתיבת הסימון.

דוגמה נוספת למימוש תוכנת הבדיקה של החוצצים:

הורד את התוכנה lptIOtester2.zip להלן מסך העבודה שלה.




הרמן גדי , מורה לאלקטרוניקה ומחשבים - אורט מגדל העמק Herman Gadi © 2003