آموزش نمایش شکل خاص در LCD کاراکتری (کد کاراکتر خاص PIC)
سلام. آموزش نمایش شکل های خاص در ال سی دی کاراکتری ( کد کاراکتر های خاص LCD PIC ) را آماده کردیم.
آموزش نمایش شکل های خاص در ال سی دی کاراکتری
در این مطلب ما میخواهیم نحوه ساخت کاراکتر ها و شکل های خاص برای نمایش در ال سی دی کاراکتری را به شما آموزش دهیم. این آموزش در کامپایلر MPLABX برای میکروکنترلر PIC انجام شده است اما مفهوم آن را یاد میگیرید و میتوانید برای بقیه میکروکنترلر ها استفاده کنید. حتی شما میتوانید با صبر حوصله از ال سی دی کاراکتری مثل یک ال سی دی گرافیکی استفاده کنید و حتی یک انیمیشن ساده و کوتاه بسازید.
همانطور که می دانیم هر کاراکتر در LCD ترکیبی از 5*8 نقطه است. ما باید انتخاب کنیم که کدام نقطه (پیکسل) در یک کاراکتر روشن باشد و کدام یک خاموش. تصویر زیر که کاراکتر قلب است به درک شما از نحوه ساخت کاراکتر کمک میکند.
همانطور که در تصویر بالا که شکل قلب را نشان میدهد میبینید این کاراکتر از 8 ردیف و 5 ستون تشکیل شده است. برای هر ردیف ما یک کد باینری داریم. و برای هر کاراکتر خاص 8 کد باینری داریم که آن شکل را میسازند. کد باینری از 7 بخش تشکیل شده است. دو بخش سمت چپ آن یکسان است یعنی 0b. پنج بخش دیگر به ما توانایی کنترل پیکسل های یک کاراکتر را میدهد. برای روشن کردن یک نقطه در کاراکتر ما باید مقدار آن نقطه را 1 قرار دهیم و برای خاموش کردن یک نقطه برای آن مقدار 0 را قرار دهیم.
مثلا به کاراکتر پایین که شکل آدمک را نشان میدهد توجه کنید :
همانطور که در تصویر پیداست، ما در ردیف اول سه نقطه میانی را روشن کردیم. پس کد ما میشود 0b01110. این سه عدد 111 باعث روشن شدن سه نقطه میانی در ردیف اول کاراکتر ما میشوند. ردیف دوم هم به همین صورت است. در ردیف سوم فقط یک نقطه میانی روشن است پس کد باینری این قسمت میشود 0b00100. در ردیف چهارم مانند ردیف اول و دوم سه نقطه میانی روشن است. در ردیف پنجم نقطه ها یکی در میان خاموش هستند یعنی کد ما میشود 0b10101. در ردیف ششم مانند ردیف سوم فقط نقطه میانی روشن است. در ردیف هفتم و هشتم نقطه ها یکی در میان روشن هستند یعنی کد آن میشود 0b01010.
برای درک بهتر کاراکتر لبخند که تصویر آن در پایین آورده شده است را نیز توضیح میدهم.
به تصویر بالا توجه کنید. ردیف اول و دوم نقطه روشنی ندارند پس کد باینری آن ها میشود 0b00000. در ردیف سوم نقطه ها یکی در میان روشن هستند یعنی کد آن میشود 0b01010. در ردیف چهارم و پنجم فقط نقطه میانی روشن است و کد باینری این دو ردیف میشود 0b00100. در ردیف ششم فقط نقطه اول و آخر روشن هستند یعنی کد آن میشود 0b10001. در ردیف هفتم سه نقطه میانی روشن هستند یعنی کد این ردیف میشود 0b01110. در ردیف آخر هم مانند ردیف اول و دوم هیچ نقطه روشنی نداریم.
تعدادی از کاراکتر های خاص دیگر را آماده کردیم و کد آن ها را برای استفاده در پایین صفحه قرار داده ایم.
خب حالا یاد گرفتیم چطور یک کاراکتر بسازیم ، چگونه از آن در یک پروژه استفاده کنیم و آن را در ال سی دی نشان دهیم ؟
کد کاراکتر های خاص LCD PIC
همانطور که در تصویر های بالا دیدید هر کاراکتر از 8 کد باینری تشکیل شده است. ما باید همه این 8 کد را به یکدیگر متصل کنیم اما چگونه ؟
به طور مثال برای کاراکتر آدمک ما باید این 8 کد باینری را کنار هم قرار دهیم مانند کد زیر :
0b01110,0b01110,0b00100,0b01110,0b10101,0b00100,0b01010,0b01010,
دقت کنید برای هر کاراکتر یک خط باید استفاده کنید.
تصویر بالا را ببینید ما 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 کاراکتری
در جدول پایین کد کاراکتر هایی که در تصویر بالا میبینید را آورده ایم میتوانید استفاده کنید. به طور مثال از کاراکتر قفل باز و قفل بسته میتوانید برای پروژه های امنیتی استفاده کنید.
شماره | نام کاراکتر | کد کاراکتر |
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 |
برای دانلود فایل ها کلیک کنید !
موارد موجود در فایل : فایل سورس کامل ، شماتیک کامل و …
سلام
آیا میتوان بیشتر از ۸ کاراکتر دلخواه در cgram تعریف کرد؟ چطور ؟
سلام یک سوال کتابخانه Xc که در کد خواسته شده از کجا بیاورم
در مرجع کتاب خانه های آردوینو جست و جو کردم ولی چیز های نامربوط می آورد
لطفا راه نمایی کنید
باسلام جناب مهندس عزیز منdisply 13pin دارم بامدل جدید 16pin تعویض کنم راهنمایی بفرمایید ممنون حقوقی
سلام عزیز
متوجه منظورتون نشدم
سلام و درود جناب رحیمی آیا کدی برای نمایش بارگراف دارید رو lcd وقتی که adc رو دریافت میکنیم
سلام عزیز
با آردوینو به سادگی میتونید این کار رو انجام بدید
برای یادگیری برنامه نویسی آردوینو میتونید از دوره آموزش آردوینو ما استفاده کنید
سلام علیکم
آموزش بسیار کاربردی رسا بود، متشکرم
آیا میتوان بیشتر از ۸ کاراکتر دلخواه در cgram تعریف کرد؟ چطور ؟
سلام آقا ، من میخوام همین کاری که شما کردی رو در کدویژن به زبان سی انجام بدم. اما کدویژن توابعش فرق میکنه لطفا کمک کنین.
سلام جناب. در اصل کار یکی هست. پیشنهاد میکنم مقاله برنامه نویسی LCD کاراکتری در کدویژن AVR رو بخونید. اگر برطرف نشد اعلام کنید.