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

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:335
قديم 07-04-2012, 01:46 PM المشاركة 1   
افتراضي الطريق الصحيح لتصميم وبرمجة مشروع أجهزة الإنذار بمواصفات عالمية بلغة السى والميكروسى Twitter FaceBook Google+



لأول مرة على النت


الطريق الصحيح لتصميم وبرمجة مشروع أجهزة الإنذار بمواصفات عالمية بلغة السى والميكروسى برو
معظم أنظمة التحكم بها أجهزة إنذار والتى عن طريقها يتم جذب إنتباه القائم بالعمل وتحديد الأعطال أو المشكلات بالنظام .
الفكرة الاساسية : ملخصة فى الشكل التالى :







1- عند حدوث عطل (حدث) يستوجب إطلاق إنذار سوف يظهر بيان على اللوحة (أو الشاشة) بشكل متقطع يلفت النظر لبيان وجود إنذار جديد ويتطلب قبولهacceptance أى المعرفة أوالعلم بحدوثه (بالضغط على زر يسمى قبول او معرفة) ALARM_ACCEPTED.
2- عندما يضغط القائم بالتشغيل على زر قبول الإنذار تكون النتيجة :
أ‌- يتحول البيان من متقطع إلى مستمر إذا كان سبب الإنذار ما زال موجودا .
ب‌- أو يختفى البيان إذا تلاشت الحالة المسببة للإنذار أوكانت عارضة .
3- يجب تزويد المشروع بزر لاختبار اللمبات بالإضافة إلى إنذار صوتى مسموع .


التعديل الأخير تم بواسطة : F.Abdelaziz بتاريخ 07-04-2012 الساعة 01:51 PM
اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:335
قديم 07-04-2012, 01:50 PM المشاركة 2   
افتراضي


الدائرة الكهربية :



اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:335
قديم 07-04-2012, 01:53 PM المشاركة 3   
افتراضي


البرنامج :
الأفكار حسب أهميتها :
1- فى أى نظام إنذار نحتاج إلى مذبذب لذلك يتم إنشاء مولد ذبذبات بتردد واحد ذبذبة لكل ثانية ( نصف ثانية مرتفع ونصف ثانية منخفض) وذلك باستخدام المقاطعة بالمؤقت Timer0 ودالة خدمة المقاطعة interruptتعمل تلقائيا بغض النظر عما يحدث فى البرنامج الرئيسى فلا تؤثر عليه . هذه الدالة هامة ويجب الاحتفاظ بها لاستخدامها فى العديد من البرامج مع إجراء التعديل اللازم بها .




الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:335
قديم 07-04-2012, 01:55 PM المشاركة 4   
افتراضي


2- إنشاء دالة التهيئة settings يتم فيها تجميع جميع إعدادات البرنامج بحيث يمكن استخدامها عدة مرات مع إجراء التعديل اللازم .



الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:335
قديم 07-04-2012, 01:57 PM المشاركة 5   
افتراضي


3- بالإضافة إلى التعليقات والتعريفات والإعلانات اللازمة للبرنامج .




الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:335
قديم 07-04-2012, 01:59 PM المشاركة 6   
افتراضي


4- ما تبقى هو الدالة الرئيسية .




الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:335
قديم 07-04-2012, 02:01 PM المشاركة 7   
افتراضي


البرنامج :


كود:
/*
Basic Alarm system for any equipment
As fire alarm system, diesel-generator alarm system….
 */
//  Definitions &Declarations
#define ON 1
#define OFF  0
#define T0IF INTCON.T0IF        //Timer0 Interrupt Flag Bit INTCON.F0IF defined as "T0IF"
//INPUTS
sbit INPUT at PORTC.B0 ; // Input Sensor as Switch
sbit ALARM_ACCEPTED at PORTC.B1 ;// Input "ALARM_ACCEPTED" Switch
sbit LAMP_TEST at PORTC.B2 ;// Input "LAMP_TEST" Switch
//OUTPUTS
sbit OUTPUT at PORTD.B0 ;         //"Output" device as "LED" '
sbit BUZZER at PORTD.B1;
// Internal Bits OR"Internal Relays"
bit flash;
bit M0;
bit INPUT_PULSE ;
bit UNACCEPT ;
unsigned char Counter = 0;
void settings ( void );                 // Setting Function
void interrupt (  );
// main function
void main ( )
{
 OUTPUT=OFF;
settings ( ) ;                  // Run Setting Function for ports and registers
   while ( 1 )                   // run a loop
   {
PORTD.B7=flash; // As "Operation Indication" - option
INPUT_PULSE = (INPUT&~M0 );//Produce "INPUT ONE SHOT PULSE "
M0=INPUT;
UNACCEPT = (~ALARM_ACCEPTED &(INPUT_PULSE | UNACCEPT )) ;
OUTPUT=LAMP_TEST |((UNACCEPT & flash) | (INPUT & ~UNACCEPT ))   ;
BUZZER = (UNACCEPT | LAMP_TEST);
     }// end loop
}  // end main
void settings ( void )                 // Setting Function
{
//1- PORTS Setting
 TRISD= 0 ;                // RD0 as outputs
 PORTD=0;
 TRISC=0xFF;
 PORTC=0;
// 2- Setting the OPTION register
OPTION_reg = 0b11000100 ; //Prescaler 1:32 ,assigned to Timer0 , pull-up resistors on port B disabled
// 3- Set interrupt
INTCON = 0b10100000; // Interrupt on Timer0 enabled & Global Interrupt enabled
TMR0 = 100 ;  // Set Timer0 to 100 , as initial value
}
//  Interrupt Routine Service IRS
void interrupt (  )
{
  if( T0IF )                          // Interrupt was caused by an overflow of Timer0?
      {
      Counter ++;                  // Increment the timer for the blinking LED each (255-100)* 32 = 5ms
      if( Counter>= 100 )  // If the time has passed TEMP_LED=100 T = 5ms * 100 times = 500 ms = 0.5sec
         {
         flash = flash^1 ;  // Invert LED status to flash .
/* ^ bitwise exclusive OR (XOR); compares pairs of bits and returns 1 if the bits are complementary, otherwise returns 0 */
         Counter= 0 ;                  // Reloading the LED timer to start again
       }
      TMR0 =  100 ;                  // Timer0 reloaded
      T0IF = 0 ;                          // Reset the interrupt flag of timer 0
      }                                  // end that occurred on Timer0 interrupt
}                                  // end of interrupt service routine


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:335
قديم 07-04-2012, 02:04 PM المشاركة 8   
افتراضي


ملفات المشروع على الرابط :

http://www.eeecb.com/vb/showthread.php?p=2979&posted=1#post2979

إضافة رد

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

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

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


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

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