خانه / پروژه های میکروکنترلر / راه اندازی ال سی دی گرافیکی با AVR و نمایش فونت فارسی به زبان c

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

ال سی دی های گرافیکی یک نمایشگر مناسب برای نمایش متن و تصاویر میباشند (حتی متن فارسی) و در پروژه های الکترونیک و برنامه نویسی AVR جهت نمایش اطلاعات خروجی،بسیار پرکاربرد میباشند.ال سی دی های گرافیکی با توجه به تراشه پردازنده خود،که به آنها راه انداز یا درایور میگویند معرفی میشوند.راه انداز های ال سی دی های گرافیکی معمولا یا از نوع تراشه های T6963 ساخت شرکت توشیبا و یا KS0108 ساخت شرکت سامسونگ هستند که تراشه های KS0108 معمولا به صورت COB (تراشه قیری) روی برد LCD تعبیه شده اند.ال سی دی های گرافیکی با تراشه KS0108 قابلیت تعریف فونت را دارند و هر کدام از این تراشه ها توانایی راه اندازی یک LCD گرافیکی 64*64 را دارند به این معنا که یک LCD گرافیکی 64*128 دارای دو تراشه KS0108 میباشد.از آنجاییکه در این پروژه قصد داریم فونت فارسی را روی ال سی دی نمایش دهیم از یک ال سی دی گرافیکی 64*128 با درایور KS0108 استفاده میکنیم.در کل هدف ما در این پروژه این است که یک ال سی دی گرافیکی را با میکروکنترلر ATMEGA32 راه اندازی کنیم و دستورات مربوط به برنامه نویسی این پروژه و نمایش متن فارسی و تصویر را با زبان برنامه نویسی C به شما عزیزان آموزش دهیم.

بعد قبل
راه اندازی ال سی دی گرافیکی با AVR و نمایش فونت فارسی به زبان c 
راه اندازی ال سی دی گرافیکی با AVR و نمایش فونت فارسی به زبان c 
راه اندازی ال سی دی گرافیکی با AVR و نمایش فونت فارسی به زبان c 
بعد قبل

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

حال به بحث برنامه نویسی AVR جهت راه اندازی اولیه ال سی دی گرافیکی ، با زبان برنامه نویسی c در کدویژن میپردازیم:

برنامه کدویژن را اجرا کرده و از کدویزارد استفاده میکنیم و نوع میکرو و فرکانس کاری را مشخص میکنیم،وارد تب Graphic Display میشویم و نوع ال سی دی که استفاده میشود و در اینجا مدل KS0108 128*64 CS1,CS2 میباشد را انتخاب میکنیم و نحوه اتصال پین های ال سی دی گرافیکی به پین های میکروکنترلر را نیز تعیین میکنیم.سپس در همین صفحه کدویزارد از منوی Program گزینه Generate,save and exit را انتخاب میکنیم و سه اسم مشابه نیز انتخاب کرده و یک مسیر برای ذخیره اطلاعات برنامه انتخاب میکنیم و در نهایت کدی که کدویزارد برای ما درست میکند(البته کدهایی که لازم نبود را حذف کرده ایم)  به شکل زیر خواهد بود:

در کتابخانه glcd.h توابعی برای راحت تر کار کردن با ال سی دی تعریف شده و کتابخانه font5x7.h فونت استفاده شده برای نمایش کاراکتر ها است. دقت کنید که ال سی دی های گرافیکی مانند ال سی دی های کاراکتری نیستند و از قبل درون حافظه خود فونتی ندارند. ما در برنامه بالا از یک فونت ساده که هر کاراکتر را در یک مستطیل 5 در 7 نقطه ای نشان می دهد، استفاده کردیم. شما با استفاده از کتابخانه های فونت خود کدویژن یا کتابخانه های فونت به فرمت باینری در اینترنت، هر فونتی را می توانید در ال سی دی گرافیکی استفاده کنید و در این پروژه هدف ما استفاده از فونت فارسی بوده و نه font5x7.h . خط 18 و خط 19 دو خاصیت از ساختمان GLCDINIT_t را نشان می دهد. اولی برای خواندن دیتا از حافظه خارجی در ابتدای کار است و دومی برای نوشتن در حافظه خارجی. ما هر دو این خاصیت ها را برابر NULL دادیم. اما اگر شما این مورد را نیاز دارید، در خطوط 4 و 10 دو تابع تعریف شده است که یک آرگومان از نوع ساختمان GLCDMEMADDR_t می گیرند که این دو تابع را میتوان به جای NULL قرار داد.در صورتیکه میخواهید مقدار را برابر NULL قرار دهید،میتوانید کلا از نوشتن آنها صرفنظر کنید.

حال برای اینکه بتوانیم روی ال سی دی بصورت مستقیم فارسی بنویسیم دو پوشه Graphic و FONT را در همانجاییکه فایل های برنامه را ذخیره کرده ایم کپی میکنیم که لینک دانلود این دو فایل را در انتهای همین پروژه در اختیار شما قرار میدهیم و برای فارسی نوشتن ضروری میباشند.سپس در برنامه کدویژن از منوی Project گزینه Configure را انتخاب میکنیم و در پنجره باز شده و تب Input file گزینه Add را انتخاب میکنیم و باید وارد همان دو پوشه ای که در مسیر نصب برنامه کپی کردیم بشویم و دو فایل Font.c و Graphic.c را به برنامه اضاف کنیم.حال برای اینکه بتوانیم از فونت فارسی نیز استفاده کنیم به برنامه بالا کدهایی را باید اضاف کنیم.در درجه اول فایل های سرآیند مربوط به FONT و Graphic را که در برنامه کپی کرده بودیم اضاف میکنیم و در انتهای قسمت void main برنامه با دستور  ;()LcdFont نوع فونت ، با دستور ;()SetLetter زبان نوشتن را انتخاب میکنیم و با دستور ;()LcdFontSpace فاصله بین حروف را مشخص میکنیم و کدهای خط 5،6،7 و 8 مربوط به نوع فونت میباشند

تا به اینجا نحوه راه اندازی و اضاف کردن فونتها را آموختیم حال به چگونگی نمایش فونت فارسی و تصاویر میپردازیم.برای کار کردن با ال سی دی یکسری توابع و دستورات در فایل کتابخانه ای glcd.h آمده است و تعدادی تابع و دستور نیز برای نمایش متن فارسی در فایل هایی که خودمان به برنامه اضاف کردیم وجود دارد که در مثال زیر نحوه استفاده از آن مشخص شده است.برای نمایش تصاویر نیز را ه های مختلفی وجود دارد که ما روش زیر را پیشنهاد میکنیم:

ابتدا در مسیر نصب برنامه یک پوشه برای ذخیره تصاویر ایجاد میکنیم.از نرم افزار LCDVISION خود کدویژن استفاده میکنیم به این ترتیب که از منوی Tools گزینه LCDVISION را انتخاب میکنیم،اگر بخواهیم بصورت دستی خودمان تصویری را طراحی کنیم از منوی File گزینه New Image را انتخاب میکنیم و در پنجره باز شده نوع LCD را مشخص میکنیم که در اینجا KS0108 128*64 CS1,CS2 میباشد و همچنین اندازه تصویرمان را نیز بر حسب پیکسل تعیین میکنیم و بعد از طراحی تصویر از منوی File گزینه Save as را انتخاب کرده و تصویر را با فرمت bmp. در پوشه ای که برای ذخیره تصاویر در مسیر نصب برنامه ایجاد کرده بودیم،ذخیره میکنیم.حال از منوی فایل گزینه Import image را انتخاب کرده و تصویری را که ذخیره کرده بودیم باز میکنیم و یا اگر از قبل تصویر را با فرمت bmp. بصورت آماده داریم،آن را باز میکنیم.حال از منوی File گزینه Export را انتخاب میکنیم سپس بار دیگر از منوی File اینبار گزینه Save Export را انتخاب کرده و در پیج باز شده C Source Code را انتخاب میکنیم و برای نامگذاری آن نیز از همان نام قبلی استفاده میکنیم و به این ترتیب روند ایجاد تصویر را تکمیل کرده ایم حال تنها چیزی که باقی میماند نحوه نمایش آن بر روی LCD میباشد که برای اینکار نیز به این صورت عمل میکنیم که در مرحله اول باید با استفاده از دستور include آدرس و نام عکس را وارد کرد.بعنوان نمونه در این مثال ما در مسیر نصب برنامه یک پوشه به اسم image برای نگهداری تصاویر ایجاد کرده بودیم و تصویرمان را با نام elec98 در این پوشه ذخیره کرده بودیم،بنابراین کدی که برنامه باید اضاف کنیم:

و حال برای نمایش عکس نیز از دستور زیر استفاده خواهیم کرد:
که X و Y موقعیت سطر و ستون نمایش عکس،image نام تابع نمایش عکس است که برای فهمیدن آن باید فایل هگز عکس را باز کرد و mode نیز مربوط به حالت نمایش عکس میباشد که معمولا GLCD_PUTOR انتخاب میشود.

برای نمایش متن فارسی بصورت ساده نیز از دستور زیر استفاده میشود:

برای نمایش متن فارسی در قالب کادر نیز از دستور زیر استفاده میشود:

که در آن SetBkColor مربوط به رنگ پس زمینه و SetFgColor مربوط به رنگ نوشته و X0 و Y0 مربوط به مختصات بالا و سمت راست کادر نوشته و X1 و Y1 مربوط به مختصات پایین و سمت چپ کادر نوشته میباشد و ALINE_RIGHT OR LEFT OR CENTER مریوط به این است که نوشته در کجای کادر قرار بگیرد و bv1 1 or 2 or 3 نیز مربوط به شکل کادرها میباشد و در نهایت برنامه ما بصورت زیر خواهد شد که با کمی مطالعه میتوانید در بحث راه اندازی ال سی دی گرافیکی و نمایش فونت فارسی و تصاویر در آن مسلط شوید.

 موسسه خیریه حمایت از کودکان مبتلا به سرطان

کاربر گرامی جهت مشاهده لینک دانلود ابتدا باید وارد سایت شوید، اگر کاربر جدید هستید می توانید در کمتر از یک دقیقه به صورت رایگان عضوء سایت شوید.

 رمز فایل : www.electronics98.com

 حجم فایل : 438 کیلوبایت

 محیط برنامه نویسی : کد ویژن - CodeVisionAVR

 برنامه نویسی شده به زبان : C

 دسته اصلی : پروژه های میکروکنترلر avr

 نویسنده : فرهاد اکبری

 تاریخ انتشار :

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

مطلب پیشنهادی

کنترل دما و رطوبت محیط با استفاده از سنسور DHT11

اندازه گیری دما و رطوبت محیط با استفاده از سنسور DHT11

در این بخش تیم الکترونیک و برنامه نویسی الکترونیک ۹۸, اقدام به طراحی و انتشار …