يحب كل مهندس إلكترونيات كسر الأشياء الإلكترونية واستكشاف ما بداخلها. فتحت مؤخرًا تلفزيون LED ووجدت بداخله شريحة ARM. تستخدم الميكروكونترولر القائمة على ARM بشكل كبير في أنواع مختلفة من المنتجات والأنظمة المدمجة. إنها تشتمل على العديد من الميزات المتقدمة التي تجعلها قوية ومتفوقة على وحدات التحكم الدقيقة الأخرى مثل 8051 و AVR و PIC. LPC2148 هي واحدة من أكثر وحدات التحكم الدقيقة المعتمدة على ARM استخدامًا ، لذلك سننشئ سلسلة من البرامج التعليمية والمشاريع LPC2148 ونشاركها في المقالات القادمة. إليك أول برنامج تعليمي في هذه السلسلة يغطي Getting started with LPC2148 وبرمجته على وميض LED.
لذلك في هذا البرنامج التعليمي سوف نتعرف على ARM7 Stick - LPC2148 وسوف نتعلم كيفية برمجته باستخدام برنامج Keil uVision و Flash magic. سنبرمج LPC2148 ليومض مصباح LED.
متحكم ARM
خطوة 17: الآن ضمن علامة التبويب الانتاج القراد إنشاء ملف عرافة ومن ثم انقر فوق "موافق"
الخطوة 18: الآن انقر فوق رمز BUILD أو اضغط على F7 لإنشاء ملف hex.
الخطوة 19: الآن يتم إنشاء ملف hex ويمكننا تدوينه في الأسفل. مثل هذه الصورة أدناه لأنها تشير إلى إنشاء ملف ست عشري.
الخطوة 20: حان الوقت الآن لفلاش ملف hex إلى ARM7 Stick. لذا افتح Flash Magic
تظهر أداة السحر الفلاش على النحو الوارد أعلاه.
فيما يلي خطوات وميض ARM LPC2148:
- حدد LPC2148
- أعط رقم منفذ COM وفقًا لإدارة الأجهزة (كان المنجم هو COM7)
- أعط معدل الباود 38400
- مذبذب 12 ميجا هرتز
- حدد "محو الكتل المستخدمة بواسطة البرامج الثابتة"
- الآن حدد مسار الملف السداسي
- حدد خانة الاختيار تحقق بعد البرمجة.
- وانقر فوق ابدأ
بعد الوميض بنجاح في ثوانٍ ، يظهر منتهي (باللون الأخضر) في الأسفل كما هو موضح في الصورة أدناه
الآن يمكنك أن ترى أن مؤشر LED يبدأ في الوميض على اللوح
شرح الترميز
الكود الكامل لوميض LED مع LPC2148 موضح أدناه. الكود بسيط ويمكن فهمه بسهولة.
يتضمن ملف الرأس هذا جميع ملفات سلسلة LPC214x من ميكروكنترولر.
#تضمن
نظرًا لأننا قمنا بتوصيل الإخراج بـ P0.10 ، فإنه يستخدم سجل IODIR وجعل منفذ pin 0 Pin 10 كإخراج.
IO0DIR = (1 << 10) ؛
يقوم هذا السجل بتعيين P0.10 إلى HIGH مما يجعل LED ON.
IO0SET = (1 << 10) ؛
هذا السجل يمسح P0.10 إلى LOW مما يجعل LED OFF
IO0CLR = (1 << 10) ؛
العبارات أدناه موجودة في حلقة أثناء تنفيذ التعليمات البرمجية بشكل مستمر
بينما (1) { IO0SET = (1 << 10) ؛ delay_ms (1000) ؛ IO0CLR = (1 << 10) ؛ delay_ms (1000) ؛ }
يتم استخدام وظائف delay_ms لإنشاء وقت تأخير بين SET & CLR وميض مؤشر LED في فاصل من ثانية واحدة.
كود كامل مع فيديو توضيحي موضح أدناه.