ڈسپلے کسی مشین کا لازمی حصہ ہوتا ہے چاہے وہ کوئی گھریلو سامان ہو یا صنعتی مشینیں۔ ڈسپلے نہ صرف مشین کو چلانے کے لئے کنٹرول کے اختیارات کو ظاہر کرتا ہے بلکہ اس مشین کے ذریعہ انجام دیئے گئے کام کی حیثیت اور پیداوار کو بھی ظاہر کرتا ہے۔ الیکٹرانکس میں 7 سیگمنٹ ڈسپلے ، LCD ڈسپلے ، TFT ٹچ اسکرین ڈسپلے ، ایل ای ڈی ڈسپلے وغیرہ کی طرح بہت سی ڈسپلے استعمال ہوتی ہیں ۔ 16x2 LCD ڈسپلے سب سے بنیادی ہے اور کچھ چھوٹے الیکٹرانکس آلات میں بھی استعمال شدہ ڈسپلے ، ہم نے بہت کچھ کیا ہے۔ دوسرے مائکروکانٹرولرز کے ساتھ بنیادی انٹرفیسنگ سمیت 16x2 LCD استعمال کرنے والے منصوبے:
- 8051 مائکروکانٹرولر کے ساتھ LCD انٹرفیسنگ
- اے ٹی میگا 32 مائکروکونٹرولر کے ساتھ انٹرفیسنگ LCD
- پی سی سی مائکروکانٹرولر کے ساتھ ایل سی ڈی انٹرفیسنگ
- ارڈوینو کے ساتھ انٹرفیسنگ 16x2 LCD
- ازگر کا استعمال کرتے ہوئے راسبیری پائی کے ساتھ 16x2 LCD انٹرفیسنگ
اس ٹیوٹوریل میں ، ہم دیکھیں گے کہ کس طرح اے آر ایم 7-ایل پی سی 2148 مائکروقابو کنٹرولر کے ساتھ 16x2 ایل سی ڈی انٹرفیس کریں اور ایک آسان استقبالیہ پیغام ڈسپلے کریں۔ اگر آپ اے آر ایم 7 کے ساتھ نئے ہیں تو پھر اے آر ایم 7 ایل پی سی 2148 کی بنیادی باتوں سے شروع کریں اور سیکھیں کہ کییل یوویژن کا استعمال کرکے اسے کیسے پروگرام کیا جاسکتا ہے۔
ضروری سامان
ہارڈ ویئر
- ARM7-LPC2148 مائکروکانٹرولر بورڈ
- LCD (16X2)
- پوٹینومیٹر
- 5V وولٹیج ریگولیٹر آئی سی
- بریڈ بورڈ
- مربوط تاروں
- 9V بیٹری
- مائیکرو USB کیبل
سافٹ ویئر
- کییل یوویژن 5
- جادو فلیش ٹول
منصوبے میں آنے سے پہلے ہمیں آپریشن کے LCD طریقوں اور LCD ہیکس کوڈ کے بارے میں کچھ چیزیں جاننے چاہئیں۔
16 ایکس 2 LCD ڈسپلے ماڈیول
ایک 16 ایکس 2 ایل سی ڈی کا کہنا ہے کہ اس میں 16 کالم اور 2 قطار ہیں۔ اس LCD میں 16 پن ہیں۔ تصویر اور جدول کے نیچے LCD ڈسپلے کے پن نام اور اس کے افعال دکھائے گئے ہیں۔
نام |
فنکشن |
وی ایس ایس |
گراؤنڈ پن |
وی ڈی ڈی |
+ 5V ان پٹ |
VEE |
پن ایڈجسٹ کریں پن |
RS |
منتخب کریں رجسٹر |
آر / ڈبلیو |
پن پڑھیں / لکھیں |
ای |
پن کو فعال کریں |
D0-D7 |
ڈیٹا پن (8 پن) |
ایل ای ڈی |
انوڈ پن (+ 5V) |
ایل ای ڈی کے |
کیتھڈ پن (GND) |
LCD دو مختلف طریقوں میں کام کرسکتا ہے ، یعنی 4 بٹ موڈ اور 8 بٹ موڈ۔ 4 بٹ موڈ میں ہم اعداد و شمار کو گھماؤ پھراؤ ، پہلے اوپری گھٹیا اور پھر نچلے ہاتھ سے بھیجتے ہیں۔ آپ میں سے جو یہ نہیں جانتے ہیں کہ ایک گھماؤ کیا ہے: ایک گھماؤ چار ٹکڑوں کا ایک گروپ ہے ، لہذا ایک بائٹ کے نچلے چار بٹس (D0-D3) نچلے حصے کو تشکیل دیتے ہیں جبکہ اوپری چار بٹس (D4-D7) ایک بائٹ کی شکل زیادہ اونچی ہوتی ہے۔ یہ ہمیں 8 بٹ ڈیٹا بھیجنے کے قابل بناتا ہے۔
جبکہ 8 بٹ موڈ میں ہم 8 بٹ ڈیٹا کو براہ راست ایک جھٹکے میں بھیج سکتے ہیں کیونکہ ہم تمام 8 ڈیٹا لائنوں کو استعمال کرتے ہیں۔
یہاں اس پروجیکٹ میں ہم عام طور پر استعمال ہونے والا موڈ استعمال کریں گے جو 4 بٹ موڈ ہے ۔ فور بٹ موڈ میں ہم مائکروکنٹرولر کی 4 پنوں کو بچا سکتے ہیں اور وائرنگ کے ہیڈ کو بھی کم کرسکتے ہیں۔
کسی بھی کمانڈ کو حاصل کرنے کے لئے 16x2 HEX کوڈ کا استعمال بھی کرتا ہے ، LCD کے لئے بہت سے ہیکس کمانڈ ہیں جیسے کرسر کو منتقل کرنا ، موڈ کو منتخب کریں ، کنٹرول کو دوسری لائن میں منتقل کریں۔ 16X2 LCD ڈسپلے ماڈیول اور ہیکس کمانڈ کے بارے میں مزید معلومات کے ل the لنک کی پیروی کریں۔.
سرکٹ ڈایاگرام اور رابطے
جدول کے نیچے LCD اور ARM7-LPC2148 کے درمیان سرکٹ روابط دکھائے گئے ہیں ۔
ARM7-LPC2148 |
LCD (16x2) |
P0.4 |
آر ایس (رجسٹر سلیکٹ) |
P0.6 |
ای (قابل بنائیں) |
P0.12 |
ڈی 4 (ڈیٹا پن 4) |
P0.13 |
ڈی 5 (ڈیٹا پن 5) |
P0.14 |
ڈی 6 (ڈیٹا پن 6) |
P0.15 |
ڈی 7 (ڈیٹا پن 7) |
LCD اور ARM7 اسٹک کے ساتھ وولٹیج ریگولیٹر کے رابطے
جدول کے نیچے وولٹیج ریگولیٹر کے ساتھ اے آر ایم 7 اور ایل سی ڈی کے درمیان رابطے دکھائے گئے ہیں۔
وولٹیج ریگولیٹر آئی سی |
پن تقریب |
LCD اور ARM-7 LPC2148 |
1. بائیں پن |
+ بیٹری 9V ان پٹ سے Ve |
این سی |
2. سینٹر پن |
- بیٹری سے Ve |
VSS ، R / W ، LCD کا K اے آر ایم 7 کا جی این ڈی |
3. رائٹ پن |
باقاعدہ + 5V آؤٹ پٹ |
وی ڈی ڈی ، ایل سی ڈی کا اے ARM7 کا + 5V |
LCD کے ساتھ پوٹینومیٹر
LCD ڈسپلے کے برعکس مختلف ہونے کے لئے ایک پوٹینومیٹر استعمال کیا جاتا ہے۔ ایک برتن میں تین پن ہیں ، بائیں پن (1) + 5V اور مرکز (2) سے VEE یا LCD ماڈیول کا V0 اور دائیں پن (3) GND سے جڑا ہوا ہے۔ ہم دستک موڑ کر اس کے برعکس کو ایڈجسٹ کرسکتے ہیں۔
جمپر کی ترتیبات
اے آر ایم 7 اسٹک میں ایک جمپر پن موجود ہے تاکہ ہم یوایسبی کا استعمال کرکے یا صرف 5V ڈی سی ان پٹ کو طاقت کے ذریعہ کوڈ کو طاقت اور اپ لوڈ کرسکیں۔ آپ نیچے کی تصاویر دیکھ سکتے ہیں۔
تصویر کے نیچے سے پتہ چلتا ہے کہ جمپر ڈی سی پوزیشن میں ہے ۔ اس کا مطلب ہے کہ ہمیں بورڈ کو بیرونی 5V سپلائی سے بجلی سے چلنا چاہئے۔
اور یہ تصویر ظاہر کرتی ہے کہ جمپر USB موڈ میں جڑا ہوا ہے۔ یہاں طاقت اور کوڈ مائکرو USB پورٹ کے ذریعہ فراہم کیا گیا ہے۔
نوٹ: یہاں اس ٹیوٹوریل میں ہم نے یو ایس بی کو جمپر کو یو ایس بی کا استعمال کرکے کوڈ اپ لوڈ کیا ہے اور پھر ریگولیٹر کے 5 وی ان پٹ سے جمپر کو ڈی سی موڈ میں تبدیل کرکے ایل پی سی 2148 میں تبدیل کردیا گیا ہے۔ آخر میں دیئے گئے ویڈیو میں آپ اسے دیکھ سکتے ہیں ۔
اے آر ایم 7 مائکروکونٹرولر کے ساتھ 16x2 ایل سی ڈی انٹرفیس کرنے کا حتمی سرکٹ اس طرح نظر آئے گا:
پروگرامنگ ARM7-LPC2148
ARM7-LPC2148 پروگرام کرنے کے لئے ہمیں کیل یوویژن اور فلیش جادو آلے کی ضرورت ہے۔ ہم مائکرو USB پورٹ کے ذریعہ اے آر ایم 7 اسٹک پروگرام کرنے کے لئے USB کیبل استعمال کررہے ہیں۔ ہم کیل کا استعمال کرتے ہوئے کوڈ لکھتے ہیں اور ایک ہیکس فائل تخلیق کرتے ہیں اور پھر HEX فائل فلیش جادو کا استعمال کرتے ہوئے ARM7 اسٹیک پر چمک جاتی ہے۔ کیل یوویژن اور فلیش جادو کو انسٹال کرنے کے بارے میں اور ان کا استعمال کرنے کے طریقہ کے بارے میں مزید جاننے کے ل AR اے آر ایم 7 ایل پی سی 2148 مائکروکنٹرولر کے ساتھ شروعات کرنا اور کییل یوویژن کا استعمال کرکے اسے پروگرام کریں۔
اے آر ایم 7 کے ساتھ ایل سی ڈی کو انٹرفیس کرنے کا مکمل کوڈ اس ٹیوٹوریل کے آخر میں دیا گیا ہے ، یہاں ہم اس کے کچھ حص explaوں کی وضاحت کر رہے ہیں۔
سب سے پہلے ہمیں مطلوبہ ہیڈر فائلوں کو شامل کرنے کی ضرورت ہے
# شامل کریں
ایل سی ڈی ماڈیول کا آغاز ایک بہت اہم اقدام ہے۔ LCD کو آپریشن کے طریقہ کار (4 بٹ) ، LCD کی قسم (16x2) ، اسٹارٹ لائن وغیرہ کے بارے میں بتانے کے لئے ہم یہاں کچھ HEX کوڈز ، جو اصل میں کمانڈز ہیں استعمال کرتے ہیں۔
باطل LCD_INITILIZE (باطل) // LCD تیار کرنے کے لئے فنکشن { IO0DIR = 0x0000FFF0؛ // سیٹ P0.4، P0.6، P0.12، P0.13، P0.14، P0.15as آؤٹ پٹ میں تاخیر_میس (20)؛ LCD_SEND (0x02)؛ // LCD کو آپریشن 4-بٹ وضع میں LCD_SEND (0x28) میں شروع کریں؛ // 2 لائنیں (16 ایکس 2) LCD_SEND (0x0C)؛ // LCD_SEND (0x06) پر کرسر پر ڈسپلے کریں ؛ // آٹو انکریمنٹ کرسر LCD_SEND (0x01)؛ // واضح LCD_SEND (0x80) ڈسپلے کریں ؛ // پہلی لائن پہلی پوزیشن }
4 بٹ موڈ کے لئے ہمارے پاس پنوں کے لئے مختلف طرح کے تحریری فنکشن ہوتے ہیں ، یہ اوپری اور لوئر گھٹیا استعمال کرتے ہوئے ہوتا ہے۔ آئیے دیکھتے ہیں ، یہ کیسے ہوتا ہے
باطل LCD_SEND (چار کمانڈ) // بھیجیں ہیکس کرنے فنکشن کترنا کر کترنا حکم { IO0PIN = ((IO0PIN & 0xFFFF00FF) - ((کمانڈ اینڈ 0xF0) << 8))؛ // IO0SET = 0x00000040 کے اوپری کمان بھیجیں ؛ // اعلی IO0CLR = 0x00000030 کو قابل بنانا ؛ // RS & RW LOW delay_ms بنانا (5)؛ IO0CLR = 0x00000040؛ // بنانا LOW البتہ_ایم (5) کو قابل بنانا؛ IO0PIN = ((IO0PIN & 0xFFFF00FF) - ((کمانڈ & 0x0F) << 12٪))؛ // لوئر نیبل کمانڈ IO0SET = 0x00000040 بھیجیں ؛ // قابل IO0CLR = 0x00000030؛ // RS & RW LOW delay_ms (5)؛ IO0CLR = 0x00000040؛ // کم تاخیر کے قابل بنائیں (5)؛ }
نیبل بھیجنا منطق
IO0PIN = ((IO0PIN & 0xFFFF00FF) - ((کمانڈ & 0x0F) << 12٪))؛ // IO0PIN = (IO0PIN & 0xFFFF00FF) کے نچلے حصے بھیجیں - ((کمانڈ اور 0xF0) << 8))؛ // اوپری کمان کا حکم بھیجیں
اس پروگرام میں دو بیانات اہم کردار ادا کرتے ہیں۔ پہلا کمانڈ نچلے حصے کو بھیجتا ہے اور دوسرا کمر اوپری کمبل بھیجتا ہے۔ یہ دوسرے پنوں کو متاثر کیے بغیر ہے جو ہم کرتے ہیں۔ آئیے دیکھتے ہیں کہ اس سے پہلے یہ کیا ہورہا ہے اس منطق کے بارے میں پہلے جان لیں
اورنگ- (A-0 = A) ، (A-1 = 1) اینڈنگ- (A & 0 = 0) ، (A & 1 = A)
لہذا ہم دوسرے پن کو متاثر کیے بغیر ماسکنگ کا تصور اور منطقی شفٹ آپریشن استعمال کرتے ہیں۔ اس کا مطلب ہے کہ صرف پن (P0.12-P0.15) استعمال کیے جاتے ہیں اور P0.4 ، P0.6 جیسے دیگر کوئی پن متاثر نہیں ہوتے ہیں۔ یہ اعداد و شمار کو چار بٹس میں منتقل کرکے اوپری کمبل کو نچلے حصے کی جگہ بنا کر اور اوپری کمبل کو ماسک لگا کر کیا جائے گا۔ اور پھر ہم کم بٹس کو صفر (0 XF0) بناتے ہیں اور آؤٹ پٹ میں اوپری گھٹیا ڈیٹا حاصل کرنے کے لئے گھٹیا ڈیٹا کے ساتھ اورڈ۔
اسی طرح کا عمل کم نبلے ڈیٹا کے لئے استعمال ہوتا ہے لیکن یہاں ہمیں اعداد و شمار کو منتقل کرنے کی ضرورت نہیں ہے۔
آؤٹ پٹ کو ڈیٹا لکھتے وقت ، یعنی کمانڈ موڈ میں RS کم ہونا چاہئے اور اس پر عملدرآمد کے لئے HIGH ہونا ضروری ہے ، اور ڈیٹا موڈ میں RS HIGH ہونا چاہئے اور اس پر عملدرآمد کے لئے HIGH ہونا ضروری ہے۔
اب اسٹرنگ کوائف بھیجنے کے ل that جو آؤٹ پٹ پر چھاپنا ہے ، اسی اصول کو گھٹیا استعمال کرتے ہیں۔ اہم مرحلہ یہ ہے کہ ڈیٹا موڈ کے لئے رجسٹر سلیکٹ (آر ایس) ہونا ضروری ہے۔
باطل LCD_DISPLAY (char * msg) // ایک ایک کرکے بھیجے گئے حروف کو پرنٹ کرنے کا کام { uint8_t i = 0؛ جبکہ (=! = 0) { IO0PIN = ((IO0PIN & 0xFFFF00FF) - ((# & 0xF0) << 8))؛ // اپر نیبل IO0SET = 0x00000050 بھیجتا ہے ؛ ڈیٹا IO0CLR = 0x00000020 پرنٹ کرنے کے لئے // RS HIGH & EHLE HIGH ؛ // RW LOW لکھیں موڈ میں تاخیر کی ایم ایس (2)؛ IO0CLR = 0x00000040؛ // EN = 0 ، آر ایس اور آر ڈبلیو کوئی تبدیلی نہیں (یعنی آر ایس = 1 ، آر ڈبلیو = 0) تاخیر سے ایم ایس (5)؛ IO0PIN = ((IO0PIN & 0xFFFF00FF)) - ((# & 0x0F) << 12٪)؛ // نچلے نچلے IO0SET = 0x00000050 بھیجتا ہے ؛ // RS & EN HIGH IO0CLR = 0x00000020؛ تاخیر ایم ایس (2)؛ IO0CLR = 0x00000040؛ تاخیر ایم ایس (5)؛ میں ++؛ }
مکمل کوڈنگ اور مظاہرے کی ویڈیو نیچے دی گئی ہے۔