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

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

فيصل الريامي
:: مهندس ::
تاريخ التسجيل: Dec 2018
المشاركات: 36
نشاط [ فيصل الريامي ]
قوة السمعة:0
قديم 15-08-2019, 02:47 PM المشاركة 1   
افتراضي مطلوب كود التبديل بين الخانات على LCD بواسطه الكورسر Twitter FaceBook Google+



مساء الخير أعزائي،،
من فضلكم محتاج كود بالميكروسي يوضح لي كيفيه التبديل بين الخانات في LCD وتعديل القيم عليها،، ازيد او انقص من القيم..
ولكم جزيل الشكر.

اعلانات

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


مساء الخير أعزائي،،
من فضلكم محتاج كود بالميكروسي يوضح لي كيفيه التبديل بين الخانات في LCD وتعديل القيم عليها،، ازيد او انقص من القيم..
ولكم جزيل الشكر.
السلام عليكم ورحمه الله

افضل طريقه هي استخدام دوال فرعيه لتغير القيم واجعل كل دالة للتحكم في متغير أو استخدم
كود:
while(1);
مشروطه


لقد كتبت لك مثال للفكرة أعلم انني استخدمت أوامر الكتابة علي الشاشة بشكل متكرر وهذا مقصود لكي أوصل لك المعلومه كامله يمكنك التعديل واقتصاص بعض الأوامر ان احببت

اليك صورة للمحكاة والكود






كود:
  
  
    // ENG / ABDALLA HEGAZY **
    // DATA / 2019/8/15      **

 // Lcd pinout settings
  sbit LCD_RS at RB0_bit;
  sbit LCD_EN at RB1_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;

// Pin direction
  sbit LCD_RS_Direction at TRISB0_bit;
  sbit LCD_EN_Direction at TRISB1_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;
   #define  D3  delay_ms(300);

  unsigned Temp1=0,Temp2=0,Temp3=0,Temp4=0,START=0;

     void set()
     {
     delay_ms(1000);

      Lcd_Out(1, 1, "Te1:  < /Te2:   ");
       while(START==0)
    {
       LCD_Chr(1, 14, 48 + (( Temp2 / 10) % 10));
       LCD_Chr(1, 15, 48 + (  Temp2 % 10));

       LCD_Chr(1, 5, 48 + (( Temp1 / 10) % 10));
       LCD_Chr(1, 6, 48 + (  Temp1 % 10));
       if(PORTD.F0==1)    {  Temp1++; D3  }
       if(PORTD.F1==1)    {  Temp1--; D3  }
       if(PORTD.F2==1)    {  delay_ms(300); START=1;   }
    }  START=0;

       Lcd_Cmd(_LCD_CLEAR);
       Lcd_Out(1, 1, "Te1:    /Te2:  <");
       Lcd_Out(2, 1, "Te3:    /Te4:   ");
       while(START==0)
    {
    
       LCD_Chr(1, 5, 48 + (( Temp1 / 10) % 10));
       LCD_Chr(1, 6, 48 + (  Temp1 % 10));
    
       LCD_Chr(1, 14, 48 + (( Temp2 / 10) % 10));
       LCD_Chr(1, 15, 48 + (  Temp2 % 10));
       
       LCD_Chr(2, 5, 48 + (( Temp3 / 10) % 10));
       LCD_Chr(2, 6, 48 + (  Temp3 % 10));
       
       if(PORTD.F0==1)    {  Temp2++; D3  }
       if(PORTD.F1==1)    {  Temp2--; D3  }
       if(PORTD.F2==1)    {  delay_ms(300); START=1;   }
    }  START=0;


   //------------------------------------------------------//
       Lcd_Cmd(_LCD_CLEAR);
      Lcd_Out(1, 1, "Te1:    /Te2:   ");
      Lcd_Out(2, 1, "Te3:  < /Te4:   ");
       while(START==0)
    {
       LCD_Chr(1, 5, 48 + (( Temp1 / 10) % 10));
       LCD_Chr(1, 6, 48 + (  Temp1 % 10));

       LCD_Chr(1, 14, 48 + (( Temp2 / 10) % 10));
       LCD_Chr(1, 15, 48 + (  Temp2 % 10));
    
    
       LCD_Chr(2, 5, 48 + (( Temp3 / 10) % 10));
       LCD_Chr(2, 6, 48 + (  Temp3 % 10));
       
       LCD_Chr(2, 14, 48 + (( Temp4 / 10) % 10));
       LCD_Chr(2, 15, 48 + (  Temp4 % 10));
       
       if(PORTD.F0==1)    {  Temp3++; D3  }
       if(PORTD.F1==1)    {  Temp3--; D3  }
       if(PORTD.F2==1)    {  delay_ms(300); START=1;   }
    }  START=0;

       Lcd_Cmd(_LCD_CLEAR);
      Lcd_Out(1, 1, "Te1:    /Te2:   ");
      Lcd_Out(2, 1, "Te3:    /Te4:  <");
       while(START==0)
    {
    
       LCD_Chr(1, 5, 48 + (( Temp1 / 10) % 10));
       LCD_Chr(1, 6, 48 + (  Temp1 % 10));

       LCD_Chr(1, 14, 48 + (( Temp2 / 10) % 10));
       LCD_Chr(1, 15, 48 + (  Temp2 % 10));


       LCD_Chr(2, 5, 48 + (( Temp3 / 10) % 10));
       LCD_Chr(2, 6, 48 + (  Temp3 % 10));
    
       LCD_Chr(2, 14, 48 + (( Temp4 / 10) % 10));
       LCD_Chr(2, 15, 48 + (  Temp4 % 10));
       if(PORTD.F0==1)    {  Temp4++; D3  }
       if(PORTD.F1==1)    {  Temp4--; D3  }
       if(PORTD.F2==1)    {  delay_ms(300); START=1;   }
    }  START=0;


       Lcd_Cmd(_LCD_CLEAR);
      Lcd_Out(1, 1, "Te1:    /Te2:   ");
      Lcd_Out(2, 1, "Te3:    /Te4:   ");


    }


       void main() {
       TRISB = 0;  PORTB=0;
       TRISD = 255;  PORTD=0;
        ADCON1 = 0x0F;  // Configure all ports with analog function as digital

        Lcd_Init();
        Lcd_Cmd(_LCD_CLEAR);
        Lcd_Cmd(_LCD_CURSOR_OFF);
        Lcd_Out(1, 1, "Te1:    /Te2:   ");
        Lcd_Out(2, 1, "Te3:    /Te4:   ");

        while(1){
      if(PORTD.F2==1){ delay_ms(250); set();}

      //***********************************
       LCD_Chr(1, 5, 48 + ((Temp1 / 10) % 10));
       LCD_Chr(1, 6, 48 + (Temp1 % 10));
      //***********************************

       //***********************************
       LCD_Chr(1, 14, 48 + ((Temp2 / 10) % 10));
       LCD_Chr(1, 15, 48 + (Temp2 % 10));
      //***********************************


      //***********************************
       LCD_Chr(2, 5, 48 + ((Temp3 / 10) % 10));
       LCD_Chr(2, 6, 48 + (Temp3 % 10));
      //***********************************

      //***********************************
       LCD_Chr(2, 14, 48 + ((Temp4 / 10) % 10));
       LCD_Chr(2, 15, 48 + (Temp4 % 10));
      //***********************************





 }
 }


ملف المحكاة + الكود للتحميل

https://drive.google.com/open?id=1ym...5KYmMRw2174yeY


بالتوفيق


التعديل الأخير تم بواسطة : عبدالله حجازى بتاريخ 16-08-2019 الساعة 01:48 AM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

فيصل الريامي
:: مهندس ::
تاريخ التسجيل: Dec 2018
المشاركات: 36
نشاط [ فيصل الريامي ]
قوة السمعة:0
قديم 16-08-2019, 02:16 AM المشاركة 3   
افتراضي


صباح الخير استاذي المهندس عبدالله..
اشكرك جزيل الشكر.
هذا ما كنت احتاج اليه فعلا..


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

افضل طريقه هي استخدام دوال فرعيه لتغير القيم واجعل كل دالة للتحكم في متغير أو استخدم
كود:
while(1);
مشروطه


لقد كتبت لك مثال للفكرة أعلم انني استخدمت أوامر الكتابة علي الشاشة بشكل متكرر وهذا مقصود لكي أوصل لك المعلومه كامله يمكنك التعديل واقتصاص بعض الأوامر ان احببت

اليك صورة للمحكاة والكود






كود:
  
  
    // ENG / ABDALLA HEGAZY **
    // DATA / 2019/8/15      **

 // Lcd pinout settings
  sbit LCD_RS at RB0_bit;
  sbit LCD_EN at RB1_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;

// Pin direction
  sbit LCD_RS_Direction at TRISB0_bit;
  sbit LCD_EN_Direction at TRISB1_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;
   #define  D3  delay_ms(300);

  unsigned Temp1=0,Temp2=0,Temp3=0,Temp4=0,START=0;

     void set()
     {
     delay_ms(1000);

      Lcd_Out(1, 1, "Te1:  < /Te2:   ");
       while(START==0)
    {
       LCD_Chr(1, 14, 48 + (( Temp2 / 10) % 10));
       LCD_Chr(1, 15, 48 + (  Temp2 % 10));

       LCD_Chr(1, 5, 48 + (( Temp1 / 10) % 10));
       LCD_Chr(1, 6, 48 + (  Temp1 % 10));
       if(PORTD.F0==1)    {  Temp1++; D3  }
       if(PORTD.F1==1)    {  Temp1--; D3  }
       if(PORTD.F2==1)    {  delay_ms(300); START=1;   }
    }  START=0;

       Lcd_Cmd(_LCD_CLEAR);
       Lcd_Out(1, 1, "Te1:    /Te2:  <");
       Lcd_Out(2, 1, "Te3:    /Te4:   ");
       while(START==0)
    {
    
       LCD_Chr(1, 5, 48 + (( Temp1 / 10) % 10));
       LCD_Chr(1, 6, 48 + (  Temp1 % 10));
    
       LCD_Chr(1, 14, 48 + (( Temp2 / 10) % 10));
       LCD_Chr(1, 15, 48 + (  Temp2 % 10));
       
       LCD_Chr(2, 5, 48 + (( Temp3 / 10) % 10));
       LCD_Chr(2, 6, 48 + (  Temp3 % 10));
       
       if(PORTD.F0==1)    {  Temp2++; D3  }
       if(PORTD.F1==1)    {  Temp2--; D3  }
       if(PORTD.F2==1)    {  delay_ms(300); START=1;   }
    }  START=0;


   //------------------------------------------------------//
       Lcd_Cmd(_LCD_CLEAR);
      Lcd_Out(1, 1, "Te1:    /Te2:   ");
      Lcd_Out(2, 1, "Te3:  < /Te4:   ");
       while(START==0)
    {
       LCD_Chr(1, 5, 48 + (( Temp1 / 10) % 10));
       LCD_Chr(1, 6, 48 + (  Temp1 % 10));

       LCD_Chr(1, 14, 48 + (( Temp2 / 10) % 10));
       LCD_Chr(1, 15, 48 + (  Temp2 % 10));
    
    
       LCD_Chr(2, 5, 48 + (( Temp3 / 10) % 10));
       LCD_Chr(2, 6, 48 + (  Temp3 % 10));
       
       LCD_Chr(2, 14, 48 + (( Temp4 / 10) % 10));
       LCD_Chr(2, 15, 48 + (  Temp4 % 10));
       
       if(PORTD.F0==1)    {  Temp3++; D3  }
       if(PORTD.F1==1)    {  Temp3--; D3  }
       if(PORTD.F2==1)    {  delay_ms(300); START=1;   }
    }  START=0;

       Lcd_Cmd(_LCD_CLEAR);
      Lcd_Out(1, 1, "Te1:    /Te2:   ");
      Lcd_Out(2, 1, "Te3:    /Te4:  <");
       while(START==0)
    {
    
       LCD_Chr(1, 5, 48 + (( Temp1 / 10) % 10));
       LCD_Chr(1, 6, 48 + (  Temp1 % 10));

       LCD_Chr(1, 14, 48 + (( Temp2 / 10) % 10));
       LCD_Chr(1, 15, 48 + (  Temp2 % 10));


       LCD_Chr(2, 5, 48 + (( Temp3 / 10) % 10));
       LCD_Chr(2, 6, 48 + (  Temp3 % 10));
    
       LCD_Chr(2, 14, 48 + (( Temp4 / 10) % 10));
       LCD_Chr(2, 15, 48 + (  Temp4 % 10));
       if(PORTD.F0==1)    {  Temp4++; D3  }
       if(PORTD.F1==1)    {  Temp4--; D3  }
       if(PORTD.F2==1)    {  delay_ms(300); START=1;   }
    }  START=0;


       Lcd_Cmd(_LCD_CLEAR);
      Lcd_Out(1, 1, "Te1:    /Te2:   ");
      Lcd_Out(2, 1, "Te3:    /Te4:   ");


    }


       void main() {
       TRISB = 0;  PORTB=0;
       TRISD = 255;  PORTD=0;
        ADCON1 = 0x0F;  // Configure all ports with analog function as digital

        Lcd_Init();
        Lcd_Cmd(_LCD_CLEAR);
        Lcd_Cmd(_LCD_CURSOR_OFF);
        Lcd_Out(1, 1, "Te1:    /Te2:   ");
        Lcd_Out(2, 1, "Te3:    /Te4:   ");

        while(1){
      if(PORTD.F2==1){ delay_ms(250); set();}

      //***********************************
       LCD_Chr(1, 5, 48 + ((Temp1 / 10) % 10));
       LCD_Chr(1, 6, 48 + (Temp1 % 10));
      //***********************************

       //***********************************
       LCD_Chr(1, 14, 48 + ((Temp2 / 10) % 10));
       LCD_Chr(1, 15, 48 + (Temp2 % 10));
      //***********************************


      //***********************************
       LCD_Chr(2, 5, 48 + ((Temp3 / 10) % 10));
       LCD_Chr(2, 6, 48 + (Temp3 % 10));
      //***********************************

      //***********************************
       LCD_Chr(2, 14, 48 + ((Temp4 / 10) % 10));
       LCD_Chr(2, 15, 48 + (Temp4 % 10));
      //***********************************





 }
 }


ملف المحكاة + الكود للتحميل

https://drive.google.com/open?id=1ym...5KYmMRw2174yeY


بالتوفيق

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

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

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

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


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

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