اطلاعیه

Collapse
No announcement yet.

کمک در راه اندازی lcd گرافیکی

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

    کمک در راه اندازی lcd گرافیکی

    سلام
    من در حال کار با lcd گرافیکی ts12864a-2 v1.1 میکروی avr و برنامه کدیوژن هستم ولی مشکلی دارم
    در کتاب آموزش میکرو avr به زبان c از حمید بادامی نجات برنامه یک lcd گرافیکی موجود است که برنامه آن در
    پروتوس اجرا میشود ولی وقتی روی برد برد میبندم جواب نمیده نمی دمنم مشکل از چی است .
    لطفا اگر اطلاعی از راه اندازی ان دارید با من در میان بگذارید.
    برنامه ان به قرار زیر است.

    /************************************************** ***
    Project : GLCD_1pic
    Version : 2
    Date : 1386/9/9
    Author : hamid
    Company : badami

    Chip type : ATmega16
    Program type : Application
    Clock frequency : 16.000000 MHz
    Memory model : Small
    External SRAM size : 0
    Data Stack size : 256
    ************************************************** ***/
    #include <mega16.h>
    #include <delay.h>

    #define LCD_E PORTC.7
    #define LCD_RW PORTC.6
    #define LCD_RS PORTC.5
    #define LCD_CS1 PORTC.4
    #define LCD_CS2 PORTC.3
    #define LCD_RST PORTC.2
    const unsigned char ATMEl[1024] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
    0x80, 0x00, 0x40, 0x40, 0x00, 0x20, 0x00, 0x10, 0x10, 0xC0, 0x08,
    0x08, 0x04, 0x84, 0x80, 0x00, 0x00, 0xBE, 0x8C, 0x00, 0x00, 0xCC,
    0x00, 0x00, 0x00, 0x84, 0x00, 0x40, 0x40, 0x04, 0x24, 0x04, 0x00,
    0x10, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x81, 0xC1, 0xC0, 0x20, 0x18,
    0x38, 0x70, 0x62, 0x66, 0x26, 0x36, 0xB6, 0x1E, 0x1C, 0x1C, 0x0C,
    0x0C, 0xC8, 0xC8, 0xC0, 0x43, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00,
    0xC2, 0xC6, 0xE6, 0xE6, 0x36, 0x36, 0x1E, 0x1C, 0x1C, 0x1C, 0x19,
    0x18, 0x08, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xC0, 0xC0, 0x60, 0x20,
    0x30, 0x18, 0x00, 0x07, 0x07, 0x0F, 0x0F, 0x02, 0x10, 0x30, 0x30,
    0x10, 0x00, 0x80, 0x80, 0x80, 0xC0, 0x49, 0x60, 0x30, 0x30, 0x08,
    0x08, 0x08, 0x88, 0x80, 0x42, 0x0E, 0x06, 0x02, 0x03, 0x43, 0xC7,
    0x07, 0x03, 0x00, 0x00, 0x20, 0x00, 0x80, 0x80, 0x46, 0x06, 0x06,
    0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
    0x02, 0x03, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01,
    0x01, 0x01, 0x03, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x03, 0x03,
    0x09, 0x78, 0x54, 0x04, 0x00, 0x00, 0x00, 0x08, 0x08, 0x0C, 0x04,
    0x06, 0x06, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x08, 0x00, 0x7C, 0xF8, 0x00, 0x00, 0x00, 0x4C, 0x48,
    0x20, 0x20, 0x00, 0x10, 0x90, 0x80, 0x08, 0x00, 0x04, 0x00, 0x00,
    0x00, 0x9C, 0x08, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x3E, 0x00, 0x00, 0xDB, 0x00, 0x00, 0x80, 0x40, 0x60, 0x30, 0x10,
    0x00, 0x00, 0x00, 0xF8, 0xE0, 0x00, 0x1C, 0x7C, 0x00, 0x00, 0x0C,
    0xCC, 0x00, 0x00, 0x08, 0x08, 0x80, 0x40, 0x60, 0xC0, 0x80, 0x80,
    0xC2, 0x42, 0xC0, 0xC0, 0xC0, 0x60, 0xC0, 0xC3, 0x5C, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x80, 0x86, 0x06, 0x46, 0x02, 0x03, 0x06, 0x04, 0x04,
    0x06, 0x03, 0x03, 0x06, 0x06, 0x06, 0x80, 0xC0, 0x40, 0x20, 0x18,
    0x1E, 0x3E, 0x3F, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10,
    0x08, 0x08, 0x00, 0x00, 0x00, 0x48, 0x08, 0x20, 0x20, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x0C, 0x04, 0x04,
    0x06, 0x02, 0x03, 0x01, 0x01, 0x00, 0x00, 0x04, 0x00, 0x02, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00
    };


    unsigned char x,y,cs;
    unsigned int ptr;

    void LCD(char DATA)
    {
    PORTA=DATA;
    delay_us(10);
    LCD_E=1;
    delay_us(10);
    LCD_E=0;
    delay_us(10);
    }

    void salar(void)
    {
    LCD_E=0;
    LCD_RW=0;
    delay_ms(10);
    LCD_RST=1;
    ptr=0;
    for(cs=0;cs<=1;cs++)
    {
    LCD_RS=0;
    if(cs==1)
    {
    LCD_CS1=0;
    LCD_CS2=1;
    delay_ms(1);
    }
    else
    {
    LCD_CS1=1;
    LCD_CS2=0;
    }
    LCD(0x3F);
    LCD(0xB8);
    LCD(0xC0);
    delay_ms(1);
    for(x=0;x<=7;x++)
    {
    LCD_RS=0;
    LCD(0x40);
    LCD(0xB8 + x);
    LCD_RS=1;

    for(y=0;y<=63;y++)
    {
    LCD(ATMEl[ptr]);
    ptr++;
    }
    }
    }
    LCD_CS1=0;
    LCD_CS2=0;
    }
    void main(void){
    DDRA=0xFF;
    DDRC=0xFF;
    while(1){
    salar();
    delay_ms(5000);
    };
    }

    #2
    پاسخ : کمک در راه اندازی lcd گرافیکی

    م جواب نمیده نمی دمنم مشکل از چی است
    مشکلات که زیاد میتونه باشه!! (البته به احتمال خیلی زیاد مشکلتون سخت افزاریه)
    - شما از پورت C استفاده کردید، JTAG رو فعال کردید؟
    - اتصالاتتون درسته؟ (اگه روی برد بورد میبندید حتما توصیه میکنم مدار رو باز کنید و دوباره ببندید،البته اینبار با دقت بیشتر!)
    اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

    دیدگاه


      #3
      پاسخ : کمک در راه اندازی lcd گرافیکی

      از پاسخ شما متشکرم
      من JTAG رو غیر فعال کردم و در ضمن 3 بار تا به حال این مدار رو بستم ولی جواب نگرفتم
      اگر نمونه برنامه برای راه اندازی این lcd با زبان c دارید برای من ارسال کنید
      متشکرم

      دیدگاه


        #4
        پاسخ : کمک در راه اندازی lcd گرافیکی

        من برنامه شما را تست کردم کاملا جواب داد مشکلی نداشت کلمه بسم الله الرحمن الرحیم بود

        دیدگاه


          #5
          پاسخ : کمک در راه اندازی lcd گرافیکی

          نوشته اصلی توسط ☺بابابرقی☺
          مشکلات که زیاد میتونه باشه!! (البته به احتمال خیلی زیاد مشکلتون سخت افزاریه)
          - شما از پورت C استفاده کردید، JTAG رو فعال کردید؟
          - اتصالاتتون درسته؟ (اگه روی برد بورد میبندید حتما توصیه میکنم مدار رو باز کنید و دوباره ببندید،البته اینبار با دقت بیشتر!)
          سلام جناب آقای بابا برقی :rolleyes:
          تو تاپیک ال سی دی ها با یک نفر صحبت کردم گفتند شما خدای این کارید
          ولی گفتن کمی سرت شلوغ هست یکی از بچه ها یه مثال برام زد من نفهمیدم
          اگر وقت داشتی یه مثال ساده با زبان سی بزار تا یاد بگیریم :mrgreen:

          دیدگاه


            #6
            پاسخ : کمک در راه اندازی lcd گرافیکی

            نوشته اصلی توسط rezarezaast
            از پاسخ شما متشکرم
            من JTAG رو غیر فعال کردم و در ضمن 3 بار تا به حال این مدار رو بستم ولی جواب نگرفتم
            اگر نمونه برنامه برای راه اندازی این lcd با زبان c دارید برای من ارسال کنید
            متشکرم
            متاسفانه من امکان تست این برنامه رو ندارم اما جناب chernobyl تست کردند و نتیجه گرفتند، پس برنامه مشکلی نداره
            نحوه اتصالاتتون هم که درسته؟(CS,RST,RS,...)
            اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

            دیدگاه


              #7
              پاسخ : کمک در راه اندازی lcd گرافیکی

              نوشته اصلی توسط mmh1
              سلام جناب آقای بابا برقی :rolleyes:
              تو تاپیک ال سی دی ها با یک نفر صحبت کردم گفتند شما خدای این کارید
              ولی گفتن کمی سرت شلوغ هست یکی از بچه ها یه مثال برام زد من نفهمیدم
              اگر وقت داشتی یه مثال ساده با زبان سی بزار تا یاد بگیریم :mrgreen:
              سلام
              می بخشید،این روزا به دلیل مشغله کمتر به سایت سر میزنم
              دوستان لطف دارند،اما حتما منظور ایشون یک نفر دیگه بوده :agree:
              به عنوان یک مثال ساده میتونید همین مثال پست اول رو در نظر بگیرید
              در این مثال یک رشته به نام ATMEl تعریف شده که احتمالا توسط یکی از نرم افزارهای تبدیل عکس به کدهگز تولید شده و به قول دوستمون ت کلمه بسم الله الرحمن الرحیم رو چاپ میکنه

              یک تابع به نام LCD تعریف شده که میاد و دیتا رو به پورت A منتقل میکنه و از اونجا به 8پین دیتای LCD منتقل میشه
              یک تابع دیگه هم داریم به نام salar !! این تابع اصلیمونه که در اصل همون تابع درایور LCD هستش، حالا این که مثلا چرا مقادیر
              کد:
                LCD(0x3F);    
                 LCD(0xB8);    
                 LCD(0xC0);
              به lcd فرستاده میشن رو از روی دیتاشیت درایور این lcd که ks0108 هستش میشه فهمید(یک سر به اینجا بزنید: http://radzio.dxp.pl/ks0108)
              من خودم هم راه اندازی این lcdها رو از دوست و استاد عزیز آقای نوربخش(aivhl) یادگرفتم که اگه کمک های بی دریغ ایشون نبود احتمالا حالاها سرگردون بودم!!
              اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

              دیدگاه


                #8
                پاسخ : کمک در راه اندازی lcd گرافیکی

                با تشکر
                ولی موضوع اصلی اینجاست که این صفر و یک هایی که به بعضی از پایه های ال سی دی داده می شه قانونش چیه و چطوری باید اونا رو به ال سی دی بدیم
                نکته دوم این که اگر خودمون بخواییم یک نقطه رو به ال سی دی مختصات بدیم(یه چیزی مثل دفترچه نقاشی )که برامون نشون بده چه جوری باید برنامه بنویسیم
                راستش من تو انجمن ال سی دی آقای بلورچیان رو خیلی گشتم همه با بسکام می نویسن هیچی نفهمیدم

                دیدگاه


                  #9
                  پاسخ : کمک در راه اندازی lcd گرافیکی

                  نوشته اصلی توسط mmh1
                  با تشکر
                  ولی موضوع اصلی اینجاست که این صفر و یک هایی که به بعضی از پایه های ال سی دی داده می شه قانونش چیه و چطوری باید اونا رو به ال سی دی بدیم
                  نکته دوم این که اگر خودمون بخواییم یک نقطه رو به ال سی دی مختصات بدیم(یه چیزی مثل دفترچه نقاشی )که برامون نشون بده چه جوری باید برنامه بنویسیم
                  راستش من تو انجمن ال سی دی آقای بلورچیان رو خیلی گشتم همه با بسکام می نویسن هیچی نفهمیدم
                  فلسفه این صفر و یک ها رو باید از داخل دیتاشیت درایور فهمید، مثلا برای درایور تعریف شده که اگه کد xxxx رو فرستادی فیمفهمه که میخوای مثلا ابعاد lcd رو تعریف کنی و...
                  به نظر من اگه از مهندسی معکوس استفاده کنی بهتر نتیجه بگیری تا اینکه خودت از صفر بخوای این lcd رو درایو کنی،از کدهای داخل همین یایت من جمله کدهای بسیار ارزشمند جناب نوربخش استفاده کن و سعی کن بفهمی چکار کرده، دفترچه نقاشی ساختن هم کار بسیار ساده ایه،اما خب اونموقع باید از تاچ استفاده کنید
                  اونچيزي که در دانشگاه ياد ميگيريد، "الفبايي" هست براي نوشتن يک "رمان" !!

                  دیدگاه

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