ARDUINOAVRLCDSTM32بسکامکدویژن

راه اندازی lcd گرافیکی st7920 با آردوینو , stm32 , کدویژن , بسکام

4.9/5 - (93 امتیاز)

موضوع مقاله این جلسه راه اندازی 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 با codevision

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

قابلیت کار کردن در دو مد گرافیک و متن ، قابلیت نمایش تصویر و قابلیت نمایش فونت فارسی را دارا می باشد .

توجه داشته باشید این کتابخانه از یک بافر به حجم 1 کیلوبایت رم ، جهت نمایش فونت و تصاویر در مد گرافیک استفاده می کند . بنابراین میکروکنترلی که استفاده می کنید حتما باید بیشتر از 1 کیلوبایت حافظه RAM داشته باشد ، مانند میکروکنترلر ATMEGA32 , ATMEGA328 و شماره های بالاتر ، از میکروکنترلر های با حجم 1 کیلوبایت رم یا کمتر مثل ATMEGA8 , ATMEGA16  یا سری های ATTINY نمی توان در مد SPI استفاده نمایید .

در مدهای 8bit , 4bit چون هیچ حافظه ای از RAM اشغال نمی شود ، میتوان با همه میکروکنترلر ها راه اندازی شود .

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

کتابخانه st7920 که توسط سایت میکرونیک توسعه داده شده است از زبان و فونت فارسی و نوشتار راستچین پشتیبانی می کنند .

راه اندازی st7920 با arduino
راه اندازی st7920 با arduino
راه اندازی st7920 با آردوینو
راه اندازی st7920 با آردوینو

راه اندازی 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 می رسد . توسط نرم افزارهای متعددی می توان عمل تبدیل تصویر به کد هگز را انجام داد . در این آموزش ما نرم افزار LCD Assistant را معرفی می کنیم .

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

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

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

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

 

توسط تابع نمایش تصویر که در کتابخانه GLCD ST7920 وجود دارد ، با دریافت نام جدول به عنوان آرگومان تابع که در این مثال truck می باشد ، تصویر را بر روی GLCD نمایش می دهد .

قابلیت کتابخانه lcd گرافیکی st7920 برای آردوینو

قابلیت نمایش متن و تصویر
دارای فونت فارسی و انگلیسی در ابعاد 8*8 , 10*9 , 11*9 , 16*12 و فونت انگلیسی در ابعاد 7*5 , 14*9 , 20*10
کتابخانه راه اندازی glcd st7920 در مد سریال SPI

فیلم آموزشی ساخت فونت برای آردوینو

قابلیت کتابخانه lcd گرافیکی st7920 برای بسکام

قابلیت نمایش متن و تصویر
دارای فونت فارسی در ابعاد 8*6 و 8*8
سورس کد راه اندازی glcd st7920 در مد 8bit

فیلم آموزشی ساخت فونت برای بسکام

قابلیت کتابخانه lcd گرافیکی st7920 برای کدویژن

قابلیت کار در مد گرافیک و متن
قابلیت نمایش تصویر
دارای فونت فارسی در ابعاد 8*8 , 10*9 , 11*9 , 16*12 و چندین فونت انگلیسی
سورس کد راه اندازی glcd st7920 در مدهای 8bit  , 4bit , SPI

فیلم آموزشی ساخت فونت فارسی برای کدویژن

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

قابلیت نمایش متن و تصویر
دارای فونت فارسی در ابعاد 8*8 و 11*9 , 16*12
سورس کد راه اندازی glcd st7920 در مدهای spi ، 8bit ، 4bit توسط توابع HAL
کتابخانه و مثال برای نرم افزارهای STM32CUBEIDE و KEIL
قابلیت پیکربندی تمامی پایه های LCD بر روی پایه های دلخواه میکرو ، توسط نرم افزار STM32CUBEMX
قابلیت نوشتن حروف و عبارات فارسی به صورت مستقیم و بدون نیاز به تبدیل در محیط STM32CubeIDE و KEIL
نوشته شده توسط توابع HAL و پیاده سازی شده توسط میکروکنترلر stm32f103c8t6(bluepill)
قابلیت اضافه کردن کتابخانه ks108 براحتی بر روی میکروکنترلرهای سری f4 و f7 و سری های دیگر

 

فیلم آموزشی شامل ساخت فونت فارسی و انگلیسی در ابعاد دلخواه ، ساخت کاراکترهای سفارشی و علامت های پرکاربرد به صورت فونت و آموزش تبدیل تصویر به کد هگز در ابعاد دلخواه و نمایش بر روی lcd گرافیکی می باشد . بهمراه تمامی ابزارها و نرم افزارهای ساخت فونت و ویرایش تصویر .
حجم فیلم : 79.68 مگابایت
مدت زمان : 32 دقیقه و 45 ثانیه

  نویسنده : حسین غیاثوند
 خرید و دانلود در لحظه :

نوشته های مشابه

مشترک شدن
اطلاع رسانی کن
guest
8 دیدگاه
قدیمی ترین
جدیدترین محبوب ترین
بازخورد داخلی
مشاهده همه نظرات