הצורך
בחוצצים:
זרמי המוצא
במצב 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
להלן מסך העבודה שלה.
|