פרויקט לדוגמה 2 הרחבת מספר כניסות המפתח על ידי שימוש באוגר הזזה

כללי:

מפתח LPT סטנדרטי מספק לנו 5 כניסות ישירות למחשב. ניתן על יד אוגר הזזה להוסיף עוד כניסות. כמות הכניסות תהיה יחסית לאורך אוגר ההזזה. בפרויקט אדגים שימוש באוגר הזזה מסוג 74LS165 בן שמונה כניסות מקביליות ויציאה אחת טורית. הפרויקט משמש כבסיס לפרויקטים נוספים.

שלבי העבודה:

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

הסבר המעגל:
רגל 1 נועלת את המילה המקבילית בתוך אוגר ההזזה אות נעילה זה מסופק מהמחשב בעזרת הדק 6 במפתח משמע, ביט D4 באוגר 378H.
רגל
2 משמשת כאות שעון עבור האוגר. כל עלית שעון ברגל זו והאוגר יזיז את המילה ביט אחד. אות זה מסופק מהמחשב בעזרת הדק 5 במפתח משמע, ביט D3 באוגר 378H.
רגל 9 היא אות המוצא של האוגר. עבור כל עליה של שעון מבצע האוגר הזזה אחת ימינה ומוציא בהתאם את המידע הרלונטי בהדק המוצא. ראה תרשים אותות בהמשך, אות זה מסופק למחשב דרך הדק 11 במפתח משמע, ביט
D7  באוגר 379H.




לפי תרשים האותות ניתן לראות שירידה באות
Shift/Load גורמת לנעילת המידע באוגר. כמו כן עבור כל עליה של אות Clock  הביט הבא מהכניסה עובר ליציאה לפי הסדר של H ל- A.
 

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

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

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

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

Dim NUM As Byte

Private Sub Command1_Click()

x = 0

While (x = 0)

DoEvents

OUTPORT &H378, &H10

OUTPORT &H378, &H0

OUTPORT &H378, &H10

NUM = 0

For i = 0 To 8

OUTPORT &H378, &H10

OUTPORT &H378, &H18

OUTPORT &H378, &H10

If INPORT(&H379) = 31615 Then

NUM = NUM And &H7F

NUM = NUM * 2

Else

NUM = NUM And &H7F

NUM = (NUM * 2) + 1

End If

Next i

Label1.Caption = NUM

Wend

End Sub

Private Sub Command2_Click()

x = 1

End Sub

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

נגדיר בתחילת התוכנית משתנה בשם NUM בגודל של בית אחד אשר ישמש אותנו לקלוט את מצב המידע מאוגר ההזזה.

התוכנית כוללת לולאה אין סופית אשר קולטת באופן מחזורי את המילה מאוגר ההזזה. עצירת הלולאה מתבצעת בעזרת הפקודה DoEvents שמאפשרת קיום אירועים בנוסף לביצוע הלולאה, נוסף על כך ניתן לעצור את הלולאה על ידי לחיצה על לחצן Command2 שמבטל את התנאי לקיום הלולאה.
ניתן לכתוב את קטע התוכנית לקליטת המספר מאוגר הזזה גם בעזרת
Timer אך שימוש ב- Timer  מונע אפשרות להצגת האותות (נעילה, שעון ומוצא) בעזרת סקופ.
קליטת המידע מאוגר ההזזה מתחילה בשליחה של פולס ירידה בעזרת ביט
D4  של אוגר 378H.
בשלב הבא אנו מפעילים לולאה של 8 מחזורים, כל מחזור נותן פולס עליה של שעון ובדיקת הקלט בעזרת הפקודה:
INPORT(&H379) אם המספר שהגיע שווה ל- 31615 (7B7F) זאת אומרת שניכנס אפס אזי המשתנה NUM  מקבל את הערך 0 אחרת הוא מקבל את הערך 1 .
כל ביט חדש שמגיע במהלך 8 המחזורים נצבר במשתנה
NUM על ידי כפל ב- 2 והוספת הביט שהגיע.

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

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

בדוק בעזרת סקופ את האותות ברגל 1 ו- 2 של הרכיב U5 והשווה אותו לתרשים הבא:




בתמונה הבאה ניתן לראות את פולס הנעילה (האות העליון) שאחריו מופיע 8 פולסי שעון (האות התחתון).

כדי לבדוק את אוגר ההזזה ספק אדמה לכל אחד מהרגלים 3 עד 6 ו- 10 עד 14  של הרכיב U5 ובדוק שלכל רגל שמסופק לה אדמה ישתנה המספר בחלון התוכנה.

הרחבה הפרויקט לשילוב A/D לדגימת אות אנלוגי למחשב.
בנה את המעגל הבא:



אין שינוי בתוכנית הדגימה של אוגר ההזזה.


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