תוכן עניינים:

שעון עצר באמצעות Pic18f4520 ב- Proteus עם 7 פלחים: 6 שלבים
שעון עצר באמצעות Pic18f4520 ב- Proteus עם 7 פלחים: 6 שלבים

וִידֵאוֹ: שעון עצר באמצעות Pic18f4520 ב- Proteus עם 7 פלחים: 6 שלבים

וִידֵאוֹ: שעון עצר באמצעות Pic18f4520 ב- Proteus עם 7 פלחים: 6 שלבים
וִידֵאוֹ: LDmicro 8: Охранная сигнализация с таймерами (программирование лестничной схемы ПЛК микроконтроллера с помощью LDmicro) 2024, נוֹבֶמבֶּר
Anonim
שעון עצר באמצעות Pic18f4520 ב- Proteus עם 7 פלחים
שעון עצר באמצעות Pic18f4520 ב- Proteus עם 7 פלחים

רק התחלתי לעבוד עם בקר פיקס, אחד מהחברים שלי ביקש ממני לבנות ממנו שעון עצר. אז אין לי תמונת חומרה לשתף, כתבתי קוד והדמתי אותו על תוכנת פרוטוס.

כאן שיתפתי את הסכימה לאותו הדבר.

מוגדרות שלוש אלפיות השנייה, שניות, דקות

כאן השתמשנו בהפסקה של טיימר של 10 אלפיות השנייה, עבור כל 1000 אלפיות השנייה, משתנה השניות יגדל, על כל 60 שניות הדקה המשתנה יגדל.

שלב 1: חובה

בקר אחד pic18f4520

2 תצוגות של שבעה קטעים

3 טרנזיסטורים BC547

4 מתגים להפעלה/עצירה/איפוס

5 נגדים 330E, 10K, 1K

6 הורד mikroC לתמונה

7 הורד proteus

שלב 2: קוד לוגיקה ותצוגה

קוד לוגיקה ותצוגה
קוד לוגיקה ותצוגה
קוד לוגיקה ותצוגה
קוד לוגיקה ותצוגה

תצוגה של שבעה קטעים (SSD) היא אחת התצוגות הנפוצות, הזולות והפשוטות ביותר לשימוש. זה נראה כמו למעלה.

כאן עלינו להשתמש בסוג קתודה נפוצה של תצוגת 7 קטע - בכונן SSD מסוג קתודה נפוצה, מסוף –ve של כל נוריות הלדים מחובר בדרך כלל לסיכה 'COM'. ניתן להדליק קטע כאשר '1' ניתן לפלח ה- LED המתאים והקרקע מחוברת למשותף. החלק הפנימי מופיע באיור 2.

שלב 3: תצוגת נהיגה עם מיקרו -בקר

תצוגת נהיגה עם מיקרו -בקר
תצוגת נהיגה עם מיקרו -בקר

במעגל שלי השתמשתי בטרנזיסטור NPN BC547.

לשימוש פשוט ב- BJT כמתג, צומת הפולט-אספן מתקצרים כאשר יש אות קלט במסוף הבסיס, אחרת הוא נשאר ניתוק. יש לתת את הקלט באמצעות נגד מתאים.

שלב 4: מדוע ריבוב?

לעתים קרובות עלינו להשתמש בשניים, שלושה או יותר כונני SSD וגם זה באמצעות רק MCU יחיד, אך בעיה אחת שעומדת בפנינו היא היעדר סיכות קלט/פלט ב- MCU, מכיוון ש- SSD אחד ייקח 8 סיכות ולכן שלושה כונני SSD. ייקח 24 סיכות. ב- pic18 יש לנו רק 48 סיכות קלט/פלט. אז מה הפתרון?

אפשרות אחת היא שנשתמש ב- MCU גדול יותר עם יותר סיכות קלט/פלט. אבל אז אנחנו עדיין מוגבלים לכל היותר ל- 3 כונני SSD שניתן להשתמש בהם. עוד פתרון הרבה יותר טוב ומומלץ לבעיה זו הוא ריבוב שבעת תצוגות הקטע.

ויקיפדיה אומרת 'בטלקומוניקציה ורשתות מחשבים, ריבוב (הידוע גם בשם muxing) היא שיטה שבה משולבים אותות הודעות אנלוגיים מרובים או זרמי נתונים דיגיטליים לאות אחד על פני מדיום משותף. המטרה היא לשתף משאב יקר. 'מה שאנו מתכוונים בהתרבות של תצוגת שבעה פלחים הוא שנשתמש רק ב -7 יציאות פלט כדי לתת את התצוגה על כל כונני ה- SSD.

שלב 5: כיצד להשיג זאת?

כאן נשתמש ב'התמדה של חזון '. עכשיו בטח יש לך את המונח הזה כבר בעבר. כן, זוהי אותה טכניקה בה משתמשים בקולנוע (הצג תמונות כל כך מהר עד שהמוח שלנו לא יכול להבחין בפיגור בין שתי תמונות רצופות). באופן דומה, כאשר אנו מכניסים יותר מ- SSD אחד, אנו מציגים רק SSD אחד בכל פעם, ואנו עוברים ביניהם כל כך מהר עד שהמוח שלנו אינו יכול להבחין ביניהם.

נניח שכל תצוגה פעילה רק 5 מילי שניות בכל פעם, כלומר היא מוארת 1/0.0045 פעמים בשנייה, שזה בערך 222 פעמים בשנייה. העיניים שלנו לא יכולות לחוש שינוי כל כך מהר, ולכן מה שאנחנו רואים הוא שכל התצוגות פועלות במקביל. מה שקורה בפועל בחומרה הוא שה- MCU נותן '1' לסיכה (זכור, נותן '1' לבסיס של BJT קצר את צומת האספן והפולט?), המחובר לבסיס הטרנזיסטור של התצוגות המתאימות, שומר את היציאה 'מופעלת' במשך 5 אלפיות השנייה ולאחר מכן מכבה אותה שוב. הליך זה מוכנס בלולאה אינסופית, כך שנראה את התצוגה ברציפות.

שלב 6: אלגוריתם מרבב

אלגוריתם מרובה
אלגוריתם מרובה

הגדר שתי יציאות בקוד, אחת ליציאת נתוני פלחים ויציאת בקרת פלחים.

הטריק כאן הוא שאתה מציג את הנתונים על כל 7 הקטעים. והפעל את סיכת הבקרה האחת שעליה עליך להציג את הנתונים. שנה את הנתונים והעבר את סיכת הבקרה.

כאן במדריך זה השתמשנו מרבב בן 6 ספרות, פשוט עברו על קובץ c המצורף ותסיר אותו.

מוּמלָץ: