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

   

الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 04-10-2012, 07:38 AM المشاركة 17   
افتراضي



بسم الله الرحمن الرحيم

اهلا وسهلا بك يا اخى كرار اخبار صحتك اية يارب تكون بخير

بالنسبة لمشكلتك
فالحل بسيط ان شاء الله

ان راجعت الشرح الاول مرة اخرى ستجد انى شحرت كيفية استخدام الامرين

كود:
Keypad_Key_Press(); و Keypad_Key_Click();
اما الامرين الى انت كاتبهم فهم بتوع المكتبات فى النسخ القديمة من الميكروسى
والحقيقة انا بقالى كثير متعاملتش مع النسخ القديمة دى فنسيت هههههههه

اما لو كنت بتستخدمهم داخل نسخة جديدة فطبعا هيكون فى مشاكل

لازم تستخدم الامرين دول داخل النسخ الحديثة من اللغه

كود:
Keypad_Key_Press(); و Keypad_Key_Click();
انت قولت ان الامر
كود:
Keypad_Key_Press();
يعطى الرقم اكثر من مرة
وهذا صحيح
لو اطلعت على الشرح ستجد انى قولت انة لا ينتظر منك ان ترفع يدك من على الزر
اى انة يسجل ضغطة يدك بسرعه الميكرو وهكذا سوف يسجل ارقام مش هتعرف تعدها هههههههه

فالحل مع استخدام الامر دة انك تحط بعدية امر انتظار مثلا 250 مللى ثانية
وهيشتغل كويس ان شاء الله

اما الامر

كود:
Keypad_Key_Click();
فدة مش محتاج معاه امر انتظار يعنى هو بيستناك لما تشيل ايدك من على الزر
وبعد كدة يقولك ان الزرار كذا تم الضغط علية

بس مشكلتة ان المستخدم لو فضل دايس على الزرار الكود هيقف لحد ما يشيل ايدة
لان الامر مش هيتحرك الا لما يشيل ايدة

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

اعلانات

الصورة الرمزية المهندس أحمد1
المهندس أحمد1
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2010
الدولة: مصر-أسيوط-ديروط
المشاركات: 157
نشاط [ المهندس أحمد1 ]
قوة السمعة:
قديم 27-01-2013, 07:43 PM المشاركة 18   
ha


السلام عليكم ورحمة الله وبركاته
أخى funky112233 إستخدمت الكود الذى وضعته أنت مع كيباد قمت بصنعها على بروتس فعمل بشكل جيد وأردت أن أصنع قفل إلكترونى بإستخدام كيباد و شاشة وقمت بالتعديل على الكود ليصبح بالشكل التالى ولكن لم يعمل معى فما هو الخطأ
كود:
sbit LCD_RS at RB6_bit;
sbit LCD_EN at RB7_bit;
sbit LCD_D7 at RB5_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D4 at RB2_bit;

sbit LCD_RS_Direction at TRISB6_bit;
sbit LCD_EN_Direction at TRISB7_bit;
sbit LCD_D7_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB2_bit;

char  keypadPort at PORTD;

char mm;
char pass[6];
char keyin[6];
char cnt;
void main() {
cnt=1;
pass[1]="55";
pass[2]="56";
pass[3]="57";
pass[4]="65";
pass[5]="52";
pass[6]="53";
Lcd_Init();
Keypad_Init();
Lcd_Cmd(_LCD_CLEAR);Lcd_Cmd(_LCD_CURSOR_OFF);

Lcd_Out(1, 1, "Enter Password");

while(1){
 mm=0;
while(!mm){mm = Keypad_Key_Click();}

      switch (mm) {

      case  1:  mm = 55;  break; // 1
      case  2:  mm = 56;  break; // 2
      case  3:  mm = 57;  break; // 3
      case  4:  mm = 65;  break; // A
      case  5:  mm = 52;  break; // 4
      case  6:  mm = 53;  break; // 5
      case  7:  mm = 54;  break; // 6
      case  8:  mm = 66;  break; // B
      case  9:  mm = 49;  break; // 7
      case 10:  mm = 50;  break; // 8
      case 11:  mm = 51;  break; // 9
      case 12:  mm = 67;  break; // C
      case 13:  mm = 42;  break; // *
      case 14:  mm = 48;  break; // 0
      case 15:  mm = 35;  break; // #
      case 16:  mm = 68;  break; // D

    }

if(cnt==6)
{
if((keyin[1]==pass[1])&&(keyin[2]==pass[2])&&(keyin[3]==pass[3])&&(keyin[4]==pass[4])&&(keyin[5]==pass[5])&&(keyin[6]==pass[6]))
{
cnt=1;
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,1,"Access Granted");

}
else
{
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,1,"Access Denied");

}
}
else
{
keyin[cnt]=mm;
Lcd_Out(2,cnt,"*");
cnt++;
}
                     }

}

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

الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 28-01-2013, 12:32 AM المشاركة 19   
افتراضي


بسم الله الرحمن الرحيم

اخى يا ريت ترفع لى الكود كاملا ملفات ميكروسى ويستحين ملفات البروتوس

وبالنسبة للخطا الى شايفة دلوقتى انك بتتعامل مع المتغيرات []
من رقم 1 الى 6 وهذا خطا
فعند تعريفك ل 6 متغيرات بنفس الاسم
اول متغير يكون [0] وليس [1] من 0 الى 5 لان ال0 رقم

وهكذا على باقى الكود

بالتوفيق ان شاء الله


الصورة الرمزية المهندس أحمد1
المهندس أحمد1
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2010
الدولة: مصر-أسيوط-ديروط
المشاركات: 157
نشاط [ المهندس أحمد1 ]
قوة السمعة:
قديم 28-01-2013, 11:16 AM المشاركة 20   
افتراضي


بارك الله فيك أخى وأثابك الجنة

http://www.mediafire.com/?ab1cc4ef1hckhhg


الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 29-01-2013, 08:51 PM المشاركة 21   
افتراضي


بسم الله الرحمن الرحيم

قمت بتنزيل الملف يا اخى
واتضح انك موصل الاطراف بتاعت الشاشة خطا

الاطراف الخاصة بالداتا Data

وهم 4 اطراف بقط قم بتوصيلهم بالشكل الصحيح وستجد الكود يعمل ان شاء الله

اما بالنسبة للكود نفسة
فالطريقة التى اتبعتها هناك طرق افضل منها بكثير
وهنا فى القرية مواضيع توضح ذلك
حاول ان تطلع عليها وهذا احداها

http://www.qariya.com/vb/showthread.php?t=49979

بالتوفيق ان شاء الله


الصورة الرمزية المهندس أحمد1
المهندس أحمد1
:: مهندس متواجد ::
تاريخ التسجيل: Sep 2010
الدولة: مصر-أسيوط-ديروط
المشاركات: 157
نشاط [ المهندس أحمد1 ]
قوة السمعة:
قديم 30-01-2013, 12:29 AM المشاركة 22   
افتراضي


جزاك الله كل خير أستاذى


الصورة الرمزية abedoid
abedoid
:: مهندس ::
تاريخ التسجيل: Dec 2012
المشاركات: 37
نشاط [ abedoid ]
قوة السمعة:
قديم 30-01-2013, 12:50 AM المشاركة 23   
افتراضي


بارك الله فيك أخي . شرح ممتاز و واضح .
سأصنع آلة حاسبة بال Lcd و Keypad ( تمرين ) و أرفعها ان شاء الله .

جزاك الله خيرا .


الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 664
نشاط [ funky112233 ]
قوة السمعة:
قديم 30-01-2013, 01:25 PM المشاركة 24   
افتراضي


بسم الله الرحمن الرحيم

بالتوفيق ان شاء الله يا اخوتى
جزاكم الله كل خير

فى انتظار مشروعك اخى abedoid



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