آموزش PIC

آموزش نمایش شکل خاص در LCD کاراکتری (کد کاراکتر خاص PIC)

سلام. آموزش نمایش شکل های خاص در ال سی دی کاراکتری ( کد کاراکتر های خاص LCD PIC ) را آماده کردیم.

آموزش نمایش شکل های خاص در ال سی دی کاراکتری

آموزش نمایش شکل های خاص در ال سی دی کاراکتری

در این مطلب ما میخواهیم نحوه ساخت کاراکتر ها و شکل های خاص برای نمایش در ال سی دی کاراکتری را به شما آموزش دهیم. این آموزش در کامپایلر MPLABX برای میکروکنترلر PIC انجام شده است اما مفهوم آن را یاد میگیرید و میتوانید برای بقیه میکروکنترلر ها استفاده کنید. حتی شما میتوانید با صبر حوصله از ال سی دی کاراکتری مثل یک ال سی دی گرافیکی استفاده کنید و حتی یک انیمیشن ساده و کوتاه بسازید.

همانطور که می دانیم هر کاراکتر در LCD ترکیبی از 5*8 نقطه است. ما باید انتخاب کنیم که کدام نقطه (پیکسل) در یک کاراکتر روشن باشد و کدام یک خاموش. تصویر زیر که کاراکتر قلب است به درک شما از نحوه ساخت کاراکتر کمک میکند.

ایجاد شکل قلب در ال سی دی کاراکتری

همانطور که در تصویر بالا که شکل قلب را نشان میدهد میبینید این کاراکتر از 8 ردیف و 5 ستون تشکیل شده است. برای هر ردیف ما یک کد باینری داریم. و برای هر کاراکتر خاص 8 کد باینری داریم که آن شکل را میسازند. کد باینری از 7 بخش تشکیل شده است. دو بخش سمت چپ آن یکسان است یعنی 0b. پنج بخش دیگر به ما توانایی کنترل پیکسل های یک کاراکتر را میدهد. برای روشن کردن یک نقطه در کاراکتر ما باید مقدار آن نقطه را 1 قرار دهیم و برای خاموش کردن یک نقطه برای آن مقدار 0 را قرار دهیم.

مثلا به کاراکتر پایین که شکل آدمک را نشان میدهد توجه کنید :

کاراکتر آدمک در ال سی دی کاراکتری

همانطور که در تصویر پیداست، ما در ردیف اول سه نقطه میانی را روشن کردیم. پس کد ما میشود 0b01110. این سه عدد 111 باعث روشن شدن سه نقطه میانی در ردیف اول کاراکتر ما میشوند. ردیف دوم هم به همین صورت است. در ردیف سوم فقط یک نقطه میانی روشن است پس کد باینری این قسمت میشود 0b00100. در ردیف چهارم مانند ردیف اول و دوم سه نقطه میانی روشن است. در ردیف پنجم نقطه ها یکی در میان خاموش هستند یعنی کد ما میشود 0b10101. در ردیف ششم مانند ردیف سوم فقط نقطه میانی روشن است. در ردیف هفتم و هشتم نقطه ها یکی در میان روشن هستند یعنی کد آن میشود 0b01010.

برای درک بهتر کاراکتر لبخند که تصویر آن در پایین آورده شده است را نیز توضیح میدهم.

آموزش ایجاد کاراکتر لبخند در LCD کاراکتری

به تصویر بالا توجه کنید. ردیف اول و دوم نقطه روشنی ندارند پس کد باینری آن ها میشود 0b00000. در ردیف سوم نقطه ها یکی در میان روشن هستند یعنی کد آن میشود 0b01010. در ردیف چهارم و پنجم فقط نقطه میانی روشن است و کد باینری این دو ردیف میشود 0b00100. در ردیف ششم فقط نقطه اول و آخر روشن هستند یعنی کد آن میشود 0b10001. در ردیف هفتم سه نقطه میانی روشن هستند یعنی کد این ردیف میشود 0b01110. در ردیف آخر هم مانند ردیف اول و دوم هیچ نقطه روشنی نداریم.

تعدادی از کاراکتر های خاص دیگر را آماده کردیم و کد آن ها را برای استفاده در پایین صفحه قرار داده ایم.

خب حالا یاد گرفتیم چطور یک کاراکتر بسازیم ، چگونه از آن در یک پروژه استفاده کنیم و آن را در ال سی دی نشان دهیم ؟

کد کاراکتر های خاص LCD PIC

همانطور که در تصویر های بالا دیدید هر کاراکتر از 8 کد باینری تشکیل شده است. ما باید همه این 8 کد را به یکدیگر متصل کنیم اما چگونه ؟

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

به طور مثال برای کاراکتر آدمک ما باید این 8 کد باینری را کنار هم قرار دهیم مانند کد زیر :

0b01110,0b01110,0b00100,0b01110,0b10101,0b00100,0b01010,0b01010,

دقت کنید برای هر کاراکتر یک خط باید استفاده کنید.

کد کاراکتر های خاص LCD PIC

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

const unsigned short Custom_Char5x8[] = {
  0b01110,0b01110,0b00100,0b01110,0b10101,0b00100,0b01010,0b01010, // کد کاراکتر اول
  0b00000,0b00000,0b01010,0b00100,0b00100,0b10001,0b01110,0b00000, // کد کاراکتر دوم
  0b00100,0b01110,0b11111,0b11111,0b01110,0b01110,0b01010,0b01010, // کد کاراکتر سوم
  0b01110,0b10001,0b10001,0b11111,0b11011,0b11011,0b11111,0b00000, // کد کاراکتر چهارم
  0b01110,0b10000,0b10000,0b11111,0b11011,0b11011,0b11111,0b00000, // کد کاراکتر پنجم
  0b00000,0b10001,0b01010,0b10001,0b00100,0b01110,0b10001,0b00000, // کد کاراکتر ششم
  0b00000,0b00000,0b01010,0b10101,0b10001,0b01110,0b00100,0b00000, // کد کاراکتر هفتم
  0b11111,0b11111,0b10101,0b11011,0b11011,0b11111,0b10001,0b11111  // کد کاراکتر هشتم
};

خب با کد بالا ما 8 کاراکتر را تعریف کرده ایم. حالا چگونه آن را در ال سی دی نمایش دهیم ؟

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

    Lcd_Clear();
Lcd_Set_Cursor(1,1);
Lcd_Print_Char(0); // نشان دادن کاراکتر اول
Lcd_Print_Char(1); // نشان دادن کاراکتر دوم
Lcd_Print_Char(2); // نشان دادن کاراکتر سوم
Lcd_Print_Char(3); // نشان دادن کاراکتر چهارم
Lcd_Print_Char(4); // نشان دادن کاراکتر پنجم
Lcd_Print_Char(5); // نشان دادن کاراکتر ششم
Lcd_Print_Char(6); // نشان دادن کاراکتر هفتم
Lcd_Print_Char(7); // نشان دادن کاراکتر هشتم

کد کاراکتر های خاص برای نمایش در LCD کاراکتری

کد کاراکتر های خاص برای نمایش در LCD کاراکتری

در جدول پایین کد کاراکتر هایی که در تصویر بالا میبینید را آورده ایم میتوانید استفاده کنید. به طور مثال از کاراکتر قفل باز و قفل بسته میتوانید برای پروژه های امنیتی استفاده کنید.

شماره  نام کاراکتر کد کاراکتر
1 آدمک 0b01110,0b01110,0b00100,0b01110,0b10101,0b00100,0b01010,0b01010
2 لبخند 0b00000,0b00000,0b01010,0b00100,0b00100,0b10001,0b01110,0b00000
3 فلش رو به بالا 0b00100,0b01110,0b11111,0b11111,0b01110,0b01110,0b01010,0b01010
4 قفل 0b01110,0b10001,0b10001,0b11111,0b11011,0b11011,0b11111,0b00000
5 قفل باز شده 0b01110,0b10000,0b10000,0b11111,0b11011,0b11011,0b11111,0b00000
6 چهره ناراحت 0b00000,0b10001,0b01010,0b10001,0b00100,0b01110,0b10001,0b00000
7 قلب 0b00000,0b00000,0b01010,0b10101,0b10001,0b01110,0b00100,0b00000
8 صورت 0b11111,0b11111,0b10101,0b11011,0b11011,0b11111,0b10001,0b11111

برای دانلود فایل ها کلیک کنید !

موارد موجود در فایل : فایل سورس کامل ، شماتیک کامل و …

5 (5 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

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

9 نظر

  1. سلام
    آیا می‌توان بیشتر از ۸ کاراکتر دلخواه در cgram تعریف کرد؟ چطور ؟

  2. سلام یک سوال کتابخانه Xc که در کد خواسته شده از کجا بیاورم
    در مرجع کتاب خانه های آردوینو جست و جو کردم ولی چیز های نامربوط می آورد
    لطفا راه نمایی کنید

  3. باسلام جناب مهندس عزیز منdisply 13pin دارم بامدل جدید 16pin تعویض کنم راهنمایی بفرمایید ممنون حقوقی

    1. سلام عزیز
      متوجه منظورتون نشدم

  4. سلام و درود جناب رحیمی آیا کدی برای نمایش بارگراف دارید رو lcd وقتی که adc رو دریافت میکنیم

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

  5. سلام علیکم
    آموزش بسیار کاربردی رسا بود، متشکرم
    آیا می‌توان بیشتر از ۸ کاراکتر دلخواه در cgram تعریف کرد؟ چطور ؟

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

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

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