قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 02-09-2015, 07:42 AM المشاركة 1   
افتراضي نظام مراقبة وانذار ل 8 غرف بستخدام ... PIC16F877A Twitter FaceBook Google+



السلام عليكم ورحمه الله


تحيه طيبة لكل الأعضاء والسادة المشرفين ...


اقدم لكم مشروع ... نظام مراقبة وانذار ل 8 غرف ...

يتميز النظام بعرض حالة الغرف ال 8 على شاشة 7 سيجمنت .. وتسبيت الحالة على ليد برقم الغرفة اللتى يوجد بها حالة الانذار ..

يوجد عدد 2 انذار صوتىفى الدائرة ....

فى الحالة الطبيعية وعند حدوث انذار من احد الغرف يتم اطلاق انذار صوتى وعرض رقم الغرفة على شاشة ال 7 سيجمنت ... ويتم ايضاااا بيان حالة الغرف على 8 ليدات ..

ويوجد مفتاح لكتم صوت الانذار مع بقاء رقم الغرفة على الشاشة لحين انتهاء المشكلة ..

ويمكن تفعيل الانذار الدائم .. هذا الانذار يصدر صوت كل 3 ثوانى ولا يفصل الا تم حل المشكلة ..


والان مع صورة عامة لدائرة للنظام






والان مع البرنامج ..


كود:
      //      8 rooms warning system       //

     //    Design Engineer Abdullah Hijazi    //


 unsigned short mask(unsigned short num);
 unsigned int s1=0,s2=0,s3=0,s4=0,s5=0,m=0,m1,m2,x1=0,x2=0,x3=0,x4=0,
   x5=0,x6=0,x7=0,x8,x9=0,x10=0,x11=0,x12=0,x13=0,x14=0,x15=0,x16,x17,x18,x19;
    
      void interrupt(){
         porte=1;
      portb=mask(s1);
      delay_ms(10);
         porte=2;
      portb=mask(s2);
      delay_ms(10);
      
    //********************** TEST ROOM ( 1 ) *************************//
      if(portc.f3==1&&x1==0){ porta.f0=1; portd.f5=1; x1=1; s1=1;}
      else if(portc.f3==0&&x1==1){porta.f0=0; portd.f5=0; x1=0; s1=0;}
      else if(porta.f3==1){porta.f0=0;}
     //--------------------------------------------------------------//
     
     //********************** TEST ROOM ( 2 ) *************************//
      if(portc.f2==1&&x2==0){ porta.f0=1; portd.f4=1; x2=1; s1=2;}
      else if(portc.f2==0&&x2==1){porta.f0=0; portd.f4=0; x2=0; s1=0;}
      else if(porta.f3==1){porta.f0=0;}
     //--------------------------------------------------------------//

     //********************** TEST ROOM ( 3 ) *************************//
      if(portc.f1==1&&x3==0){ porta.f0=1; portc.f7=1; x3=1; s1=3;}
      else if(portc.f1==0&&x3==1){porta.f0=0; portc.f7=0; x3=0; s1=0;}
      else if(porta.f3==1){porta.f0=0;}
     //--------------------------------------------------------------//
     
     //********************** TEST ROOM ( 4 ) *************************//
      if(portc.f0==1&&x4==0){ porta.f0=1; portc.f6=1; x4=1; s1=4;}
      else if(portc.f0==0&&x4==1){porta.f0=0; portc.f6=0; x4=0; s1=0;}
      else if(porta.f3==1){porta.f0=0;}
     //--------------------------------------------------------------//
     
     //********************** TEST ROOM ( 5 ) *************************//
      if(portd.f7==1&&x5==0){ porta.f0=1; portc.f5=1; x5=1; s1=5;}
      else if(portd.f7==0&&x5==1){porta.f0=0; portc.f5=0; x5=0; s1=0;}
      else if(porta.f3==1){porta.f0=0;}
     //--------------------------------------------------------------//

     //********************** TEST ROOM ( 6 ) *************************//
      if(portd.f6==1&&x6==0){ porta.f0=1; portc.f4=1; x6=1; s1=6;}
      else if(portd.f6==0&&x6==1){porta.f0=0; portc.f4=0; x6=0; s1=0;}
      else if(porta.f3==1){porta.f0=0;}
     //--------------------------------------------------------------//
     
     //********************** TEST ROOM ( 7 ) *************************//
      if(porta.f5==1&&x7==0){ porta.f0=1; portd.f1=1; x7=1; s1=7;}
      else if(porta.f5==0&&x7==1){porta.f0=0; portd.f1=0; x7=0; s1=0;}
      else if(porta.f3==1){porta.f0=0;}
     //--------------------------------------------------------------//
     
     //********************** TEST ROOM ( 7 ) *************************//
      if(porta.f4==1&&x8==0){ porta.f0=1; portd.f0=1; x8=1; s1=8;}
      else if(porta.f4==0&&x8==1){porta.f0=0; portd.f0=0; x8=0; s1=0;}
      else if(porta.f3==1){porta.f0=0;}
     //--------------------------------------------------------------//

   INTCON=0b00100000;
       TMR0=0;
 }

     void main() {
   OPTION_REG=0x81;
  INTCON=0b10100000;
      TMR0=217;

      adcon1=0x06;
  trisb=0; portb=0;
  trisd=192; portd=0;
  trisc=15; portc=0;
  trisa=60; porta=0;
  trise=0; porte=0;

     while(1){

    for(x19=0;x19<2;x19++){s2=8;delay_ms(10);s2=11;delay_ms(10);s2=12;delay_ms(10);s2=13;delay_ms(10);s2=14;delay_ms(10);s2=15;delay_ms(10);
            s2=16;delay_ms(10);s2=17;delay_ms(10);s2=18;delay_ms(10);s2=19;delay_ms(10);s2=20;delay_ms(10);s2=21;delay_ms(10);s2=22;delay_ms(10); }


      if(porta.f2==1&&portc.f3==1){ for(x18=0;x18<15;x18++){ porta.f1=1; delay_ms(40); porta.f1=0; delay_ms(40);} }
      
      if(porta.f2==1&&portc.f2==1){ for(x18=0;x18<15;x18++){ porta.f1=1; delay_ms(40); porta.f1=0; delay_ms(40);} }
      
      if(porta.f2==1&&portc.f1==1){ for(x18=0;x18<15;x18++){ porta.f1=1; delay_ms(40); porta.f1=0; delay_ms(40);} }
      
      if(porta.f2==1&&portc.f0==1){ for(x18=0;x18<15;x18++){ porta.f1=1; delay_ms(40); porta.f1=0; delay_ms(40);} }
    
      if(porta.f2==1&&portd.f7==1){ for(x18=0;x18<15;x18++){ porta.f1=1; delay_ms(40); porta.f1=0; delay_ms(40);} }
    
      if(porta.f2==1&&portd.f6==1){ for(x18=0;x18<15;x18++){ porta.f1=1; delay_ms(40); porta.f1=0; delay_ms(40);} }
     
      if(porta.f2==1&&porta.f5==1){ for(x18=0;x18<15;x18++){ porta.f1=1; delay_ms(40); porta.f1=0; delay_ms(40);} }
     
      if(porta.f2==1&&porta.f4==1){ for(x18=0;x18<15;x18++){ porta.f1=1; delay_ms(40); porta.f1=0; delay_ms(40);} }

}
}
 unsigned short mask(unsigned short num){
               switch (num){
 case 0 : return 0xC0;
 case 1 : return 0xF9;
 case 2 : return 0xA4;
 case 3 : return 0xB0;
 case 4 : return 0x99;
 case 5 : return 0x92;
 case 6 : return 0x82;
 case 7 : return 0xD8;
 case 8 : return 0x80;
 case 9 : return 0x90;
////////////////////////
 case 10 : return 0xEF;
 case 11 : return 0xDF;
 case 12 : return 0xFE;
 case 13 : return 0xFD;
 case 14 : return 0xFB;
 case 15 : return 0xF7;
 ///////////////////////
 case 16 : return 0xCF;
 case 17 : return 0xCE;
 case 18 : return 0xCC;
 case 19 : return 0xCC;
 case 20 : return 0xC0;
 case 21 : return 0x80;
 case 22 : return 0x06;



}
}
غداا ان شاء الله سيتم شرح البرنامج مع ارفاق ملف المحكاة وملف ال هيكس البرنامج


تحياتى للجميع

وارجو ان ينال اعجابكم


التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 02-09-2015 الساعة 07:48 AM
احصائية الشكر والاعجاب - 2 شكراً, 0 عدم اعجاب, 2 اعجاب
شكراً ماجد عباس محمد, حسن هادي محمود ( شكر العضو على هذه المشاركة )
اعجاب حسن هادي محمود, Abmarhon ( أعجبته المشاركة )
اعلانات
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 07:10 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025