- ہارڈ ویئر سیٹ اپ اور ضرورت
- نووٹن N76E003 کے ساتھ ایل ای ڈی انٹرفیسنگ کے لئے سرکٹ ڈایاگرام
- نووٹن N76E003 پر ٹائمر پنوں
- نووٹن N76E003 میں ٹائمر رجسٹر
- نووٹن N76E003 میں ٹائمز کی اقسام
- پروگرامنگ نیوٹن N76E003 ٹائمرز کے لئے مائکرو قابو پانے والا
- ٹائمر فعالیت کیلئے چمکتا کوڈ اور تصدیق شدہ آؤٹ پٹ
ہمارے پچھلے نووٹن مائکروکانٹرولر سبق میں ، ہم ایک ابتدائی ایل ای ڈی ٹمٹمانے والے پروگرام کو بطور ابتدائی ہدایت نامہ استعمال کرتے ہیں اور سپرش سوئچ کو مربوط کرنے کے لئے جی پی آئی او کو انٹرفیس بھی دیتے ہیں۔ اس ٹیوٹوریل کے ذریعہ ، ہم پوری طرح سے واقف ہیں کہ کییل پروجیکٹ کو کس طرح تشکیل دیں اور N76E003 نیووٹن مائکروکانٹرولر پروگرامنگ کے لئے ماحول کو مرتب کریں۔ اب وقت آگیا ہے کہ مائکروکانٹرولر یونٹ کا اندرونی دائرہ استعمال کریں اور N76E003 کے ان بلٹ ٹائمر کا استعمال کرکے تھوڑا سا آگے بڑھیں ۔
ہمارے پچھلے سبق میں ، ہم صرف ایل ای ڈی کو پلکنے کے لئے سافٹ ویئر کی تاخیر کا استعمال کرتے تھے ، لہذا اس ٹیوٹوریل میں ، ہم ٹائمر تاخیر کی تقریب کے ساتھ ساتھ ٹائمر آئی ایس آر (انٹراپٹ سروس روٹین) اور دو انفرادی ایل ای ڈی کو پلکنے کا طریقہ سیکھیں گے۔ آپ دوسرے مائکروکنٹرولروں کے ساتھ ٹائمر استعمال کرنے کا طریقہ چیک کرنے کے ل A آرڈینو ٹائمر ٹیوٹوریل اور پی آئی سی ٹائمر ٹیوٹوریل بھی چیک کرسکتے ہیں۔ زیادہ وقت ضائع کیے بغیر آئیے یہ تشخیص کریں کہ ہمیں کس طرح کا ہارڈ ویئر سیٹ اپ درکار ہے۔
ہارڈ ویئر سیٹ اپ اور ضرورت
چونکہ اس پروجیکٹ کی ضرورت ٹائمر آئی ایس آر اور ٹائمر تاخیر کا کام سیکھنا ہے ، اس لئے ہم دو ایل ای ڈی کا استعمال کریں گے ، جن میں سے ایک ٹائمر میں تاخیر کا استعمال کرتے ہوئے پلک جھپکائے گی جبکہ دوسرا آئی ایس آر فنکشن کے اندر پلک جھپکائے گا۔
چونکہ N76E003 ڈویلپمنٹ بورڈ میں ایل ای ڈی دستیاب ہے ، لہذا اس منصوبے میں ایک اضافی ایل ای ڈی کی ضرورت ہے اور ایل ای ڈی موجودہ کو محدود کرنے کے ل current موجودہ لمیٹڈ ریزسٹر کی ضرورت ہے۔ ہماری ضرورت کے اجزاء۔
- ایل ای ڈی کا کوئی رنگ
- 100 آر ریزسٹر
مذکورہ بالا اجزاء کے علاوہ ، ہمیں N76E003 مائکروکونٹرولر پر مبنی ڈویلپمنٹ بورڈ نیز نیو لنک پروگرامر کی ضرورت ہے ۔ مزید برآں ، تمام اجزاء کو مربوط کرنے کے لئے بریڈ بورڈ اور ہک اپ تاروں کی بھی ضرورت ہے۔
نووٹن N76E003 کے ساتھ ایل ای ڈی انٹرفیسنگ کے لئے سرکٹ ڈایاگرام
جیسا کہ ہم ذیل میں اسکیمیٹک میں دیکھ سکتے ہیں ، ٹیسٹ ایل ای ڈی ترقیاتی بورڈ کے اندر دستیاب ہے اور یہ پورٹ 1.4 پر منسلک ہے۔ ایک اضافی ایل ای ڈی پورٹ 1.5 سے منسلک ہے۔ ریزسٹر R3 ایل ای ڈی موجودہ کو محدود کرنے کے لئے استعمال کیا جاتا ہے۔ انتہائی بائیں طرف ، پروگرامنگ انٹرفیس کنکشن دکھایا گیا ہے۔
نووٹن N76E003 پر ٹائمر پنوں
N76E003 کا پن آریگرام ذیل کی تصویر میں دیکھا جاسکتا ہے۔
جیسا کہ ہم دیکھ سکتے ہیں ، ہر پن کی مختلف خصوصیات ہیں اور ہر پن کو متعدد مقاصد کے لئے استعمال کیا جاسکتا ہے۔ تاہم ، پن 1.5 جو ایل ای ڈی آؤٹ پٹ پن کے طور پر استعمال ہوتا ہے ، اس سے پی ڈبلیو ایم اور دیگر فعالیت ختم ہوجائے گی۔ لیکن ، یہ مسئلہ نہیں ہے کیونکہ اس منصوبے کے لئے کسی اور فعالیت کی ضرورت نہیں ہے۔
پن 1.5 کو آؤٹ پٹ اور پن 1.6 کو ان پٹ کے بطور منتخب کرنے کے پیچھے آسان رابطہ کے لئے GND اور VDD پنوں کی قریب ترین دستیابی ہے۔ تاہم ، 20 پنوں میں سے اس مائکروکانٹرولر میں ، 18 پنوں کو جی پی آئی او پن کے طور پر استعمال کیا جاسکتا ہے اور کوئی اور جی پی آئی او پنوں کو آؤٹ پٹ اور ان پٹ سے متعلقہ مقاصد کے لئے استعمال کیا جاسکتا ہے ، سوائے پن 2.0 جو ری سیٹ ان پٹ کے لئے پورے طور پر استعمال ہوتا ہے اور اسے استعمال نہیں کیا جاسکتا۔ آؤٹ پٹ۔ تمام GPIO پنوں کو نیچے بیان کردہ وضع میں تشکیل کیا جاسکتا ہے۔
ڈیٹا شیٹ کے مطابق ، PxM1.n ، اور PxM2.n دو رجسٹر ہیں جو I / O پورٹ کے کنٹرول آپریشن کا تعین کرنے کے لئے استعمال ہوتے ہیں۔ چونکہ ہم ایل ای ڈی کا استعمال کر رہے ہیں اور ہمیں پن کو عام آؤٹ پٹ پن کی حیثیت سے درکار ہے ، لہذا ہم پنوں کے لئے نیم بائیڈکشن موڈ کا استعمال کریں گے۔
نووٹن N76E003 میں ٹائمر رجسٹر
ٹائمر کسی بھی مائکروکنٹرولر یونٹ کے لئے ایک اہم چیز ہوتی ہے۔ مائکروکونٹرولر ایک بلٹ ٹائمر پیریفیریل کے ساتھ آتا ہے۔ نووٹن N76E003 بھی 16 بٹ ٹائمر پیریفرلز کے ساتھ آتا ہے ۔ تاہم ، ہر ٹائمر مختلف مقاصد کے لئے استعمال ہوتا ہے ، اور کسی بھی ٹائمر انٹرفیس کو استعمال کرنے سے پہلے ٹائمر کے بارے میں جاننا ضروری ہے۔
نووٹن N76E003 میں ٹائمز کی اقسام
ٹائمر 0 اور 1:
یہ دونوں ٹائمر ٹائمر 0 اور ٹائمر 1 8051 ٹائمر کے ساتھ ایک جیسے ہیں۔ یہ دونوں ٹائمر عام ٹائمر یا کاؤنٹرز کے بطور استعمال ہوسکتے ہیں۔ یہ دونوں ٹائمر چار طریقوں میں کام کرتے ہیں۔ میں موڈ 0 ، ان ٹائمر 13-بٹ ٹائمر / انسداد موڈ میں کام کریں گے. میں موڈ 1 ، قرارداد ان دو ٹائمرز کے بٹ 16 بٹ جائے گا. میں قسم 2 ، ٹائمر ایک 8 بٹ کی قرارداد کے ساتھ ایک آٹو دوبارہ لوڈ موڈ کے طور پر تشکیل کر رہے ہیں. میں موڈ 3 ، ٹائمر 1 روک دیا جاتا ہے اور ٹائمر 0 ایک ہی وقت میں ایک کاؤنٹر اور ٹائمر کے طور پر استعمال کیا جا سکتا.
ان چار طریقوں میں سے ، زیادہ تر مقدمات میں موڈ 1 استعمال ہوتا ہے۔ یہ دونوں ٹائمر Fsys (سسٹم فریکوئینسی) کو فکسڈ یا پریسکلڈ موڈ (Fys / 12) میں استعمال کرسکتے ہیں۔ بیرونی گھڑی کے ماخذ سے بھی اسے گھڑایا جاسکتا ہے۔
ٹائمر 2:
ٹائمر 2 ایک 16 بٹ ٹائمر بھی ہے جو بنیادی طور پر ویوفارم کی گرفتاری کے لئے استعمال ہوتا ہے۔ یہ سسٹم کلاک بھی استعمال کرتا ہے اور 8 مختلف ترازو کا استعمال کرتے ہوئے گھڑی کی فریکوئنسی کو تقسیم کرکے مختلف ایپلی کیشنز میں استعمال کیا جاسکتا ہے۔ یہ موازنہ موڈ میں یا پی ڈبلیو ایم تیار کرنے کے لئے بھی استعمال کیا جاسکتا ہے۔
ٹائمر 0 اور ٹائمر 1 جیسے ہی ، ٹائمر 2 کو آٹو دوبارہ لوڈ کے موڈ میں استعمال کیا جاسکتا ہے۔
ٹائمر 3:
ٹائمر 3 کو 16 بٹ ٹائمر کے طور پر بھی استعمال کیا جاتا ہے اور یہ UART کے لئے باؤڈ ریٹ کلاک سورس کے لئے استعمال ہوتا ہے۔ اس میں آٹو ری لوڈ کی خصوصیت بھی ہے۔ اس ٹائمر کو صرف سیریل مواصلات (UART) کے لئے استعمال کرنا ضروری ہے اگر درخواست میں UART مواصلات کی ضرورت ہو۔ مشورہ دیا جاتا ہے کہ ٹائمر سیٹ اپ میں متضاد عمل کی وجہ سے اس طرح کے معاملے میں اس ٹائمر کو دوسرے مقاصد کے لئے استعمال نہ کریں۔
واچ ڈاگ ٹائمر:
واچ ڈاگ ٹائمر کو معیاری 6 بٹ ٹائمر کے طور پر استعمال کیا جاسکتا ہے لیکن اسے اس مقصد کے لئے استعمال نہیں کیا جاتا ہے۔ عام طور پر ٹائمر کے طور پر واچ ڈاگ ٹائمر کا استعمال کم بجلی کی کھپت کی ایپلی کیشنز کیلئے لاگو ہوتا ہے جہاں مائکروکانٹرولر زیادہ تر بیکار حالت میں رہتا ہے۔
واچ ڈاگ ٹائمر ، جیسا کہ نام سے ظاہر ہوتا ہے ، ہمیشہ جانچ پڑتال کرتا ہے کہ مائکروکونٹرولر ٹھیک سے کام کر رہا ہے یا نہیں۔ پھانسی یا روک دیا ہوا مائکروکانٹرولر کے معاملے میں ، ڈبلیو ڈی ٹی (واچ ڈاگ ٹائمر) مائکروکانٹرولر کو خود کار طریقے سے دوبارہ ترتیب دے دیتا ہے جو یقینی بناتا ہے کہ مائکرو قابو رکھنے والا بغیر کسی پھنسے ، پھانسی ، یا رکے ہوئے حالات میں مسلسل کوڈ کے بہاؤ میں چلتا ہے۔
سیلف ویک اپ ٹائمر:
یہ ایک اور ٹائمر پیریفیریل ہے جو ایک سرشار وقت کے عمل کو ایک نگران ٹائمر کی طرح انجام دیتا ہے۔ اس ٹائمر ، جب وقتا. فوقتا. مائکرو کنٹرولر کم بجلی کے موڈ میں چل رہا ہو تو سسٹم کو وقتا فوقتا جاگنا۔
اس ٹائمر پیریفرل کو نیند موڈ سے مائکروکنٹرولر کو بیدار کرنے کے لئے اندرونی طور پر یا بیرونی پیریفرلز کا استعمال کیا جاسکتا ہے۔ اس پروجیکٹ کے ل we ، ہم ٹائمر 1 اور ٹائمر 2 کا استعمال کریں گے۔
پروگرامنگ نیوٹن N76E003 ٹائمرز کے لئے مائکرو قابو پانے والا
پنوں کو آؤٹ پٹ کے طور پر ترتیب دینا:
پہلے آؤٹ پٹ سیکشن کے ساتھ شروع کریں۔ ہم دو ایل ای ڈی کا استعمال کر رہے ہیں ، ایک جہاز کا ایل ای ڈی ہے ، جس کا نام ٹیسٹ ہے ، اور P1.4 بندرگاہ اور پن P1.5 کے ساتھ منسلک ایک بیرونی ایل ای ڈی سے منسلک ہے۔
لہذا ، ان دو پنوں کو نیچے والے کوڈ کے ٹکڑوں کا استعمال کرکے ان دو ایل ای ڈی کو مربوط کرنے کے لئے آؤٹ پٹ پن کے طور پر تشکیل دیا گیا ہے۔
# ڈیفائن ٹیسٹ_ ایل ای ڈی پی 14 # وضاحت ایل ای ڈی 1 پی 15
یہ دونوں پنوں کو سیٹ اپ فنکشن میں نیم بائیڈکشنل پن کے طور پر سیٹ کیا گیا ہے۔
باطل سیٹ اپ (باطل) {P14_Quasi_Mode؛ P15_Quasi_Mode؛ }
ٹائمر فنکشن کی ترتیب:
سیٹ اپ فنکشن میں ، مطلوبہ آؤٹ پٹ حاصل کرنے کے لئے ٹائمر 2 کو تشکیل کرنے کی ضرورت ہے۔ اس کے ل we ، ہم 1/128 گھڑی تقسیم کرنے والے عنصر کے ساتھ ٹی 2 ایم او ایم رجسٹر ترتیب دیں گے اور اسے آٹو ری لوڈ میں تاخیر کے موڈ میں استعمال کریں گے۔ یہاں T2MOD رجسٹر کا جائزہ ہے۔
T2MOD رجسٹر کے 4،5 ، اور 6 ویں بٹ نے ٹائمر 2 گھڑی تقسیم کرنے والا اور 7 ویں بٹ نے آٹو دوبارہ لوڈ کا وضع کیا۔ یہ نیچے کی لائن کا استعمال کرتے ہوئے کیا جاتا ہے۔
TIMER2_DIV_128؛ TIMER2_ آٹو_ریلوڈ_ڈیلی_موڈ؛
یہ دونوں لائنیں Function_define.h فائل میں بیان کی گئیں ہیں
# وضاحت TIMER2_DIV_128 T2MOD- = 0x50؛ T2MOD & = 0xDF # وضاحت TIMER2_ آٹو_ریلوڈ_ڈیلی_موڈ T2CON & = ~ SET_BIT0؛ T2MOD- = SET_BIT7؛ T2MOD- = SET_BIT3
اب ، ان لائنوں نے ٹائمر 2 ISR کے لئے درکار وقت کی قیمت طے کی ہے۔
RCMP2L = TIMER_DIV128_VALUE_100 ملی میٹر؛ RCMP2H = TIMER_DIV128_VALUE_100ms >> 8؛
جسے Function_define.h فائل میں مزید بیان کیا گیا ہے-
TIMER_DIV128_VALUE_100ms 65536-12500 // 12500 * 128/16000000 = 100 ایم ایس
تو ، 16000000 16 میگاہرٹز کی کرسٹل تعدد ہے جو 100 ایم ایس وقت کی تاخیر کو ترتیب دے رہی ہے۔
دو لائنوں کے نیچے ٹائمر 2 لو اور ہائی بائٹس خالی ہوں گے۔
TL2 = 0؛ TH2 = 0؛
آخر کار نیچے کوڈ ٹائمر 2 کو روکنے اور ٹائمر 2 کو شروع کرنے کے قابل بنائے گا۔
set_ET2؛ // ٹائمر 2 رکاوٹ سیٹ_EA کو فعال کریں؛ سیٹ_ٹی آر 2؛ // ٹائمر 2 رن
مکمل سیٹ اپ فنکشن نیچے کوڈز میں دیکھا جاسکتا ہے۔
باطل سیٹ اپ (باطل) { P14_Quasi_Mode؛ P15_Quasi_Mode؛ TIMER2_DIV_128؛ TIMER2_ آٹو_ریلوڈ_ڈیلی_موڈ؛ RCMP2L = TIMER_DIV128_VALUE_100 ملی میٹر؛ RCMP2H = TIMER_DIV128_VALUE_100ms >> 8؛ TL2 = 0؛ TH2 = 0؛ set_ET2؛ // ٹائمر 2 رکاوٹ سیٹ_EA کو فعال کریں ؛ سیٹ_ٹی آر 2؛ // ٹائمر 2 رن }
ٹائمر 2 ISR فنکشن:
ٹائمر 2 ISR فنکشن کو نیچے والے کوڈ میں دیکھا جاسکتا ہے۔
باطل ٹائمر 2_ آئس آر (باطل) رکاوٹ 5 { clr_TF2؛ // صاف ٹائمر 2 رکاوٹ پرچم ایل ای ڈی 1 = ~ ایل ای ڈی 1؛ // ایل 1 ایل ٹوگل ، P1.5 میں منسلک؛ }
ٹائمر فعالیت کیلئے چمکتا کوڈ اور تصدیق شدہ آؤٹ پٹ
کوڈ (ذیل میں دیا گیا) جب مرتب ہوا تو 0 انتباہ اور 0 نقائص واپس آئے اور میں نے کییل میں پہلے سے طے شدہ چمکنے کا طریقہ استعمال کرکے اسے چمکادیا۔ چمکنے کے بعد ایل ای ڈی پروگرام طے شدہ ٹائمر تاخیر میں ٹمٹماتے رہے۔
اس کوڈ کے لئے بورڈ کس طرح کام کرتا ہے اس کے مکمل مظاہرے کے لئے نیچے دیئے گئے ویڈیو کو دیکھیں۔ امید ہے کہ آپ نے ٹیوٹوریل سے لطف اندوز ہوئے ہوں گے اور کچھ مفید سیکھا ہے اگر آپ کے ذہن میں کوئی سوالات ہیں تو ان کو ذیل میں تبصرہ سیکشن میں چھوڑ دیں۔ آپ دوسرے تکنیکی سوالات پوسٹ کرنے کے لئے ہمارے فورمز کا استعمال بھی کرسکتے ہیں۔