آشنایی با نمایشگرهای کاراکتری (LCD) و نحوهی استفاده و راهاندازی آن با استفاده از میکروکنترلرهای AVR...
با عرض سلام خدمت دوستان عزیز
در این جلسه در مورد نحوهی استفاده از LCDهای کاراکتری (Alphanumeric LCD) در محیط CodeVision توسط میکروکنترلرهای AVR توضیح خواهیم داد.
نمایشگر قطعهاي الکترونیکی است که با اتصال آن به میکروکنترلر میتوان هرگونه تصویری را بهنمایش درآورد. نمایشگرها در مدلهای بسیار متنوع برای کاربردهای مختلف در بازار وجود دارند. از LCDهای رنگیای که در موبایلها استفاده میشوند گرفته تا مدلهای بسیار ابتدایی مانند 7segment قبلاً با آن آشنا شدهایم. در این جلسه ما با نوعی نمایشگر LCD آشنا خواهیم شد که بهوسیله ی آن میتوان تمام نمادهایی که در سیستم کدگذاری ASCII وجود دارند را به نمایش در آورد. همانطور که قبلاً اشاره شد، این نمادها شامل تمام حروف الفبای بزرگ و کوچک، اعداد لاتین و .... هستند. این نوع LCD را در اصطلاح تجاری LCDهای کاراکتری (Alphanumeric LCD) میگویند.
نمایشگرها در ساخت رباتها و دستگاههای هوشمند الکترونیکی کاربرد بسیار زیادی دارند. با ذکر چند مثال شما را با کاربرد این نمایشگرها بیشتر آشنا میکنیم.
در ربات مینیاب برای اعلام مختصات مینها به داور، باید روبات مجهز به نمایشگری باشد که بتوان این اطلاعات را بر روی آن به نمایش درآورد.
در ربات فوتبالیست، نمایشگر در زمان مسابقه کاربرد مستقیمی ندارد، اما در مراحل عیبیابی و تنظیمات اولیه سنسورها کاربرد زیادی دارد. مثلاً برای تنظیم حساسیت هر سنسور، اطلاعات آن بر روی صفحه نمایش به کاربر نشان داده میشود و کاربر میتواند آن را سریع تر تنظیم کند. بهعنوان مثال برای تنظیم سنسورهای نوری میتوان ولتاژ خروجی آن را توسط ADC اندازهگیری کرد و بر روی LCD نمایش داد.
از دیگر موارد کاربرد این نوع LCDها میتوان به دستگاههای تلفن خانگی اشاره کرد که بهکمک آن، دادههایی مثل شمارهی تلفن فرد تماسگیرنده، دفترچه تلفن و ... را نمایش میدهد.
LCDهای کارکتری در سایزهای مختلفی وجود دارند. سایز این نوع LCD را بر اساس تعداد کاراکترهایی که در هر سطر و ستون نمایش داده میشوند، تعیین میکنند. پرکاربردترین سایز LCDهای کاراکتری 16*2 است، یعنی این LCD میتواند 2 ردیف 16 تایی کاراکتر را همزمان روی صفحه نمایش دهد. قیمت این LCD در تهران حدود 3000 تومان است.
| چگونه از LCD استفاده کنیم؟ |
در ساختمان داخلی این LCDها مدارات متعددی وجود دارد که اطلاعاتی که برای نمایش دادن به LCD فرستاده میشود را پردازش کرده و اطلاعات مورد نظر ما را روی صفحه بهنمایش در میآورند. این اطلاعات باید از طریق پایههای LCD به آن منتقل شوند. برقراری ارتباط و نمایش اطلاعات بر روی LCD کار چندان ساده ای نیست، اما CodeVision در اینجا هم به کمک ما آمده است و کار را بسیار ساده کرده است.
توضیح در مورد نحوهی استفاده از LCD را از تنظیمات نرمافزاری آن در محیط codevision شروع میکنیم.
| تنطیمات اولیه در CodeVision برای راهاندازی LCD: |
Codevision را باز کرده و طبق روندی که قبلاً گفته شد پروژهی جدیدی بسازید. سپس در Code Wizard تنظیمات مربوط به لبهی Chip را طبق آنچه قبلاً گفته شد انجام دهید.
حالا سراغ لبهی LCD میرویم.
برای راهاندازی LCDهای کارکتری، باید تمام پایههای یکی از پورتهای میکروکنترلر را به پایههای مربوطه در LCD متصل کنیم.
ابتدا باید تعیین کنیم میخواهیم کدام پورت را به LCD اختصاص دهیم.
سپس باید با تعیین تعداد کاراکترهای قابل نمایش در هر سطر از LCD نوع آن را مشخص کنیم. مثلاً اگر LCD ما 16*2 است، باید عدد 16 را انتخاب کنیم.
سپس نحوهی اتصال پایههای میکروکنترلر به LCD را با توجه به نوع LCD به شما نشان میدهد.
برای مثال ترتیب اتصال پایهها برای LCD 16*2 بر روی پورت "B" در زیر نشان داده شده است.
پایه PB.0 به پایهی چهارم LCD متصل شود.
پایه PB.1 به پایهی پنجم LCD متصل شود.
پایه PB.2 به پایهی ششم LCD متصل شود.
پایه PB.3 به جایی متصل نمیشود.
پایه PB.4 به پایهی یازدهم LCD متصل شود.
پایه PB.5 به پایهی دوازدهم LCD متصل شود.
پایه PB.6 به پایهی سیزدهم LCD متصل شود.
پایه PB.7 به پایهی چهاردهم LCD متصل شود.
بعد از اینکه طبق ترتیب ذکر شده پایهها را متصل کردیم، و تنظیمات اولیه را در CodeWizard انجام دادیم، سراغ برنامهنویسی آن می رویم. CodeVision توابعی را آماده کرده است که به کمک آنها میتوانیم بهسادگی اطلاعات موردنظر خودمان روی LCD نمایش دهیم، اما از آنجایی که ما هنوز با مبحث توابع آشنایی نداریم، فعلاً این توابع را به صورت دستورهاي از پیش تعیین شده استفاده میکنیم. در جلسههاي آینده حتماً در مورد مبحث توابع مفصلاً توضیح خواهیم داد.
| 4 دستور اصلی برای نمایش اطلاعات روی LCD: |
این دستور برای نمایش یک کاراکتر بر روی LCD استفاده میشود. مثلاً دستور زیر حرف F را بر روی LCD نمایش میدهد:
این دستور برای نمایش یک رشته از حروف بر روی LCD استفاده میشود. مثلاً دستور زیر جملهی it is a test را بر روی LCD نمایش میدهد:
lcd_putsf(“it is a test”); |
این دستور برای پاک کردن LCD مورد استفاده قرار میگیرد. این دستور هر کاراکتری را که روی LCD در حال نمایش باشد پاک میکند.
بهکمک این دستور میتوان تعیین کرد کاراکتر یا جملهی مورد نظر ما در کدام سطر و ستون در LCD نوشته شود. مثلاً دستورهاي زیر lcd را پاک کرده و واژهی Hello را از وسط سطر دوم مینویسد. شمارهگذاری سطرها و ستونها از 0 شروع میشود. پس سطر شمارهی 1 ، سطر دوم است.
lcd_clear(); lcd_gotoxy(1,7); lcd_putsf(“Hello”); |
LCD نیز مانند هر قطعهی الکترونیکی دیگر نیاز به 2 پایه برای تغذیه + و – دارد. در LCDهای 16*2 اختلاف پتانسیل مورد نیاز برای تغدیه باید 5 ولت باشد. پایه شمارهی 1 باید به GND و پایهی شمارهی 2 باید به 5 ولت متصل شود. پایهی شمارهی 3 نیز برای تنظیم نور زمینه در LCD تعبیه شده است. در حالت معمولی باید این پایه مستقیماً به GND متصل شود.
پایههای 15 و 16 نیز برای تغذیهی نور پشت زمینه هستند. پایهی 15 به Vcc (5 ولت) و پایهی 16 به GND متصل میشود.
منتظر سوالها و نظرهاي دوستان عزیزم هستم.
جلسه آینده با کمی تاخیر به خاطر امتحانات ترم دوستان بر روی سایت قرار خواهد گرفت.
موفق و پیروز باشید.
دوست شما، فراز امیرغیاثوند