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

   

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



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

اعلانات

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


ممكن توضبح أكتر من كدة لأن مش فاهم يعنى ايه تغير الرقم مع الأسم ؟؟
يعنى عند ظهور الرقم 1 يظهر ahmed فى السطرالرابع للشاشة
يعنى عند ظهور الرقم 2 يظهر mohamed فى السطرالرابع للشاشة
يعنى عند ظهور الرقم 3 يظهر ali فى السطرالرابع للشاشة

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

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


يعنى عند ظهور الرقم 1 يظهر ahmed فى السطرالرابع للشاشة
يعنى عند ظهور الرقم 2 يظهر mohamed فى السطرالرابع للشاشة
يعنى عند ظهور الرقم 3 يظهر ali فى السطرالرابع للشاشة
السلام عليكم ..

تم اضافة الأسماء الى الكود ..

لاحظ الكود ..

كود:
             
   // <<***  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; Lcd_Out(3, 2, ">> MOHAMED <<"); SHOW  break; // 1
  case  2: led = porta=2;   portc=0; porte=0; goo_out=1; pot=2; Lcd_Out(3, 2, ">>  AHMED  <<"); SHOW break; // 2
  case  3: led = porta=4;   portc=0; porte=0; goo_out=1; pot=3; Lcd_Out(3, 2, ">>   ALI   <<"); SHOW break; // 3
  case  4: led = porta=8;   portc=0; porte=0; goo_out=1; pot=4; Lcd_Out(3, 2, ">> ABDALLA <<"); SHOW break; // A
  case  5: led = porta=32;  portc=0; porte=0; goo_out=1; pot=5; Lcd_Out(3, 2, ">>  MOHMOD <<"); 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; Lcd_Cmd(_LCD_CLEAR);     break; // 0
     
     
     

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

}
}

فقط من خلال هذا الأمر تستطيع اضافة الأسماء اللتى تريدها .. ومكان وضع هذا الأمر فى الكود لاحظ الذيادة اللتى وضعت على الكود وأنت تفهم مكان وضع هذا السطر ..
كود:
 Lcd_Out(3, 2, ">> MOHAMED <<");

تحياتى لك ..


صورة للمشروع



جارى كتابة برنامج العداد


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


السلام عليكم ورحمه الله ..

الحمد لله لقد تم الإنتهاء من كتاية برنامج العداد ..

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




هذا العداد هو عداد تصاعدى أو تنازلى حسب اختيارك للعداد ..

يوجد مفاتيح مكتوب أمام كل مفتاح الوظيفة المخصصة لة ..

مثال أو شرح للعداد ..

من خلال مفتاحان "" أختار العدد "" يمكنك أختيار رقم ما بين ( 1 ) أو ( 99 ) وبعد ذالك أضغط على مفتاح "" تصاعدى "" وتلاحظ أن العداد قد تم تصفير الشاشات وبدأ فى العد التصاعدى وأيضااا يوجد لدات للدالة على حالة العداد لاحظ الصورة .. وعند وصول العداد الى الرقم اللذى تم ادخالة تلاحظ وقوف العداد وأضاء ليد : أنتهى الوقت .. وللعد مرة أخرى بنفس الأرقام المدخلة أضغط على مفتاح "" تضاعدى " ليبدأ العد من جديد ..

وهناك مفتاح " تصفير العداد " لكى تبدل حالة العداد من تصاعدى الى تنازاى أضغط على " تصفير " العداد .. ولأختيار عداد تنازلى يبدأ من رقم ( 99 ) الى ( 00 ) أضغط على " تنازلى " ولاحظ عندما يصل العداد الى ( 00 ) يضئ ليد أنتهى الوقت ..

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

كود:
    // ENG ABDALLA HYGAZY  //
  
   // TEMR ++  7SEGMENT    //
   
  //  DATDA / 2016 / 11 / 20 //
  
  #define LED_OF PORTD.F0=0;

unsigned short mask(unsigned short num);
unsigned int SEGMENT1=0,SEGMENT2=0,SEGMENT3=0,SEGMENT4=0,X=0;
unsigned int SEGcopy1=0,SEGcopy2=0;

  void interrupt(){
    porta=1;
    portb=mask(SEGMENT1);
    delay_ms(2);
    porta=2;
    portb=mask(SEGMENT2);
    delay_ms(2);
    INTCON=0b00100000;
    TMR0=0;
}
 //-------------------------------------------------------------//

    void SEGMENT_up() {
      SEGMENT1=0;  SEGMENT2=0; LED_OF PORTD.F3=0;
      while(X==0){
      if( PORTC.F2==1 ) { delay_ms(100);  X=1;   }
      PORTD.F4=1; PORTD.F1=1;
      delay_ms(100);
      SEGMENT2++;
      if( SEGMENT2==10){SEGMENT2=0;SEGMENT1++;  }
      if( SEGMENT1==10){SEGMENT1=0;  }
      if( SEGMENT1&&SEGMENT2==10)
      { SEGMENT1=0; SEGMENT2=0; }
      if(SEGMENT2==SEGcopy2&&SEGMENT1==SEGcopy1){PORTD.F0=1; X=1;  }
   }
  }
//-------------------------------------------------------------------//
   void SEGMENT_dwen() {
     SEGMENT2=9;  SEGMENT1=9; X=0; LED_OF PORTD.F3=0;
     while(X==0){
     if( PORTC.F2==1 ) { delay_ms(100);  X=1;   }
     PORTD.F4=1;  PORTD.F2=1;
     delay_ms(100);
     SEGMENT2--;
     if( SEGMENT2<1){SEGMENT2=9;SEGMENT1--;  }
     if( SEGMENT1<1){SEGMENT1=9;  }
     if( SEGMENT1==9&&SEGMENT2==9)
     { SEGMENT1=9; SEGMENT2=9; PORTD.F0=1; X=1; }
  }
 }

//------------------------------------------------------//
     void main() {
   OPTION_REG=0b10000101;
   INTCON=0b10100000;
   TMR0=217;
   TRISB=0;   PORTB=0;   TRISD=0; PORTD=0;
   TRISC=255; PORTC=0;   TRISA=0; PORTA=0;
   
    while(1){
    PORTD.F4=0;  PORTD.F3=1; PORTD.F1=0; PORTD.F2=0;

    if( PORTC.F3==1 ) { delay_ms(100); SEGMENT_up(); X=0;   }
    if( PORTC.F4==1 ) { delay_ms(100); SEGMENT_dwen();X=0; }
     if(PORTC.F0==1){SEGMENT2++; delay_ms(100);
     if( SEGMENT2==10){SEGMENT2=0;SEGMENT1++;  }
     if( SEGMENT1==10){SEGMENT1=0;  }
     if( SEGMENT1&&SEGMENT2==10)
     { SEGMENT1=0; SEGMENT2=0; }
       SEGcopy1=SEGMENT1;  SEGcopy2=SEGMENT2;
   }
    //****************************************//
     if(PORTC.F1==1){
     delay_ms(100);
     SEGMENT2--;
     if( SEGMENT2<1){SEGMENT2=9;SEGMENT1--;  }
     if( SEGMENT1<1){SEGMENT1=9;  }
     if( SEGMENT1&&SEGMENT2==0)
     { SEGMENT1=9; SEGMENT2=9; }
     SEGcopy1=SEGMENT1;  SEGcopy2=SEGMENT2;
    }
//*******************************************//
   
    if(PORTC.F5==1){SEGcopy1=SEGMENT1=0; SEGcopy2=SEGMENT2=0; X=0; LED_OF }

  }
 }
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;
}
}


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

رابط التحميل .. https://drive.google.com/open?id=0Bx...3hZUHBpSzlWS28

تحياتى لك ..

لو محتاج أى توضيح لا تتردد ..

بالتوفيق


التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 20-11-2016 الساعة 05:10 AM

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


ربنا يبارك فى حضرتك
بالنسبة لمشروع الشاشة
بسم الله ماشاء الله هو دا المطلوب بالضبط
بالنسبة لمشروع العداد
حضرتك لم تترك شىء فى نفسى الا وعملته
لم تعطينى فرصه اطلب حضرتك عملت كل حاجة
الف شكر
و ربنا يجعله فى ميزان حسناتك


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


ممكن حضرتك ترشح لى كتاب او موقع اقدر اتعلم منه واقدر اوصل ل 1% من مستوى حضرتك


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


ممكن حضرتك ترشح لى كتاب او موقع اقدر اتعلم منه واقدر اوصل ل 1% من مستوى حضرتك
السلام عليكم ورحمه الله ..

اولا .. لا شكر على واجب أنا سعيد جدااا بأن اقدم كل المساعد للجميع ...

أخى الكريم لو تحب أنا معك حتى تستطيع أن تبدأ الدخول الى عالم البرمجة ..

أحب أقول لحضرتك كل ما تعلمتة الفضل فية ..لله .. و لمنتدانا الغالى القرية الإلكترونية ..

أنا والله من حوالى سنتين كنت لا أعلم الا القليل عن .. البرمجة ..

وأحب أقول لحضرتك .. بالاستعانة بالله .. و الصبر والممارسة والخبرة تستطيع الوصول الى الهدف ..

لا تقلق ..

أنا مستعد أن ابدأ معك من البداية من الصفر ..

واولا ..

انصحك بمتابعة "" هذة الدورة .. وهى من أحسن الدورات .. شرح .. المهندس القدير "" أحمد سمير فايد ...

اليك رابط الدورة ..

أسرع طريق لإحتراف برمجة الـ PIC بإستخدام MikroC
http://www.qariya.info/vb/showthread.php?t=40760

بالتوفيق ولا تتردد فى السؤال عن اى نقطه ترد توضيح لها ..

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


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


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



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