راه اندازی ال سی دی گرافیکی GLCD KS0108 128×64 در میکروکنترلر STM32

500,000 ریال

در این آموزش از LCD گرافیکی با تراشه KS0108B استفاده شده است. دقت داشته باشید، ما با استفاده از توابع کتابخانه، ال سی دی LCD گرافیکی، اشکال و نوشته‌هایی را نمایش می‌دهیم. تراشه KS0108B یکی از درایورهای پرمصرف در این مدل LCD می‌باشد. بیشتر برای راه اندازی LCD ماتریسی ۱۲۸ در ۶۴ نقطه‌ای استفاده می‌شود. و همچنین این LCD، نیز 20 پایه دارد.

توضیحات

این نوع نمایشگرها که دارای سایز نسبتا بزرگی نسبت به انواع کاراکتری هستند ، عموما برای نمایش تصاویر ، علائم و … به کار می روند . اینگونه LCD ها در سایز های متفاوتی ساخته می شوند که نوع متداول آن ۶۴*۱۲۸ می باشد .

در این نوع LCD،  بر خلاف انواع کاراکتری که حالت استانداردی برای کنترل داشتند ، عمل کنترل توسط ، تراشه کنترلری که بر روی LCD نصب شده است انجام می گیرد که با توجه به ساختار و دستورات آن می تواند برای هر LCD متفاوت باشد. بر همین اساس LCD های موجود با توجه به کنترلر های داخلی خود شناخته می شوند که یکی از انواعی که در بازار ایران نیز در دسترس است، LCD های مبتنی  بر کنترلر KS0108 هستند که این نوع کنترلر ساخت شرکت Samsung است. در ادامه بر روی نوع ۱۲۸×۶۴ و کنترلر KS0108 بحث خواهیم کرد.

هر نقطه (پیکسل) موجود بر روی صفحه نمایش LCD، دارای یک موقعیت طولی و یک موقعیت عرضی است که برای نمایش تصاویر بر روی LCD، نیاز است تا این نقاط مقدار دهی شوند تا بتوان با کمک آنها ، تصویر را تشکیل داد . در داخل LCD یک RAM وجود دارد که اطلاعات مربوط به هر پیکسل (خانه) از LCD را در خود نگهداری می کند که برای روشن کردن یک پیکسل باید خانه متناظر با آنرا (در RAM) با ۱ مقدار دهی کرد و بر عکس برای خاموش کردن آن پیکسل باید خانه متناظر با آن را با ۰ مقدار دهی نمود .

اطلاعات نوشته شده بر روی RAM داخلی نیز توسط کنترلر ذکر شده خوانده شده و بر روی صفحه LCD جاروب می شود و به این طریق تصاویر بر روی LCD نشان داده می شود ( حجم RAM با توجه به سایز LCD تعیین می شود که به طورمثال برای نوع ۱۲۸×۶۴ برابر با ۸۱۹۲ بیت خواهد بود).

البته لازم به ذکر است که در حقیقت LCD ها با توجه به حجم پیکسلی که دارند ، دارای یک یا چند کنترلر داخلی هستند. به طور مثال در نوع ۱۲۸×۶۴ صفحه به دو قسمت ۶۴×۶۴ تقسیم می شود (نیم صفحه) که یک منرلر مخصوص سطرها و دو کنترلر نیز مخصوص نیم صفحه ها خواهد بود.

با توجه به موارد گفته شده، صفحه LCD به صورت زیر تقسیم می شود:

همان طور که در شکل نیز مشخص است، LCD به دو نیم صفحه راست و چپ تقسیم شده که هر کدام از این نیم صفحه ها نیز به ۷ صفحه کوچکتر دیگر تقسیم می شوند که شماره این صفحات با X نشان داده می شود و مقادیری بین ۰ تا ۷ می توانند داشته باشند . هر صفحه X نیز به ۶۴ ستون تقسیم شده است که هر ستون معادل یک بایت بوده و با Y مشخص می شود که مقداری بین ۰ تا ۶۳ می تواند داشته باشد .

برای نوشتن در خانه های RAM متناظر با این قسمت ها ، به روش بایتی عمل می شود ؛ به این صورت که با ارسال ۶۴ بایت متوالی برای هر صفحه X ، تصویر مورد نظر در آن قسمت تشکیل خواهد شد و بدیهی است که برای ارسال کل تصویر نیاز است تا ۱۰۲۴ بایت (۶۴×۱۶) به LCD ارسال می شود.

قبل از ارسال اطلاعات به LCD، لازم است تا شماره صفحه X و ستون Y مورد نظر انتخاب شود . البته Y به صورت اختیاری است ، زیرا در اکثر LCD ها مقدار Y به طور خودکار پس از دریافت هر بایت اطلاعات ، یک واحد افزایش می یابد و دیگر نیازی به تغییر آن نیست . به این نکته نیز توجه داشته باشید که مادامی که شماره صفحه X تغییر نکرده باشد ، تمامی اعمال نوشتن و یا خواندن از LCD در همان صفحه X انجام می شود.

 

پایه های LCD

در شکل مقابل چیدمان پایه های LCD مورد نظر ما نشان داده شده است که در ادامه توضیحات مربوط به هر یک از پایه ها نیز مشاهده می شود.

 

راه اندازی و بایاس کردن پایه مربوط به کنتراست و همچنین تغذیه LCD، به صورت روبرو انجام می شود که با کمک پتانسیومتر به کار رفته می توان وضوح صفحه را تنظیم کرد .

 

فرمت عملگرهای LCD گرافیکی

دستورات اعمالی و عملکردهای متناظر با آنها با توجه به مقدار دهی پایه های LCD تعیین می شود که در جدول زیر نشان داده شده اند :



مدت ویدئو: ۴۳ دقیقه

نوع آموزش: فارسی با مدرس

کد سورس: دارد

شماتیک مدار: دارد

کامپایلر: IAR

کتابخانه: HAL Library


توجه: برای پخش ویدئو نرم افزار های KMPlayer و K-Lite Codec Pack در سیستم شما نصب باشد. و از نرم افزار ۷zip برای خارج کردن پروژه از حالت فشرده استفاده کنید.