|
עמוד:102
דוגמה 3 . 12 הבהוב נוריות נניח שבכתובת 800 H שבמרחב xdata מחובר התקן פלט . לכל הדק בהתקן הפלט מחוברת נורה שלהדלקתה נדרשת רמה . 1 כתבו תכנית הגורמת לנורות להבהב . הדלקה וכיבוי יושהו למשך יחידת זמן באמצעות פונקציית . delay () הנוריות יידלקו בסדר הבא : תחילה יידלקו שתי הנורות הקיצוניות ולאחר מכן שש הנוריות שבמרכז , וחוזר חלילה . פתרון : + include < reg 51 . h > xdata char led –at– 0 x 800 ; void delay () { unsigned int i = 50000 ; while ( i > 0 ) i-- ; } void main () { הדלקת הנוריות הקיצוניות led = 0 x 81 ; // while ( 1 ) { היפוך מצב הנוריות led = ~ led ; // השהיה של שנייה אחת delay (); // } } אופרטורי הזזה << >> להלן תחביר הפעולות : left–expr << right–expr , left–expr >> right–expr כאשר : left–expr הפרמטר השמאלי שעליו מתבצעת ההזזה . right–expr הפרמטר הימני שקובע את מספר ההזזות . שני הפרמטרים חייבים להיות מספרים שלמים . אם הפרמטר הימני הוא שלילי או גדול ממספר הסיביות של הפרמטר השמאלי , אזי התוצאה אינה מוגדרת ( כל מהדר מתייחס לכך באופן שונה . (
|
|