اس پروجیکٹ میں ہم اے ٹی ایم ای جی اے 32 ٹائمر کا استعمال کرتے ہوئے ایک سادہ الارم گھڑی ڈیزائن کرنے جارہے ہیں ۔ اے ٹی میگا 32 اے مائکروکینٹرلر میں 16 بٹ ٹائمر ہے ، اور ہم اس ٹائمر کو سیکنڈ گننے اور ڈیجیٹل گھڑی تیار کرنے کیلئے استعمال کریں گے۔
تمام ڈیجیٹل گھڑیوں کے اندر ایک کرسٹل ہوتا ہے جو گھڑی کا قلب ہوتا ہے۔ یہ کرسٹل نہ صرف گھڑی میں موجود ہے بلکہ تمام کمپیوٹنگ ریئل ٹائم سسٹم میں موجود ہے۔ یہ کرسٹل گھڑی کی دالیں تیار کرتا ہے ، جو وقت کے حساب کتاب کے لئے درکار ہوتا ہے۔ اگرچہ گھڑی کی دالیں حاصل کرنے کے کچھ اور طریقے ہیں لیکن درستگی اور اعلی تعدد کے ل for زیادہ تر کرسٹل پر مبنی گھڑی کو ترجیح دیتے ہیں۔ ہم درست گھڑی حاصل کرنے کے لئے اے ٹی ایم ای جی اے 32 سے ایک کرسٹل منسلک کرنے جارہے ہیں۔
ضروری اجزاء
ہارڈ ویئر: اے ٹی میگا 32 مائکروکانٹرولر ، 11.0592 میگاہرٹز کرسٹل ، 22 پی ایف کیپسیٹر (2 ٹکڑے) ، بجلی کی فراہمی (5 وی) ، اے وی آر-آئی ایس پی پروگرامر ، JHD_162ALCD (16x2 LCD) ، 100uF کاپاکیسیٹر (بجلی کی فراہمی کے پار منسلک) ، بٹن (چار ٹکڑے) ، 10KΩ ریزٹر (چھ ٹکڑے ٹکڑے) ، 100nF کاپاکیٹو آر (چار ٹکڑے) ، تین پن سوئچ (2 ٹکڑے) ، 2N2222 ٹرانجسٹر ، بزر ، 200Ω ریزٹر۔
سافٹ ویئر: اٹیل اسٹوڈیو 6.1 ، پروگرام یا فلیش جادو۔
سرکٹ ڈایاگرام اور ورکنگ وضاحت
درست وقت کے ل we ، ہم نے گھڑی کے ل 11 11.0592MHz کرسٹل سے رابطہ قائم کیا ہے۔ اب اے ٹی ایم ای جی اے کی اندرونی گھڑی کو ناکارہ کرنے کے ل we ہمیں اس کے کم فیوز بٹس کو تبدیل کرنا ہوگا۔ یاد رکھنا ہم اعلی فیوز بٹس کو چھو نہیں رہے ہیں تاکہ JTAG مواصلت ابھی بھی قابل بنایا جائے۔
اے ٹی ایم ای جی اے کو اندرونی گھڑی کو غیر فعال کرنے اور بیرونی کام کرنے کے ل telling ہمیں یہ ترتیب دینے کی ضرورت ہے:
BYTE = 0xFF یا 0b11111111 استعمال کریں۔
سرکٹ میں PORTB کا ATMEGA32 ڈیٹا پورٹ LCD سے منسلک ہے۔ یہاں کسی کو اے ٹی ایم ای جی اے کے پی او آر ٹی سی میں جے ٹی ای مواصلات کو غیر فیوز بائٹس میں تبدیلی کرکے غیر فعال کرنا یاد رکھنا چاہئے ، اگر کوئی پی او آر ٹی سی کو عام مواصلات کی بندرگاہ کے طور پر استعمال کرنا چاہتا ہے۔ 16x2 LCD میں 16 پن ہیں جب کہ بلیک لائٹ ہے ، اگر پیچھے کی روشنی نہیں ہے تو وہاں 14 پن ہوں گے۔ کوئی بیک لائٹ پنوں کو طاقت یا چھوڑ سکتا ہے۔ ابھی 14 پنوں میں 8 ڈیٹا پنز (7-14 یا D0-D7)، 2 بجلی کی فراہمی پنوں سے ہیں (1 & 2 یا VSS & VDD یا GND & + 5V)، 3 RD برعکس کنٹرول کے لئے پن (VEE کنٹرولز کس طرح موٹی حروف ہونا چاہیے دکھایا گیا ہے) ، اور 3 کنٹرول پن (RS & RW & E)
سرکٹ میں ، آپ مشاہدہ کر سکتے ہیں کہ میں نے صرف دو کنٹرول پن لئے ہیں۔ اس سے بہتر تفہیم کی لچک مل جاتی ہے ، اس کے برعکس تھوڑا سا اور READ / WRITE اکثر استعمال نہیں کیے جاتے ہیں تاکہ ان کو زمین پر چھوٹا جاسکے۔ یہ ایل سی ڈی کو سب سے زیادہ برعکس اور پڑھنے کے موڈ میں رکھتا ہے۔ ہمیں حرف اور ڈیٹا بھیجنے کے لئے صرف انبل اور آر ایس پنوں کو کنٹرول کرنے کی ضرورت ہے۔
کنیکشن جو ایل سی ڈی کے لئے کیے جاتے ہیں وہ ذیل میں دیئے گئے ہیں۔
گراؤنڈ میں PIN1 یا VSS
پن 2 یا وی ڈی ڈی یا وی سی سی سے + 5 وی پاور
PIN3 یا VEE کرنے کے لئے (ابتدائی کے لئے زیادہ سے زیادہ اس کے برعکس بہترین دیتا ہے)
یو سی کے PD6 پر PIN4 یا RS (انتخاب کا اندراج) کریں
پن 5 یا آر ڈبلیو (پڑھیں / لکھیں) زمین پر (ایل سی ڈی کو پڑھنے کے موڈ میں ڈال دیتا ہے جس سے صارف کے لئے مواصلات میں آسانی ہوجاتی ہے)
یو سی کے PD5 سے پن 6 یا ای (قابل)
یو سی کے PIN7 یا D0 سے PB0
یو سی کے PIN8 یا D1 سے PB1
یو سی کے PIN9 یا D2 سے PB2
یو سی کے PIN10 یا D3 سے PB3
یو سی کے PIN11 یا D4 سے PB4
یو سی کے PIN12 یا D5 سے PB5
یو سی کے PIN13 یا D6 سے PB6
یو سی کے PIN14 یا D7 سے PB7
سرکٹ میں آپ دیکھ سکتے ہیں کہ ہم نے 8 بٹ مواصلات (D0-D7) کا استعمال کیا ہے لیکن یہ لازمی نہیں ہے ، ہم 4 بٹ مواصلات (D4-D7) استعمال کرسکتے ہیں لیکن 4 بٹ مواصلاتی پروگرام تھوڑا پیچیدہ ہو جاتا ہے۔ لہذا جیسا کہ مذکورہ جدول میں دکھایا گیا ہے ہم ایل سی ڈی کے 10 پنوں کو کنٹرولر سے جوڑ رہے ہیں جس میں 8 پنوں کو ڈیٹا پن اور کنٹرول کے لئے 2 پن ہیں۔
سوئچ ایک الارم اور وقت کے درمیان ایڈجسٹ کی خصوصیت کو چالو کرنے کے لئے ہے۔ اگر پن کم ہے تو ، ہم بٹن دباکر الارم کے وقت کو ایڈجسٹ کرسکتے ہیں۔ اگر اس کے اعلی بٹن صرف TIME کو ایڈجسٹ کرنے کے لئے ہیں۔ یہاں چار بٹن موجود ہیں ، پہلے الارم یا وقت میں انکریمنٹ MINUTES کے لئے ہے۔ دوسرا الارم یا وقت میں کم ہونے والی MINUTES کے لئے ہے۔ تیسرا الارم یا وقت میں اضافے کے HOUR کے لئے ہے۔ چارم الارم یا وقت میں گھٹانے والے HOURS کے لئے ہے۔
یہاں موجود کیپسیٹرز بٹنوں کے اچھ.ا اثر کو ختم کرنے کے لئے ہیں۔ اگر انہیں ہٹا دیا جاتا ہے تو کنٹرولر ہر بار بٹن دبائے جانے پر ایک سے زیادہ گن سکتا ہے۔ پنوں کے لئے جڑے ہوئے مزاحمات موجودہ کو محدود کرنے کے ل are ہیں ، جب بٹن کو نیچے سے زمین پر پینچنے کے لئے دبایا جاتا ہے۔
جب بھی ایک بٹن دبایا جاتا ہے تو ، کنٹرولر کا اسی پن کو نیچے کی طرف کھینچ لیا جاتا ہے اور اس طرح کنٹرولر نے پہچان لیا ہے کہ کچھ بٹن دبایا جاتا ہے اور اسی سے متعلق کارروائی کی جاتی ہے۔
سب سے پہلے ، جو گھڑی ہم یہاں منتخب کرتے ہیں وہ 11059200 ہرٹج ہے ، اسے 1024 میں تقسیم کرنا 10800 دیتا ہے۔ لہذا ہر سیکنڈ کے لئے ہمیں 10800 دالیں ملتی ہیں۔ لہذا ہم کاؤنٹر گھڑی کو 10800 ہرٹج کے بطور حاصل کرنے کے لئے 1024 پریسکلر کے ساتھ ایک کاؤنٹر شروع کرنے جارہے ہیں۔ دوسرا ہم اے ٹی ٹی ای جی اے کے سی ٹی سی (کلئیر ٹائمر کاؤنٹر) وضع کو استعمال کرنے جارہے ہیں۔ ایک 16 بٹ رجسٹر ہوگا جہاں ہم کسی قدر (موازنہ کی قیمت) کو اسٹور کرسکتے ہیں ، جب کاؤنٹر موازنہ کی قیمت تک گنتا ہے جس میں ایک رکاوٹ پیدا ہوتی ہے۔
ہم موازنہ کی قیمت 10800 مرتب کرنے جا رہے ہیں ، لہذا بنیادی طور پر ہمارے پاس ہر سیکنڈ کے لئے ایک ISR (ہر موازنہ پر رکاوٹ سروس روٹین) ہوگا۔ لہذا ہم اپنی ضرورت کی گھڑی کو حاصل کرنے کے لئے اس بروقت معمول کا استعمال کریں گے۔
براؤن (WGM10-WGM13): یہ بٹس ٹائمر کے لئے طریق کار کو منتخب کرنے کے ل. ہیں۔
اب چونکہ ہم OCR1A بائٹ میں موازنہ قیمت کے ساتھ سی ٹی سی موڈ چاہتے ہیں لہذا ہمیں صرف WGM12 کو ایک سیٹ کرنا ہے ، باقی باقی رہ گئے ہیں کیونکہ وہ پہلے سے صفر ہیں۔
سرخ (CS10 ، CS11 ، CS12): یہ تینوں بٹس نسخہ چننے اور مناسب انسداد گھڑی حاصل کرنے کے ل are ہیں۔
چونکہ ہم 1024 کو بطور پریسکلنگ چاہتے ہیں ، لہذا ہمیں CS12 اور CS10 دونوں سیٹ کرنا ہوں گے۔
اب ایک اور رجسٹر ہے جس پر ہمیں غور کرنا چاہئے:
گرین (OCIE1A): کاؤنٹر ویلیو اور OCR1A ویلیو (10800) کے مابین موازنہ میچ پر رکاوٹ حاصل کرنے کے لئے یہ تھوڑا سا طے کرنا ضروری ہے جو ہم نے طے کیا ہے۔
او سی آر 1 اے ویلیو (کاؤنٹر موازنہ کی قیمت) ، مندرجہ بالا رجسٹر میں لکھا ہوا ہے۔
پروگرامنگ وضاحت
الارم گھڑی کے کام کو مندرجہ ذیل کوڈ میں مرحلہ وار بیان کیا گیا ہے۔
پنوں پر ڈیٹا فلو کنٹرول کو قابل بنائے جانے کے لئے # شامل // ہیڈر