نحوه اتصال و راهاندازی LCD کاراکتری با میکروکنترلر AVR
نحوه اتصال و راهاندازی LCD کاراکتری با میکروکنترلر AVR در پروژههای الکترونیکی و کاربردی، نمایش اطلاعات به صورت کاراکترهای قابلخواندن برای کاربر امری ضروری است. یکی از راههای متداول برای نمایش اطلاعات، استفاده از نمایشگرهای LCD کاراکتری است. این نوع نمایشگرها به دلیل سهولت در استفاده، هزینه پایین و توانایی نمایش کاراکترها به شکل قابلفهم، در بسیاری از پروژههای مبتنی بر میکروکنترلر مورد استفاده قرار میگیرند. در این مقاله به نحوه اتصال و راهاندازی یک نمایشگر LCD کاراکتری به میکروکنترلر AVR خواهیم پرداخت و مراحل لازم برای نمایش اطلاعات بر روی آن را شرح میدهیم.
معرفی نمایشگر LCD کاراکتری
نمایشگرهای LCD کاراکتری معمولاً از دو ردیف با ۱۶ کاراکتر در هر ردیف تشکیل شدهاند (16×2)؛ البته مدلهای دیگر مانند 20×4 نیز وجود دارند. این نمایشگرها از درایورهای داخلی بهره میبرند که فرآیندهای نمایش کاراکترها را سادهتر میکنند. نمایشگرهای LCD کاراکتری دارای پینهای ورودی و خروجی متعددی هستند که برخی از آنها برای تغذیه و برخی برای ارتباط با میکروکنترلر استفاده میشوند.
اجزای تشکیلدهنده نمایشگر LCD
پینهای اصلی LCD شامل موارد زیر است:
- VSS: پین زمین یا منفی تغذیه
- VDD: پین مثبت تغذیه (+5 ولت)
- V0: تنظیم کنتراست نمایشگر
- RS: انتخاب رجیستر (رجیستر دستور یا داده)
- RW: انتخاب حالت خواندن یا نوشتن
- E: پین فعالسازی (Enable)
- DB0 تا DB7: پینهای داده (۸ بیت)
- LED+ و LED-: پینهای کنترل نور پسزمینه
مراحل اتصال نمایشگر LCD به میکروکنترلر AVR
1. اتصال تغذیه و تنظیم کنتراست
ابتدا باید تغذیه نمایشگر را متصل کنید. پین VSS به زمین (GND) و پین VDD به ولتاژ ۵ ولت متصل میشود. برای تنظیم کنتراست، پین V0 به یک پتانسیومتر متصل میشود. با چرخاندن پتانسیومتر میتوانید کنتراست نمایشگر را تنظیم کنید.
2. اتصال پینهای کنترلی
سه پین کنترلی مهم برای راهاندازی نمایشگر عبارتند از RS، RW و E. پین RS برای تعیین اینکه دادهی ارسالی به نمایشگر، دستور (command) است یا داده (data) استفاده میشود. اگر RS برابر ۰ باشد، اطلاعات به عنوان دستور تفسیر میشود و اگر ۱ باشد، داده نمایش داده میشود.
پین RW نیز تعیین میکند که نمایشگر در حالت خواندن (read) یا نوشتن (write) باشد. معمولاً برای راهاندازی ابتدایی، RW به زمین متصل میشود تا تنها در حالت نوشتن کار کند.
پین E (Enable) برای فعال کردن تراکنش داده به کار میرود. با ارسال یک پالس کوتاه به این پین، نمایشگر دستور یا داده ارسالشده را دریافت میکند.
3. اتصال پینهای داده
LCD کاراکتری میتواند در حالت ۴ بیتی یا ۸ بیتی راهاندازی شود. در حالت ۸ بیتی، تمامی ۸ پین داده (DB0 تا DB7) به پینهای I/O میکروکنترلر متصل میشوند. اما در حالت ۴ بیتی تنها از پینهای DB4 تا DB7 استفاده میشود که این روش متداولتر است زیرا پینهای I/O کمتری از میکروکنترلر اشغال میشود.
4. اتصال پینهای نور پسزمینه (اختیاری)
برای روشنکردن نور پسزمینه نمایشگر، باید پینهای LED+ و LED- به ولتاژ و زمین متصل شوند. این کار به صورت اختیاری انجام میشود و بسته به نیاز پروژه، میتوان نور پسزمینه را فعال یا غیرفعال کرد.
برنامهنویسی و ارسال داده به نمایشگر
حال که نمایشگر به میکروکنترلر متصل شد، باید از طریق کدنویسی آن را راهاندازی کنیم. برای این کار از زبان برنامهنویسی C در محیط AVR Studio یا CodeVision استفاده میکنیم. در ادامه مراحل لازم برای برنامهنویسی را شرح میدهیم.
1. پیکربندی پینها
ابتدا باید پینهای میکروکنترلر که به LCD متصل شدهاند را به عنوان خروجی تنظیم کنیم:
DDRC = 0xFF; // پورت C به عنوان خروجی (پینهای داده)
DDRD |= (1 << PD0) | (1 << PD1); // تنظیم پینهای کنترل RS و E به عنوان خروجی
2. ارسال دستور به LCD
برای ارسال دستورات مانند پاک کردن صفحه نمایش یا تنظیم مود کار (4 بیت یا 8 بیت)، از تابع زیر استفاده میکنیم:
void lcd_command(unsigned char cmd) {
PORTC = cmd; // ارسال دستور به پورت داده
PORTD &= ~(1 << PD0); // RS = 0 (ارسال دستور)
PORTD |= (1 << PD1); // E = 1 (فعالسازی LCD)
_delay_ms(1);
PORTD &= ~(1 << PD1); // E = 0 (پایان فعالسازی)
}
3. ارسال داده به LCD
برای نمایش کاراکتر یا دادهای خاص بر روی LCD، تابع مشابهی استفاده میکنیم، اما با تنظیم RS بر روی ۱ برای مشخص کردن اینکه داده ارسال میشود:
void lcd_data(unsigned char data) {
PORTC = data; // ارسال داده به پورت داده
PORTD |= (1 << PD0); // RS = 1 (ارسال داده)
PORTD |= (1 << PD1); // E = 1 (فعالسازی LCD)
_delay_ms(1);
PORTD &= ~(1 << PD1); // E = 0 (پایان فعالسازی)
}
4. راهاندازی LCD
برای شروع به کار LCD و تنظیم آن در حالت ۴ بیتی، باید یک سری دستورات اولیه را ارسال کنیم:
void lcd_init(void) {
_delay_ms(15); // تأخیر اولیه
lcd_command(0x30); // تنظیم اولیه
_delay_ms(5);
lcd_command(0x20); // ورود به حالت 4 بیتی
lcd_command(0x28); // دو خطه و 5x7 فونت
lcd_command(0x0C); // نمایش فعال و بدون نمایشگر چشمکزن
lcd_command(0x06); // تنظیم حرکت خودکار
lcd_command(0x01); // پاک کردن نمایشگر
}
5. نمایش کاراکترها
برای نمایش کاراکترها بر روی LCD، از توابع آماده استفاده میکنیم:
void lcd_print(char *str) {
while (*str) {
lcd_data(*str++);
}
}
نتیجهگیری
با اتصال صحیح نمایشگر LCD به میکروکنترلر AVR و برنامهنویسی مناسب، میتوانید اطلاعات مورد نظر خود را به راحتی روی نمایشگر نمایش دهید. راهاندازی LCD در حالت ۴ بیتی به دلیل استفاده کمتر از پینهای میکروکنترلر، رایجتر است. این نمایشگرها ابزاری مناسب برای پروژههایی هستند که نیاز به نمایش اطلاعات متنی دارند و بهطور گسترده در صنایع و پروژههای خانگی استفاده میشوند.
نحوه اتصال و راهاندازی LCD کاراکتری با میکروکنترلر AVR
مطلب پیشنهادی
انواع میکروکنترلرهای شرکت Atmega و مقایسه آنها