עמוד:159

פתרון : + include < reg 51 . h > לחצן ימני sbit rsw = P 1-0 ; // לחצן שמאלי sbit lsw = P 1-7 ; // void main () { כיבוי כל הנוריות P 3 = 0 ; // כל עוד לא נלחץ מפסק ימני while (! rsw ); // do { החלף מצב נוריות P 3 = ~ P 3 ; // בצע השהיה Delay (); // כל עוד לא נלחץ מפסק שמאלי } while (! lsw ); // כיבוי כל הנוריות P 3 = 0 ; // לולאה אינסופית while ( 1 ); // } הסבר : עם הפעלת המיקרו-בקר , כל מפתחי המוצא מפיקים במוצאם , " 1 " ולכן בכל הפעלה של המיקרו-בקר יידלקו הנוריות . הוראת while-ה הראשונה משמשת לסנכרון ריצת התכנית עם לחיצה על הלחצן המחובר . P 1 . 0-ל הוראת do while-ה משנה את מצבן של הנוריות כל עוד לא נלחץ הלחצן המחובר . P 1 . 7-ל ההשהיה נועדה לאפשר לצופה להבחין בכיבוי ובהדלקה של הנוריות . כאשר ההשהיה ארוכה מדי עלול להיווצר מצב שבו לחיצה על הלחצן המחובר P 1 . 7-ל לא תזוהה על-ידי התכנית . מצב זה ייתכן כאשר משך הלחיצה הוא כמשך זמן ההשהיה . לכן , כדי שתכנית תפעל כראוי , על המשתמש ללחוץ על הלחצן המחובר P 1 . 7-ל עד לסיום ריצת התכנית . הוראת while-ה האחרונה גורמת לתכנית לרוץ בלולאה אינסופית . דוגמה 5 . 6 כתיבת תכנית העושה שימוש בשאילתה II למפתח P 1 מחוברים שמונה לחצנים . בעת לחיצה על הלחצנים מופיע " 1 " במוצאיהם . למפתח P 3 מחוברות שמונה נוריות . הנוריות מופעלות כאשר מספקים להן . " 1 " כתבו תכנית הממתינה ללחיצה על הלחצן המחובר . P 1 . 0-ל לאחר הלחיצה יהבהבו כל הנוריות

מטח : המרכז לטכנולוגיה חינוכית

ישראל. משרד החינוך


לצפייה מיטבית ורציפה בכותר