ایمبیڈڈ پروجیکٹس اور الیکٹرانکس کی مصنوعات میں ڈسپلے یونٹ سب سے اہم آؤٹ پٹ ڈیوائس ہیں۔ 16x2 LCD سب سے زیادہ استعمال شدہ ڈسپلے یونٹ میں سے ایک ہے۔ 16x2 LCD کا مطلب یہ ہے کہ دو قطاریں ہیں جن میں ہر لائن میں 16 حروف آویزاں کیے جاسکتے ہیں ، اور ہر حرف LCD پر 5X7 میٹرکس جگہ لیتا ہے۔ اس ٹیوٹوریل میں ہم 16X2 LCD ماڈیول کو 8051 مائکروکنٹرولر (AT89S52) سے مربوط کرنے جارہے ہیں۔ انٹرفیسنگ LCD 8051 مائکرو قابو پانے والے کو نوزائیدہوں کے ل quite کافی پیچیدہ لگ سکتا ہے ، لیکن اس تصور کو سمجھنے کے بعد یہ بہت آسان اور آسان نظر آئے گا۔ اگرچہ اس میں وقت لگ سکتا ہے کیونکہ آپ کو ایل سی ڈی کے 16 پنوں کو مائکروکنٹرولر سے سمجھنے اور جوڑنے کی ضرورت ہے۔ تو آئیے پہلے ایل سی ڈی ماڈیول کے 16 پنوں کو سمجھیں۔
ہم اسے پانچ زمروں ، پاور پن ، کنٹراسٹ پن ، کنٹرول پن ، ڈیٹا پن اور بیک لائٹ پنوں میں تقسیم کرسکتے ہیں۔
قسم |
پن نہیں |
پن کا نام |
فنکشن |
پاور پن |
1 |
وی ایس ایس |
گراؤنڈ پن ، گراؤنڈ سے منسلک ہے |
2 |
وی ڈی ڈی یا وی سی سی |
وولٹیج پن + 5V |
|
کنٹراسٹ پن |
3 |
V0 یا VEE |
کنٹراسٹ سیٹنگ ، وی سی سی سے متصل متغیر رزسٹر کو پوری طرح سے۔ |
کنٹرول پن |
4 |
RS |
رجسٹر کریں منتخب کریں پن ، RS = 0 کمانڈ وضع ، RS = 1 ڈیٹا موڈ |
5 |
آر ڈبلیو |
پڑھیں / لکھیں پن ، RW = 0 لکھیں موڈ ، آر ڈبلیو = 1 ریڈ موڈ |
|
6 |
ای |
قابل بنائیں ، LCD کو قابل بنانے کیلئے اعلی سے کم نبض کی ضرورت ہے |
|
ڈیٹا پن |
7-14 |
D0-D7 |
LCD یا کمانڈ ہدایات پر ظاہر کرنے کے لئے ڈیٹا پن ، ڈیٹا کو اسٹور کرتا ہے |
بیک لائٹ پن |
15 |
ایل ای ڈی + یا A |
بیک لائٹ + 5V کو طاقت بخشنے کے لئے |
16 |
ایل ای ڈی- یا K |
بیک لائٹ گراؤنڈ |
تمام پنوں کو ان کے نام اور افعال سے واضح طور پر قابل فہم ہے ، سوائے کنٹرول پن کے ، لہذا ان کی وضاحت ذیل میں کی گئی ہے۔
RS: RS رجسٹر سلیکٹ پن ہے۔ اگر ہم LCD پر ظاہر کرنے کے لئے کچھ ڈیٹا بھیج رہے ہیں تو ہمیں اسے 1 پر متعین کرنے کی ضرورت ہے۔ اور اگر ہم کچھ کمانڈ انسٹرکشن بھیج رہے ہیں جیسے سکرین کو صاف کریں (ہیکس کوڈ 01)۔
آر ڈبلیو: یہ پڑھنا / لکھنا پن ہے ، اگر ہم LCD پر کچھ ڈیٹا لکھنے جا رہے ہیں تو ہم اسے 0 پر مرتب کریں گے۔ اور 1 پر سیٹ کریں ، اگر ہم LCD ماڈیول سے پڑھ رہے ہیں۔ عام طور پر یہ 0 پر سیٹ کیا جاتا ہے ، کیونکہ ہمیں LCD سے ڈیٹا پڑھنے کی ضرورت نہیں ہے۔ صرف ایک ہدایت "حاصل کریں ایل سی ڈی کا درجہ" ، کچھ اوقات پڑھنے کی ضرورت ہے۔
ای: اس پن کو ماڈیول کو فعال کرنے کے لئے استعمال کیا جاتا ہے جب اس کو اعلی سے کم نبض دیا جاتا ہے۔ ایک نبض 450 این ایس دی جانی چاہئے۔ HIGH سے LOW تک کی منتقلی ماڈیول کو قابل بناتی ہے۔
LCD میں کچھ پیش سیٹ کمانڈ ہدایات موجود ہیں ، LCD (lcd_init () فنکشن میں) تیار کرنے کے لئے ہم نے انہیں نیچے اپنے پروگرام میں استعمال کیا ہے۔ کمانڈ کی کچھ اہم ہدایات ذیل میں دی گئی ہیں۔
ہیکس کوڈ |
ایل سی ڈی انسٹرکشن رجسٹر کو کمانڈ کریں |
0F |
LCD آن ، کرسر آن کریں |
01 |
ڈسپلے اسکرین صاف کریں |
02 |
گھر واپس |
04 |
تخفیف کرسر (بائیں طرف شفٹ کرسر) |
06 |
اضافہ کرسر (دائیں سے کرسر شفٹ) |
05 |
شفٹ ڈسپلے دائیں |
07 |
شفٹ ڈسپلے بائیں |
0E |
آن ، کرسر ٹمٹمانے دکھائیں |
80 |
کرسر کو پہلی لائن کے آغاز پر مجبور کریں |
C0 |
کرسر کو دوسری لائن کے آغاز پر مجبور کریں |
38 |
2 لائنیں اور 5 × 7 میٹرکس |
83 |
کرسر لائن 1 پوزیشن 3 |
3 سی |
دوسری لائن کو چالو کریں |
08 |
آف ڈسپلے ، کرسر آف |
سی 1 |
دوسری لائن پر جائیں ، پوزیشن 1 |
OC |
آن ، کرسر آف ڈسپلے کریں |
سی 1 |
دوسری لائن پر جائیں ، پوزیشن 1 |
سی 2 |
دوسری لائن پر جائیں ، پوزیشن 2 |
سرکٹ ڈایاگرام اور وضاحت
مندرجہ بالا اعداد و شمار میں 8051 مائکروقابو کنٹرولر کے ساتھ ایل سی ڈی انٹرفیسنگ کے لئے سرکٹ ڈایاگرام دکھایا گیا ہے۔ اگر آپ کے پاس 8051 کی بنیادی سمجھ ہے تو آپ کو EA (پن 31) ، XTAL1 اور XTAL2 ، RST پن (پن 9) ، Vcc اور 8051 مائکروکانٹرولر کے گراؤنڈ پن کے بارے میں جاننا ہوگا۔ میں نے ان پنوں کو اوپر والے سرکٹ میں استعمال کیا ہے۔ اگر آپ کو اس کے بارے میں کوئی اندازہ نہیں ہے تو پھر میں آپ کو LCD انٹرفیسنگ سے قبل 8051 مائکروقابو کنٹرولر کے ساتھ یہ آرٹیکل ایل ای ڈی انٹرفیسنگ پڑھنے کی سفارش کرتا ہوں۔
لہذا ان مذکورہ پنوں کے علاوہ ہم نے LCD کے ڈیٹا پن (D0-D7) کو پورٹ 2 (P2_0 - P2_7) مائکروکانٹرولر سے مربوط کیا ہے۔ اور کنٹرول پینز RS، RW اور E کو بالترتیب مائکروقابو کنٹرولر کے 12،13،14 (بندرگاہ 3 کا 2،3،4 پن) پن پر رکھیں۔
پن 2 (وی ڈی ڈی) اور ایل سی ڈی کا پن 15 (بیک لائٹ سپلائی) وولٹیج (5 وی) سے منسلک ہے ، اور پن 1 (وی ایس ایس) اور پن 16 (بیک لائٹ گراؤنڈ) زمین سے جڑے ہوئے ہیں۔
پن 3 (V0) LCD کے برعکس کو ایڈجسٹ کرنے کے ل 10 10k کے متغیر رزسٹر کے ذریعہ وولٹیج (Vcc) سے منسلک ہے۔ متغیر ریزٹر کا درمیانی پیر پن 3 سے منسلک ہوتا ہے اور دیگر دو ٹانگیں وولٹیج کی فراہمی اور گراؤنڈ سے منسلک ہوتی ہیں۔
کوڈ کی وضاحت
میں نے تبصرے (کوڈ میں ہی) کے ذریعے کوڈ کی وضاحت کرنے کی کوشش کی ہے۔
جیسا کہ میں نے پہلے کمانڈ موڈ اور ڈیٹا موڈ کے بارے میں وضاحت کی ہے ، آپ دیکھ سکتے ہیں کہ کمانڈ بھیجتے وقت (فنکشن lcd_cmd) ہم نے RS = 0 ، RW = 0 طے کیا ہے اور E کو 1 ، پھر 0 بناکر ایک HIGH to LOW پلس دیا گیا ہے۔ اس کے علاوہ جب LCD کو ڈیٹا (فنکشن lcd_data) بھیجتے وقت ہم RS = 1 ، RW = 0 طے کرتے ہیں اور ایک HIGH to LOW پلس E کو 1 سے 0 بنا کر دیا جاتا ہے۔ فنکشن ایم ایس ڈیلی () ملی سیکنڈ میں تاخیر پیدا کرنے کے لئے تشکیل دیا گیا ہے اور پروگرام میں کثرت سے پکارا جاتا ہے ، اسے کہا جاتا ہے تاکہ ایل سی ڈی ماڈیول کو اندرونی آپریشن اور کمانڈ پر عمل کرنے کے لئے کافی وقت مل سکے۔
اس تار کو پرنٹ کرنے کے لئے تھوڑی دیر تک لوپ تشکیل دے دیا گیا ہے ، جو آخری بار حرف پرنٹ کرنے کے لئے lcd_data فنکشن کو ہر بار کال کرتا ہے (کال ٹرمنیٹر- '\ 0')۔
ہم نے LCDd_init () فنکشن کا استعمال LCD تیار کرنے کیلئے پیش سیٹ کمانڈ ہدایات (اوپر بیان کردہ) استعمال کرکے کیا ہے۔