آشنایی باLCD کاراکتری یا حرفی/ عددی

یکی از قابلیت هایی که میکروکنترلر ها ندارند انواع نمایشگر های تصویری است.در صورت وجود یک نمایشگر تصویر، برنامه می تواند در حین اجرا به ما بگوید چه اتفاقی در حال رخ دادن است و رابطه برنامه نویس با تراشه میکروکنترلر را برقرار نماید. مثلا میکرومی تواند پیامهایی به کاربر بدهد و مقادیر عددی یک متغییر یا رجیستر را نشان دهد.
برای این منظور می توان از LCD های خاصی که برای همین کار طراحی شده است استفاده نمود. این نمایش گرهای LCD دو نوع کاراکتری(حرفی/عددی) و گرافیکی دارند.
از طریق اتصال هایی که بین میکروکنترلر ها و LCD طراحی و تعبیه شده است می توان با دو روش سریال یا موازی داده ها را برای نمایش روی LCD ارسال کرد. بسته به نوع LCD که انتخاب کرده باشیم این اتصال ها تعریف خواهد شد.
در هر زبان برنامه نویسی نیز که برای کار با میکروکنترلر انتخاب کرده باشیم، دستوراتی تعریف شده است که LCD را برای میکروکنترلر تعریف کرده و ارتباط نرم افزاری را میان آن دو برقرار می سازد.
LCD کاراکتری
16*2
برای مثال ما در اینجا به معرفی اتصالات LCD کاراکتری شانزده کاراکتری و دو خطی می پردازیم:

این نوع LCD قابلیت نمایش 2 خط و 16 کاراکتر در هر خط را داراست.این LCD ها معمولاً دارای 14 یا 16 پایه برای اتصال هستند.این نوع LCD می تواند به صورت موازی به میکروکنترلر ها متصل شود که برای این منظور از 4 پایه DB4 تا DB7 (پایه های 11 تا 14) برای ارسال داده استفاده می شود. شش پایه دیگر LCD که بایستی مورد استفاده قرار گیرند عبارتند از:
کارکرد
اتصال به
شماره PIN روی LCD
نام پایه
ENABLE
یک PIN
6
E
Read or Write
GND
5
R/W
Register Select
یک PIN
4
RS
Contrast
GND
3
VO
پایه + ولتاژ
VCC
2
VDD
پایه _ ولتاژ
GND
1
VSS
پایه R/W با توجه به اینکه LCD ها معمولاً برای نوشتن استفاده می شوند به زمین، و پایه VO که برای تنظیم کنتراست است نیز به زمین وصل شده است که البته برای تغییر و تنظیم کنتراست می توان این پایه را به یک پتانسیومتر متصل نمود و شدت آن را تغییر داد.
پس از اتصال درست یک LCD به میکروکنترلر مورد نظر، بایستی در کامپایلر مربوطه، دستورات مربوط به شناسایی LCD را قبل از برنامه نوشت.
برای مثال در زبان PICBasic از دو دستور زیر برای مشخص کردن اینکه پین RS از نمایشگر به کدام پین از کدام پورت میکرو کنترلر PIC متصل است استفاده می شود:
DEFINE LCD – RSREG PORTX
DEFINE LCD – RSBIT (Pin Number)
نمونه ای از یک اتصال LCD توضیح داده شده و میکروکنترلر PIC 16f876 :

کد برنامه شکل بالا :
' LCD should be connected as follows:
' LCD PIC
' DB4 PortA.0
' DB5 PortA.1
' DB6 PortA.2
' DB7 PortA.3
' RS PortA.4 (add 4.7K pullup resistor to 5 volts)
' E PortC.0
' RW Ground
' Vdd 5 volts
' Vss Ground
' Vo Ground
Define LCD_EREG PORTC
Define LCD_EBIT 0
Pause 500 ' Wait for LCD to startup
Lcdout $fe, 1 ' Clear LCD screen
Lcdout "Ahmad" ' Display Ahmad
high portc.3 ' Test Portc.3
Pause 900
end
منبع : www.nurc.ir

یکی از قابلیت هایی که میکروکنترلر ها ندارند انواع نمایشگر های تصویری است.در صورت وجود یک نمایشگر تصویر، برنامه می تواند در حین اجرا به ما بگوید چه اتفاقی در حال رخ دادن است و رابطه برنامه نویس با تراشه میکروکنترلر را برقرار نماید. مثلا میکرومی تواند پیامهایی به کاربر بدهد و مقادیر عددی یک متغییر یا رجیستر را نشان دهد.
برای این منظور می توان از LCD های خاصی که برای همین کار طراحی شده است استفاده نمود. این نمایش گرهای LCD دو نوع کاراکتری(حرفی/عددی) و گرافیکی دارند.
از طریق اتصال هایی که بین میکروکنترلر ها و LCD طراحی و تعبیه شده است می توان با دو روش سریال یا موازی داده ها را برای نمایش روی LCD ارسال کرد. بسته به نوع LCD که انتخاب کرده باشیم این اتصال ها تعریف خواهد شد.
در هر زبان برنامه نویسی نیز که برای کار با میکروکنترلر انتخاب کرده باشیم، دستوراتی تعریف شده است که LCD را برای میکروکنترلر تعریف کرده و ارتباط نرم افزاری را میان آن دو برقرار می سازد.
LCD کاراکتری
16*2
برای مثال ما در اینجا به معرفی اتصالات LCD کاراکتری شانزده کاراکتری و دو خطی می پردازیم:

این نوع LCD قابلیت نمایش 2 خط و 16 کاراکتر در هر خط را داراست.این LCD ها معمولاً دارای 14 یا 16 پایه برای اتصال هستند.این نوع LCD می تواند به صورت موازی به میکروکنترلر ها متصل شود که برای این منظور از 4 پایه DB4 تا DB7 (پایه های 11 تا 14) برای ارسال داده استفاده می شود. شش پایه دیگر LCD که بایستی مورد استفاده قرار گیرند عبارتند از:
کارکرد
اتصال به
شماره PIN روی LCD
نام پایه
ENABLE
یک PIN
6
E
Read or Write
GND
5
R/W
Register Select
یک PIN
4
RS
Contrast
GND
3
VO
پایه + ولتاژ
VCC
2
VDD
پایه _ ولتاژ
GND
1
VSS
پایه R/W با توجه به اینکه LCD ها معمولاً برای نوشتن استفاده می شوند به زمین، و پایه VO که برای تنظیم کنتراست است نیز به زمین وصل شده است که البته برای تغییر و تنظیم کنتراست می توان این پایه را به یک پتانسیومتر متصل نمود و شدت آن را تغییر داد.
پس از اتصال درست یک LCD به میکروکنترلر مورد نظر، بایستی در کامپایلر مربوطه، دستورات مربوط به شناسایی LCD را قبل از برنامه نوشت.
برای مثال در زبان PICBasic از دو دستور زیر برای مشخص کردن اینکه پین RS از نمایشگر به کدام پین از کدام پورت میکرو کنترلر PIC متصل است استفاده می شود:
DEFINE LCD – RSREG PORTX
DEFINE LCD – RSBIT (Pin Number)
نمونه ای از یک اتصال LCD توضیح داده شده و میکروکنترلر PIC 16f876 :

کد برنامه شکل بالا :
' LCD should be connected as follows:
' LCD PIC
' DB4 PortA.0
' DB5 PortA.1
' DB6 PortA.2
' DB7 PortA.3
' RS PortA.4 (add 4.7K pullup resistor to 5 volts)
' E PortC.0
' RW Ground
' Vdd 5 volts
' Vss Ground
' Vo Ground
Define LCD_EREG PORTC
Define LCD_EBIT 0
Pause 500 ' Wait for LCD to startup
Lcdout $fe, 1 ' Clear LCD screen
Lcdout "Ahmad" ' Display Ahmad
high portc.3 ' Test Portc.3
Pause 900
end
منبع : www.nurc.ir