تطبيق : برنامج عمل سارينةSiren :

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

تطبيق : برنامج عمل سارينةSiren :

مُساهمة من طرف Admin في الأربعاء أبريل 22, 2015 8:13 pm

تطبيق :
برنامج عمل سارينةSiren :
البرنامج أدناه يجمع بعض من الميزات الاساسية السابقة . هذا البرنامج يتم توصيل خرجه إلى جهاز صوتى sounder ، بدلا من الليد ، هذا الجهاز يعمل على تردد مرتفع . لهذا السبب يكون التأخير بالميكروثانية .

الكود:



/*Lesson1-EX7 SIREN Program *******************
Program function: Outputs a siren sound
***************************************************************/
#include  <16F877A.h>
#use delay (clock = 4000000)
void main()
{
    Int8 step;

    while(TRUE) // Keep checking switch
    {
        while(!input(PIN_C0)) // Siren while switch ON
          {
              for(step = 0;step < 255;step ++ ) // Loop control
                  {
                        output_high(PIN_D0); // Sound sequence
                      delay_us(step);
                      output_low(PIN_D0);
                      delay_us(step);
                  }
          }
    }
}


يتم توليد الخرج عندما يكون المفتاح مغلق (عندما الدخل C0 منخفض فإن تعبير المعكوس !input(PIN_C0) يكون صواب true ) . تتلقى دالة التأخير القيمة المتزايدة للمتغير "step" (خطوة) ، لتنتج نبضة أطول فى كل مرة يتم فيها تنفيذ حلقة for . هذا يؤدى إلى دفعة من 255 نبضة بطول متزايد (تردد متناقص) ، تتكرر طالما أن الدخل فى حالة توصيل on . لاحظ أن العدد 255 يكون القيمة القصوى المسموح بها للخطوة step لأنه متغير 8 بت . عند تشغيل البرنامج فى برنامج المحاكاة VSM (ضمن برنامج Proteus) يمكنك سماع الخرج عبر محاكاة بطاقة صوت الكمبيوتر كمضيف .
لاحظ انعكاس حالة اختبار الدخل باستخدام "! = not true" .

رابط الملفات :
mediafire.com download/d26x2yeylm13m56/Lesson1-EX7.zip

Admin
Admin

عدد المساهمات : 1003
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى