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

   

رانية1
:: مهندس متواجد ::
تاريخ التسجيل: Jun 2006
الدولة: فلسطين
المشاركات: 128
نشاط [ رانية1 ]
قوة السمعة:
قديم 10-12-2009, 09:33 PM المشاركة 1273   
Thumbs up



الاخ lahoioui :
شكرا جزيلا فقد جربت البرنامج وهو يعمل بشكل تام

اعلانات

الصورة الرمزية moharaul1986
moharaul1986
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2009
المشاركات: 59
نشاط [ moharaul1986 ]
قوة السمعة:
قديم 11-12-2009, 02:00 PM المشاركة 1274   
افتراضي


بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته..
اود مشاركة الاخوة هدا النرنامج الذي كتبته بلغة mikroc
وهو عبارة عن قفل الكتروني مشفر بكودين (PIN & PUK)
PIN اربعة ارقام .... PUK ثمانية ارقام.... يشتغل كما يلي :
1: يطلب منك النظام ادخال كود pin (اربع محاولات)
2 : ادا ادخلت الكود الصحيح يتم تفعيل المخرج portd0
3 : ادا فشلت في ادخال الكود اربع مرات يطلب منك ادخال الكود puk (اربع محاولات)
4: ادا ادخلت الكود الصحيح يتم تفعيل المخرج portd0
5: ادا فشلت في ادخال الكود اربع مرات يتم تفعيل نظام الانذار لحوالي 5 ثوان
ثم يتوقف النظام
اليكم الدارة
باسم الله :



و الان مع الكود :

كود:
unsigned short kp[]={0,0,10,9,8,0,7,6,5,0,4,3,2,0,0,1,0},kp1, clavier,pin[]={1,9,8,7},chiffr,nmb,error,a,puk[]={1,2,3,4,5,6,7,8}  ;

void ok () {          
lcd_out(1,1,"code ok");        
portd.f0=1;                             
delay_ms(1000);                         
}
void delay() {                   
delay_ms(300);
}
void lcdclv ()  {                  
for(nmb=0;nmb<4;nmb++) {            
lcd_cmd(lcd_second_row);            
error=0;                          
for(chiffr=0;chiffr<a;chiffr++) {    
do {                                
clavier = Keypad_Released();
kp1=kp[clavier] ;
clavier = kp1;
} while(!clavier);
clavier--;                        
if(clavier!=pin[chiffr] ) {if (a==4) {error=1;} }        
if(clavier!=puk[chiffr] ) {  if (a==8) { error=1;  }  }
lcd_chr_cp(clavier+48);                                
}
if(error==0) { ok ();  break;}                         
if(error==1) { 
 lcd_out(1,1,"wrong code"); 
 delay();
 lcd_cmd(lcd_clear);
 if (nmb<3) 
 lcd_out(1,1,"try again"); }  
delay_ms(300);
}
}

void main ()  {
int alarm=0;
start:
a=4;
trisd=0;
portd.f0=0;
lcd_init(&portb);
keypad_init(&portc);
lcd_cmd(lcd_cursor_off);
lcd_out(1,1," welcome ");
delay();
lcd_cmd(lcd_clear);
lcd_out(1,1,"enter PIN");
lcdclv();
if (error==0) goto start;
lcd_cmd(lcd_clear);
lcd_out(1,1,"pin blocked");
delay();
a=8;
lcd_out(1,1,"enter PUK");
lcdclv();
if(error==0) goto start;
lcd_out(1,1,"systeme blocked");
while(1) {
portd.f1=0;
delay_us(500);
portd.f1=1;
delay_us(500);
alarm++;
if(alarm==5000) break;
}
}
انا مستعد لاي سؤال
اتمنا ان افيد الاخوة كما اتمنى ان اجد من يعدل على الكود بافكار جديدة ان شاء الله
الحمد لله الدي هدانا لهدا و ماكنا لنهتدي للولا اد هدانا
جزاك الله كل خير ويعطيك الف عافية اخي ,اخي الكريم لو سمحت ان تشرح الكود والدوال الجاهزة فيه لكي تعم الفائدة باذن الله ونفهم استخدام بعض الدوال لنستعملها في مشاريع اخرى ,وادعو من الله ان يعلمك ما ينفعك وينفع امة الاسلام


التعديل الأخير تم بواسطة : moharaul1986 بتاريخ 11-12-2009 الساعة 02:05 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية bigstreet
bigstreet
:: مهندس ::
تاريخ التسجيل: Nov 2009
المشاركات: 35
نشاط [ bigstreet ]
قوة السمعة:
قديم 11-12-2009, 05:36 PM المشاركة 1275   
adevil


جزاك الله كل خير ويعطيك الف عافية اخي ,اخي الكريم لو سمحت ان تشرح الكود والدوال الجاهزة فيه لكي تعم الفائدة باذن الله ونفهم استخدام بعض الدوال لنستعملها في مشاريع اخرى ,وادعو من الله ان يعلمك ما ينفعك وينفع امة الاسلام
السلام عليكم و رحمة الله وبركاته ...
الخي العزيز القد قمت بوضع شرح مختصر للبرنامج و كيفية عمله في موضوع خاص
تفضل اخي الرابط :
http://www.qariya.com/vb/showthread.php?t=56084


الصورة الرمزية moharaul1986
moharaul1986
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2009
المشاركات: 59
نشاط [ moharaul1986 ]
قوة السمعة:
قديم 11-12-2009, 07:13 PM المشاركة 1276   
افتراضي


bigstreet يسلمو اخي على الرد السريع، الله يجعل عملك في ميزان حسناتك


ZikaMessi
:: مهندس ::
تاريخ التسجيل: Nov 2009
المشاركات: 19
نشاط [ ZikaMessi ]
قوة السمعة:
قديم 12-12-2009, 02:37 AM المشاركة 1277   
افتراضي


السلام عليكم
كيف اظهر قيمه متغير على lcd ???


mizort1989
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2009
المشاركات: 70
نشاط [ mizort1989 ]
قوة السمعة:
قديم 12-12-2009, 11:57 AM المشاركة 1278   
افتراضي


ارجو من المشروف حذف المشاركه لإخلالها بشروط الموضع

اسف علي ذلك


التعديل الأخير تم بواسطة : mizort1989 بتاريخ 15-12-2009 الساعة 01:31 AM

الصورة الرمزية سلمى
سلمى
:: مهندس متواجد ::
تاريخ التسجيل: Jan 2006
المشاركات: 115
نشاط [ سلمى ]
قوة السمعة:
قديم 12-12-2009, 08:40 PM المشاركة 1279   
ha


السلام عليكم....

منذ عدة أيام و أنا أحاول عمل برنامج بالمايكروسي و قد عدلت به كثيرا و وصلت هنا في نهاية المطاف دون أي ERROR لكن الدارة لا تعمل كما يجب

هذا الكود
كود:
int i=0;
void main()
{
 int j;
 trisa=trisc=trisd=1;
 trisb=trise=0;

 while(1)
 {
 check:
  if(porta.f0) goto go_in;
  if(porta.f1) goto go_out;
  if(porta.f4) goto main_gate;
  go_in:
        if(i<3)
        {portb.f0=1;
        delay_ms(300);
         if(porta.f2)
         { portb.f0=0;
           portb.f1=1;
           delay_ms(300);
           i++;
           for(j=0;j<10;j++)
           delay_ms(6000);
           portb.f1=0;}
           }
           else goto nopass;
  nopass: portb.f0=0;  goto check;
  go_out:
        do{
        portb.f2=1; //delay_ms(300);
        } while(portb.f3=0);
        portb.f2=0;
        i--;
        goto check;
  main_gate:
          portb.f6=portb.f7=1;
          delay_ms(30000);
          if(!porta.f4)
          portb.f6=0;
          for(j=0;j<10;j++)
          delay_ms(6000);
          portb.f6=0;
          for(j=0;j<50;j++)
            delay_ms(6000);
          portb.f7=0;
          goto check;
          }}
و هذه الدارة ( مع ملا حظة أنها غير تامة) أي المفترض أن الجزء الملون من الكود يشغل الدارة

هذه الدارة
http://www.4shared.com/file/17135143.../__online.html


lahoioui
:: مهندس متواجد ::
تاريخ التسجيل: May 2009
المشاركات: 177
نشاط [ lahoioui ]
قوة السمعة:
قديم 12-12-2009, 09:35 PM المشاركة 1280   
افتراضي


السلام عليكم....

منذ عدة أيام و أنا أحاول عمل برنامج بالمايكروسي و قد عدلت به كثيرا و وصلت هنا في نهاية المطاف دون أي ERROR لكن الدارة لا تعمل كما يجب

هذا الكود
كود:
int i=0;
void main()
{
 int j;
 trisa=trisc=trisd=1;
 trisb=trise=0;

 while(1)
 {
 check:
  if(porta.f0) goto go_in;
  if(porta.f1) goto go_out;
  if(porta.f4) goto main_gate;
  go_in:
        if(i<3)
        {portb.f0=1;
        delay_ms(300);
         if(porta.f2)
         { portb.f0=0;
           portb.f1=1;
           delay_ms(300);
           i++;
           for(j=0;j<10;j++)
           delay_ms(6000);
           portb.f1=0;}
           }
           else goto nopass;
  nopass: portb.f0=0;  goto check;
  go_out:
        do{
        portb.f2=1; //delay_ms(300);
        } while(portb.f3=0);
        portb.f2=0;
        i--;
        goto check;
  main_gate:
          portb.f6=portb.f7=1;
          delay_ms(30000);
          if(!porta.f4)
          portb.f6=0;
          for(j=0;j<10;j++)
          delay_ms(6000);
          portb.f6=0;
          for(j=0;j<50;j++)
            delay_ms(6000);
          portb.f7=0;
          goto check;
          }}
و هذه الدارة ( مع ملا حظة أنها غير تامة) أي المفترض أن الجزء الملون من الكود يشغل الدارة

هذه الدارة
http://www.4shared.com/file/17135143.../__online.html
الاخت سلمى لا يمكن للمقاومة الضوئية أن تربط بهذا الشكل
قلت لك سابقا يجب أن تربطي مقاومة من رجل ال pic الرجل ra0 نحو ال mass (-)
وكذلك الرجل الاخري
المقاومة تتوقف على شدة الضوء التي ترغبين فيها أن تشغل ال LDR



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