آموزش راه اندازی LCD گرافیکی KS108 با توابع HAL
آموزش راه اندازی LCD گرافیکی KS108 با توابع HAL

راه اندازی LCD گرافیکی KS108 با STM32

راه اندازی LCD گرافیکی KS108 با STM32 و نحوه معرفی پایه های آن موضوع آموزش این مقاله می باشد پس تا پایان این مقاله با ما همراه باشید . LCD گرافیکی یک واحد نمایش الکترونیکی است که می تواند هر نوع عنصر ارائه شده توسط کاربر را نمایش دهد. برخلاف یک LCD کاراکتری که فقط می تواند حروف الفبا را نشان دهد . یک LCD گرافیکی می تواند تصاویر ، فونت ها و سایر ساختارها را نمایش دهد.

به طور معمول یکی از LCD گرافیکی هایی که راحت در بازار پیدا می شود و پر کاربرد است . LCD گرافیکی با وضوح 128 × 64 است . به این معنی که می تواند 8192 پیکسل را روی صفحه نمایش دهد .

KS108 یک کنترل کننده نمایش ماتریس نقطه ای تولید شده توسط کمپانی سامسونگ با 64 کانال خروجی است. ورودی را به صورت داده موازی 8 بیتی دریافت می کند و در حافظه RAM که ظرفیت 512 بایت دارد (512 × 8 = 4096 بیت) ذخیره می کند.

برای درایو نمایشگر گرافیکی 128 × 64 ، به دو عدد کنترل کننده KS108 احتیاج داریم و هر یک از آنها نیمی از 64 × 64 پیکسل را کنترل خواهند کرد. برای تولید سیگنال های زمان بندی برای دو کنترل کننده KS108 ،  یک کنترل کننده مشترک KS0107 وجود دارد .

در تصویر زیر ، می توانید سه IC با بسته بندی Chip-on-Board) CoB) را در PCB پشت  LCD گرافیکی مشاهده کنید. دو تا از آنها KS0108 ، و یکی KS0107 است.

تصویر پشت LCD گرافیکی KS108
تصویر پشت LCD گرافیکی KS108

شرح پایه های LCD گرافیکی KS108 :

LCD گرافیکی KS108 یک ماژول 20 پین است. دارای 8 خط داده ، 6 خط کنترل و 6 پایه مربوط به توان و نمایشگر است. شرح پینها در زیر آورده شده است.

پایه های lcd گرافیکی ks108
پایه های lcd گرافیکی ks108
پین های lcd گرافیکی ks108
پین های lcd گرافیکی ks108

پین های 7 تا 14 (D0 ~ D7) از GLCD KS108 پین دیتا است. ما از این پین ها برای انتقال دیتاها به RAM نمایشگر استفاده می کنیم.

پین های تغذیه :

پایه 1 (Vss) این پایه را به زمین وصل کنید . پایه 2 (Vdd) این پایه را به 5 ولت وصل کنید .

پایه 18 (Vee) خروجی یک مولد ولتاژ منفی است.  ولتاژ -10 ولت تولید می کند . با استفاده از پتانسیومتر می توانیم با تغذیه ولتاژ منفی پین Vo ولتاژ عملیاتی مورد نیاز را تولید کنیم. ولتاژ LCD حاصل Vdd-Vo خواهد بود (اگر پتانسیومتر در حداقل مقدار باشد ، 5-(-10) = 15V ). طبق دیتاشیت LCD گرافیکی KS108 ، حداکثر ولتاژ مجاز 18 ولت است. برای تغییر کنتراست نمایشگر می توانیم توسط پتانسیومتر ولتاژ Vo را تغییر دهیم.

پایه های 19  آند و 20  کاتد  LED  نور پس زمینه هستند . برای طول عمر بیشتر LED نور پس زمینه با قرار دادن مقاومت مناسب در مسیر پایه 19 ، جریان را محدود می کنند. اگر لازم است نور پس زمینه را نیز تغییر دهید ، می توانیم از پتانسیومتر استفاده کنیم.

پایه های تغذیه GLCD KS108
پایه های تغذیه GLCD KS108

پایه های سیگنال های کنترل :

KS108 یک درایور 64X64 پیکسل است. بنابراین دو عدد KS108 برای درایو صفحه نمایش 128X64 پیکسل لازم هست. از منظر برنامه نویسی ، صفحه LCD از دو LCD جداگانه تشکیل شده است و هرکدام داده ها را به صورت جداگانه دریافت می کنند .

CS1 و CS2 برای انتخاب کنترلر KS0108 استفاده می شود. پین های  CS1 و CS2 به برنامه نویس اجازه می دهد تا انتخاب کند کدام تراشه تحویل داده ها را در گذرگاه داده (DB0-DB7) دریافت می کند.

CS1 كنترل كننده سمت چپ و CS2 كنترل كننده سمت راست را انتخاب كرده و به نوبه خود سمت متناظر با صفحه نمايش 64 × 64 پيکسل را انتخاب مي كند. RST پین تنظیم مجدد است ، از آن برای تنظیم مجدد کل محتوای صفحه نمایش با پاک کردن حافظه RAM استفاده می شود.

پین R / W نوع عملیاتی را که توسط GLCD انجام می شود انتخاب می کند ، اگر این پایه در وضعیت High باشد نشان دهنده عملکرد خواندن و اگر این پایه در وضعیت Low باشد عملکرد نوشتن را نشان می دهد.

پین D / I عملیات بین انتقال داده یا دستورالعمل را انتخاب می کند ، اگر این پایه در وضعیت High باشد نشان دهنده عملکرد انتقال دیتا و اگر این پایه در وضعیت Low باشد عملکرد انتقال دستورالعمل را نشان می دهد.

پایه های کنترلی GLCD KS108
پایه های کنترلی GLCD KS108

پین Enable کلاک GLCD است. برای انتقال داده یا دستورالعمل ، ابتدا باید داده ها را روی خطوط داده قرار دهید ، سپس پینهای R / W و D / I  را با توجه به نوع دستورالعمل یا دیتا تنظیم کنیم . سپس پایه Enable را ابتدا در وضعیت Low و سپس High تنظیم کنید.

برای انتقال داده ها یکی از نکات مهم در هنگام زمان سنجی این است که ، همیشه بعد از هر دستورالعمل یا انتقال داده حداقل 1 میکرو ثانیه تأخیر بدهید. این پارامتر به عنوان Ecycle در دیتاشیت LCD گرافیکی KS108 برابر با مقدار Ecycle 1us  تعریف شده است .

بلوک دیاگرام LCD گرافیکی KS108 :

نمودار بلوک دیاگرام ال سی دی گرافیکی KS108 در زیر آورده شده است . دارای دو درایور بخش KS108 و یک درایور مشترک KS0107 است. KS0108 یک درایور بخش دات ماتریس LCD با 64 کانال خروجی است که نیمی از GLCD را مدیریت می کند. KS0107 یک درایور مشترک 64 کاناله است که سیگنال های زمان بندی را برای کنترل دو درایور بخش KS0108 تولید می کند.

بلوک دیاگرام LCD گرافیکی KS108
بلوک دیاگرام LCD گرافیکی KS108

از آنجا که هر دو نیمه به یک روش کار می کنند و توسط CS1 یا CS2 کنترل می شوند . یک نیمه را بررسی کنیم تا ببینیم بایتهای دیتا چگونه به پیکسل تبدیل می شوند .

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

اولین چیزی که باید توجه کنید این است که یک بایت داده به طور عمودی ستونی از پیکسل ها را در صفحه تشکیل می دهد . هر نیمه از GLCD یک ماتریس 64 × 64 پیکسل را نشان می دهد. تعداد ستون ها از 0 تا 63 هستند و به هیچ وجه گروه بندی نمی شوند ، اما ردیف ها گروه بندی می شوند.

آنچه “Page” یا صفحه خوانده می شود ،  از یک ماتریس 64X8  پیکسل تشکیل شده است . در هر نیمه از LCD گرافیکی 8 صفحه وجود دارد که توسط یک کنترل کننده KS108 کنترل می شود. یک صفحه شامل 64 ستون 8 پیکسلی است.

هر زمان که داده ها را انتقال می دهیم ، ابتدا نیمی از LCD گرافیکی را توسط پایه (Chip Select)CS  انتخاب می کنیم ، سپس آدرس صفحه (X) را مشخص می کنیم . و سپس آدرس Y را انتخاب می کنیم . بایت به عنوان یک نوار 8 بیتی منتقل می شود و در محل حافظه RAM ذخیره می شود. ما می توانیم این روند را به صورت زیر خلاصه کنیم.

توسط CS1 و CS2 نیمه GLCD را انتخاب کنید (64 × 64 پیکسل)

انتخاب صفحه (X) یا Page

آدرس ستون Y نوار 8 پیکسلی عمودی درست را انتخاب می کند

 

نحوه آدرسی Y :

آدرس Y شماره ستونی است که از 0 تا 63 در نظر گرفته شده است . آدرس ستون ها از 0x40 آغاز می شود . با در نظر داشتن این نکته که ما می توانیم فقط با نیمی از صفحه نمایش در هر زمان کار کنیم. این پارامتر نیاز به ردیابی از طریق یک شمارنده در کد برنامه شما دارد.

از نظر سخت افزاری ، “آدرس Y” به طور خودکار افزایش می یابد ، زیرا صفحه نمایش دارای مدار شمارنده داخلی است. وقتی بایت بعدی داده را می فرستید ، به طور خودکار ستون بعدی را پر می کند.

از دیدگاه برنامه نویسی ، نکته خوبی است زیرا ، هنگام نوشتن در ستون بعدی ، نیازی به تنظیم شماره ستون از طریق کد برنامه نیست. با این حال ، باید شمارش آن را در یک متغیر انجام دهید تا بدانید چه موقع باید خطوط کنترل CS1 و CS2 را تغییر دهید.

نحوه آدرسی  X Page :

آدرس صفحات به ترتیب از (Page 0)0XB8 الی (Page 7)0XBF می باشد . این آدرس ها برای نیمه دوم LCD نیز یکسان می باشد .

یک بایت داده در گذرگاه داده ، ماتریس LCD را به صورت عمودی در یک ستون پر می کند. یک بایت داده در گذرگاه داده ها نقاط مشخص شده از DB0 تا DB7 را در یک ستون تنظیم می کند. پس از پر شدن ، مدارهای داخلی به طور خودکار به ستون بعدی افزایش می یابند ، برای بایت بعدی داده ها.

 

تصویر پایین نحوه نمایش حرف “P” الفبا را نشان می دهد.

نحوه ساخت فونت برای lcd گرافیکی ks108
نحوه ساخت فونت برای lcd گرافیکی ks108

ابتدا از نیمی از صفحه استفاده کنید. برای نیمه اول CS1 را انتخاب کنید .

آدرس Y” را انتخاب کنید ، شماره ستون (از 0 تا 63) جایی که اولین بایت کاراکتر شروع می شود . در این مثال دو ستون ابتدا خالی و از ستون سوم اولین بایت کاراکتر آغاز شده ، بنابراین آدرس Y=0X42 می باشد .

کاراکتر در 0 Page قرار دارد بنابراین آدرس X Page=0XB8 می باشد .

در انتها بایت های داده زیر را پشت سر هم ارسال کنید.

01111111
00001001
00001001
00001001
00000110
00000000

همانطور که مشاهده می کنید ، بایت ها از سمت راست (LSB) به چپ (MSB) به صورت افقی توسط انسان خوانده می شوند ، اما داده ها به طور عمودی بر روی ستون LCD از DB0 تا DB7 پر می شوند.

شمارنده Y برای ستون بعدی به طور خودکار افزایش می یابد ، بنابراین در نتیجه فقط باید بایت داده را به طور پی در پی ارسال کنید. با این حال ، بهتر است یک شمارنده در کد برنامه داشته باشید تا ردیابی ستونی را که در آن قرار دارید را داشته باشید.

در این مثال ، هر کاراکتر هشت ردیف و شش ستون را اشغال می کند. برای هر کاراکتر ، DB7 را خالی می گذاریم که به عنوان فاصله کاراکتر بین خطوط عمل می کند. علاوه بر این ، ستون آخر را خالی می گذاریم ، که به عنوان فاصله کاراکتر بین کاراکتر ها عمل می کند.

هفت دستورالعمل در کنترلر KS0108 موجود است که در جدول زیر آورده شده است.

دستورالعمل های LCD گرافیکی KS108
دستورالعمل های LCD گرافیکی KS108

در جدول فوق دستورالعمل های مختلف موجود برای کنترلر KS0108 آورده شده است. به عنوان مثال ، برای روشن کردن صفحه نمایش ، پایه های RS , R / W  در سطح Low قرار می گیرند ، 00111111 را در پایه های DB7-DB0 قرار دهید و  با ایجاد یک پالس ساعت بر روی پایه Enable از سطح Low به High دستورالعمل اجرا می شود .

نکته : همانطور که اشاره شد ، در هر بار نوشتن یک بایت در حافظه RAM LCD نوشته می شود . بنابراین دسترسی و نوشتن جداگانه بر روی یک پیکسل امکان پذیر نیست .

برای نوشتن و دسترسی به پیکسل های جداگانه ، باید آنچه را که در حال حاضر در آدرس مورد نظر LCD می خواهیم بنویسیم ، ابتدا بخوانیم . در عملیات خواندن 8 بیت خوانده می شود و یک عمل ماسک Boolean بر روی بیت یا پیکسل مورد نظر انجام دهید. سپس دوباره 8 بیت را در آدرس قبلی بنویسیم .

آموزش راه اندازی lcd گرافیکی ks108 با stm32 :

می خواهیم توسط هدربورد موسوم  به Blue pill که میکروکنترلر آن بر پایه stm32f103c8t6 می باشد . در محیط نرم افزار STM32CubeIDE نمایشگر گرافیکی KS108 را راه اندازی کنیم .

شماتیک lcd گرافیکی ks108
شماتیک lcd گرافیکی ks108

تصویر فوق پیکربندی LCD گرافیکی KS108 را نشان می دهد . نام پین ها حتما باید هم نام پین های تعریف شده در تصویر باشد . پین های دیتای LCD را روی یک پورت و پین های کنترلی میکروکنترلر STM32 را بدلخواه می توانید در محیط نرم افزار Stm32CubeMX برای LCD پیکربندی کنید .

آموزش راه اندازی LCD گرافیکی KS108 با STM32
آموزش راه اندازی LCD گرافیکی KS108 با STM32

 

قابلیت کتابخانه lcd گرافیکی ks108 برای stm32 :

  • قابلیت رسم پیکسل
  • قابلیت رسم خط
  • قابلیت رسم دایره
  • قابلیت رسم مربع و مستطیل تو پر و تو خالی
  • قابلیت نوشتن متن داخل textbox
  • قابلیت چپ چین ، راست چین و وسط چین نوشتن متن ها
  • قابلیت نمایش عبارات انگلیسی و فارسی
  • قابلیت نوشتن کاراکترهای خاص برای ایجاد نوتیفیکیشن
  • به همراه نرم افزار فونت ساز
  • به همراه نرم افزار تبدیل تصاویر گرافیکی با سایزهای مختلف به کد هگز
  • قابلیت نوشتن حروف و عبارات فارسی با Encoding UTF8 در محیط STM32CubeIDE و نمایش بر روی lcd گرافیکی ks108 بدون نیاز به هیچگونه تبدیل در فایل برنامه .

در فیلم آموزشی خواهید آموخت :

  • آموزش ساخت فونت انگلیسی در ابعاد دلخواه توسط نرم افزار فونت ساز
  • آموزش ساخت فونت فارسی در ابعاد دلخواه توسط نرم افزار فونت ساز
  • آموزش ساخت کاراکتر و نمادهای خاص در ابعاد دلخواه توسط نرم افزار فونت ساز
  • آموزش نمایش تصاویر گرافیکی در ابعاد دلخواه توسط نرم افزار

 نرم افزار : STM32CubeIDE , STM32CubeMX
  نویسنده : حسین غیاثوند
 تاریخ انتشار : 1399/7/20
فیلم آموزشی : دارد
 خرید و دانلود در لحظه :

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.