|
صفحة: 177
דוגמה 6 . 3 שימוש במערך שערכיו קבועים לביצוע פעולות חשבון למפתח P 1 מחוברים שמונה לחצנים . בעת לחיצה על הלחצנים מופיע " 1 " במוצאיהם . למפתח P 3 מחוברות שמונה נוריות . הנוריות מופעלת כאשר מספקים להן . " 1 " כתבו תכנית הקוראת את מצב ארבעת המפסקים P 1 . 0-P 1 . 3 ומציגה את ריבוע הערך המספרי הנוצר ממצבם בנוריות מפתח . P 3 פתרון : ניתן לחשב את ריבועו של מספר באמצעות פעולת כפל רגילה , או להשתמש בטבלת ערכי ריבועים מוכנה . בפתרון זה בחרנו להציג את השימוש בטבלה שערכיה קבועים ולכן נגדיר מערך בגודל 16 המכיל את ריבועי המספרים 0-מ עד : 15 שימו לב כי אינדקס משמש לפנייה לתאי המערך ובאמצעותו נוכל לאחזר את ריבועו של האינדקס . + include < reg 51 . h > code unsigned char square [ 16 ] = { 0 , 1 , 4 , 9 , 16 , 25 , 36 , 49 , 64 , 81 , 100 , 121 , 144 , 169 , 196 , 225 }; void main () { while ( 1 ) { P 3 = square [ P 1 & 0 x 0 F ]; } { מצב המפסקים נקרא לאחר ביצוע פעולת מסכה של ארבע הסיביות הנמוכות : . P 1 & 0 x 0 F ערך זה משמש כאינדקס למערך . באמצעות האינדקס נשלף ערך ריבועו של האינדקס ונשלח לנוריות .
|
|