برمجة المقاطعات الخارجية في Bascom-AVR

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

لتفعيل المقاطعات الخارجية في Bascom-AVR، ما هي الخطوة الأولى المطلوبة؟

  • تحديد اسم البرنامج الفرعي للمقاطعة.
  • تحديد نمط عمل المقاطعة الخارجية.
  • تفعيل شعاع المقاطعة المطلوب تشغيلها.
  • تفعيل شعاع المقاطعات العام. (correct)

التعليمة Enable INTx تستخدم لإلغاء تفعيل المقاطعات الخارجية.

False (B)

ما هي وظيفة التعليمة Print المذكورة في سياق برمجة Bascom-AVR؟

تستخدم لطباعة البيانات على النافذة التسلسلية UART

لتحديد نمط عمل المقاطعة الخارجية (INTx)، يمكن أن يكون النمط ______ أو تصاعدياً أو مستوى منخفض أو متغير.

<p>هابط</p> Signup and view all the answers

صل بين أنواع المقاطعات الخارجية (INTx) وأنماط عملها المحتملة:

<p>Falling = عندما ينخفض الجهد على الدخل Rising = عندما يرتفع الجهد على الدخل Low Level = عندما يكون الجهد على الدخل منخفضاً Change = عندما يتغير الجهد على الدخل</p> Signup and view all the answers

في مثال البرنامج المذكور، ماذا يحدث عند ورود مقاطعة INT0 (عند الضغط على الزر)؟

<p>يتم تشغيل الليدات الأربعة الأدنى. (B)</p> Signup and view all the answers

عند الضغط على الزر الموصول مع PB2 (ورود مقاطعة INT2)، يتم تشغيل الليدات من D8 إلى D1 بالتتابع في المرة الأولى.

<p>False (B)</p> Signup and view all the answers

ما هو الغرض من استخدام النافذة التسلسلية UART في البرنامج المذكور؟

<p>لطباعة عدد مرات الضغط على كل زر</p> Signup and view all the answers

التعليمة Config INTx = state تستخدم لتحديد ______ عمل المقاطعة الخارجية.

<p>نمط</p> Signup and view all the answers

ماذا يحدث عند ورود مقاطعة INT1 في البرنامج المذكور؟

<p>يتم تشغيل الليدات الأربعة الأعلى. (D)</p> Signup and view all the answers

Flashcards

تفعيل شعاع المقاطعات العام

لتفعيل المقاطعات الخارجية في Bascom-AVR، يجب أولاً تفعيل شعاع المقاطعات العام.

تفعيل شعاع المقاطعة المطلوبة

بعد تفعيل الشعاع العام، يجب تفعيل شعاع المقاطعة المطلوبة لتشغيلها.

تحديد نمط عمل المقاطعة (INTx)

يتم تحديد نمط عمل المقاطعة الخارجية (INTx) لتحديد متى يتم تفعيل المقاطعة.

تحديد اسم البرنامج الفرعي (Label)

يتم تحديد اسم البرنامج الفرعي (Label) للمقاطعة (INTx) لتحديد الكود الذي سيتم تنفيذه عند حدوث المقاطعة.

Signup and view all the flashcards

تعليمة Print

تستخدم لطباعة البيانات على النافذة التسلسلية UART.

Signup and view all the flashcards

Disable INTx

إلغاء تفعيل المقاطعات الخارجية

Signup and view all the flashcards

Disable Interrupts

إلغاء تفعيل شعاع المقاطعات العام

Signup and view all the flashcards

Study Notes

برمجة المقاطعات الخارجية في Bascom-AVR

  • لتنفيذ برمجة المقاطعات الخارجية، يلزم تنفيذ عدة خطوات أساسية.

خطوات برمجة المقاطعات الخارجية

  • تفعيل شعاع المقاطعات العام لتمكين استخدام المقاطعات.
  • تفعيل شعاع المقاطعة المطلوبة التي سيتم تفعيلها.
  • تحديد نمط عمل المقاطعة الخارجية (INTx) سواءً كان ذلك عند:
    • حالة السقوط (Falling).
    • حالة الارتفاع (Rising).
    • المستوى المنخفض (Low Level).
    • التغيير (Change).
  • تحديد اسم البرنامج الفرعي (Label) الذي سيتم تنفيذه عند حدوث مقاطعة (INTx).

أوامر وتعليمات مهمة

  • Disable INTx: أمر يستخدم لإلغاء تفعيل أي من المقاطعات الخارجية أثناء عمل البرنامج.
  • Disable Interrupts: أمر يستخدم لإلغاء تفعيل شعاع المقاطعات العام أثناء عمل البرنامج.
  • Print: تعليمة تستخدم لطباعة البيانات على النافذة التسلسلية UART.

مثال تطبيقي

  • برنامج يستخدم المقاطعات لتشغيل الليدات الأربعة الدنيا عند ورود مقاطعة INTO (بالضغط على زر).
  • يقوم البرنامج بتشغيل الليدات الأربعة العليا عند ورود مقاطعة INT1 (عند إزالة الضغط على الزر).
  • عند الضغط على الزر الموصول مع PB2 (ورود مقاطعة INT2) للمرة الأولى، يقوم البرنامج بتشغيل الليدات بدءًا من D1 وحتى D8 بالتتالي، ثم الإطفاء.
  • في المرة الثانية، يقوم البرنامج بتشغيل الليدات بدءًا من D8 وحتى D1 بالتتالي، ثم الإطفاء.
  • يقوم البرنامج بطباعة عدد مرات الضغط على كل زر باستخدام النافذة التسلسلية UART.

إعدادات البرنامج

  • $regfile = "m32def.dat": تحديد ملف تعريف المتحكم الدقيق المستخدم.
  • $crystal = 8000000: تحديد تردد الكريستال المستخدم.
  • $baud = 9600: تحديد معدل الباود المستخدم للاتصال التسلسلي.
  • Config PORTA = $FF: تهيئة المنفذ A كمنفذ إخراج.
  • Leds Alias PORTA: تعريف اسم بديل للمنفذ A باسم Leds.
  • PORTA = $00: إطفاء جميع الليدات المتصلة بالمنفذ A في البداية.
  • PORTD.2 = 1 : PORTD.3 = 1 : PORTB.2 = 1: تفعيل المقاومات الرافعة (Pull-up Resistors) للمداخل المتصلة بالمفاتيح.
  • Config INTO = Falling : On INTO Sw_r1 : Enable INTO: إعداد المقاطعة INTO لتحدث عند حافة هابطة، وتنفيذ البرنامج الفرعي Sw_r1 عند حدوثها، وتفعيل المقاطعة.
  • Config INT1 = Rising: On INT1 Sw_r2 : Enable INT1: إعداد المقاطعة INT1 لتحدث عند حافة صاعدة، وتنفيذ البرنامج الفرعي Sw_r2 عند حدوثها، وتفعيل المقاطعة.
  • Config INT2 = Falling : On INT2 Sw_r3 : Enable INT2: إعداد المقاطعة INT2 لتحدث عند حافة هابطة، وتنفيذ البرنامج الفرعي Sw_r3 عند حدوثها، وتفعيل المقاطعة.

المتغيرات

  • Dim I As Byte, Count1 AS Byte, Count2 AS Byte, Count3 AS Byte, F As Bit: تعريف المتغيرات المستخدمة في البرنامج.

البرنامج الرئيسي والحلقات

  • Print "Hello!": طباعة رسالة ترحيبية في بداية البرنامج.
  • Do ... Loop: حلقة لا نهائية تبقي البرنامج قيد التشغيل.
  • Idle: أمر يجعل المعالج في وضع الخمول لتوفير الطاقة.

البرامج الفرعية للمقاطعات

  • sw_r1: برنامج فرعي يتم تنفيذه عند حدوث المقاطعة INTO.

    • يقوم بتشغيل الليدات الأربعة الدنيا (Leds = &B00001111).
    • يزيد قيمة العداد Count1 بمقدار واحد (Incr Count1).
    • يطبع رسالة وعدد مرات الضغط على الزر الأول.
  • sw_r2: برنامج فرعي يتم تنفيذه عند حدوث المقاطعة INT1.

    • يقوم بتشغيل الليدات الأربعة العليا (Leds = &B11110000).
    • يزيد قيمة العداد Count2 بمقدار واحد (Count2 = Count2 + 1).
    • يطبع رسالة وعدد مرات الضغط على الزر الثاني.
  • sw_r3: برنامج فرعي يتم تنفيذه عند حدوث المقاطعة INT2.

    • يقوم بتشغيل الليدات من D1 إلى D8 بالتتابع ثم يطفئها بالتتابع بالاعتماد على قيمة المتغير F.
    • يزيد قيمة العداد Count3 بمقدار واحد (Incr Count3).
    • يطبع رسالة وعدد مرات الضغط على الزر الثالث.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser