اطلاعیه

Collapse
No announcement yet.

LCD ( دوستان هیچ کس نظری نداره)

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : LCD

    سلام:
    ممنون از راهنماییتون :bye
    ولی وقتی که یه عدد رو ویزنید (اولین عدد) به جای اینکه نمایش پیدا کنه می ره به خونه بعدی و از عدد دوم نمایش پیدا می کنه
    و نمی شه عددی مثل 11 یا 22 رو نمایش داد آخه دستور پایین مانع میشه
    if(P1!=a)
    {
    lcd();

    من برنامه رو پایین قرلر می دم

    #include <reg51.h>
    int w,z=0,a=0,s=1,b=0;
    sbit e =P3^0;
    sbit rs=P3^1;
    ///********************************************LCD*** ************************************************** ****///
    ///********************************************LCD*** ************************************************** ****///
    ///********************************************LCD*** ************************************************** ****///
    void delay_lcd ()
    {
    for (w=0;w<850;w++);
    }
    void instruction()
    {
    delay_lcd();
    P1=a;
    rs=0;
    e=1;
    e=0;
    }
    void send_dat()
    {
    delay_lcd();
    P1=a;
    rs=1;
    e=1;
    e=0;
    b=0;
    }
    void lcd()
    {
    while (s)
    {
    a=0x38;
    instruction();
    instruction();
    a=0x0f;
    instruction();
    a=0x01;
    instruction();
    a=0x02;
    instruction();
    s=0;
    }
    send_dat();
    }
    ///********************************************LCD*** ************************************************** ****///
    ///********************************************LCD*** ************************************************** ****///
    ///********************************************LCD*** ************************************************** ****///

    /************************************************** ************************************************** ********/

    ///********************************************KEY*** ************************************************** ****///
    ///********************************************KEY*** ************************************************** ****///
    ///********************************************KEY*** ************************************************** ****///
    void delay_key()
    {
    for (z=0;z<7000;z++);
    }
    void key()
    {
    P2=0b11111110;
    if (P2!=0b11111110)
    {
    delay_key();
    if (P2!=0b11111110)
    {
    switch (P2)
    {
    case 0b11110110:a="3";b=1;break;
    case 0b11101110:a="6";b=1;break;
    case 0b11011110:a="9";b=1;break;
    }
    }
    }
    P2=0b11111101;
    if (P2!=0b11111101)
    {
    delay_key();
    if (P2!=0b11111101)
    {
    switch (P2)
    {
    case 0b11110101:a="2";b=1;break;
    case 0b11101101:a="5";b=1;break;
    case 0b11011101:a="8";b=1;break;
    }
    }
    }
    P2=0b11111011;
    if (P2!=0b11111011)
    {
    delay_key();
    if (P2!=0b11111011)
    {
    switch (P2)
    {
    case 0b11110011:a="1";b=1;break;
    case 0b11101011:a="4";b=1;break;
    case 0b11011011:a="7";b=1;break;
    }
    }
    }
    }
    ///********************************************KEY*** ************************************************** ****///
    ///********************************************KEY*** ************************************************** ****///
    ///********************************************KEY*** ************************************************** ****///
    void main()
    {
    while (1)
    {
    key();
    if(P1!=a)
    {
    lcd();
    while(P1!=a)
    {
    }
    }
    }
    }




    دیدگاه


      #17
      پاسخ : LCD

      سلام:
      اگر برنامه رو به شکل پایین بنویسید مشکلتون حل میشه
      فقط من نفهمیدم علت اینکه یه خونه جابجا میشه جیه ولی بادادن فرمان0x10 به lcd اون مشکل حل شدش (اگر کسی علت رو می دونه محبت کنه بگه )

      #include <reg51.h>
      int w,z=0,a=0,s=1,b=0;
      sbit e =P3^0;
      sbit rs=P3^1;
      ///********************************************LCD*** ************************************************** ****///
      ///********************************************LCD*** ************************************************** ****///
      ///********************************************LCD*** ************************************************** ****///
      void delay_lcd ()
      {
      for (w=0;w<850;w++);
      }
      void instruction()
      {
      delay_lcd();
      P1=a;
      rs=0;
      e=1;
      e=0;
      }
      void send_dat()
      {
      delay_lcd();
      P1=a;
      rs=1;
      e=1;
      e=0;
      }
      void lcd()
      {
      while (s)
      {
      a=0x38;
      instruction();
      instruction();
      a=0x0f;
      instruction();
      a=0x02;
      instruction();
      a=0x10;
      instruction();
      s=0;

      }
      send_dat();
      }
      ///********************************************LCD*** ************************************************** ****///
      ///********************************************LCD*** ************************************************** ****///
      ///********************************************LCD*** ************************************************** ****///

      /************************************************** ************************************************** ********/

      ///********************************************KEY*** ************************************************** ****///
      ///********************************************KEY*** ************************************************** ****///
      ///********************************************KEY*** ************************************************** ****///
      void delay_key()
      {
      for (z=0;z<7000;z++);
      }
      void key()
      {
      P2=0b11111110;
      if (P2!=0b11111110)
      {
      delay_key();
      if (P2!=0b11111110)
      {
      switch (P2)
      {
      case 0b11110110:a="3";break;
      case 0b11101110:a="6";break;
      case 0b11011110:a="9";break;
      }
      }
      else
      {
      b=1;
      }
      }
      P2=0b11111101;
      if (P2!=0b11111101)
      {
      delay_key();
      if (P2!=0b11111101)
      {
      switch (P2)
      {
      case 0b11110101:a="2";break;
      case 0b11101101:a="5";break;
      case 0b11011101:a="8";break;
      }
      }
      else
      {
      b=1;
      }
      }
      P2=0b11111011;
      if (P2!=0b11111011)
      {
      delay_key();
      if (P2!=0b11111011)
      {
      switch (P2)
      {
      case 0b11110011:a="1";break;
      case 0b11101011:a="4";break;
      case 0b11011011:a="7";break;
      }
      }
      else
      {
      b=1;
      }
      }
      }
      ///********************************************KEY*** ************************************************** ****///
      ///********************************************KEY*** ************************************************** ****///
      ///********************************************KEY*** ************************************************** ****///
      void main()
      {

      while (1)
      {
      key();

      while (b)
      {
      lcd();
      b=0;
      }
      }
      }

      دیدگاه


        #18
        پاسخ : LCD

        سالام خدمت همه اساتید:
        یه سوال دیگه اگه بخواهیم یه عدد مثل 578965 رو که از نوع int هستش رو روی lcd نمایش بدیم باید چی کار کنیم

        دیدگاه


          #19
          پاسخ : LCD

          نوشته اصلی توسط جعفر
          سالام خدمت همه اساتید:
          یه سوال دیگه اگه بخواهیم یه عدد مثل 578965 رو که از نوع int هستش رو روی lcd نمایش بدیم باید چی کار کنیم

          دیدگاه


            #20
            پاسخ : LCD (کسی نیستش کمک کنه)

            سلام:
            دوستان هیچ کس نظری نداره :cry: :cry: :cry:

            دیدگاه


              #21
              پاسخ : LCD (دوستان هیچ کس نظری نداره)

              نوشته اصلی توسط جعفر
              سلام:
              دوستان هیچ کس نظری نداره :cry: :cry: :cry:

              دیدگاه

              لطفا صبر کنید...
              X