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

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

abo karem
:: مهندس ::
تاريخ التسجيل: May 2009
المشاركات: 46
نشاط [ abo karem ]
قوة السمعة:0
قديم 16-11-2016, 02:42 AM المشاركة 1   
ha سؤال ومساعده من الاساتذه الكرام Twitter FaceBook Google+



ممكن مساعده فى مشروع توصيل لوحة مفاتيح key pad مع PIC16f877a
بحيث عند الضغط على رقم فى اللوحة يظهر على الشاشة و يعطى خرج على احد الاطراف للبك ثم لايمكن اختيار رقم اخر الا لما نضغط على الصفر لالغاء الاختيار السابق ثم نختار رقم اخر وهكذا
عدد 15 رقم (من 1 الى 15 )
ولسيادتكم جزيل الشكر

اعلانات

الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 18-11-2016, 12:37 AM المشاركة 2   
افتراضي اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا وزدنا علما


ممكن مساعده فى مشروع توصيل لوحة مفاتيح key pad مع PIC16f877a
بحيث عند الضغط على رقم فى اللوحة يظهر على الشاشة و يعطى خرج على احد الاطراف للبك ثم لايمكن اختيار رقم اخر الا لما نضغط على الصفر لالغاء الاختيار السابق ثم نختار رقم اخر وهكذا
عدد 15 رقم (من 1 الى 15 )
ولسيادتكم جزيل الشكر
وعليكم السلام ورحمه الله


اليك طلبك أخى الكريم حسب ما فهمت من شرح أو طلبك ..

كما وضحت حضرتك فى طلبك ..

شرح للبرنامج ..

اولا بوجد " كيباد مكونة من 16 مفتاح " ال 16 مفتاح مخصص مفتاح لكل ليد .. بوجد 15 ليد وبيتم التحكم فى الليدات على حسب المفتاح المضغوط عليه ..

من المفتاح رقم ( 1) الى المفتاح رقم ( 15 ) والمفتاح الاخير مخصص لإعادة اختيار ليد أخر ..

عند الضغط على أى مفتاح من المفاتيح ال 15 يضيئ الليد الموازى لرقم المفتاح وتتوقف الكيباد ولا تستجيب لأى مفتاح أخر ولا بجوز أختيار ليد أخر ..

وفى حالة أختيار ليد أخر بيتم الضغط على مفتاح ( الصفر ) لإطفاء الليد وتفعيل المفاتيح ليتم اختيار ليد جديد ..


اليك صورة للمشروع




كود البرنامج بالغة السى و بالمترجم الميكرو سى برو ..
.................................................. ........................
كود:
            
     //   keypadPort _  ON AND OFF  LED  //
          
          // ENG / ABDALLA HYGAZY //
          
       //   DATA / 2016 / 11 / 18   //
     
      char  keypadPort at PORTD;
      char led,goo_out=0,goo_en=0;

      void main() {
      Keypad_Init();
      TRISB =0; PORTB=0;
      TRISC =0; PORTC=0;

      while(goo_out==0){
      goo_en=0;
      led=0;
      while(!led){led = Keypad_Key_Click();}

  switch (led) {

  case  1: led = portb=1;   portc=0; goo_out=1;  break; // 1
  case  2: led = portb=2;   portc=0; goo_out=1;  break; // 2
  case  3: led = portb=4;   portc=0; goo_out=1;  break; // 3
  case  4: led = portb=8;   portc=0; goo_out=1;  break; // A
  case  5: led = portb=16;  portc=0; goo_out=1;  break; // 4
  case  6: led = portb=32;  portc=0; goo_out=1;  break; // 5
  case  7: led = portb=64;  portc=0; goo_out=1;  break; // 6
  case  8: led = portb=128; portc=0; goo_out=1;  break; // B
  case  9: led = portc=1;   portb=0; goo_out=1;  break; // 7
  case 10: led = portc=2;   portb=0; goo_out=1;  break; // 8
  case 11: led = portc=4;   portb=0; goo_out=1;  break; // 9
  case 12: led = portc=8;   portb=0; goo_out=1;  break; // C
  case 13: led = portc=16;  portb=0; goo_out=1;  break; // *
  case 14: led = portc=32;  portb=0; goo_out=1;  break; // 0
  case 15: led = portc=64;  portb=0; goo_out=1;  break; // #
  case 16: led = portc=128; portb=0; goo_out=1;  break; // D
  
  }
 //***************************************************************//
  
    while(goo_en==0){
   
      led=0;
      while(!led){led = Keypad_Key_Click();}
      switch (led) {
      case 14: led = portc=0; portb=0; goo_en=1; goo_out=0;  break; // 0

      }
     }
  //*****************************************************************//
  
  }
     
}

اليك المشروع للتحميل كود + المحكاة ..

https://drive.google.com/open?id=0Bx...0Rpc2w0bTlpMFk
__________________________________________________ __________

تحياتى لك وبالتوفيق



...........................

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 1 اعجاب
شكراً ياسين الحانوتي ( شكر العضو على هذه المشاركة )
اعجاب ياسين الحانوتي ( أعجبته المشاركة )
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

abo karem
:: مهندس ::
تاريخ التسجيل: May 2009
المشاركات: 46
نشاط [ abo karem ]
قوة السمعة:0
قديم 18-11-2016, 04:27 PM المشاركة 3   
افتراضي


قال رسول الله صلى الله عليه و سلم "" خيركم من تعلم القرآن و علمه ""
وانى اشهد الله انك لم تبخل بشىء من علمك لمساعدة الاخرين
فشكرا جزيلا لك
فعلا اخى الكريم هذا تقريبا هو المطلوب
ولو امكن حضرتك انا كنت طلبت ان الرقم المختار يظهر على الشاشة LCD
ومرة اخرى اشكرك على و قتك و مجهودك

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 0 اعجاب
شكراً عبدالله حجازى ( شكر العضو على هذه المشاركة )

abo karem
:: مهندس ::
تاريخ التسجيل: May 2009
المشاركات: 46
نشاط [ abo karem ]
قوة السمعة:0
قديم 18-11-2016, 04:31 PM المشاركة 4   
افتراضي


وممكن اطمع فى كرم حضرتك
برنامج بسيط لعداد تنازلى من 99 الى 0 باستخدام 7segmen , pic16f877a , وعند الانتهاء يضىء LED


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 19-11-2016, 12:42 AM المشاركة 5   
افتراضي اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا وزدنا علما


قال رسول الله صلى الله عليه و سلم "" خيركم من تعلم القرآن و علمه ""
وانى اشهد الله انك لم تبخل بشىء من علمك لمساعدة الاخرين
فشكرا جزيلا لك
فعلا اخى الكريم هذا تقريبا هو المطلوب
ولو امكن حضرتك انا كنت طلبت ان الرقم المختار يظهر على الشاشة LCD
ومرة اخرى اشكرك على و قتك و مجهودك
العفو أخى الكريم ..فقط اريد الدعاء للتوفيق والتقدم فى العلم ..

أخى الكريم لقد تم اضافة الشاشة للمشروع ..

واليك الصورة ..




كود البرنامج ..

كود:
            
   // <<***  keypadPort _  ON AND OFF  LED  ****>> //
  //  *****      ENG / ABDALLA HYGAZY       ****** //
  //  *****      DATA / 2016 / 11 / 18      ***** //
       
     // Lcd pinout settings
 #define SHOW  inttostr(pot,potstring); Lcd_Out(2, 7,potstring );
  sbit LCD_RS at RB5_bit;
  sbit LCD_EN at RB4_bit;
  sbit LCD_D7 at RB0_bit;
  sbit LCD_D6 at RB1_bit;
  sbit LCD_D5 at RB2_bit;
  sbit LCD_D4 at RB3_bit;
// Pin direction
  sbit LCD_RS_Direction at TRISB5_bit;
  sbit LCD_EN_Direction at TRISB4_bit;
  sbit LCD_D7_Direction at TRISB0_bit;
  sbit LCD_D6_Direction at TRISB1_bit;
  sbit LCD_D5_Direction at TRISB2_bit;
  sbit LCD_D4_Direction at TRISB3_bit;
//***********************************//
  char  keypadPort at PORTD;
  char led,goo_out=0,goo_en=0;
  int pot=0;
  char potstring[16];
 //************************************//
      void main() {
      Keypad_Init();
      TRISB =0; PORTB=0;
      TRISC =0; PORTC=0;
      TRISA =0; PORTA=0;
      TRISE =0; PORTE=0;
      adcon1=0x06;
      Lcd_Init();
//************-----------***************//
      Lcd_Cmd(_LCD_CLEAR);
      Lcd_Cmd(_LCD_CURSOR_OFF);
      Lcd_Out(1, 3, "Hello!");
      delay_ms(1000);
      Lcd_Cmd(_LCD_CLEAR);
      Lcd_Out(1, 2, "The keyboard");
      Lcd_Out(2, 3, "is now ready");
      delay_ms(1500);
       Lcd_Cmd(_LCD_CLEAR);
//************-----------****************//
   while(goo_out==0){
      goo_en=0; pot=0; led=0;
      Lcd_Out(1, 1, "function key led");
      Lcd_Out(2, 1, "LED ON  (   )");
      
  while(!led){led = Keypad_Key_Click();}
  switch (led) {
  case  1: led = porta=1;   portc=0; porte=0; goo_out=1; pot=1;  SHOW  break; // 1
  case  2: led = porta=2;   portc=0; porte=0; goo_out=1; pot=2;  SHOW break; // 2
  case  3: led = porta=4;   portc=0; porte=0; goo_out=1; pot=3;  SHOW break; // 3
  case  4: led = porta=8;   portc=0; porte=0; goo_out=1; pot=4;  SHOW break; // A
  case  5: led = porta=32;  portc=0; porte=0; goo_out=1; pot=5;  SHOW break; // 4
  case  6: led = porte=1;   portc=0; porta=0; goo_out=1; pot=6;  SHOW break; // 5
  case  7: led = porte=2;   portc=0; porta=0; goo_out=1; pot=7;  SHOW break; // 6
  case  8: led = porte=4;   portc=0; porta=0; goo_out=1; pot=8;  SHOW break; // B
  case  9: led = portc=1;   porta=0; porte=0; goo_out=1; pot=9;  SHOW break; // 7
  case 10: led = portc=2;   porta=0; porte=0; goo_out=1; pot=10; SHOW break; // 8
  case 11: led = portc=4;   porta=0; porte=0; goo_out=1; pot=11; SHOW break; // 9
  case 12: led = portc=8;   porta=0; porte=0; goo_out=1; pot=12; SHOW break; // C
  case 13: led = portc=16;  porta=0; porte=0; goo_out=1; pot=13; SHOW break; // *
//case 14: led = portc=32;  porta=0; porte=0; goo_out=1; pot=14; SHOW break; // 0
  case 15: led = portc=64;  porta=0; porte=0; goo_out=1; pot=15; SHOW break; // #
  case 16: led = portc=128; porta=0; porte=0; goo_out=1; pot=16; SHOW break; // D
  }
 //***************************************************************//
   while(goo_en==0){ led=0;
   
     while(!led){led = Keypad_Key_Click();}
     switch (led) {
     case 14: led = portc=0; portb=0; porta=0; porte=0;
     goo_en=1; goo_out=0;  break; // 0
  }
  }
  //*****************************************************************//

}
}

وايضاا المشروع للتحميل

https://drive.google.com/open?id=0Bx...GVET3dJSjFNODg


تحياتى وبالتوفيق ..

لا تتردد فى طلب أى مشروع أن شاء الله لو فى حدود علمى فلا مانع من عملة ..

جزاك الله ونحن الجنة ..


abo karem
:: مهندس ::
تاريخ التسجيل: May 2009
المشاركات: 46
نشاط [ abo karem ]
قوة السمعة:0
قديم 19-11-2016, 04:05 AM المشاركة 6   
افتراضي


شكرا استاذى الكرىم
هو دا المطلوب بالضبط
اخر طلب فى هذا المشروع سوف استخدم شاشة 4 * 20
و اريد ان اكتب مثلا LED ON ( ) فى السطر الثالث
وفى السطر الرابع يكتب محمد
وبتغير الرقم يتغير الاسم
ولا اريد ان اتعب حضرتك اعطينى مثال واحد او اثنين و انا اكمل


abo karem
:: مهندس ::
تاريخ التسجيل: May 2009
المشاركات: 46
نشاط [ abo karem ]
قوة السمعة:0
قديم 19-11-2016, 04:10 AM المشاركة 7   
افتراضي


وممكن اطمع فى كرم حضرتك
برنامج بسيط لعداد تنازلى من 99 الى 0 باستخدام 7segmen , pic16f877a , وعند الانتهاء يضىء LED


الصورة الرمزية عبدالله حجازى
عبدالله حجازى
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
نشاط [ عبدالله حجازى ]
قوة السمعة:111
قديم 19-11-2016, 04:56 AM المشاركة 8   
افتراضي اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا وزدنا علما


وممكن اطمع فى كرم حضرتك
برنامج بسيط لعداد تنازلى من 99 الى 0 باستخدام 7segmen , pic16f877a , وعند الانتهاء يضىء LED
طبعااا ولا يهمك أكون سعيد جدااا بطلبك نحن أخوه فى الله ..

جارى كتابة البرنامج ..

تحياتى لك

إضافة رد

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

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

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


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

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