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

نوشتن متن فارسی در LCD گرافیکی

شاید امروزه LCD ها, مهمترین و پرکاربردترین نمایشگرها در دنیای ما باشند. این نمایشگرها که بر اساس خواص موادی به نام کریستال مایع شکل گرفته اند, انواع گوناگونی دارند و با فناوری های مختلفی ساخته می شوند. دسته ای از نمایشگرهای LCD با داشتن قابلیت نمایش متن و تصویر, به ال سی دی های گرافیکی شهرت یافته اند.

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

LCD گرافیکی با تراشه KS0108

این LCD ها با توجه به تراشه راه اندازشان شناخته می شوند و تراشه KS0108, از جمله شناخته شده ترین راه اندازهای LCD های گرافیکی است که توانایی راه اندازی یک LCD گرافیکی ماتریس نقطه ای 64*64 را دارد. این بدین معنا می باشد که در مدار یک LCD گرافیکی 64*128 دو عدد تراشه KS0108 جهت راه اندازی LCD گرافیکی به کار گرفته شده است. در این پروژه قصد داریم تا یک متن فارسی را به کمک میکروکنترلری از خانواده AVR بر روی یک ال سی دی گرافیکی 64*128 نمایش دهیم.

ال سی دی های گرافیکی با توجه به تراشه پردازنده خود معرفی می گردند. این پردازندها, راه انداز (Driver) نامیده می شوند. غالبا راه اندازهای LCD های گرافیکی, یکی از تراشه های T6963 ساخت شرکت توشیبا (Toshiba) یا KS0108 ساخت شرکت (Samsung) می باشند.لازم به ذکر است تنها تفاوت بین LCD های گرافیکی با تراشه راه انداز T6963 و KS0108 قابلیت تعریف فونت در LCD گرافیکی با تراشه راه انداز KS0108 می باشد. از آنجا که هدف ما در این پروژه نمایش متن فارسی در LCD گرافیکی می باشد و نیاز به تعریف فونت داریم از LCD گرافیکی با تراشه KS0108 یا همان ال سی دی های سری SED استفاده می کنیم.

نقشه شماتیک راه اندازی و نوشتن متن فارسی در LCD گرافیکی

شکل زیر حداقل مدار مورد نیاز جهت راه اندازی یک LCD گرافیکی با تراشه KS0108 با میکروکنترلر ATmega16 را نشان می دهد. برای اینکه بتوانیم یک متن یا یک تصویر را بر روی LCD گرافیکی نمایش دهیم, ابتدا باید ال سی دی گرافیکی را همانند شکل زیر به صورت سخت افزار به میکروکنترلر AVR متصل کنیم.

نقشه شماتیک راه اندازی و نوشتن متن فارسی در LCD گرافیکی

برنامه راه اندازی LCD گرافیکی در نرم افزار Bascom AVR

بعد از بستن مدار ساده بالا جهت راه اندازی LCD گرافیکی نوبت به برنامه نویسی میکروکنترلر AVR جهت اعمال دستورات نمایش متن و تصاویر بر روی ال سی دی گرافیکی می رسد. در برنامه زیر که در محیط نرم افزار برنامه نویسی BASCOM-AVR به زبان بیسیک BASIC نوشته شده است, با توجه به نقشه شماتیک بالا یک عدد LCD گرافیکی SED را به اندازه 64*128 با میکروکنترلر ATmega32 پیکربندی می کنیم و یک متن ساده (البته فعلا به زبان انگلیسی) را در خط اول بدون پس زمینه و در خط سوم با پس زمینه و در نهایت یک تصویر در انتهای صفحه نمایش می دهیم.

شرح برنامه میکروکنترلر به زبان بیسیک BASIC

در برنامه بالا ابتدا توسط دستور زیر LCD گرافیکی را پیکربندی می نمائیم.

همانطور که گفته شد, در LCD های گرافیکی KS0108 یا SED می توانیم فونت مورد نظر خود را تعریف کنیم, از آنجا که در بالا یک متن انگلیسی را نوشته ایم و می خواهیم نمایش دهیم نیاز به ساخت فونت نیست و از همان فونت پیش فرض نرم افزار BASCOM-AVR استفاده می کنیم. توسط دستور زیر فونت مورد نظر را فراخوانی و توسط دستور بعدی فونت فراخوانی شده را فعال می کنیم.

توجه : در هنگام کامپایل کردن برنامه باید فونت پیش فرض را در جایی که برنامه قرار دارد کپی کنید. همواره می توانید فونت پیش فرض انگلیسی نرم افزار BASCOM-AVR را از مسیر زیر در کامپیوتر خود به شرط نصب نرم افزار BASCOM-AVR در درایو C بیابید.

با به کار گیری دستورات زیر اقدام به نوشتن متن مورد نظرمان می کنیم, همچنین می توانید در طول نمایش متون توسط دستور CLS اقدام به پاک کردن صفحه نمایش کنید.

نحوه نمایش تصویر بر روی LCD گرافیکی

نمایش تصویر در LCD های گرافیکی بسیار ساده بوده, برای اینکار کافی است تا تنها یک تصویر به اندازه مورد نظرمان با فرمت BMP داشته باشیم, سپس کافی است تا از طریق گزینه Tools در قسمت نوار ابزار نرم افزار BASCOM-AVR برنامه Graphic Converter را اجرا کنیم. (شکل زیر)

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

سپس در پنجره باز شده, ابتدا اندازه LCD گرافیکی به کار رفته در پروژه تان را انتخاب کنید و در پایان در صورتی که از ال سی دی های گرافیکی سری SED استفاده می کنید تیک گزینه SED series را بزنید. حال توسط گزینه Load عکس مورد نظرتان با فرمت BMP را انتخاب کنید و سپس توسط گزینه Save آن را در جایی که برنامه تان را ذخیره کرده اید با نام دلخواه ذخیره کنید. (شکل زیر)

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

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

در دستور بالا کلمه PIC نام زیر برنامه ای یا همان برچسبی است که تصویر مورد نظرمان در آن جای گرفته است این کلمه می تواند هر نامی به دلخواه داشته باشد. همچنین Calculator نام عکس ذخیره شده است, توجه داشته باشید که شما باید همان نامی را وارد کنید که در مرحله قبل تصویر خود را در محل برنامه ذخیره کرده اید.

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

Lable : برچسبی است که فایل تصویر ما در حافظه FLASH با فرمت BGF ذخیره شده است. این برچسب بعد از اتمام برنامه (END) نوشته می شود.

توجه : جهت طراحی تصاویر با کیفیت عالی جهت نمایش در ال سی دی های گرافیکی می توانید از نرم افزار پرتابل LCDconvert استفاده کنید. این نرم افزار را می توانید از قسمت انتهایی همین پست با لینک مستقیم از سرورهای پر قدرت اکترونیک 98 دانلود نمائید.

نحوه نمایش متن فارسی در LCD گرافیکی

همانطور که گفته شد برای نمایش کاراکترهای دلخواه در LCD های گرافیکی سری SED باید یک فونت اختصاصی طراحی کنیم, به همین منظور جهت نمایش متن فارسی در ال سی دی های گرافیکی باید یک فونت فارسی به جای فونت پیش فرض نرم افزار BASCOM-AVR طراحی کنیم. نرم افزارهای متفاوتی جهت طراحی فونت برای LCD های گرافیکی وجود دارد, اما از معروف ترین آن ها برنامه Font Editor خود نرم افزار BASCOM-AVR می باشد.

برای دسترسی به این برنامه از منوی Tools در نوار ابزار نرم افزار BASCOM-AVR از طریق گزینه Plugins برنامه Font Editor را اجرا نمائید و اقدام به طراحی فونت مورد نظر خود نمائید. برای راحتی شما دوستان عزیز تیم الکترونیک 98 اقدام به طراحی فونت فارسی و انگلیسی در کنار هم نموده است. که با بکارگیری و استفاده از این فونت هم به حروف انگلیسی و هم فارسی دسترسی دارید. در ادامه می توانید این فونت آماده را به همراه برنامه های نوشته شده در نرم افزار BASCOM-AVR به زبان BASIC را دانلود نمائید.

برنامه نوشتن متن فارسی بر روی LCD گرافیکی

برای آشنایی شما با نحوه نوشتن متن به صورت فارسی بر روی LCD گرافیکی در فایل پروژه یک برنامه ساده در محیط BASCOM-AVR به زبان بیسیک BASIC نوشته شده است که در این برنامه عبارت (آموزش نوشتن متن فارسی در ال سی دی گرافیکی) به ترتیب از خط اول تا سوم و عبارت (الکترونیک98) در خط پنجم و عبارت (electronics98) به صورت انگلیسی در خط هفتم نمایش داده می شود. (تصویر اول پست)

توجه : برای استفاده از فونت فارسی و انگلیسی به جای کپی کردن فونت انگلیسی پیش فرض نرم افزار BASCOM-AVR در محل ذخیره برنامه تان, فونت ارائه شده در این پروژه را به محل برنامه ذخیره شده پروژه تان انتقال دهید, و از سبک برنامه نویسی بالا جهت نمایش حروف فارسی استفاده کنید.

 اطلاعات پروژه

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

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

 محیط برنامه نویسی : BASCOM-AVR

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

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

 تاریخ انتشار : 19 سپتامبر 2014

10 دیدگاه

  1. نرم افزار تبدیل فایل عکس به هگز lcd n95 با مراجعه به وبلاگ 
    دانلود نرم افزار

  2. سلام
    میخواستم ببینم از این فونت شما میشه برای آردوینو هم استفاده کرد؟

  3. سلام دوست عزیز
    خیر – باید با نرم افزارهای مربوط به آردوینو اقدام به طراحی فونت نمائید.

  4. سلام وقت بخیر مهندس
    ممنون از فایل مفیدتون
    یه سوال داشتم . چجوریه که من تا یک تغییر بسیار کوچک در جمله ایجاد می کنم مثلا حرف را عوض می کنم ، بعد از کامپایل دیگر چیزی نمایش داده نمی شود ؟

  5. گمونم فایل hex درست باشه و فایل bas ناقصه ، چون با کامپایل کردن فایل bas ، فایل hex جدید دیگر عملکرد درستی ندارد

  6. سلام دوست عزیز
    این موضوع می تواند به دلیل ویرایش و یا کد نویسی اشتباه برنامه باشد. همچنین بهتر است از کامپایلر BASCOM-AVR نسخه 1.11.9.0 استفاده کنید چراکه نسخه های جدیدتر رایگان نبوده و معمولا کرک آن ها مربوط به نسخه آزمایشی و محدود است.

  7. سلام و وقت بخیر
    من یه lcd 128*64 دارم که نمیدونم سالمه یا خراب شده یه میکروکنتلر atmega16 هم دارم میخام تستش کنم باید چیکار کنم؟ پروگرامرم هم stk300 هست
    ممنون میشم اگه راهنمایی کنید

  8. فرهاد اکبری

    سلام دوست عزیز
    برای تست اولیه نمایشگر تنها کافی یک خط برنامه ساده برای میکروکنترلر بنویسید که مثلا کلمه Hello را بر روی ال سی دی نمایش بده (مثل اولین برنامه ای که در ابتدا همین پست ارائه شده) و در نهایت برنامه را توسط پروگرامر بر روی میکروکنترلر انتقال دهید.

  9. سلام لطفا راهنمایی می کنید که برای ساخت همین پروژه چه قطعاتی لازم داریم لطفا دقیق بگید بهم ممنون میشم

  10. سلام دوست عزیز
    :: میکروکنترلر ATmega16
    :: LCD گرافیکی با درایور KS0108
    :: پتانسیومتر 10 کیلو اهم
    :: برد بورد
    :: مقدار سیم

 شرایط و قوانین ثبت دیدگاه

 فارسی بنویسید و از کیبورد فارسی استفاده کنید.

 لطفاً بیش‌از‌حدِ معمول، شکلک یا ایموجی استفاده نکنید و از کشیدن حروف یا کلمات با صفحه‌کلید بپرهیزید.

 به کاربران و سایر اشخاص احترام بگذارید. پیام‌هایی که شامل محتوای توهین‌آمیز و کلمات نامناسب باشند، حذف می‌شوند.

 از ارسال لینک‌های سایت‌های دیگر و ارایه‌ی اطلاعات شخصی خودتان مثل شماره تماس، ایمیل و آی‌دی شبکه‌های اجتماعی پرهیز کنید.