کیپیڈس بڑے پیمانے پر استعمال شدہ ان پٹ ڈیوائسز کو مختلف الیکٹرانکس اور ایمبیڈڈ پروجیکٹس میں استعمال کیا جاتا ہے۔ وہ اعداد اور حرف کی شکل میں آدانوں کو لینے کے ل used استعمال ہوتے ہیں ، اور مزید پروسیسنگ کے ل system اسے سسٹم میں کھاتے ہیں۔ اس ٹیوٹوریل میں ہم 8051 مائکروکانٹرولر کے ساتھ 4x4 میٹرکس کیپیڈ کو انٹرفیس کرنے جارہے ہیں ۔
4 ایکس 4 میٹرکس کیپیڈ
مائکروکانٹرولر کے ساتھ کیپیڈ کو انٹرفیس کرنے سے پہلے ، ہمیں یہ سمجھنے کی ضرورت ہے کہ یہ کیسے کام کرتا ہے۔ میٹرکس کیپیڈ پش بٹنوں کے سیٹ پر مشتمل ہے ، جو آپس میں جڑے ہوئے ہیں۔ جیسا کہ ہمارے معاملے میں ہم 4 ایکس 4 میٹرکس کیپیڈ استعمال کر رہے ہیں ، جس میں ہر ایک قطار میں 4 پش بٹن موجود ہیں۔ اور پش بٹنوں کے ٹرمینلز آریگرام کے مطابق جڑے ہوئے ہیں۔ پہلی صف میں ، تمام 4 پش بٹنوں کا ایک ٹرمینل ایک دوسرے کے ساتھ جڑا ہوا ہے اور 4 پش بٹنوں کا ایک اور ٹرمینل 4 کالموں میں سے ہر ایک کی نمائندگی کررہا ہے ، ہر صف میں وہی ہے۔ لہذا ہمارے پاس مائکروکانٹرولر سے رابطہ قائم کرنے کے لئے 8 ٹرمینلز مل رہے ہیں۔
انٹرفیسنگ کیپیڈ 8051 مائکروکانٹرولر (AT89S52) کے ساتھ
پہلے ہمیں ڈیٹا کو ظاہر کرنے کے لئے ایل سی ڈی ماڈیول کو انٹرفیس کرنے کی ضرورت ہے جو کیی پیڈ کے ذریعے فیڈ ہوگا ، لہذا براہ کرم کیپیڈ کو انٹرفیس کرنے سے پہلے "8051 مائکروقابو کنٹرولر کے ساتھ" LCD انٹرفیسنگ "آرٹیکل کو دیکھیں۔
جیسا کہ اوپر سرکٹ ڈایاگرام میں دکھایا گیا ہے ، کیپیڈ کو انٹرفیس کرنے کے لئے ، ہمیں کیپیڈ کے 8 ٹرمینلز کو مائکروکانٹرولر کی کسی بھی بندرگاہ (8 پنوں) سے جوڑنا ہوگا۔ جیسا کہ ہم نے 8051 کے پورٹ 1 سے کیپیڈ ٹرمینلز کو جوڑا ہے۔ جب بھی کوئی بٹن دب جاتا ہے تو ہمیں بٹن کا مقام حاصل کرنے کی ضرورت ہوتی ہے ، اس کا مطلب ہے اس سے متعلقہ ROW COLUMN نمبر۔ ایک بار جب ہمیں بٹن کا مقام مل جاتا ہے ، تو ہم اسی کے مطابق کردار پرنٹ کرسکتے ہیں۔
اب سوال یہ ہے کہ دبے ہوئے بٹن کا مقام کیسے حاصل کیا جائے؟ میں ذیل کے مراحل میں اس کی وضاحت کرنے جا رہا ہوں اور یہ بھی چاہتا ہوں کہ آپ کوڈ کو دیکھیں۔
1. پہلے ہم نے تمام صفیں منطق کی سطح 0 اور تمام کالم منطق کی سطح 1 تک بنائیں ہیں۔
Whenever. جب بھی ہم اس بٹن کے مطابق بٹن ، کالم اور قطار دبائیں گے تو وہ مختصر ہوجاتا ہے اور اسی کالم کو منطق کی سطح سے بنا دیتا ہے۔ کیونکہ وہ کالم صف سے منسلک ہوجاتا ہے (شارٹڈ) ہوجاتا ہے ، جو منطق کی سطح پر ہوتا ہے۔ کالم نمبر اہم () فنکشن دیکھیں۔
Now. اب ہمیں قطار نمبر تلاش کرنے کی ضرورت ہے ، لہذا ہم نے ہر کالم کے مطابق چار افعال تخلیق کیے ہیں۔ جیسے کہ اگر کالم ون کا کوئی بٹن دب گیا ہے تو ، صف نمبر کو تلاش کرنے کے لئے ، ہم فنکشن صف_فائنڈر 1 () پر فون کرتے ہیں۔
row. صف_فائنڈر1 () فنکشن میں ، ہم نے منطق کی سطح کو الٹ کردیا ، اس کا مطلب ہے کہ اب تمام قطاریں ایک اور کالم ہیں۔ اب دبے ہوئے بٹن کی قطار 0 ہونی چاہئے کیونکہ یہ کالم سے متصل (شارٹڈ) ہو گیا ہے جس کا بٹن دب جاتا ہے۔ ، اور تمام کالم 0 منطق پر ہیں۔ لہذا ہم نے 0 کے لئے تمام قطاروں کو اسکین کیا ہے۔
So. لہذا جب بھی ہم صف کو منطق 0 پر پائیں گے ، اس کا مطلب ہے کہ دبے ہوئے بٹن کی قطار ہے۔ تو اب ہمارے پاس کالم نمبر (مرحلہ 2 میں ملا ہے) اور صف نمبر ہے ، اور ہم نمبر پرنٹ کرسکتے ہیں۔ lcd_data فنکشن کا استعمال کرتے ہوئے اس بٹن کا۔
ہر ایک بٹن کو دبانے کے لئے اسی طریقہ کار کی پیروی کی جاتی ہے ، اور ہم (1) ، مستقل جانچ پڑتال کے لئے ، چاہے بٹن دبائے ہوئے ہیں یا نہیں۔