اطلاعیه

Collapse
No announcement yet.

آموزش نحوه ارتباط ال سی دی های گرافیکی با AVR

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

    آموزش نحوه ارتباط ال سی دی های گرافیکی با AVR

    یک نرم افزار همه کاره که کار کردن با این نوع ال سی دی ها را راحت میکند.از این برنامه میتوانید در برنامه بیسکام وبا اندکی تغییر در کد ویژن نیز استفاده کنید.این برنامه را با حجمی کم از این لینک دانلود کنید :nerd:


    فایل های پیوست شده
    گناه نکردن آسانتر از توبه کردن است.......امام علی(ع)

    هرگز از سا يه ها نترس آنها تنها به تو مي گويند که نوري در نزديکي تو وجود دارد.

    #2
    آموزش نحوه ارتباط AVR با ال سی دی های گرافیکی

    سلام :redface:
    از این به بعد سعی میکنم نحوه ارتباط AVR با ال سی دی های گرافیکی را به زبانی ساده به شما توضیح دهم.
    البته فکر میکنم باید داخل انجمن دیگه ای این آموزشها را قرار میدادم
    :angry:

    دیتا شیت
    اینم دیتا شیت ال سی دی که در بازار ایران پر شده و معمولا اکثر کسانی که میخواهند با این نوع ال سی دی ها کار کنند از نحوه کار با آن
    بی اطلاع هستند.صفحه 16 تا 20 را به دقت مطالعه کنید.


    http://www.4shared.com/file/27912034/4a5e9caf/gdm12864a.html



    فصل اول: نحوه پیکر بندی ال سی دی :applause: :applause:
    از این به بعد سعی میکنم در پستهای مجزا نحوه استفاده از ال سی دی GDM12864A که در بازار ایران موجود است را به زبانی ساده به شما آموزش دهم.این نوع ال سی دی ها باقیمت 12000 هزار تومان وبا بک سبز وآبی در بازار موجود میباشد.

    فصل اول: نحوه پیکر بندی ال سی دی

    برای نوشتن در این نوع ال سی دی ها در کد ویژن به این طریق عمل کنید :

    1_ال سی دی خود را پیکربندی کنید.برای اینکه به چیپهای ال سی دی بگوئیم که میخواهیم درون آنها بنویسیم باید پایه های RW ,RS را
    مساوی صفر قرار دهیم.سپس پایه فعال کننده ال سی دی را به مدت 10 میکرو ثانیه یک وسپس صفر کنید.
    به طور کلی برای روشن وخاموش کردن ال سی دی باید مقادیر 00111111 راوارد کنید که بیت آخری نشان دهنده روشن یا خاموش بودن آن است.فراموش نکنید که پایه RW,RS حتما صفر باشند.

    خوب تا این مرحله ما فقط یاد گرفتیم که چه جوری ال سی دی را خاموش وروشن کنیم.دستور زیر نمایانگر مطالبی بود که در بالا گفتم.


    /******************************************/
    /* Write Data Procedure */
    /******************************************/
    void write_data (unsigned char dta ){

    /* step 1: send data to port */

    ; lcd_rw=0
    ; lcd_rs=1
    ; PORTD=dta
    ; lcd_e=1
    ;(delay_us(10
    ; lcd_e=0
    }

    در قسمت بعدی یاد خواهیم گرفت که چه گونه صفحات داخلی ال سی دی را آدرس دهی کنی :job:م

    امیدوارم استقبال بشه.فعلا خداحافظ :bye :bye :cry2:
    گناه نکردن آسانتر از توبه کردن است.......امام علی(ع)

    هرگز از سا يه ها نترس آنها تنها به تو مي گويند که نوري در نزديکي تو وجود دارد.

    دیدگاه


      #3
      نحوه آدرس دهی این ال سی دی ها:


      نحوه آدرس دهی این ال سی دی ها:
      قبل از این که شروع کنم توصیه میکنم که حتما پشتکار داشته باشید و با اولین مشکل نامید نشوید. :eek:
      1ـ به صفحه 19 جزوه ای که پلود کردم دقت کنید.سطر ششم به شما توضیح میدهد که چگونه یکی از 8 صفحه ای که در اختیار دارید را میتوانید آدرس دهی کنید.اما قبل از اینکه وارد جزییات شوم مختصری در مورد پیکربندی فیزیکی ال سی دی ها توضیح خواهم داد.
      ما در این ال سی دی ها یک محور افقی داریم(سطرها) ویک محور عمودی(ستونها).ما امروز در مورد آدرس دهی سطرها صحبت خواهیم کرد.
      محور سطرها مثل اینه که شما 8 تا ال سی دی کاراکتری را زیر هم بزارید. به همین سادگی.خیلی پیچیده نیست.
      بنابر این برای این که بخواهید به فرض یک نقطه ای رادر روی ال سی دی نمایش دهید باید بدانید که آن نقطه در صفحه چندم قرار دارد.ساده تر بگم هر سطر 8 بیت است و8 تاسطر 8بیتی میشه 64 بیت که همون 128*64 خودمون باشه.قابل درک بود؟ :nerd:
      حالا اگرم متوجه نشدید بگید ساده تر بگم. :angry:
      یه سوال ؟ برای آدرس دهی 8 بیت به چند بیت نیاز داریم؟ 3بیت. حالا این سه بیت کجاست؟ .3بیت کم ارزشی که در جدول نشون داده شده است.یادتون نره که چون ما میخواهیم دیتاپی را داخل چیپها بنویسیم بنابر این باید RW ,RS هر دو صفر باشند تا عمل نوشتن کامل بشه.
      به طور مثال اگه بخواهیم کل سطر دوم را در اختیار داشته باشیم باید این مقدار را وارد کنیم: 0010111001 یا 89 دسیمال. :NO:

      خداییش فهمیدین یا پیچیده بود اگه نفهمیدین بگید بیشتر توضیح بدم تا حداقل زحمت خودم به هدر نرفته باشه.این قسمت جزو سخترین قسمتهای کارمونه واگه اینو کامل بفهمین توضیح بقیه اش هم راحتتره. :wow:

      اینم برنامه ای که خودم نوشتم:

      /******************************************/
      /* Select Page Procedure */
      /******************************************/
      void select_page(unsigned char page){

      page = page | 0xb8; /* create select page command for lcd */
      write_cmd ( page );
      }

      موفق باشید

      :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2: :cry2:
      گناه نکردن آسانتر از توبه کردن است.......امام علی(ع)

      هرگز از سا يه ها نترس آنها تنها به تو مي گويند که نوري در نزديکي تو وجود دارد.

      دیدگاه

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