السلام عليكم
أخي timorlank أثناء البحث الى مشروع بالميكروسي برو مشابه لمشروعك:
Digital Door Lock using PIC16F887
في هذا الرابط:
http://latesteeprojects.blogspot.com...pic16f887.html
يفي الموقع توجد الكود بالميكروسي +صورة للدائرة + فيديو يوضح طريقة العمل.
حتى أتأكد من أنه يعمل قمت بنسخ الكود وعملت المشروع بالميكروسي كما في الموقع يعني بالبيك 16F887 فحصلت على ملف الهيكس الضروري للمحاكاة
صممت الدائرة على بروتوس وقمت بمحاكاتها وكانت النتائج مطابقة لما هو مذكور في الموقع
بما أن مشروعك بالمتحكم PIC16F876 أدخلت التعديلات المناسبة على المشروع بالميكروسي وبروتوس :
الدائرة:

ملفات الميكروسي وبروتوس 7 و بروتوس 8:
1- العرض بالانجليزية (هو الاصلي طبعا) ،اسم الملف serrure_4
http://up.top4top.net/downloadf-129osrw2-rar.html
2- نفس الملفات بعد ترجمة العرض إلى الفرنسية،اسم الملف serrure_5 :
http://up.top4top.net/downloadf-129w4d63-rar.html
إذا رغب الإخوة المبرمجين في مساعدتك أعتقد أن بإمكانهم إدخال التعديلات المناسبة على الكود لإضافة الليد الاحمر والأخضر ورنين جرس التنبيه كما طلبت أخي الكريم
وإن شاء الله تحقق هدفك
والله الموفق
|
بسم الله الرحمن الرحيم
السلام عليكم و رحمة الله و بركاته
اخى العزيز بالاضافة لمشاركة الاخ احمد ادريس جزاه الله خيرا .
بعون الله و فضله اود المشاركة لخدمتك :
اليك برنامج يطلب كلمة السر و اذا نجحت يفتح الباب و يضئ اخضر ثم ينتظر 10 ثوانى ثم يغلق الباب ثانية .
و اذا اخطأت ثلاث محاولات فانه بعد كل محاولة يظهر رسالة الخطأ ثم بعد الرابعة يضئ احمر و يشغل جرس.
البرنامج بميكروسي :
كود:
char keypadPort at portc;
#define open_door porta.f3=1
#define close_door porta.f5=1
#define greenLedon portb.f6=0
#define greenLedoff portb.f6=1
#define redLedon portb.f7=0
#define redLedoff portb.f7=1
#define alarmOn porta.f2=1
// LCD module connections
sbit LCD_RS at RB0_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D4 at RB2_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D7 at RB5_bit;
sbit LCD_RS_Direction at TRISB0_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D7_Direction at TRISB5_bit;
// End LCD module connections
char readKepad(){
char kp;
kp = Keypad_Key_Press();
switch (kp) {
case 1: kp = 49; break; // 1
case 2: kp = 50; break; // 2
case 3: kp = 51; break; // 3
case 4: kp = 65; break; // A
case 5: kp = 52; break; // 4
case 6: kp = 53; break; // 5
case 7: kp = 54; break; // 6
case 8: kp = 66; break; // B
case 9: kp = 55; break; // 7
case 10: kp = 56; break; // 8
case 11: kp = 57; break; // 9
case 12: kp = 67; break; // C
case 13: kp = 42; break; // '*'
case 14: kp = 48; break; // '0'
case 15: kp = 35; break; // '#'
default: kp = 0;
}
return kp;
}
char READ_PASS(){
char i ,key ;
for(i=7;i<=12;i=i+1){ // store entered passwodr in eeprom 7-->12
key=readKepad();
while( !key){ key=readKepad();}
EEprom_write(i,key-48);
lcd_chr(2,i-6,'*');
delay_ms(500);
}
//// comparing
if(EEPROM_Read(1)==EEPROM_Read(7) && EEPROM_Read(2)==EEPROM_Read(8)&& EEPROM_Read(3)==EEPROM_Read(9)&& EEPROM_Read(4)==EEPROM_Read(10)&& EEPROM_Read(5)==EEPROM_Read(11)&& EEPROM_Read(6)==EEPROM_Read(12))
{ lcd_cmd(_lcd_clear);
return 1;
} else return 0;
}
void main() {
char key , i ,Comp ,errorCount = 0;
CMCON=7;
trisa=0x00;
trisb=0x00;
greenLedoff ;
porta.f0=0;
redLedoff ;
Keypad_Init();
Lcd_Init();
Lcd_Cmd(_LCD_CURSOR_OFF);
if(EEPROM_READ(0)>0){ for(i=1;i<=6;i=i+1) { EEprom_write(i,0);} } // for default password for first time only .000000
while(1){
lcd_cmd(_LCD_CLEAR);
Lcd_Out(1,1,"HELLOW"); delay_ms(1000);
Lcd_Out(1,1,"Open the Door");
Lcd_Out(2,1,"Press * ");
key=readKepad();
while( !key){ key=readKepad();}
delay_ms(400);
if(key=='*'){
lcd_cmd(_LCD_CLEAR);
Lcd_out(1,1,"Enter Password"); delay_ms(1000);
Comp=READ_PASS();
if(Comp==1){ lcd_out(1,1,"Password OK");
Lcd_Out(2,1,"YOU ARE WELCOME");
errorCount = 0 ;
greenLedon ;
open_door;
delay_ms(10000); // DELAY FOR WAITING TO CLOSE DOOR AGAIN
close_door ; // close door again
greenLedoff ;
}else { errorCount++;
if(errorCount> 3){redLedon; alarmOn; }
lcd_cmd(_lcd_clear);
lcd_out(1,1,"wrong password");
delay_ms(1000);
}
}
}
}
الدائرة :

اذا اردت اى تعديل ان شاء الله ممكن نساعدك .
يرجى ملاحظة تعديلات تصميم الدائرة .
هذا و بالله التوفيق
الله مولانا ولا مولى لهم
انى عذت بربى و ربكم ان ترجمون
الله يرفع عنك سوريا - كلنا حلب و غزة
|
السلام عليكم اخواني احمد ادريس ومشتاق لله بارك الله فيكم على التعاون
فعلا كلا الدارتين جيدتين
لكن دراة الاخ مشتاق لله هي نفسها المطبقه في الشروع لكن ينقصها فقط SW1 SW2
سالتها لمادا ما فادتهما ولم تجبني سأسألها مره اخرى
لكن الداره للاخ مشتاق لله هي نفسها للمشروع تحتوي على led وعلى جرس يعني طبق الاصل
فقط لو يتم الارشاد حتى اوجهها ماذا تفعل للترجمتها الكلمات مثلا beinvenue
ربما هي تعرف جيدا كيف تترجمها
بخصوص التطبيق ان امكن فقط التوجيه حتى نبقى في الدرب الصحيح ولا تخطيء مره اخرى
للانه حقيقه افرحني الامر هذا وشييء مشرف من اخوتي الاعزاء
وسيبقى لكم الاجر على هذا العمل ولن ننسى خيركم
وبارك الله فيك اخي احمد ادرسي ومجدي ومشتاق لله على هذا التواضع والوقف الى جانبنا
حتى هي والله وجهت لكم شكرها
وان شاء الله يتم التوجيه فقط حتى نكمل هذا الامر الذي كان عسير واليوم هو بفضل الله ووقفكم معنا سيكون بحول الله يسير
تحياتي لكم