- 16x2 Alphanumeric LCD ڈسپلے
- ایم ایس پی 430 کے لئے 16 ایکس 2 ایل سی ڈی سی سی ایس لائبریری
- MSP430 پر 16x2 LCD ڈسپلے کیلئے LCD افعال
- سرکٹ ڈایاگرام سے انٹرفیس LCD کے ساتھ MSP430
- LCD ڈسپلے کیلئے کوڈ کمپوزر اسٹوڈیو کا استعمال کرتے ہوئے MSP430 پروگرامنگ کرنا
یہ مضمون کوڈ کمپوزر اسٹوڈیو کا استعمال کرکے پروگرامنگ MSP430 پر ہماری ٹیوٹوریل سیریز کا تسلسل ہے۔ آخری ٹیوٹوریل GPIO پنوں کا استعمال کرتے ہوئے MSP430 پر بیرونی مداخلت پر مبنی تھا ۔ یہ ٹیوٹوریل ایم ایس پی 430 کے ساتھ کسی ڈسپلے میں مداخلت کرنے کے بارے میں ہے ، جب 16 * 2 ایل سی ڈی ڈسپلے کی نمائش کی بات آتی ہے تو ، یہ کسی بھی الیکٹرانک شوق کے لئے پہلی پسند ہے۔ اس سے قبل ، ہم نے Arcino IDE کا استعمال کرتے ہوئے MSP430 کے ساتھ LCD کو بھی انٹرفیس کیا ہے ، اس سبق میں ہم آرڈینو IDE استعمال کرنے کی بجائے مقامی کوڈ کمپوزر اسٹوڈیو پلیٹ فارم کا استعمال کریں گے ، اس طرح ایک ڈیزائنر کی حیثیت سے ، ہمیں زیادہ لچک مل جاتی ہے۔
16x2 LCD ڈسپلے کے بارے میں مزید جاننے کے ل and اور اسے دوسرے مائکروکنٹرولروں کے ساتھ استعمال کرنے کے ل please ، براہ کرم ذیل میں سبق دیکھیں۔
- اے ٹی میگا 16 کے ساتھ انٹرفیسنگ ایل سی ڈی
- راسبیری پائ کے ساتھ انٹرفیسنگ LCD
- PIC مائکروکانٹرولر کے ساتھ انٹرفیسنگ LCD
- انٹرفیسنگ LCD کے ساتھ ARM7-LPC2148
- نوڈیم سی یو کے ساتھ ایل سی ڈی انٹرفیس کرنا
- ایس ٹی ایم 32 کے ساتھ انٹرفیسنگ ایل سی ڈی
- MSP430G2 کے ساتھ انٹرفیسنگ LCD
- ایس ٹی ایم 8 کے ساتھ انٹرفیسنگ ایل سی ڈی
اس میں ایک بلٹ آئی سی hd44780 ہے جو اس کو دی گئی کمانڈ اور ڈیٹا کو اسٹور کرسکتی ہے۔ LCD ماڈیول میں تقریبا 16 پن ہیں۔ ان میں سے 8 ڈیٹا پن ہیں ، ان میں سے 4 بیک لائٹ ایل ای ڈی اور پورے ایل سی ڈی ماڈیول کے لئے سپلائی پن ہیں ، آپریشن کو کنٹرول کرنے کے لئے 3 ، اور اس کے برعکس ایڈجسٹمنٹ کے لئے 1 پن۔ اس ٹیوٹوریل کی بنیاد لائبریری پر مشتمل ہے جو ڈینس ایچ مین نے تیار کیا تھا۔ مختلف ڈیٹا کی اقسام کو پرنٹ کرنے کے لئے الگ الگ فنکشن والی لائبریری کا استعمال کرنا بہت آسان ہے۔ اس میں اعداد و شمار کو مختلف شکلوں میں معروف ، خالی ، اور حذف شدہ زیرو کے ساتھ ظاہر کرنے کی بھی دفعات ہیں۔ یہ ایک خوبصورت وسیع اور جامع لائبریری ہے اور مختلف رابطوں کے لئے قابل ترتیب ہے۔ یہاں ، ڈیٹا مواصلات کے لئے 8 پن متوازی ترتیب کو ایڈجسٹ کرنے کے لئے ہیڈر فائل میں ترمیم کی گئی ہے۔
16x2 Alphanumeric LCD ڈسپلے
ایک عام 16x2 ڈسپلے میں ایک انبلٹ ایچ ڈی 44780 آایسی ہوتا ہے (نیچے سرخ رنگ میں چکر لگایا جاتا ہے) ، جو اسے بھیجے گئے کمانڈ اور ڈیٹا کو محفوظ کرسکتا ہے۔ LCD ماڈیول میں تقریبا 16 پن ہیں۔ ان میں سے 8 ڈیٹا پن ہیں ، ان میں سے 4 بیک لائٹ ایل ای ڈی اور پورے ایل سی ڈی ماڈیول کے لئے سپلائی پن ہیں ، آپریشن کو کنٹرول کرنے کے لئے 3 ، اور اس کے برعکس ایڈجسٹمنٹ کے لئے 1 پن۔
یہ LCD ماڈیول ورسٹائل سے اوپر دکھایا گیا ہے اور دیگر منقسم LCDs کے مقابلے کم سے کم پنوں کا استعمال کرتا ہے۔ اگر آپ جاننا چاہتے ہیں کہ یہ سب کس طرح کام کرتا ہے تو آپ کو 16x2 LCD ڈسپلے کے کام کی جانچ پڑتال کرنی چاہئے جہاں ہم پہلے ہی بحث کر چکے ہیں کہ LCD تفصیل سے کیسے کام کرتا ہے۔
آر ایس پن: آر ایس = 1 ایل سی ڈی میں ڈیٹا رجسٹر کو اہل بنائے گا ، جو ایل سی ڈی میں ڈیٹا رجسٹر میں اقدار لکھنے کے لئے استعمال ہوتا ہے۔ RS = 0 LCD کے انسٹرکشن رجسٹر کو اہل بنائے گا۔
پن کو فعال کریں: منفی کنارے سے متحرک؛ جب پن کو ہائی ریاست سے LOW حالت میں تبدیل کیا جاتا ہے تو ، LCD کو ڈیٹا پنوں پر لکھنے کا اشارہ کیا جاتا ہے۔ مثبت کنارے متحرک؛ جب پن کو LOW حالت سے HIGH حالت میں تبدیل کیا جاتا ہے تو ، LCD کو ڈیٹا پنوں سے پڑھنے کا اشارہ کیا جاتا ہے۔
R / W پن: R / W = 0 RS پن کے انتخاب کے مطابق انسٹرکشن رجسٹر یا ڈیٹا رجسٹر کو لکھے گا۔ R / W = 1 RS پن کے انتخاب کے مطابق IR یا DR سے پڑھے گا۔
آر ایس آر / ڈبلیو آپریشن
0 0 IR داخلی آپریشن کے بطور تحریر کریں (واضح وغیرہ
0 1 پڑھیں مصروف جھنڈا (DB7) اور ایڈریس کاؤنٹر (DB0 سے DB6)
داخلی کارروائی کے طور پر 1 0 DR لکھیں (DR سے DDRAM یا CGRAM)
داخلی کارروائی کے طور پر 1 1 DR پڑھا (DDRAM یا CGRAM سے DR)
D0-D7 پنوں: ان پنوں کے ذریعہ ڈیٹا کمانڈ اور ڈیٹا کے اندراجات میں اور منتقل ہوتا ہے۔
فراہمی کا پنوں: وی ایس ایس ، وی DD پنوں طاقت LCD ماڈیول کے لئے استعمال کیا جاتا ہے. اے ، کے پنوں ایل ای ڈی بیک لائٹ کو طاقت بنائے گی۔ V 0 پنوں کو اس کے برعکس کو کنٹرول کرنے کے لئے استعمال کیا جاتا ہے۔
ایم ایس پی 430 کے لئے 16 ایکس 2 ایل سی ڈی سی سی ایس لائبریری
اس ٹیوٹوریل کی بنیاد لائبریری پر مشتمل ہے جو ڈینس ایچ مین نے تیار کیا تھا۔ مختلف ڈیٹا کی اقسام کو پرنٹ کرنے کے لئے الگ الگ فنکشن والی لائبریری کا استعمال کرنا بہت آسان ہے۔ اس میں اعداد و شمار کو مختلف شکلوں میں معروف ، خالی ، اور حذف شدہ زیرو کے ساتھ ظاہر کرنے کی بھی دفعات ہیں۔ یہ ایک خوبصورت وسیع اور جامع لائبریری ہے اور مختلف رابطوں کے لئے قابل ترتیب ہے۔ یہاں ، ڈیٹا مواصلات کے لئے 8 پن متوازی ترتیب کو ایڈجسٹ کرنے کے لئے ہیڈر فائل میں ترمیم کی گئی ہے۔ لائبریری کو نیچے دیئے گئے لنک سے ڈاؤن لوڈ کیا جاسکتا ہے ، ڈاؤن لوڈ کرنے کے بعد آپ لائبریری کو سی سی ایس میں شامل کرنے کے لئے درج ذیل اقدامات پر عمل کریں۔
MSP430 کے لئے 16x2 لائبریری ڈاؤن لوڈ کریں - کوڈ کمپوزر اسٹوڈیو
مرحلہ 1: فائلیں اور منصوبے بنانا
فائل مینو کا استعمال کرکے ڈیفالٹ سی سی ایس پروجیکٹ تیار کیا جاتا ہے۔ پروجیکٹ بنائیں ڈائیلاگ باکس میں ، ڈیوائس کو منتخب کریں اور hd44780 کو بطور پروجیکٹ نام دیں۔ پروجیکٹ کی قسم اور ٹول چین کے تحت ، آؤٹ پٹ کی قسم کو جامد لائبریری کے بطور منتخب کریں اور پروجیکٹ بنائیں۔
پروجیکٹ ایکسپلورر لین (بائیں سمت) میں ، شامل فولڈر میں ہیڈر فائل بنائیں اور اسے hd44780.h کا نام دیں ۔ اس کے بعد ڈاؤن لوڈ کردہ hd44780.h فائل کے مندرجات کو اس نو تخلیق کردہ فائل میں کاپی کریں۔
اب آؤٹ پٹ ٹائپ کو ایک ایگزیکٹو ایبل میں تبدیل کرکے مرکزی پروجیکٹ بنائیں اور سی سی ایس_ ایل سی ڈی نامی پروجیکٹ بنائیں ۔
مرحلہ 2: مرکزی پروجیکٹ کی تلاش کے راستے شامل کریں
ایچ ڈی 44780 پراجیکٹ کے پراپرٹیز ڈائیلاگ باکس میں اور ایم ایس پی 430 کمپائلر کے لئے شامل آپشنز کے اندر ، فائل کو تلاش کے راستے میں شامل فولڈر شامل کریں۔
پھر ، ضروری لنکر فائلوں جیسے .lib فائلیں بنانے کے ل to اس پروجیکٹ کو بنائیں ۔ اس کی تعمیر سے ڈیبگ فولڈر میں hd44780.lib فائل بن جائے گی ۔
مرحلہ 3: لنکر کے لئے تلاش کے راستے شامل کریں
سی سی ایس_ ایل سی ڈی پراجیکٹ کے پراپرٹیز ڈائیلاگ باکس میں اور ایم ایس پی 3030 Link لنکر ٹیب کے فائل سرچ پاتھ میں ، hd44780.lib شامل کریں جو hd44780 پروجیکٹ کے ڈیبگ فولڈر کے اندر موجود ہے۔ ڈیبگ فولڈر بھی فائل تلاش کے راستے میں شامل ہے۔
شامل فولڈر کو ایک بار پھر سی سی ایس_ ایل سی ڈی پروجیکٹ کے ایم ایس پی 430 کمپائلر کے اختیارات شامل کرنے میں شامل کیا گیا ہے۔
لائبریری کامیابی کے ساتھ مرتب کی گئی ہے اور مرکزی پروجیکٹ کے لنکر میں شامل کی گئی ہے۔
MSP430 پر 16x2 LCD ڈسپلے کیلئے LCD افعال
باطل hd44780_timer_isr (باطل): اسے وقتا فوقتا ٹائمر اے کے ISR میں کہا جاتا ہے۔ ٹائمر A کا استعمال اسکرین کو صاف کرنا ، کرسر ترتیب دینا ، اور ڈیٹا کو ظاہر کرنا جیسے LCD افعال وقفے وقفے سے کیا جاتا ہے۔ تقریب ISR میں استعمال کی جانی ہے۔ یہ کچھ نہیں لوٹاتا ہے۔
uint8_t hd44780_writ_string (char * ch__string، uint8_t u8__row، uint8_t u8__column، uint8_t u8__cr_lf): یہ پہلی دلیل میں بیان کردہ تار لکھے گی۔
چار * ch__string: ڈیٹا بفر پر لکھی جانے والی تار (hd44780_timer_isr فنکشن کے اندر)۔ جب hd44780_timer_isr وقتا فوقتا called فون کیا جاتا ہے تو LCD IC کے ڈیٹا رجسٹر اور ہدایات کے اندراج میں ڈیٹا کاپی کیا جائے گا ۔
uint8_t u8__row: یہ اس صف کی وضاحت کرتی ہے جس میں تار لکھا جائے گا۔
uint8_t u8__ کالم : یہ کالم کی وضاحت کرتا ہے جس میں تار لکھا جائے گا۔
uint8_t u8__cr_lf: اگر یہ 1 سیٹ کی گئی ہے تو ، قطار اگلے ایک میں آگے بڑھا دی جائے گی۔ اگر یہ 0 ہے تو ، پرنٹنگ اسی صف میں رک جاتی ہے۔
باطل hd44780_clear_screen (باطل): اس فنکشن سے پوری اسکرین صاف ہوجائے گی۔ یہ کچھ نہیں لوٹاتا ہے۔
uint8_t hd44780_ آؤٹ پٹ_سائنیڈ_16 بٹ_ویلیو (uint16_t u16__value، uint8_t u8__leading_zero_handling، uint8_t u8__row، uint8_t u8__column، uint8_t u8__cr_lf): یہ فنکشن دستخط شدہ 16 مقام پر ڈسپلے کرے گا۔
uint16_t u16__value: ظاہر ہونے والا عدد صحیح پہلی دلیل میں دیا گیا ہے۔
uint8_t u8__leading_zero_handling: اگر 0 گزر جاتا ہے تو ، اہم صفر کو عددی قیمت دکھائی جائے گی۔ اگر 1 گزر جاتا ہے تو ، زیرو کو خالی کر دیا جائے گا۔ اگر 2 کو پیرامیٹر کے طور پر منظور کیا گیا ہے ، تو صرف اہم ہندسے دکھائے جائیں گے۔
uint8_t u8__row: وہ صف جس میں پورا عدد ظاہر ہوتا ہے منتخب کیا جاتا ہے۔
uint8_t u8__ کالم : پرنٹ کیے جانے والے کالم کو دلیل کے ذریعے منتخب کیا گیا ہے۔
uint8_t u8__cr_lf: اگر یہ 1 سیٹ کی گئی ہے تو ، قطار اگلے ایک میں آگے بڑھا دی جائے گی۔ اگر یہ 0 ہے تو ، پرنٹنگ اسی صف میں رک جاتی ہے۔
سرکٹ ڈایاگرام سے انٹرفیس LCD کے ساتھ MSP430
مکمل سرکٹ ڈایاگرام ذیل کی تصویر میں عکاسی کی گئی ہے۔ جیسا کہ آپ دیکھ سکتے ہیں ، ہارڈویئر کنکشن بہت آسان ہیں اور ہم نے 5 وی اڈیپٹر کا استعمال کرکے مکمل بورڈ کو طاقتور بنایا ہے۔
کنکشن مذکورہ خاکہ کے مطابق بنائے گئے ہیں۔ براہ کرم تفصیلی کنکشن کے ل for نیچے دی جدول کو دیکھیں۔
Vss | 5V بجلی کی فراہمی کا گراؤنڈ |
وی ڈی ڈی | 5V |
V0 | پوٹینومیٹر آؤٹ پٹ |
RS | پی 2.1 |
آر / ڈبلیو | زمین |
ای | پی 2.0 |
D0 | پی 1.0 |
ڈی 1 | پی 1.1 |
ڈی 2 | P1.2 |
ڈی 3 | پی 1.3 |
ڈی 4 | پی 1.4 |
ڈی 5 | پی 1.5 |
ڈی 6 | P1.6 |
ڈی 7 | پی 1.7 |
A | 220 اوہم ریزٹر |
K | زمین |
ایل ای ڈی بیک لائٹ کا انوڈ 5V سپلائی سے براہ راست نہیں جڑا جاسکتا۔ اسے ایل سی ڈی ماڈیول کے ذریعے موجودہ بہاؤ کو کم سے کم کرنے کے لئے مزاحمت سے منسلک کیا جانا چاہئے۔ میں نے ایل سی ڈی کو ٹانکا لگانے کے لئے پرف بورڈ کا استعمال کرتے ہوئے اپنے کنکشن بنائے ہیں اور پھر ایل سی ڈی کو ایم ایس پی 430 بورڈ کے ساتھ مربوط کرنے کے لئے جمپر تاروں کا استعمال کیا ہے ، میرا سیٹ اپ نیچے کی طرح لگتا ہے لیکن آپ اپنے روابط بنانے کیلئے صرف بریڈ بورڈ کا استعمال کرسکتے ہیں۔
LCD ڈسپلے کیلئے کوڈ کمپوزر اسٹوڈیو کا استعمال کرتے ہوئے MSP430 پروگرامنگ کرنا
اس منصوبے میں استعمال ہونے والا مکمل کوڈ اس صفحے کے نیچے دیا گیا ہے۔ کوڈ کو استعمال کرنے کی وضاحت حسب ذیل ہے۔ پہلے ، ہیڈر فائل (hd44780.h) کھولیں اور فائل کے پہلے حصے میں مائکروکونٹرولر حصہ نمبر شامل کریں۔
# شامل کریں "msp430g2553.h"
سب سے پہلے واچ ڈاگ ٹائمر کو روکنا ہوگا۔ DCOCTL اور BCSCTL1 کنٹرول رجسٹر مائکروکونٹرولر کے oscillator تشکیل کرنے کے لئے استعمال کیا جاتا ہے. ذیل میں لکیریں MMLK کو 1MHZ بنائیں گی۔
WDTCTL = (WDTPW - WDTHOLD)؛ BCSCTL1 = CALBC1_1MHZ؛ DCOCTL = CALDCO_1MHZ؛
بندرگاہ 1 پنوں کو آؤٹ پٹ کے طور پر ذکر کرنا ہے ، جو ڈیٹا پنوں کے لئے استعمال ہونا ہے۔ پن 0 اور پن 1 کو بھی بندرگاہ 2 میں آؤٹ پٹ کے طور پر ذکر کرنا پڑتا ہے ، جو RS اور R / W پن کے لئے استعمال ہوگا۔
P1DIR = 0xFF؛ P2DIR = (0x01 - 0x02)؛
وقتا. فوقتا values اقدار کو ظاہر کرنے کے لئے ان بلٹ ٹائمر کا استعمال کیا جارہا ہے۔ ٹائمر اے کو ایس ایم سی ایل کے (1MHZ) کے ساتھ گھڑی کے منبع اور مستقل موڈ کے طور پر منتخب کیا گیا ہے۔
TA0CCR1 = 32768؛ TA0CCTL1 = CCIE؛ TA0CTL = (TASSEL_2 - MC_2 - TACLR)؛
موازنہ چینلز 1 اور 2 کے لئے رکاوٹیں اور ٹائمر اوور فلو رکاوٹ ایک ہی رکاوٹ ویکٹر ( TIMER0_A1_VECTOR ) کے ساتھ مختلف شروعاتی پتے بانٹتے ہیں ۔ کیپلیور موازنہ چینل 1 (CCR1) 2 کو بطور پتہ استعمال کرتا ہے ، جو سوئچ کیس میں استعمال ہورہا ہے۔
# پیراگما ویکٹر = ٹائمر0_ا 1_ وییکٹر __انتخابات باطل ٹائمر_ٹ_ا 1_ آئس آرڈر (باطل) { سوئچ (ٹی اے 06) { کیس 2: { hd44780_timer_isr ()؛ توڑ } } }
ایک بار جب آپ اپنا کوڈ مرتب کرلیں ، تو آپ اسے MSP430 بورڈ میں اپ لوڈ کرسکتے ہیں ، جیسا کہ MSP430 سبق کے ساتھ شروع کرنے میں بتایا گیا ہے۔ اگر سب کچھ توقع کے مطابق ہوتا ہے تو ، آپ کو نیچے دکھائے جانے والے مطابق اپنے LCD ڈسپلے کو کچھ برعکس دیکھنا چاہئے۔
اگر آپ کا ٹیسٹ بہت مدھم ہے تو ، بہتر برعکس حاصل کرنے کے لئے آپ پوٹینومیٹر کو ایڈجسٹ کرنے کی کوشش کر سکتے ہیں۔ منصوبے کا مکمل کام ذیل میں منسلک ویڈیو میں بھی پایا جاسکتا ہے۔ امید ہے کہ آپ کو اس پروجیکٹ سے لطف اندوز ہوا ہو گا اور آپ نے خود ہی اسے تعمیر کرنا دلچسپ سمجھا ہو گا۔ اگر آپ کے کوئی سوالات ہیں تو ، براہ کرم انہیں نیچے تبصرہ والے حصے میں چھوڑیں۔ آپ اپنے تمام تکنیکی سوالات فورموں پر ان کے جوابات حاصل کرنے یا بحث شروع کرنے کے لئے بھی لکھ سکتے ہیں۔