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

راه اندازی lcd گرافیکی st7920 با stm32

موضوع مقاله این جلسه راه اندازی lcd گرافیکی st7920 می باشد . پس تا پایان این آموزش با ما همراه باشید .نمایشگرهای LCD گرافیکی برای هر پروژه ای که می خواهیم برخی از داده ها را نمایش دهیم ، افزودنی خوبی است . ظاهر آنها از نمایشگرهای سون سگمنت و حتی LCD های کاراکتری بهتر است ، اما قیمت بالاتری نیز دارند . ولی ما می توانید از آنها برای ساخت رابط کاربری و منوها به زبان های مختلف و نمایش تصاویر گرافیکی استفاده کنید.

از میان نمایشگرهای گرافیکی تک رنگ ، انتخاب lcd گرافیکی st7920 گزینه مناسبی می باشد . زیرا می توانیم lcd گرافیکی st7920 را به سه روش از طریق درگاه موازی 8 بیتی ، از طریق درگاه موازی 4 بیتی و از طریق درگاه سریال spi راه اندازی کنیم .

از دیگر مزایای lcd گرافیکی st7920 می توان به ولتاژ کاری بین 2.7 ولت الی 5 ولت اشاره کرد .

lcd گرافیکی st7920 دارای دو مد text و graphic می باشد . در مد text یا متن ، داخل lcd حافظه ای به نام CGROM وجود دارد که فونت حروف ها در این قسمت ذخیره سازی شده و ما براحتی می توانیم بدون نیاز به ساخت فونت و اشغال حافظه ای از میکروکنترلر ، متن های دلخواه خودمان را بر روی lcd نمایش دهیم .

lcd گرافیکی st7920 علیرغم مزایای نام برده شده ، معایبی نیز دارد . ST7920 تراشه ای است که توسط Sitronix تولید شده و از الفبای چینی پشتیبانی می کند به همین خاطر برای حروف چینی با ابعاد 16×16 بهینه شده است . بنابراین lcd قابلیت نمایش 4 سطر و در هر سطر 8 کاراکتر چینی را داریم .

اما نگران نباشید ، این lcd می تواند الفبای انگلیسی را نیز با ابعاد 8×16 نمایش دهد. بنابراین می توان 4 سطر و در هر سطر 16 کاراکتر اسکی نمایش داد . جدول زیر کاراکترهای غیر چینی است که درون حافظه CGROM وجود دارد و میتوان نمایش داده شود .

جدول کاراکترهای اسکی st7920
جدول کاراکترهای اسکی st7920

تعداد 4 سطر و 16 ستون برای نمایشگر گرافیکی با ابعاد 128 در 64 پیکسل یک ضعف محسوب می شوند . شاید این سوال در ذهن شما بوجود آید ، چه توجیهی وجود دارد وقتی در بازار می توان lcd کاراکتری 4×20 تهیه کرد که تعداد کاراکترهای بیشتری را بر روی صفحه نمایش می دهد و قیمتی به مراتب کمتر از lcd st7920 را دارد .

در نگاه اول انتخاب lcd کاراکتری 4×20 برای مواردی که نیاز است فقط چند متن ساده نمایش داده شود ، انتخاب مناسبتری می باشد . اما اگر نیاز باشد از اشکال و آیکونهای گرافیکی استفاده کرد و یا فونت با ابعاد و سایزهای مختلف و زبان های گوناگون استفاده کرد ، ناگزیر باید از lcd های گرافیکی استفاده کنیم .

همانطور که می دانید lcd های گرافیکی مشابه مانند ks108 و یا ts6963 فقط از طریق درگاه موازی 8 بیت راه اندازی می شوند . برای راه اندازی تعداد زیادی از پین های میکروکنترلر را اشغال می کنند . در مواردی که میکروکنترلر ما تعداد پایه های کافی ندارد ، انتخاب lcd st7920 گزینه و انتخاب مناسبی است ، زیرا از طریق درگاه سریال و تنها با چند پایه راه اندازی می شود .

پیکربندی پایه های lcd گرافیکی st7920 :

lcd گرافیکی st7920 دارای 20 پایه می باشد . در تصویر زیر ترتیب و نام هر پایه نوشته شده است که به توضیح یکایک پایه ها خواهیم پرداخت :

پیکربندی پایه های lcd گرافیکی st7920
پیکربندی پایه های lcd گرافیکی st7920

 

معرفی پایه های lcd گرافیکی st7920
معرفی پایه های lcd گرافیکی st7920

lcd گرافیکی st7920 از 3 نوع رابط گذرگاه به نام MPU پشتیبانی می کند. 8 بیت موازی ، 4 بیت موازی و رابط سریال یا SPI . گذرگاه ارتباطی lcd توسط پایه 15 با نام PSB مشخص می شود . ارتباط های موازی 8 بیت و 4 بیت توسط  PSB =1 و رابط سریال توسط PSB =0 انتخاب می شود .

اتصال lcd گرافیکی st7920 در حالت سریال آسان است. شما باید پین PSB را روی 0 تنظیم کنید (آن را به GND متصل کنید) تا به کنترل کننده اطلاع دهید که داده های سریال را ارسال می کنید . سپس ، RS به CS ، RW به MOSI و EN به SCK تبدیل می شود. همچنین توصیه می شود پین RST را وصل کنید.

به پشت صفحه LCD خود نگاه کنید. اگر بصورت پیش فرض دارای پتانسیومتر باشد ، می توان از آن برای تنظیم کنتراست استفاده کرد و نیازی نیست که مداری را به پایه VO متصل کنید. همچنین باید توجه داشته باشید که برخی از تولید کنندگان LCD پایه PSB را از قبل به صورت سخت افزاری به حالت موازی یا سریال وصل می کنند. برای بررسی اینکه PSB به VCC یا GND متصل است از تستر بوق مولتی متر (اهم متر) استفاده کنید.

 

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

برای نوشتن متن مورد نظر بر روی lcd ، ابتدا باید مکان نما یا موقعیت را مشخص کنیم . همانطور که در تصویر زیر مشاهده می شود ، چهار سطر و هشت ستون وجود دارد . آدرس سطر اول با 0x80 هگز شروع می شود و آدرس ستون اول با 0x00 هگز شروع می شود . با شروع نمایش اولین حرف از متن یا رشته ، آدرس ستون یا مکان نما به صورت خودکار افزایش یافته و سطر یا ردیف اول را با هشت کاراکتر چینی و یا شانزده کاراکتر اسکی پر می کند .

نمایش متن بر روی lcd st7920
نمایش متن بر روی lcd st7920

lcd st7920 برای کاراکترهای 16×16 چینی بهینه شده است. بنابراین ، نوشتن کاراکترهای معمولی 8×16 کمی متفاوت است. در این حالت شما همزمان باید دو کاراکتر بنویسید. بنابراین ، اگر می خواهید کاراکتر “A” را در نیمه دوم موقعیت یا آدرس 0x93 قرار دهید ، باید قبل از آن یک کاراکتر ” “ فاصله نیز بنویسید.

برای نمایش کاراکتر “B” فقط ارسال این کاراکتر در آدرس 0x9A کافی است.

اگر به تصویر دقت کنید Line2 در سطر سوم قرار دارد و آدرس آن ادامه آدرس Line1 می باشد . تصور کنید که lcd st7920 مانند تصویر زیر ابتدا یک نمایشگری است که دارای دو سطر و شانزده ستون می باشد . سپس از نیمه برش خورده و نیمه دوم در زیر نیمه اول چیده شده است. یعنی اگر متنی طولانی داشته باشیم ، ابتدا سطر یک پر شده و بقیه کاراکترها در سطر سوم نمایش داده می شوند .

سطر و ستون در نمایشگر st7920
سطر و ستون در نمایشگر st7920

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

مد graphic را مشابه مد text در نظر بگیرید ، دارای دو سطر و شانزده ستون ، با این تفاوت که در مد graphic با پیکسل ها سر و کار داریم . بنابراین نمایشگری با ابعاد 32×256 پیکسل خواهیم داشت . حال تصور کنید که این نمایشگر کاملاً در دو قطعه برش خورده قرار گرفته و سپس یکی بر روی دیگری چیده شده است. ما نیمه بالایی و نیمه پایینی نمایشگر داریم . در این حالت نمایشگری در ابعاد 64×128 پیکسل خواهیم داشت .

lcd st7920 در مد گرافیکی
lcd st7920 در مد گرافیکی

در حالت گرافیکی ، همزمان به 16 پیکسل افقی (یک ستون) دسترسی پیدا می کنید . ابتدا ردیف را روی محور Y از 0 الی 31  و سپس یکی از 16 ستون که هر ستون شامل 16 پیکسل را انتخاب می کنید . 0x80 به مختصات اضافه می شود زیرا این آدرس پایه RAM نمایشگر است. برای پاک کردن RAM باید 0x00 را برای همه گروه های پیکسل بنویسیم. ما به سازماندهی نمایش اهمیتی نمی دهیم ، فقط با نمایشگر به صورت 32×256 پیکسل رفتار می کنیم.

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

در ادامه توسط هدربورد موسوم  به بلوپیل که میکروکنترلر آن stm32f103c8t6 می باشد . در نرم افزار stm32cubeide و عملیات پیکربندی میکروکنترلر stm32 و lcd گرافیکی st7920 را توسط نرم افزار stm32cubemx به راحتی پیکربندی می کنیم .

پیکربندی st7920 توسط stm32cubemx
پیکربندی st7920 توسط stm32cubemx

 

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

 

تصویر فوق پیکربندی lcd گرافیکی st7920 را در سه مد سریال ، 8bit , 4bit نشان می دهد . رعایت این نکته ضروری است که نام پین ها دقیقا هم نام پین های تعریف شده در تصویر باشد . همچنین هر کدام از پین های میکروکنترلر stm را بدلخواه می توانید برای lcd پیکربندی کنید .

راه اندازی lcd گرافیکی st7920 با stm32
راه اندازی lcd گرافیکی st7920 با stm32
راه اندازی lcd گرافیکی st7920 با stm32cubeide
راه اندازی lcd گرافیکی st7920 با stm32cubeide
فارسی نویسی بر روی lcd گرافیکی st7920
فارسی نویسی بر روی lcd گرافیکی st7920
فارسی نویسی بر روی lcd گرافیکی st7920 در محیط stm32cubeide
فارسی نویسی بر روی lcd گرافیکی st7920 در محیط stm32cubeide

 

تصویر زیر راه اندازی lcd گرافیکی st7920 را در mode text نشان می دهد . همانطور که گفته شد در mode text چهار سطر و در هر سطر شانزده کاراکتر اسکی قابل نمایش می باشد .

راه اندازی lcd گرافیکی st7920 در mode text
راه اندازی lcd گرافیکی st7920 در mode text

 

تصویر زیر نمایش یک عکس در ابعاد 128×64 پیکسل را در mode graphic نشان می دهد .

نمایش عکس روی lcd گرافیکی st7920
نمایش عکس روی lcd گرافیکی st7920

برای نمایش عکس ، ابتدا باید ابعاد عکس را به سایز قابل نمایش برای lcd گرافیکی st7920 تغییر سایز دهیم . برای تغییر سایز دادن عکس می توانیم از نرم افزار فتوشاپ و یا نرم افزار paint ویندوز استفاده کنیم . در این آموزش ما از نرم افزار paint استفاده می کنیم .

ابتدا تصویر مورد نظر خود را توسط برنامه paint باز کنید . سپس از گزینه Resize عرض تصویر را به 128 پیکسل و ارتفاع تصویر را به 64 پیکسل تغییر دهید و گزینه OK را بزنید . حال از منوی File>Save as را انتخاب کنید و از بخش Save as type گزینه Monochrome Bitmap را انتخاب کرده و تصویر را ذخیره نمایید .

تغییر سایز تصویر برای lcd گرافیکی
تغییر سایز تصویر برای lcd گرافیکی

بعد از مرحله تغییر سایز تصویر ، نوبت به تبدیل تصویر به کد هگز برای نمایش بر روی lcd گرافیکی st7920 می رسد . توسط نرم افزارهای متعددی می توان عمل تبدیل تصویر به کد هگز را انجام داد . در این آموزش ما نرم افزار LCS Assistant را معرفی می کنیم .

ابتدا نرم افزار LCD Assistant را اجرا می کنیم . از منوی بالا گزینه File>Load image را انتخاب کرده و تصویری که در مرحله قبل تغییر سایز دادیم را بارگزاری می کنیم . تنظیمات را مطابق تصویر زیر انجام می دهیم .

تبدیل تصویر به کد هگز برای lcd گرافیکی
تبدیل تصویر به کد هگز برای lcd گرافیکی

در مرحله بعد از منوی بالا گزینه File>Save output را انتخاب کرده و فایل خروجی که کد هگز می باشد را در مسیر دلخواه ذخیره نمایید . سپس فایل ذخیره شده را توسط نرم افزار Notepad باز کنید . تمامی کدها را copy کنید و به داخل فایل bitmap.h که پیوست پروژه است paste کنید و گزینه Save را بزنید .

تبدیل تصویر به کد هگز برای lcd گرافیکی
تبدیل تصویر به کد هگز برای lcd گرافیکی

توسط دو تابع زیر می توانیم کدهای هگز تصویر را بر روی lcd گرافیکی st7920 نمایش دهیم . تابع اول کل صفحه نمایش را پاک می کند . تابع دوم با دریافت نام جدول به عنوان آرگومان تابع که در این مثال truck می باشد ، تصویر را بر روی lcd نمایش می دهد .

 

ST7920_Clear_Graphic();
ST7920_FillScreenGraphic(truck);

 

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

قابلیت نوشتن فونت انگلیسی و فارسی
قابلیت نوشتن کاراکترهای خاص برای ایجاد نوتیفیکیشن
پیکربندی پایه های lcd توسط STM32CubeMX
سورس کد راه اندازی glcd st7920 در مدهای سریال ، 8bit ، 4bit توسط توابع HAL
قابلیت نوشتن حروف فارسی با Encoding UTF8 در محیط STM32CubeIDE و نمایش مستقیم بر روی lcd گرافیکی ST7920 .

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

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

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

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

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