السلام عليكم ورحمه الله
تحيه طيبة لكل الأعضاء والسادة المشرفين ...
اقدم لكم مشروع ... نظام مراقبة وانذار ل 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;
}
}
غداا ان شاء الله سيتم شرح البرنامج مع ارفاق ملف المحكاة وملف ال هيكس البرنامج
تحياتى للجميع
وارجو ان ينال اعجابكم