MCU مائکروکنٹرولر یونٹ ہے چینی زبان میں مائیکرو کنٹرولر کا مخفف، جسے عام طور پر سنگل چپ مائیکرو کمپیوٹر کے نام سے جانا جاتا ہے، CPU کی فریکوئنسی اور تصریحات کو مناسب طریقے سے کم کرنا ہے، اور پردیی انٹرفیس جیسے کہ میموری، کاؤنٹر، USB، A/D کنورژن، UART، PLC، DMA، اور یہاں تک کہ LCD ڈرائیور سرکٹس کو ایک ہی ویل-چی کمپیوٹر پر تشکیل دینا ہے۔ یہ مختلف ایپلی کیشنز، جیسے کہ موبائل فون، پی سی پیری فیرلز، ریموٹ کنٹرولز، آٹوموٹو الیکٹرانکس، انڈسٹریل سٹیپر موٹرز، اور روبوٹ آرم کنٹرول کے لیے کنٹرول کے مختلف مجموعے انجام دے سکتا ہے۔ ایم سی یو کو شکل میں دیکھا جا سکتا ہے۔
ایک
مائکروکنٹرولرز کی ترقی کی ایک مختصر تاریخ
مائیکرو کنٹرولرز کی تاریخ طویل نہیں ہے، لیکن اس نے بہت تیزی سے ترقی کی ہے۔ اس کی پیداوار اور ترقی عام طور پر مائیکرو پروسیسرز (CPUs) کی پیداوار اور ترقی کے ساتھ ہم آہنگ ہوتی ہے۔ چونکہ ریاستہائے متحدہ کی انٹیل کارپوریشن نے پہلی بار 1971 میں 4 بٹ مائکرو پروسیسر کا آغاز کیا، اس کی اب تک کی ترقی کو تقریباً پانچ مراحل میں تقسیم کیا جا سکتا ہے۔ ذیل میں انٹیل کارپوریشن سے مائیکرو کنٹرولرز کی ترقی کا ایک تعارف ہے۔
1971 ~ 1976
مائکروکنٹرولرز کی ترقی کا ابتدائی مرحلہ۔ نومبر 1971 میں، Intel نے سب سے پہلے Intel 4004 کو ڈیزائن کیا، ایک 4 بٹ مائکرو پروسیسر جس میں 2,000 ٹرانجسٹر/چپ کے انضمام کے ساتھ RAM، ROM اور شفٹ رجسٹر سے لیس تھا، جس نے پہلا MCS-4 مائکرو پروسیسر بنایا۔ پھر اس نے 8 بٹ مائیکرو پروسیسر Intel 8008، اور دیگر 8-bit مائیکرو پروسیسر دیگر کمپنیوں کے ذریعہ لانچ کیا۔
1976 ~ 1980
کم کارکردگی کا مائیکرو کنٹرولر مرحلہ۔ انٹیل کے ذریعہ 1976 میں شروع کی گئی MCS-48 سیریز کے ذریعہ نمائندگی کی گئی، یہ ایک یک سنگی ڈھانچہ استعمال کرتا ہے جو ایک 8 بٹ سی پی یو، 8 بٹ متوازی I/O انٹرفیس، 8 بٹ ٹائمر/کاؤنٹر، RAM اور ROM کو سیمی کنڈکٹر چپ پر مربوط کرتا ہے۔ اگرچہ اس کی ایڈریسنگ رینج محدود ہے (4 KB سے زیادہ نہیں)، کوئی سیریل I/O نہیں ہے، RAM اور ROM کی گنجائش چھوٹی ہے، اور مداخلت کا نظام نسبتاً آسان ہے، لیکن اس کے افعال عام صنعتی کنٹرول اور ذہین آلات اور میٹر کی ضروریات کو پورا کر سکتے ہیں۔
1980 ~ 1983
اعلی کارکردگی کا مائیکرو کنٹرولر مرحلہ۔ اس مرحلے پر شروع کیے گئے اعلیٰ کارکردگی والے 8 بٹ مائیکرو کنٹرولرز میں عام طور پر سیریل پورٹس، ملٹی لیول انٹرپٹ پروسیسنگ سسٹم، اور متعدد 16 بٹ ٹائمرز/کاؤنٹرز ہوتے ہیں۔ آن چپ RAM اور ROM کی گنجائش بڑھ گئی ہے، اور ایڈریسنگ رینج 64 KB تک پہنچ سکتی ہے۔ کچھ چپس میں A/D کنورژن انٹرفیس بھی ہوتا ہے۔
1983 ~ 1980 کی دہائی کے آخر میں
16 بٹ مائکروکنٹرولر مرحلہ۔ 1983 میں، انٹیل نے اعلی کارکردگی والے 16 بٹ مائیکرو کنٹرولر MCS-96 سیریز کا آغاز کیا۔ جدید ترین مینوفیکچرنگ ٹکنالوجی کو اپنانے کی وجہ سے، چپ انٹیگریشن لیول 120,000 ٹرانجسٹر/چپ تک ہے۔
1990s
مائیکرو کنٹرولرز انضمام، فعالیت، رفتار، وشوسنییتا، اور اطلاق کے شعبوں کے تمام پہلوؤں میں اعلیٰ سطح پر ترقی کر رہے ہیں۔
دو
سنگل چپ مائکرو کمپیوٹر کی درجہ بندی اور اطلاق
MCUs کو ان کی میموری کی اقسام کے مطابق دو اقسام میں تقسیم کیا جا سکتا ہے: وہ جو آن چپ ROM کے بغیر ہیں اور وہ جو آن چپ ROM کے ساتھ ہیں۔ آن چپ ROM کے بغیر چپس کے لیے، ایک بیرونی EPROM کو استعمال کرنے سے پہلے منسلک ہونا چاہیے (عام طور پر 8031)؛ آن-چِپ ROM والی چپس کو آن-چِپ EPROM قسم (عام چپ 87C51 ہے)، MASK آن-چِپ ماسک ROM کی قسم (عام چپ 8051 ہے)، آن-چِپ فلیش کی قسم (عام چپ 89C51 ہے) اور دیگر اقسام میں تقسیم کی گئی ہے۔
مقصد کے مطابق، اسے عام مقصد اور خاص مقصد کی اقسام میں تقسیم کیا جا سکتا ہے۔ ڈیٹا بس کی چوڑائی اور ڈیٹا بائٹس کی لمبائی کے مطابق جس پر ایک وقت میں کارروائی کی جا سکتی ہے، اسے 8، 16 اور 32 بٹ MCUs میں تقسیم کیا جا سکتا ہے۔
اس وقت، سب سے زیادہ وسیع گھریلو MCU ایپلیکیشن مارکیٹ کنزیومر الیکٹرانکس فیلڈ میں ہے، اس کے بعد صنعتی فیلڈ اور آٹوموٹو الیکٹرانکس مارکیٹ ہے۔ کنزیومر الیکٹرانکس میں گھریلو ایپلائینسز، ٹیلی ویژن، گیم کنسولز، آڈیو اور ویڈیو سسٹمز وغیرہ شامل ہیں۔ صنعتی شعبوں میں سمارٹ ہومز، آٹومیشن، میڈیکل ایپلی کیشنز، اور نئی توانائی کی پیداوار اور تقسیم شامل ہیں۔ آٹوموٹو فیلڈ میں آٹوموٹیو پاور ٹرین اور سیفٹی کنٹرول سسٹم شامل ہیں۔
تین
مائکروکنٹرولر کے بنیادی افعال
زیادہ تر MCUs کے لیے، درج ذیل افعال سب سے عام اور بنیادی ہیں۔ مختلف MCUs کے لیے، ان کے بیان کرنے کا طریقہ مختلف ہو سکتا ہے، لیکن وہ بنیادی طور پر ایک جیسے ہیں:
1. TImer (ٹائمر): اگرچہ TImer کی بہت سی قسمیں ہیں، لیکن ان کا خلاصہ دو قسموں میں کیا جا سکتا ہے: ایک قسم TImer ہے جس میں مقررہ وقت کے وقفے ہوتے ہیں، یعنی وقت کا وقت سسٹم کے ذریعے مقرر کیا جاتا ہے اور اسے صارف کے پروگرام کے ذریعے کنٹرول نہیں کیا جا سکتا۔ یہ سسٹم صارف کے پروگرام کو منتخب کرنے کے لیے صرف کئی مقررہ وقت کے وقفے فراہم کرتا ہے، جیسے کہ 32Hz، 16Hz، 8Hz، وغیرہ۔ اس قسم کا TImer 4-bit MCUs میں زیادہ عام ہے، اس لیے اسے گھڑی، وقت اور دیگر متعلقہ افعال کو نافذ کرنے کے لیے استعمال کیا جا سکتا ہے۔
دوسری قسم پروگرام ایبل ٹائمر ہے۔ جیسا کہ نام سے پتہ چلتا ہے، اس قسم کے ٹائمر کے ٹائمنگ کو صارف کے پروگرام کے ذریعے کنٹرول کیا جا سکتا ہے۔ کنٹرول کے طریقوں میں شامل ہیں: گھڑی کے ذریعہ کا انتخاب، فریکوئنسی ڈویژن کا انتخاب (پریسکل) اور پہلے سے سیٹ نمبر کی ترتیب۔ کچھ MCU میں ایک ہی وقت میں تینوں ہوتے ہیں، جبکہ دوسروں میں ان میں سے ایک یا دو ہو سکتے ہیں۔ اس قسم کی ٹائمر ایپلی کیشن بہت لچکدار ہے، اور اس کا اصل استعمال بھی ہمیشہ بدلتا رہتا ہے۔ سب سے عام ایپلی کیشنز میں سے ایک PWM آؤٹ پٹ کو لاگو کرنے کے لیے اسے استعمال کرنا ہے۔
چونکہ گھڑی کا ذریعہ آزادانہ طور پر منتخب کیا جا سکتا ہے، اس قسم کے ٹائمر کو عام طور پر ایونٹ کاؤنٹر کے ساتھ ملایا جاتا ہے۔
2. IO پورٹس: کسی بھی MCU میں IO پورٹس کی ایک خاص تعداد ہوتی ہے۔ IO بندرگاہوں کے بغیر، MCU بیرونی دنیا کے ساتھ بات چیت کرنے کے لیے چینل کھو دیتا ہے۔ IO بندرگاہ کی ترتیب کے مطابق، اسے مندرجہ ذیل اقسام میں تقسیم کیا جا سکتا ہے:
خالص ان پٹ یا خالص آؤٹ پٹ پورٹ: IO پورٹ کی اس قسم کا تعین MCU ہارڈویئر ڈیزائن کے ذریعے کیا جاتا ہے۔ یہ صرف ان پٹ یا آؤٹ پٹ ہو سکتا ہے، اور سافٹ ویئر کو ریئل ٹائم سیٹنگز کے لیے استعمال نہیں کیا جا سکتا۔
IO بندرگاہوں کو براہ راست پڑھیں اور لکھیں: مثال کے طور پر، MCS-51 کا IO پورٹ اس قسم کے IO پورٹ سے تعلق رکھتا ہے۔ جب پڑھنے والی IO پورٹ کی ہدایات پر عمل درآمد ہوتا ہے، تو یہ ایک ان پٹ پورٹ ہوتا ہے۔ جب رائٹ IO پورٹ انسٹرکشن پر عمل درآمد ہوتا ہے تو یہ خود بخود آؤٹ پٹ پورٹ بن جاتا ہے۔
ان پٹ اور آؤٹ پٹ کی سمت متعین کرنے کے لیے پروگرامنگ: اس قسم کے IO پورٹ کا ان پٹ یا آؤٹ پٹ پروگرام کے ذریعے اصل ضروریات کے مطابق سیٹ کیا جاتا ہے۔ ایپلیکیشن نسبتاً لچکدار ہے اور کچھ بس سطح کی ایپلی کیشنز کو محسوس کر سکتی ہے، جیسے I2C بس، مختلف LCD، LED ڈرائیور کنٹرول بسیں وغیرہ۔
IO بندرگاہوں کے استعمال کے لیے، ایک اہم نکتہ جس کو ذہن میں رکھنا ضروری ہے وہ ہے: ان پٹ پورٹ کے لیے، اس بات کو یقینی بنانے کے لیے ایک واضح سطح کا سگنل ہونا چاہیے کہ یہ تیر نہیں سکتا (یہ پل اپ یا پل-ڈاؤن ریزسٹر شامل کرکے حاصل کیا جا سکتا ہے)؛ آؤٹ پٹ پورٹ کے لیے، آؤٹ پٹ سٹیٹس لیول کو اس کے بیرونی کنکشن کے حالات پر غور کرنا چاہیے، اور اس بات کو یقینی بنانا چاہیے کہ اسٹینڈ بائی یا سٹیٹک سٹیٹ میں کوئی کرنٹ کھینچنا یا ڈوبنا نہیں ہے۔
3. بیرونی مداخلت: بیرونی مداخلت بھی زیادہ تر MCUs کا بنیادی کام ہے۔ یہ عام طور پر سگنلز کی ریئل ٹائم ٹرگرنگ، ڈیٹا سیمپلنگ اور اسٹیٹس کا پتہ لگانے کے لیے استعمال ہوتا ہے۔ مداخلت کے طریقوں میں بڑھتے ہوئے کنارے کا محرک، گرتے ہوئے کنارے کا محرک اور سطح کا محرک شامل ہیں۔ بیرونی رکاوٹوں کو عام طور پر ان پٹ پورٹس کے ذریعے لاگو کیا جاتا ہے۔ اگر یہ ایک IO پورٹ ہے، تو اس کا انٹرپٹ فنکشن صرف اس وقت آن کیا جائے گا جب اسے ان پٹ پر سیٹ کیا جائے گا۔ اگر یہ ایک آؤٹ پٹ پورٹ ہے تو، ایکسٹرنل انٹرپٹ فنکشن خود بخود بند ہو جائے گا (ATMEL کی ATiny سیریز میں کچھ مستثنیات ہیں، جو آؤٹ پٹ پورٹ ہونے پر انٹرپٹ فنکشن کو بھی متحرک کر سکتے ہیں)۔ بیرونی مداخلتوں کی درخواستیں درج ذیل ہیں:
بیرونی ٹرگر سگنلز کا پتہ لگانا: ایک اصل وقت کی ضروریات پر مبنی ہے، جیسے کہ تھائرسٹرس کا کنٹرول، اچانک سگنلز کا پتہ لگانا وغیرہ، جبکہ دوسرا پاور بچانے کی ضرورت ہے۔
سگنل فریکوئنسی کی پیمائش: اس بات کو یقینی بنانے کے لیے کہ سگنل چھوٹ نہ جائے، بیرونی مداخلت بہترین انتخاب ہے۔
ڈیٹا کی ڈی کوڈنگ: ریموٹ کنٹرول ایپلی کیشنز کے میدان میں، ڈیزائن کی لاگت کو کم کرنے کے لیے، اکثر مختلف انکوڈ شدہ ڈیٹا کو ڈی کوڈ کرنے کے لیے سافٹ ویئر استعمال کرنا ضروری ہوتا ہے، جیسے مانچسٹر اور PWM انکوڈنگ کی ڈی کوڈنگ۔
کلیدی پتہ لگانے اور نظام کی بیداری: MCUs جو نیند کی حالت میں داخل ہوتے ہیں، انہیں عام طور پر بیرونی مداخلتوں کے ذریعے بیدار کرنے کی ضرورت ہوتی ہے۔ سب سے بنیادی شکل کلیدی پریس ہے، جو کلید کے عمل کے ذریعے سطحی تبدیلیاں پیدا کرتی ہے۔
4. کمیونیکیشن انٹرفیس: MCU کی طرف سے فراہم کردہ کمیونیکیشن انٹرفیس میں عام طور پر SPI انٹرفیس، UART، I2C انٹرفیس وغیرہ شامل ہوتے ہیں، جن کی وضاحت اس طرح کی جاتی ہے:
SPI انٹرفیس: اس قسم کا انٹرفیس سب سے بنیادی مواصلاتی طریقہ ہے جو زیادہ تر MCUs کے ذریعے فراہم کیا جاتا ہے۔ اس کا ڈیٹا ٹرانسمیشن ایک ہم وقت ساز گھڑی کے ذریعے کنٹرول کیا جاتا ہے۔ سگنلز میں شامل ہیں: SDI (سیریل ڈیٹا ان پٹ)، SDO (سیریل ڈیٹا آؤٹ پٹ)، SCLK (سیریل کلاک) اور ریڈی سگنل؛ کچھ معاملات میں، کوئی ریڈی سگنل نہیں ہو سکتا ہے۔ اس قسم کا انٹرفیس ماسٹر موڈ یا سلیو موڈ میں کام کر سکتا ہے۔ مقبول اصطلاحات میں، یہ اس بات پر منحصر ہے کہ گھڑی کا سگنل کون فراہم کرتا ہے۔ گھڑی فراہم کرنے والا فریق مالک ہے، اور مخالف فریق غلام ہے۔
UART (یونیورسل اسینکرونس ریسیو ٹرانسمٹ): یہ سب سے بنیادی غیر مطابقت پذیر ٹرانسمیشن انٹرفیس ہے۔ اس میں صرف دو سگنل لائنیں ہیں، Rx اور Tx۔ بنیادی ڈیٹا فارمیٹ یہ ہے: اسٹارٹ بٹ + ڈیٹا بٹ (7 بٹس/8 بٹ) + برابری بٹ (یہاں تک کہ، طاق یا کوئی نہیں) + اسٹاپ بٹ (1 ~ 2 بٹ)۔ ایک بٹ ڈیٹا کے زیر قبضہ وقت کو بوڈ ریٹ کہتے ہیں۔
زیادہ تر MCUs کے لیے، ڈیٹا بٹس کی لمبائی، ڈیٹا چیک موڈ (عجیب چیک، یہاں تک کہ چیک یا کوئی چیک نہیں)، اسٹاپ بٹ کی لمبائی اور بوڈ ریٹ کو پروگرام پروگرامنگ کے ذریعے لچکدار طریقے سے سیٹ کیا جا سکتا ہے۔ اس قسم کے انٹرفیس کا سب سے عام استعمال شدہ طریقہ پی سی کے سیریل پورٹ کے ساتھ بات چیت کرنا ہے۔
I2C انٹرفیس: I2C ایک ڈیٹا ٹرانسمیشن پروٹوکول ہے جسے فلپس نے تیار کیا ہے۔ اسے 2 سگنلز کا استعمال کرتے ہوئے بھی لاگو کیا جاتا ہے: SDAT (سیریل ڈیٹا ان پٹ اور آؤٹ پٹ) اور SCLK (سیریل کلاک)۔ اس کا سب سے بڑا فائدہ یہ ہے کہ اس بس کے ساتھ ایک سے زیادہ آلات منسلک کیے جاسکتے ہیں اور پتوں کی شناخت اور ان تک رسائی حاصل کی جاسکتی ہے۔ I2C بس کا سب سے بڑا فائدہ یہ ہے کہ IO پورٹ کے ذریعے اسے لاگو کرنے کے لیے سافٹ ویئر کا استعمال کرنا بہت آسان ہے۔ اس کے ٹرانسمیشن ڈیٹا کی شرح کو مکمل طور پر SCLK کے ذریعے کنٹرول کیا جاتا ہے، جو تیز یا سست ہو سکتا ہے، UART انٹرفیس کے برعکس، جس میں شرح کی سخت ضروریات ہیں۔
5. واچ ڈاگ (واچ ڈاگ ٹائمر): واچ ڈاگ زیادہ تر MCUs کی ایک بنیادی ترتیب بھی ہے (کچھ 4 بٹ MCU میں یہ فنکشن نہیں ہو سکتا ہے)۔ زیادہ تر MCUs کا واچ ڈاگ پروگرام کو صرف اسے دوبارہ ترتیب دینے کی اجازت دے سکتا ہے لیکن اسے بند نہیں کر سکتا (کچھ سیٹ ہو جاتے ہیں جب پروگرام جل جاتا ہے، جیسے Microchip PIC سیریز MCU)، اور کچھ MCUs یہ فیصلہ کرنے کے لیے ایک مخصوص طریقہ استعمال کرتے ہیں کہ آیا اسے آن کرنا ہے، جیسے Samsung کی KS57 سیریز۔ جب تک پروگرام واچ ڈاگ رجسٹر تک رسائی حاصل کرتا ہے، یہ خود بخود آن ہوجاتا ہے اور اسے دوبارہ بند نہیں کیا جاسکتا۔ عام طور پر، واچ ڈاگ کے ری سیٹ کا وقت پروگرام کے مطابق سیٹ کیا جا سکتا ہے۔ واچ ڈاگ کا سب سے بنیادی اطلاق MCUs کے لیے خود بحالی کی صلاحیت فراہم کرنا ہے جو غیر متوقع ناکامیوں کی وجہ سے کریش ہو جاتے ہیں۔
چار
عالمی مین اسٹریم مائیکرو کنٹرولر بنانے والا
(کسی خاص ترتیب میں درجہ بندی نہیں کی گئی، مین سٹریم مینوفیکچررز میں منظم۔ اگر کوئی چیز غائب ہے، تو براہ کرم اسے تبصرہ کے علاقے میں شامل کریں)
یورپ اور امریکہ
1. Freescale+NXP (Freescale+NXP): نیدرلینڈز، بنیادی طور پر 16-bit اور 32-bit MCUs فراہم کرتا ہے۔ ایپلی کیشنز: آٹوموٹو الیکٹرانکس، ایل ای ڈی اور جنرل لائٹنگ، ہیلتھ کیئر، ملٹی میڈیا کنورجنس، گھریلو آلات اور پاور ٹولز، بلڈنگ آٹومیشن ٹیکنالوجی موٹر کنٹرول، پاور سپلائیز اور پاور کنورٹرز، انرجی اور سمارٹ گرڈز، آٹومیشن، کمپیوٹر اور کمیونیکیشن انفراسٹرکچر۔
2. Microchip+Atmel (Microchip Technology + Atmel): ریاستہائے متحدہ، بنیادی طور پر 16-bit اور 32-bit MCUs فراہم کرتا ہے۔ ایپلی کیشنز: آٹوموٹو الیکٹرانکس، صنعتی استعمال، موٹر کنٹرول، آٹوموبائلز، بلڈنگ آٹومیشن، گھریلو آلات، گھریلو تفریح، صنعتی آٹومیشن، لائٹنگ، انٹرنیٹ آف تھنگز، سمارٹ انرجی، موبائل الیکٹرانک آلات، کمپیوٹر کے پیری فیرلز۔
3. Cypress+Spansion (Cypress+Spansion Semiconductor): ریاستہائے متحدہ، بنیادی طور پر 8-bit، 16-bit، اور 32-bit MCUs فراہم کرتا ہے۔ ایپلی کیشنز: آٹوموٹو الیکٹرانکس، گھریلو آلات، طبی، کنزیومر الیکٹرانکس، مواصلات اور ٹیلی کمیونیکیشن، صنعت، وائرلیس۔
4. ADI (اینالاگ ڈیوائسز): ریاستہائے متحدہ، بنیادی طور پر 8-bit، 16-bit، اور 32-bit MCUs فراہم کرتا ہے۔ ایپلی کیشنز: ایرو اسپیس اور دفاع، آٹوموٹو ایپلی کیشنز، عمارت کی ٹیکنالوجی، مواصلات، کنزیومر الیکٹرانکس، توانائی، صحت کی دیکھ بھال، آلات اور پیمائش، موٹرز، صنعتی آٹومیشن، سیکورٹی۔
5. Infineon: جرمنی، بنیادی طور پر 16-bit اور 32-bit MCUs فراہم کرتا ہے۔ ایپلی کیشنز: آٹوموٹو الیکٹرانکس، کنزیومر الیکٹرانکس، انجینئرنگ، کمرشل اور زرعی گاڑیاں، ڈیٹا پروسیسنگ، برقی نقل و حمل، صنعتی ایپلی کیشنز، طبی آلات، موبائل آلات، موٹر کنٹرول اور ڈرائیو، پاور سپلائی، موٹر سائیکلوں، الیکٹرک سائیکلوں اور چھوٹی برقی گاڑیوں کے لیے، سمارٹ گرڈ، لائٹنگ، سولر سسٹم کے حل، جیت۔
6. ST مائیکرو الیکٹرانکس: اٹلی/فرانس، بنیادی طور پر 32 بٹ MCU فراہم کرتا ہے۔ ایپلی کیشنز: ایل ای ڈی اور جنرل لائٹنگ، ٹرانسپورٹیشن، ہیلتھ کیئر، ملٹی میڈیا کنورجنس، گھریلو آلات اور پاور ٹولز، بلڈنگ آٹومیشن ٹیکنالوجی موٹر کنٹرول، پاور سپلائیز اور پاور کنورٹرز، انرجی اور سمارٹ گرڈز، آٹومیشن، کمپیوٹر اور کمیونیکیشن انفراسٹرکچر۔
7. Qualcomm: ریاستہائے متحدہ، بنیادی طور پر 16-bit اور 32-bit MCUs فراہم کرتا ہے۔ ایپلی کیشنز: اسمارٹ فونز، ٹیبلٹ، وائرلیس موڈیم۔
8. ٹیکساس کے آلات: ریاستہائے متحدہ، بنیادی طور پر 16 بٹ اور 32 بٹ MCUs فراہم کرتا ہے۔ درخواست کی گنجائش: آٹوموٹو الیکٹرانکس، کنزیومر الیکٹرانکس، طبی آلات، موبائل ڈیوائسز، کمیونیکیشنز۔
9. میکسم (Maxim): ریاستہائے متحدہ، بنیادی طور پر 32 بٹ MCU فراہم کرتا ہے۔ درخواست کی گنجائش: آٹوموٹو الیکٹرانکس، کنزیومر الیکٹرانکس، صنعتی ایپلی کیشنز، سیکورٹی.
جاپان اور جنوبی کوریا
1. Renesas: جاپان، بنیادی طور پر 16-bit اور 32-bit MCUs فراہم کرتا ہے۔ درخواست کا دائرہ: کمپیوٹر اور پیری فیرلز، کنزیومر الیکٹرانکس، ہیلتھ اینڈ میڈیکل الیکٹرانکس، آٹوموٹو الیکٹرانکس، انڈسٹری اور کمیونیکیشن۔
2. توشیبا: جاپان، بنیادی طور پر 16 بٹ اور 32 بٹ MCUs فراہم کرتا ہے۔ درخواست کا دائرہ: آٹوموٹو الیکٹرانکس، صنعتی استعمال، موٹر کنٹرول، وائرلیس کمیونیکیشن، موبائل فون، کمپیوٹر اور پیریفرل آلات، امیجنگ اور آڈیو اور ویڈیو، صارف (گھریلو آلات)، ایل ای ڈی لائٹنگ، سیکورٹی، پاور مینجمنٹ، تفریحی سامان۔
3. Fujitsu: جاپان، بنیادی طور پر 32 بٹ MCU فراہم کرتا ہے۔ درخواست کی گنجائش: آٹوموبائل، میڈیکل، مشینری، گھریلو آلات۔
4. Samsung Electronics: جنوبی کوریا، بنیادی طور پر 16-bit اور 32-bit MCUs فراہم کرتا ہے۔ ایپلی کیشنز: آٹوموٹو الیکٹرانکس، صنعتی استعمال، موٹر کنٹرول، آٹوموبائلز، بلڈنگ آٹومیشن، گھریلو آلات، گھریلو تفریح، صنعتی آٹومیشن، لائٹنگ، انٹرنیٹ آف تھنگز، سمارٹ انرجی، موبائل الیکٹرانک آلات، کمپیوٹر کے پیری فیرلز۔
چین کا علاقہ
مینلینڈ چین
1. سگما مائیکرو الیکٹرانکس: بنیادی طور پر 32 بٹ MCU فراہم کرتا ہے، درخواست کا دائرہ: ٹیلی کمیونیکیشن، مینوفیکچرنگ، توانائی، نقل و حمل، بجلی، وغیرہ۔
2. Zhuhai مدار: بنیادی طور پر 32-bit MCU فراہم کرتا ہے، درخواست کی گنجائش: ایرو اسپیس: سیٹلائٹ اسٹیشن جہاز، ہوائی جہاز؛ اعلی کے آخر میں صنعتی کنٹرول: ایمبیڈڈ کمپیوٹرز؛ جہاز کا کنٹرول، صنعتی کنٹرول، بجلی کا سامان، ماحولیاتی نگرانی۔
3. GigaDevice Innovation: بنیادی طور پر 32-bit MCU فراہم کرتا ہے، ایپلیکیشن اسکوپ: صنعتی آٹومیشن، ہیومن مشین انٹرفیس، موٹر کنٹرول، سیکیورٹی مانیٹرنگ، سمارٹ ہوم، انٹرنیٹ آف تھنگز۔
4. شینگسی مائیکرو الیکٹرانکس: بنیادی طور پر 8 بٹ اور 32 بٹ MCUs فراہم کرتا ہے۔ درخواست کا دائرہ: چھوٹے گھریلو ایپلائینسز، کنزیومر الیکٹرانکس، ریموٹ کنٹرول، چوہے، لیتھیم بیٹریاں، ڈیجیٹل مصنوعات، آٹوموٹو الیکٹرانکس، طبی آلات اور پیمائش، کھلونے، صنعتی کنٹرول، سمارٹ ہوم اور سیکیورٹی اور دیگر شعبے۔
5. Chipsea ٹیکنالوجی: بنیادی طور پر 16- اور 32-bit MCUs فراہم کرتی ہے۔ درخواست کا دائرہ: آلات سازی، چیزوں کا انٹرنیٹ، کنزیومر الیکٹرانکس، گھریلو آلات، اور آٹوموٹو الیکٹرانکس۔
6. Lianhua انٹیگریٹڈ سرکٹ: بنیادی طور پر 8-bit اور 16-bit MCUs فراہم کرتا ہے۔ درخواست کا دائرہ: کنزیومر الیکٹرانکس، وائٹ ہوم اپلائنسز، انڈسٹریل کنٹرول، کمیونیکیشن کا سامان، آٹوموٹو الیکٹرانکس، اور کمپیوٹر۔
7. Zhuhai Jianrong: بنیادی طور پر 8-bit MCU، درخواست کی گنجائش فراہم کرتا ہے: گھریلو ایپلائینسز، موبائل پاور سپلائی۔
8. ایکشن ٹیکنالوجی: بنیادی طور پر 8-bit سے 32-bit MCUs، ایپلیکیشن رینج: ٹیبلیٹ کمپیوٹر، سمارٹ ہوم، ملٹی میڈیا، بلوٹوتھ، وائی فائی آڈیو فراہم کرتی ہے۔
9. Aisco Microelectronics: بنیادی طور پر 8-bit اور 16-bit MCUs فراہم کرتا ہے۔ درخواست کا دائرہ: کنزیومر چپس، کمیونیکیشن چپس، انفارمیشن چپس، اور گھریلو آلات۔
10. Huaxin Microelectronics: بنیادی طور پر 8-bit اور 4-bit MCUs فراہم کرتا ہے۔ ایپلی کیشنز: سیٹلائٹ ریسیورز، موبائل فون چارجرز، مستقل کیلنڈرز، اور آل ان ون ریموٹ کنٹرول۔
11. شنگھائی بیلنگ (Huada Semiconductor Holdings): بنیادی طور پر 8-bit، 16-bit، اور 32-bit MCUs فراہم کرتا ہے۔ ایپلی کیشنز: کمپیوٹر پیری فیرلز، ایچ ڈی ٹی وی، پاور مینجمنٹ، چھوٹے آلات، اور ڈیجیٹل آلات۔
12. ہائیر انٹیگریٹڈ سرکٹس: بنیادی طور پر 14 بٹ، 15 بٹ اور 16 بٹ MCUs فراہم کرتا ہے۔ درخواست کا دائرہ: کنزیومر الیکٹرانکس، آٹوموٹو الیکٹرانکس، صنعت، اور سمارٹ آلات۔
13. بیجنگ انجینک: بنیادی طور پر 32 بٹ MCU فراہم کرتا ہے، ایپلیکیشن اسکوپ: پہننے کے قابل آلات، چیزوں کا انٹرنیٹ، سمارٹ ہوم اپلائنسز، آٹوموبائل، کنزیومر الیکٹرانکس، ٹیبلیٹ کمپیوٹر۔
14. چائنا مائیکرو الیکٹرانکس: بنیادی طور پر 8 بٹ MCUs فراہم کرتا ہے۔ ایپلی کیشنز: سمارٹ ہوم اپلائنسز، آٹوموٹیو الیکٹرانکس، سیکیورٹی مانیٹرنگ، ایل ای ڈی لائٹنگ اور لینڈ اسکیپ، اسمارٹ کھلونے، اسمارٹ ہومز، اور کنزیومر الیکٹرانکس۔
15. Shenzhou Loongson انٹیگریٹڈ سرکٹ: بنیادی طور پر 32-bit MCU، ایپلی کیشن اسکوپ فراہم کرتا ہے: پاور مانیٹرنگ، سمارٹ گرڈ، انڈسٹریل ڈیجیٹل کنٹرول، انٹرنیٹ آف تھنگز، سمارٹ ہوم، ڈیٹا مانیٹرنگ۔
16. زیگوانگ مائیکرو الیکٹرانکس: بنیادی طور پر 8 بٹ اور 16 بٹ MCUs فراہم کرتا ہے۔ درخواست کا دائرہ: سمارٹ ہوم اپلائنسز۔
17. Times Minxin: بنیادی طور پر 32-bit MCU فراہم کرتا ہے، ایپلیکیشن اسکوپ: کار نیویگیشن، ٹریفک کی نگرانی، ماہی گیری کے برتن کی نگرانی، پاور ٹیلی کمیونیکیشن نیٹ ورک۔
18. چائنا ریسورسز سلیکون مائیکرو الیکٹرانکس (چائنا ریسورسز مائیکرو الیکٹرانکس کا ذیلی ادارہ): بنیادی طور پر 8 بٹ اور 16 بٹ ایم سی یو فراہم کرتا ہے۔ درخواست کا دائرہ: کنزیومر الیکٹرانکس، صنعتی کنٹرول، اور گھریلو آلات۔
19. نیشنل کور ٹیکنالوجی: بنیادی طور پر 32 بٹ MCU، ایپلی کیشن اسکوپ فراہم کرتی ہے: انفارمیشن سیکیورٹی فیلڈ، آفس آٹومیشن فیلڈ، کمیونیکیشن نیٹ ورک فیلڈ، انفارمیشن سیکیورٹی فیلڈ۔
20. Zhongtian Micro: بنیادی طور پر 32-bit MCUs فراہم کرتا ہے۔ ایپلی کیشنز: اسمارٹ فونز، ڈیجیٹل ٹی وی، سیٹ ٹاپ باکس، آٹوموٹو الیکٹرانکس، GPS، ای ریڈرز، اور پرنٹرز۔
21. چائنا ریسورسز مائیکرو الیکٹرانکس: بنیادی طور پر 8 بٹ اور 16 بٹ MCUs فراہم کرتا ہے۔ درخواست کا دائرہ: گھریلو آلات، کنزیومر الیکٹرانکس، اور صنعتی آٹومیشن کنٹرول کے لیے عام کنٹرول سرکٹس۔
22. Zhongying Electronics: بنیادی طور پر 4-bit، 8-bit، 16-bit، اور 32-bit MCUs فراہم کرتا ہے۔ درخواست کا دائرہ: گھریلو آلات اور موٹرز۔
23. لنگ ڈونگ مائیکرو الیکٹرانکس: بنیادی طور پر 32 بٹ، ایپلی کیشن اسکوپ فراہم کرتا ہے: موٹر کنٹرول، بلوٹوتھ کنٹرول، ہائی ڈیفینیشن ڈسپلے، وائرلیس چارجنگ، ڈرون، مائیکرو پرنٹرز، سمارٹ لیبل، الیکٹرانک سگریٹ، ایل ای ڈی ڈاٹ میٹرکس اسکرین وغیرہ۔
24. نیووٹون ٹیکنالوجی: بنیادی طور پر 8 بٹ MCU، ایپلیکیشن اسکوپ: لائٹنگ، انٹرنیٹ آف تھنگز وغیرہ فراہم کرتی ہے۔
25. Neusoft Carrier: بنیادی طور پر 8-bit اور 32-bit MCUs فراہم کرتا ہے۔ ایپلی کیشنز: گھریلو آلات، سمارٹ ہومز، آلات، LCD پینل کنٹرولرز، صنعتی کنٹرول، وغیرہ۔
26. Betley: بنیادی طور پر 32-bit MCU، ایپلیکیشن اسکوپ: سمارٹ ہوم، صنعتی کنٹرول اور صارفین کی مصنوعات فراہم کرتا ہے۔
27. شینگکوان ٹیکنالوجی: بنیادی طور پر 8 بٹ MCU، ایپلی کیشن کی گنجائش فراہم کرتی ہے: آٹوموٹو، تعلیم، صنعتی کنٹرول، طبی وغیرہ کے لیے چھوٹے اور درمیانے درجے کے ڈسپلے پینل۔
28. Hangshun Chip: بنیادی طور پر 8-bit اور 32-bit MCUs فراہم کرتا ہے۔ درخواست کا دائرہ: آٹوموبائل، چیزوں کا انٹرنیٹ، وغیرہ۔
29. Fudan Microelectronics: بنیادی طور پر 16-bit اور 32-bit MCUs فراہم کرتا ہے۔ ایپلی کیشنز: سمارٹ میٹرز، سمارٹ ڈور لاک وغیرہ۔
30. Huada سیمی کنڈکٹر: بنیادی طور پر 8-bit، 16-bit، اور 32-bit MCUs فراہم کرتا ہے۔ ایپلی کیشنز: صنعتی کنٹرول، ذہین مینوفیکچرنگ، سمارٹ لائف، اور چیزوں کا انٹرنیٹ۔
تائیوان ، چین
1. Hongjing ٹیکنالوجی: بنیادی طور پر 32 بٹ MCU فراہم کرتا ہے. درخواست کا دائرہ: مواصلات، صنعتی کنٹرول، معلوماتی آلات، اور آواز۔
2. Holtek Semiconductor: بنیادی طور پر 8-bit اور 32-bit MCUs فراہم کرتا ہے۔ درخواست کا دائرہ: کنزیومر الیکٹرانکس، ایل ای ڈی لائٹنگ وغیرہ۔
3. لنگیانگ ٹیکنالوجی: بنیادی طور پر 8 بٹ اور 16 بٹ ایم سی یو فراہم کرتی ہے۔ درخواست کا دائرہ: ہوم آڈیو اور ویڈیو۔
4. Zhongying Electronics: بنیادی طور پر 4-bit اور 8-bit MCUs فراہم کرتا ہے۔ درخواست کا دائرہ: چارجرز، موبائل پاور سپلائیز، گھریلو آلات، صنعتی کنٹرول۔
5. سونگھن ٹیکنالوجی: بنیادی طور پر 8 بٹ اور 32 بٹ MCUs فراہم کرتی ہے۔ درخواست کا دائرہ: ریموٹ کنٹرولز، سمارٹ چارجرز، بڑے اور چھوٹے سسٹمز، الیکٹرانک اسکیلز، کان تھرمامیٹر، بلڈ پریشر مانیٹر، ٹائر پریشر گیجز، مختلف پیمائش اور صحت کا سامان۔
6. Winbond Electronics: بنیادی طور پر 8-bit اور 16-bit MCUs فراہم کرتا ہے۔ درخواست کا دائرہ: آٹوموٹو الیکٹرانکس، صنعتی الیکٹرانکس، نیٹ ورک، کمپیوٹر، کنزیومر الیکٹرانکس، چیزوں کا انٹرنیٹ۔
7. دس اسپیڈ ٹیکنالوجی: بنیادی طور پر 4 بٹ، 8 بٹ اور 51 بٹ ایم سی یو فراہم کرتی ہے۔ درخواست کا دائرہ: ریموٹ کنٹرول، چھوٹے گھریلو ایپلائینسز۔
8. Youhua Microelectronics: بنیادی طور پر 4-bit اور 8-bit MCUs فراہم کرتا ہے۔ درخواست کا دائرہ: انٹیگریٹڈ سرکٹ مصنوعات، کنزیومر الیکٹرانکس، گھریلو مصنوعات کی ریکارڈنگ۔
9. Yingguang ٹیکنالوجی مائیکرو کنٹرولر: بنیادی طور پر 4-bit اور 8-bit MCUs فراہم کرتا ہے۔ درخواست کا دائرہ: مشینری، آٹومیشن، گھریلو آلات، روبوٹ۔
10. ایلان الیکٹرانکس: بنیادی طور پر 8 بٹ اور 16 بٹ ایم سی یو فراہم کرتا ہے۔ درخواست کا دائرہ: کنزیومر الیکٹرانکس، کمپیوٹرز، اسمارٹ فونز۔
پانچ
مائیکرو کنٹرولرز سیکھنے کے لیے نکات
کسی بھی MCU کے بنیادی اصول اور افعال ایک جیسے ہوتے ہیں۔ فرق صرف پیریفرل فنکشن ماڈیولز، انسٹرکشن سسٹمز وغیرہ کی ترتیب اور تعداد میں ہے۔
انسٹرکشن سسٹمز کے لیے، اگرچہ وہ شکل میں بہت مختلف نظر آتے ہیں، لیکن وہ دراصل صرف مختلف علامتیں ہیں۔ وہ معنی جن کی وہ نمائندگی کرتے ہیں، مکمل کیے جانے والے فنکشنز، اور ایڈریسنگ کے طریقے بنیادی طور پر ملتے جلتے ہیں۔
ایک MCU کو سمجھنے کے لیے، آپ کو پہلے اس کی ROM کی جگہ، RAM کی جگہ، IO بندرگاہوں کی تعداد، ٹائمرز کی تعداد اور ٹائمنگ کے طریقے، فراہم کردہ پیری فیرل فنکشن ماڈیولز (Peripheral Circuit)، مداخلت کے ذرائع، آپریٹنگ وولٹیج اور بجلی کی کھپت وغیرہ کو جاننے کی ضرورت ہے۔
ان MCU خصوصیات کو سمجھنے کے بعد، اگلا مرحلہ یہ ہے کہ منتخب MCU کے فنکشنز کا حقیقی پروجیکٹ ڈویلپمنٹ کے لیے درکار فنکشنز کے ساتھ موازنہ کیا جائے، اور یہ واضح کیا جائے کہ فی الحال کن وسائل کی ضرورت ہے اور کون سے اس پروجیکٹ میں استعمال نہیں ہو رہے ہیں۔
ایسے فنکشنز کے لیے جنہیں پروجیکٹ میں استعمال کرنے کی ضرورت ہے لیکن منتخب MCU کے ذریعے فراہم نہیں کیے گئے ہیں، آپ کو MCU کی متعلقہ معلومات کو احتیاط سے سمجھنا ہوگا تاکہ بالواسطہ طریقے استعمال کرتے ہوئے انہیں لاگو کیا جا سکے۔ مثال کے طور پر، اگر آپ جو پروجیکٹ تیار کر رہے ہیں اسے PC COM پورٹ کے ساتھ بات چیت کرنے کی ضرورت ہے، اور منتخب MCU UART پورٹ فراہم نہیں کرتا ہے، تو آپ اسے لاگو کرنے کے لیے بیرونی مداخلتوں کے استعمال پر غور کر سکتے ہیں۔
پروجیکٹ کی ترقی کے لیے درکار وسائل کے لیے، آپ کو Manua* کو احتیاط سے سمجھنا اور پڑھنا ہوگا، جب کہ آپ غیر ضروری فنکشنل ماڈیولز کو نظر انداز یا براؤز کر سکتے ہیں۔ MCU سیکھنے کے لیے، درخواست کلیدی اور بنیادی مقصد ہے۔
MCU کے متعلقہ افعال کو واضح کرنے کے بعد، آپ پروگرامنگ شروع کر سکتے ہیں۔
ابتدائی یا ڈیزائنرز کے لیے جو پہلی بار اس MCU کا استعمال کر رہے ہیں، انہیں MCU کے افعال کی بہت سی غیر واضح وضاحتوں کا سامنا کرنا پڑ سکتا ہے۔ اس طرح کے مسائل کے لیے، ان کو حل کرنے کے دو طریقے ہیں۔ ایک یہ کہ ڈیٹا میں بیان کردہ افعال کو سمجھنے کے لیے ایک خصوصی تصدیقی پروگرام لکھنا؛ دوسرا یہ ہے کہ اسے عارضی طور پر نظر انداز کریں اور MCU پروگرام کو اپنی موجودہ سمجھ کے مطابق لکھیں، اسے ڈیبگنگ کے دوران تبدیل اور بہتر کرنے کے لیے چھوڑ دیں۔ سابقہ طریقہ ان پروجیکٹس کے لیے موزوں ہے جن کا وقت ڈھیلا ہوتا ہے اور شروع کرنے والوں کے لیے، جب کہ مؤخر الذکر طریقہ ان لوگوں کے لیے موزوں ہے جو مائیکرو کنٹرولر کی ترقی کا خاص تجربہ رکھتے ہیں یا جب پروجیکٹ کا شیڈول سخت ہو۔
کمانڈ سسٹم کو سمجھنے میں کوئی خاص وقت نہ لگائیں۔ ہدایات کا نظام صرف منطقی وضاحت کی علامت ہے۔ آپ پروگرامنگ کے دوران صرف اپنی منطق اور پروگرام کے منطقی تقاضوں کے مطابق متعلقہ ہدایات دیکھ سکتے ہیں۔ جیسے جیسے پروگرامنگ میں ترقی ہوتی جائے گی، آپ انسٹرکشن سسٹم میں زیادہ سے زیادہ ماہر ہوتے جائیں گے، اور آپ اسے لاشعوری طور پر حفظ بھی کر سکتے ہیں۔
چھ
مائیکرو کنٹرولر پروگرامنگ
MCU پروگرام لکھنے اور PC پروگرام لکھنے میں بڑا فرق ہے۔ اگرچہ C-based MCU ڈویلپمنٹ ٹولز زیادہ سے زیادہ مقبول ہوتے جا رہے ہیں، لیکن ایسے ڈیزائنرز کے لیے جن کے پاس موثر پروگرام کوڈ ہے اور وہ اسمبلی استعمال کرنا پسند کرتے ہیں، اسمبلی کی زبان اب بھی سب سے جامع اور موثر پروگرامنگ زبان ہے۔
MCU پروگرامنگ کے لیے، بنیادی فریم ورک تقریباً ایک جیسا ہی کہا جا سکتا ہے۔ اسے عام طور پر تین حصوں میں تقسیم کیا جاتا ہے: ابتدائی حصہ (یہ MCU پروگرامنگ اور PC کے درمیان سب سے بڑا فرق ہے)، مین پروگرام لوپ باڈی اور انٹرپٹ ہینڈلر۔ ان کی متعلقہ وضاحتیں درج ذیل ہیں:
1. Initialization: For the design of all MCU programs, initialization is the most basic and important step, which generally includes the following:
تمام مداخلتوں کو ماسک کریں اور اسٹیک پوائنٹر کو شروع کریں: ابتداء کا حصہ عام طور پر یہ نہیں چاہتا کہ کوئی مداخلت نہ ہو۔
سسٹم کے RAM کے علاقے کو صاف کریں اور میموری ڈسپلے کریں: اگرچہ بعض اوقات یہ مکمل طور پر ضروری نہیں ہوتا ہے، لیکن قابل اعتماد اور مستقل مزاجی کے نقطہ نظر سے، خاص طور پر غیر متوقع غلطیوں کو روکنے کے لیے، پروگرامنگ کی اچھی عادتیں پیدا کرنے کی سفارش کی جاتی ہے۔
IO پورٹ کا آغاز: پروجیکٹ کی درخواست کی ضروریات کے مطابق، متعلقہ IO پورٹ کا ان پٹ اور آؤٹ پٹ موڈ سیٹ کریں۔ ان پٹ پورٹ کے لیے، آپ کو اس کا پل اپ یا پل ڈاؤن ریزسٹر سیٹ کرنا ہوگا۔ آؤٹ پٹ پورٹ کے لیے، آپ کو غیر ضروری غلطیوں کو روکنے کے لیے اس کی ابتدائی سطح کا آؤٹ پٹ سیٹ کرنا چاہیے۔
مداخلت کی ترتیبات: ان تمام مداخلتی ذرائع کے لیے جنہیں پروجیکٹ میں استعمال کرنے کی ضرورت ہے، انہیں آن کیا جانا چاہیے اور رکاوٹوں کے لیے محرک کی شرائط طے کی جانی چاہیے۔ فالتو رکاوٹوں کے لیے جو استعمال نہیں کیے جاتے ہیں، انہیں بند کر دینا چاہیے۔
دوسرے فنکشنل ماڈیولز کا آغاز: MCU کے تمام پیریفرل فنکشن ماڈیولز کے لیے جن کو استعمال کرنے کی ضرورت ہے، متعلقہ سیٹنگز کو پروجیکٹ ایپلی کیشن کی ضروریات کے مطابق بنایا جانا چاہیے۔ مثال کے طور پر، UART کمیونیکیشن کے لیے، باؤڈ ریٹ، ڈیٹا کی لمبائی، تصدیق کا طریقہ، اور اسٹاپ بٹ کی لمبائی سیٹ کرنے کی ضرورت ہے۔ پروگرامر ٹائمر کے لیے، اس کا کلاک سورس، فریکوئنسی ڈویژن نمبر، اور ری لوڈ ڈیٹا سیٹ ہونا ضروری ہے۔
پیرامیٹرز کا آغاز: MCU ہارڈویئر اور وسائل کی ابتداء مکمل کرنے کے بعد، اگلا مرحلہ پروگرام میں استعمال ہونے والے کچھ متغیرات اور ڈیٹا کو شروع کرنا ہے۔ اس حصے کی ابتداء کو مخصوص پروجیکٹ اور پروگرام کے مجموعی انتظامات کے مطابق ڈیزائن کرنے کی ضرورت ہے۔ کچھ ایپلی کیشنز کے لیے جو پراجیکٹ کے پہلے سے تیار کردہ ڈیٹا کو محفوظ کرنے کے لیے EEPROM کا استعمال کرتی ہیں، یہ تجویز کی جاتی ہے کہ شروع کے دوران متعلقہ ڈیٹا کو MCU کی RAM میں کاپی کریں تاکہ پروگرام کی ڈیٹا تک رسائی کی رفتار کو بہتر بنایا جا سکے اور سسٹم کی بجلی کی کھپت کو کم کیا جا سکے (اصولی طور پر، بیرونی EEPROM تک رسائی سے بجلی کی سپلائی کی کھپت میں اضافہ ہو گا)۔
2. مین پروگرام لوپ باڈی: زیادہ تر MCUs ایک طویل عرصے تک مسلسل چلتے ہیں، اس لیے ان کے مرکزی پروگرام کی باڈیز بنیادی طور پر ایک لوپ میں ڈیزائن کی جاتی ہیں۔ ایک سے زیادہ کام کرنے والے طریقوں کے ساتھ ایپلی کیشنز کے لیے، ایک سے زیادہ لوپ باڈیز ہو سکتی ہیں، جو اسٹیٹس فلیگ کے ذریعے تبدیل ہوتی ہیں۔ مرکزی پروگرام کے جسم کے لیے، عام طور پر درج ذیل ماڈیولز کا اہتمام کیا جاتا ہے۔
کیلکولیشن پروگرام: کیلکولیشن پروگرام عام طور پر وقت طلب ہوتے ہیں، اس لیے ہم ان کو کسی بھی رکاوٹ، خاص طور پر ضرب اور تقسیم کی کارروائیوں میں پروسیس کرنے کے سختی سے مخالف ہیں۔
پروسیسنگ پروگرام جس میں کم یا کوئی حقیقی وقت کی ضرورت نہیں ہے۔
ڈسپلے ٹرانسمیشن پروگرام: بنیادی طور پر بیرونی ایل ای ڈی اور ایل سی ڈی ڈرائیوروں والی ایپلی کیشنز کے لیے۔
3. انٹرپٹ ہینڈلر: انٹرپٹ پروگرام بنیادی طور پر اعلیٰ حقیقی وقت کی ضروریات کے ساتھ کاموں اور واقعات کو سنبھالنے کے لیے استعمال کیا جاتا ہے، جیسے کہ بیرونی اچانک سگنلز کا پتہ لگانا، بٹنوں کا پتہ لگانا اور ان پر کارروائی کرنا، وقت کی گنتی، ایل ای ڈی ڈسپلے اسکیننگ وغیرہ۔
عام طور پر، انٹرپٹ پروگرام کو کوڈ کو ہر ممکن حد تک مختصر اور مختصر رکھنا چاہیے۔ ایسے فنکشنز کے لیے جن پر حقیقی وقت میں کارروائی کرنے کی ضرورت نہیں ہے، ٹرگر فلیگ کو انٹرپٹ میں سیٹ کیا جا سکتا ہے، اور پھر مرکزی پروگرام مخصوص لین دین کرے گا۔ یہ بہت اہم ہے، خاص طور پر کم طاقت والے، کم رفتار والے MCUs کے لیے، جو تمام رکاوٹوں کے لیے بروقت جواب کو یقینی بنائے۔
4. مختلف ٹاسک باڈیز کے انتظام کے لیے، مختلف MCUs کے پاس پروسیسنگ کے مختلف طریقے ہیں:
مثال کے طور پر، کم رفتار، کم طاقت والے MCU (Fosc=32768Hz) ایپلی کیشنز کے لیے، اس بات پر غور کرتے ہوئے کہ اس طرح کے پروجیکٹس ہینڈ ہیلڈ ڈیوائسز ہیں اور عام LCD ڈسپلے استعمال کرتے ہیں، کلیدی دبانے اور ڈسپلے کے ردعمل کے لیے ریئل ٹائم پرفارمنس کی ضرورت ہوتی ہے، اس لیے ٹائمڈ انٹرپٹس کو عام طور پر کلیدی پریس پر کارروائی کرنے کے لیے استعمال کیا جاتا ہے۔ اعمال اور ڈیٹا ڈسپلے؛ تیز رفتار MCUs کے لیے، جیسا کہ Fosc>1MHz ایپلی کیشنز، چونکہ MCU کے پاس اس وقت مین پروگرام لوپ باڈی کو انجام دینے کے لیے کافی وقت ہے، اس لیے یہ صرف متعلقہ رکاوٹوں میں مختلف ٹرگر فلیگ سیٹ کر سکتا ہے اور تمام کاموں کو مین پروگرام باڈی میں ایگزیکیوشن کے لیے رکھ سکتا ہے۔
5. MCU پروگرامنگ میں، ایک چیز جس پر خصوصی توجہ کی ضرورت ہے وہ ہے:
ایک ہی وقت میں انٹرپٹ اور مین پروگرام باڈیز میں ایک ہی متغیر یا ڈیٹا تک رسائی یا سیٹ ہونے سے روکنا ضروری ہے۔ روک تھام کا ایک مؤثر طریقہ یہ ہے کہ اس طرح کے ڈیٹا کی پروسیسنگ کو ماڈیول میں ترتیب دیا جائے، اور اس بات کا تعین کیا جائے کہ آیا ٹرگر فلیگ کا اندازہ لگا کر ڈیٹا پر متعلقہ کارروائیاں انجام دیں۔ دوسرے پروگرام باڈیز میں (بنیادی طور پر رکاوٹیں)، صرف ٹرگر فلیگ سیٹ کریں جہاں ڈیٹا پر کارروائی کی ضرورت ہو۔ -یہ اس بات کو یقینی بناتا ہے کہ ڈیٹا پر عمل درآمد متوقع اور منفرد ہے۔
سات مائکروکنٹرولر پروگرامنگ کا انجینئر کا خلاصہ
1. خلاصہ کرنے کی اچھی عادت پیدا کریں۔ خلاصہ کرنا نہ صرف آپ کے اپنے سیکھنے کا خلاصہ ہے، بلکہ سیکھنے کے عمل کا جائزہ اور گہرائی بھی ہے۔ یہ دوسری بار غلطیاں کرنے سے بھی بچ سکتا ہے۔
2. ایک پروگرام لکھنے سے پہلے، آپ کو سب سے پہلے اس منصوبے کے بارے میں ایک واقف فہم ہونا چاہیے، اس سے آگاہ ہونا چاہیے، اور ایک عام فریم ورک کا خاکہ بنانا چاہیے۔ یہ بہت ضروری ہے کہ احتیاط سے اس بات پر غور کیا جائے کہ کس طرح ترتیب دینا ہے اور سب سے زیادہ معقول ترتیب کیا ہے۔ یہ تجزیہ کرنا ضروری ہے کہ پہلے کون سا ماڈیول کرنا ہے، اس ماڈیول کے مخصوص مراحل، ہر فنکشن کو کیسے نام دینا ہے، دوسرے ماڈیولز کے ساتھ کنکشن وغیرہ۔ کاغذ کا ایک ٹکڑا حاصل کرنا اور اہم عمل کو لکھنا اچھا خیال ہے۔
3. C زبان میں ماڈیولر پروگرامنگ کے لیے، آپ کو پہلے ہر ماڈیول، پروگرام ماڈیول کو ماڈیول کے لحاظ سے تقسیم کرنا ہوگا، ایک ترتیب کا تعین کرنا ہوگا، ترتیب کی پیروی کرنا ہوگی، اور پھر ماڈیول کے کامیاب ہونے کے بعد اگلا ماڈیول لکھنا ہوگا۔ ہیڈر فائلوں کے لیے، ماڈیول لکھنے کے بعد ماڈیول کی ہیڈر فائل لکھیں۔
4. انتباہات کے ظاہر ہونے پر انہیں نظر انداز نہ کریں۔ اس کا مطلب ہے کہ پروگرام میں کچھ غیر معقول ضرور ہے۔ آپ کو ذریعہ تلاش کرنے اور حل تلاش کرنے کی ضرورت ہے۔ ذرائع تلاش کرتے وقت مخصوص رہیں۔ آپ اس علاقے میں معلومات کے لیے انٹرنیٹ پر تلاش کر سکتے ہیں، یا دوسروں سے مشورہ طلب کر سکتے ہیں۔ مثال کے طور پر، ایک اور پروجیکٹ میں مین فنکشن دراصل اس پروجیکٹ میں شامل کیا گیا تھا۔ اصل میں ڈپلیکیٹ فنکشن کے نام ہیں۔ تجرباتی مظاہر اور قدم بہ قدم پیش رفت کا تجزیہ کرنے کی وجوہات بھی ہیں۔ پورٹ کی وضاحت کرتے وقت غلط انٹرفیس کا انتخاب بھی کیا گیا تھا۔ کبھی کبھی، اگر آپ واقعی اسے حل نہیں کر پاتے ہیں تو ایک وقفہ لینا اور اس کے بارے میں سوچنا اچھا ہے۔ اس سے کوئی فرق نہیں پڑتا ہے کہ یہ کتنا آسان ہے، آپ کو اس پر توجہ دینا چاہئے، کیونکہ غلطیاں ہوسکتی ہیں.
مائیکرو کنٹرولر ایپلی کیشنز کی ترقی میں، کوڈ کے استعمال کی کارکردگی، مداخلت مخالف کارکردگی اور مائیکرو کنٹرولرز کی وشوسنییتا جیسے مسائل اب بھی پریشان ہیں۔ اب ہم کئی بنیادی مہارتوں کا خلاصہ کرتے ہیں جن پر مائیکرو کنٹرولر کی ترقی میں مہارت حاصل کی جانی چاہیے۔
آٹھ
مائیکرو کنٹرولر کی ترقی کی مہارت
1 پروگراموں میں کیڑے کیسے کم کیے جائیں۔
پروگرام کی خرابیوں کو کم کرنے کے طریقہ کے بارے میں، آپ کو پہلے درج ذیل حد سے باہر کے انتظامی پیرامیٹرز پر غور کرنا چاہیے جن پر سسٹم کے آپریشن کے دوران غور کیا جانا چاہیے۔
- جسمانی پیرامیٹرز: یہ پیرامیٹرز بنیادی طور پر سسٹم کے ان پٹ پیرامیٹرز ہیں، جن میں ایکسائٹیشن پیرامیٹرز، حصول پروسیسنگ کے دوران آپریٹنگ پیرامیٹرز اور پروسیسنگ کے اختتام پر نتائج کے پیرامیٹرز شامل ہیں۔
- وسائل کے پیرامیٹرز: یہ پیرامیٹرز بنیادی طور پر نظام میں سرکٹس، آلات اور فعال یونٹس کے وسائل ہیں، جیسے میموری کی گنجائش، اسٹوریج یونٹ کی لمبائی، اور اسٹیکنگ کی گہرائی۔
- ایپلیکیشن پیرامیٹرز: یہ ایپلیکیشن پیرامیٹرز اکثر کچھ مائیکرو کنٹرولرز اور فنکشنل یونٹس کے ایپلیکیشن کی شرائط کے طور پر ظاہر ہوتے ہیں۔ عمل کے پیرامیٹرز: ان پیرامیٹرز سے مراد ہے جو سسٹم کے آپریشن کے دوران منظم انداز میں تبدیل ہوتے ہیں۔
2 سی لینگویج پروگرامنگ کوڈ کی کارکردگی کو کیسے بہتر بنایا جائے۔
مائیکرو کنٹرولر پروگرامنگ کے لیے C زبان کا استعمال مائیکرو کنٹرولرز کی ترقی اور اطلاق میں ایک ناگزیر رجحان ہے۔ اگر آپ C میں پروگرامنگ کرتے وقت زیادہ سے زیادہ کارکردگی حاصل کرنا چاہتے ہیں، تو بہتر ہے کہ آپ جو C کمپائلر استعمال کر رہے ہیں اس سے واقف ہوں۔ سب سے پہلے ہر C زبان کی تالیف کے مطابق اسمبلی لینگویج سٹیٹمنٹس کی لائنوں کی تعداد کی جانچ کریں، تاکہ آپ واضح طور پر کارکردگی کو جان سکیں۔ مستقبل میں پروگرامنگ کرتے وقت، تالیف کی اعلیٰ کارکردگی کے ساتھ بیان کا استعمال کریں۔ ہر C مرتب کرنے والے میں کچھ فرق ہوں گے، اس لیے تالیف کی کارکردگی بھی مختلف ہوگی۔ ایمبیڈڈ سسٹمز کے لیے ایک بہترین C کمپائلر کے کوڈ کی لمبائی اور اس پر عمل درآمد کا وقت اسمبلی زبان میں لکھے گئے اسی فنکشن سے صرف 5-20% زیادہ ہے۔
سخت ترقیاتی وقت کے ساتھ پیچیدہ منصوبوں کے لئے، C زبان استعمال کی جا سکتی ہے، لیکن شرط یہ ہے کہ آپ MCU نظام کی C زبان اور C کمپائلر سے بہت واقف ہوں۔ C کمپلیشن سسٹم کے ذریعے تعاون یافتہ ڈیٹا کی اقسام اور الگورتھم پر خصوصی توجہ دیں۔ اگرچہ سی لینگویج سب سے عام اعلیٰ سطحی زبان ہے، لیکن مختلف MCU مینوفیکچررز کے پاس مختلف C لینگویج کمپلیشن سسٹم ہوتے ہیں، خاص طور پر کچھ خاص فنکشن ماڈیولز کے آپریشن میں۔ لہذا، اگر آپ ان خصوصیات کو نہیں سمجھتے ہیں، تو ڈیبگنگ کے دوران بہت سے مسائل ہوں گے، جو اسمبلی کی زبان کے مقابلے میں کم کارکردگی کی کارکردگی کا باعث بنیں گے۔
3 مائیکرو کنٹرولر کے مخالف مداخلت کے مسئلے کو کیسے حل کریں۔
مداخلت کو روکنے کا سب سے مؤثر طریقہ مداخلت کے ذریعہ کو ہٹانا اور مداخلت کے راستے کو روکنا ہے، لیکن ایسا کرنا اکثر مشکل ہوتا ہے، اس لیے ہم صرف یہ دیکھ سکتے ہیں کہ آیا مائیکرو کنٹرولر کی اینٹی مداخلت کی صلاحیت کافی مضبوط ہے۔ ہارڈ ویئر سسٹمز کی مداخلت مخالف صلاحیت کو بہتر بناتے ہوئے، سافٹ ویئر اینٹی مداخلت کو اس کے لچکدار ڈیزائن، ہارڈ ویئر کے وسائل کی بچت، اور اچھی وشوسنییتا کی وجہ سے زیادہ توجہ دی جا رہی ہے۔
مائکروکنٹرولر مداخلت کا سب سے عام رجحان ری سیٹ ہے۔ جہاں تک پروگرام کے بھاگنے کا تعلق ہے، سافٹ ویئر ٹریپس اور واچ ڈاگس کو پروگرام کو دوبارہ سیٹ حالت میں لانے کے لیے درحقیقت استعمال کیا جا سکتا ہے۔ لہذا، مائیکرو کنٹرولر سافٹ ویئر کے لیے مداخلت کی مزاحمت کرنے کے لیے سب سے اہم چیز ری سیٹ کی حالت کو ہینڈل کرنا ہے۔
عام طور پر، مائیکرو کنٹرولرز کے پاس کچھ فلیگ رجسٹر ہوتے ہیں جنہیں دوبارہ ترتیب دینے کی وجہ کا تعین کرنے کے لیے استعمال کیا جا سکتا ہے۔ اس کے علاوہ، آپ خود بھی کچھ جھنڈوں کو رام میں دفن کر سکتے ہیں۔ ہر بار جب پروگرام کو دوبارہ ترتیب دیا جاتا ہے، ان جھنڈوں کو جانچ کر دوبارہ ترتیب دینے کی مختلف وجوہات کا تعین کیا جا سکتا ہے۔ آپ مختلف جھنڈوں کی بنیاد پر متعلقہ پروگرام میں براہ راست بھی جا سکتے ہیں۔ یہ پروگرام کو مسلسل چلانے کی اجازت دیتا ہے، اور صارف کو یہ محسوس نہیں ہوگا کہ پروگرام کو استعمال کرتے وقت اسے دوبارہ ترتیب دیا گیا ہے۔
4 مائیکرو کنٹرولر سسٹم کی وشوسنییتا کی جانچ کیسے کریں۔
جب مائیکرو کنٹرولر سسٹم کا ڈیزائن مکمل ہو جاتا ہے، تو مختلف مائیکرو کنٹرولر سسٹم پروڈکٹس کے لیے مختلف ٹیسٹ آئٹمز اور طریقے ہوں گے، لیکن کچھ کا ٹیسٹ ہونا ضروری ہے:
- مائکروکنٹرولر سافٹ ویئر فنکشن کی مکمل جانچ کریں۔
- پاور آن اور پاور آف ٹیسٹ
- خستہ ٹیسٹ
- ESD اور EFT جیسے ٹیسٹ
بعض اوقات، ہم انسانی استعمال کے دوران ہونے والے نقصان کو بھی نقل کر سکتے ہیں۔ مثال کے طور پر، اینٹی سٹیٹک صلاحیت کو جانچنے کے لیے جان بوجھ کر مائیکرو کنٹرولر سسٹم کے کانٹیکٹ پورٹ کو انسانی جسم یا کپڑوں کے تانے بانے سے رگڑیں۔ برقی مقناطیسی مداخلت کے خلاف مزاحمت کرنے کی صلاحیت کو جانچنے کے لیے مائکرو کنٹرولر سسٹم کے قریب کام کرنے کے لیے ایک ہائی پاور الیکٹرک ڈرل کا استعمال کریں۔
خلاصہ یہ کہ سنگل چپ مائکرو کمپیوٹر کمپیوٹر کی ترقی اور اطلاق کا ایک اہم پہلو بن گیا ہے۔ سنگل چپ مائیکرو کمپیوٹر کے اطلاق کی اہم اہمیت یہ ہے کہ یہ روایتی کنٹرول سسٹم ڈیزائن آئیڈیاز اور ڈیزائن کے طریقوں کو بنیادی طور پر تبدیل کرتا ہے۔
زیادہ تر فنکشنز جو ماضی میں ینالاگ سرکٹس یا ڈیجیٹل سرکٹس کے ذریعے لاگو کیے جانے چاہییں اب مائیکرو کنٹرولرز کا استعمال کرتے ہوئے سافٹ ویئر کے طریقوں کے ذریعے لاگو کیے جا سکتے ہیں۔ اس قسم کی کنٹرول ٹیکنالوجی جس میں سافٹ ویئر ہارڈ ویئر کی جگہ لے لیتا ہے اسے مائیکرو کنٹرول ٹیکنالوجی بھی کہا جاتا ہے جو کہ روایتی کنٹرول ٹیکنالوجی میں ایک انقلاب ہے۔
اس کے علاوہ، ترقی اور درخواست کے عمل کے دوران، ہمیں مہارتوں میں مہارت حاصل کرنی چاہیے اور کارکردگی کو بہتر بنانا چاہیے تاکہ اسے وسیع تر مقاصد کے لیے استعمال کیا جا سکے۔
نو
چپ آپریشن کا خلاصہ چپ پر ہونے والے آپریشنز بنیادی طور پر چپ میں موجود رجسٹروں پر ہوتے ہیں۔ چپ میں موجود رجسٹروں کے اپنے منفرد پتے میموری پر نقش ہوتے ہیں، جو کہ متعلقہ ایڈریس پر آپریشن ہوتا ہے۔ چپ کو دیکھتے وقت، پہلے ٹائمنگ ڈایاگرام کو دیکھیں، پھر متعلقہ رجسٹروں کو سمجھیں، سمجھیں کہ وہ کس طرح کام کرتے ہیں، مطلوبہ پورٹس کی وضاحت کریں (جن کی شناخت پروگرام کے ذریعے کی جا سکتی ہے)، اور آپریشن کے طریقہ کار کو لکھیں اور آپریشن کے طریقہ کار کو پڑھیں۔
چپ میں ڈیٹا کیسے لکھا جائے، ڈیٹا کیسے پڑھا جائے، اور کس پورٹ کو ان پٹ یا پڑھنا ہے (سب سے اہم چیز)۔
بس کے ذریعے چپس کو جوڑتے وقت، آپ کو پہلے بس کے پروٹوکول کو سمجھنا چاہیے۔ I2C بس سے منسلک چپ بنیادی طور پر اس بس کے ذریعے چپ کو کنٹرول کرتی ہے۔
1. ڈاٹ میٹرکس میں ایک 74hc595 کالم کے انتخاب کے لیے استعمال ہوتا ہے، اور باقی دو رنگوں کے انتخاب کے لیے استعمال ہوتے ہیں۔ ڈاٹ میٹرکس ڈایڈس کے مجموعہ کے برابر ہے۔
صرف اس صورت میں جب ایک سرے کو اونچی سطح دی جائے اور دوسرے سرے کو نچلی سطح دی جائے تو ڈایڈڈ روشن ہو سکتا ہے۔ یہ صرف اتنا ہے کہ جب ایک سرے کو مختلف طریقے سے منتخب کیا جائے گا تو مختلف رنگ روشن ہوں گے۔
ٹائمر ورکنگ موڈ کا انتخاب: ہائی چار بٹس ٹائمر T1 سیٹ کرتے ہیں، اور کم چار بٹس T0 سیٹ کرتے ہیں۔ پھر ہر موڈ کے آخری دو ہندسے ورکنگ موڈ کو سیٹ کرتے ہیں۔ دو ٹائمر سیٹ کرتے وقت، یا (|) استعمال کرنے میں محتاط رہیں۔ انٹرپٹس کا استعمال کرتے وقت، ان کو صاف کرنے پر توجہ دیں جنہیں انٹرپٹ داخل کرنے کے بعد صاف کیا جانا چاہیے۔
2. سیریل پورٹ ٹرانسیور: موڈ 2 (خود کار طریقے سے دوبارہ لوڈ کی ابتدائی قیمت) عام طور پر بوڈ کی شرح کو مقرر کرنے کے لئے استعمال کیا جاتا ہے. چونکہ مختلف ڈیوائسز میں ڈیٹا پروسیسنگ کی مختلف صلاحیتیں ہوتی ہیں، اس لیے بوڈ ریٹ کی ترتیب بنیادی طور پر کم رفتار ڈیوائسز کا خیال رکھنا اور ایک دوسرے سے بات چیت کرنا ہے۔ انٹرپٹ فلیگ بٹ کو سافٹ ویئر کے ذریعے صاف کیا جانا چاہیے۔ سیریل پورٹ انٹرپٹ کو سیٹ کرتے وقت، اس سے کوئی فرق نہیں پڑتا ہے کہ بھیجنے یا وصول کرنے سے جو بھی پیدا ہوتا ہے، یہ انٹرپٹ فنکشن میں داخل ہوسکتا ہے، لہذا انٹرپٹ فنکشن کو سیٹ کرنے پر توجہ دیں۔ (خود احساس عام طور پر ایک فنکشن سیٹ کرتا ہے، بطور میزبان کمپیوٹر یا غلام کمپیوٹر)۔
اگر آپ بھیجنے کے لیے انٹرپٹ کا استعمال کرتے ہیں، تو آپ کو یہ معلوم کرنا ہوگا کہ پہلی بار انٹرپٹ کیسے داخل کیا جائے، لہذا آپ کو اسے پہلے ایک بار بھیجنا ہوگا، اور پھر آپ انٹرپٹ داخل کرسکتے ہیں۔ ایک وقت میں صرف ایک بائٹ بھیجا جا سکتا ہے، اور اگلا بٹ صرف TI سیٹ ہونے کے بعد بھیجا جا سکتا ہے۔
3. Pcf8591ad کنورژن میں ان پٹ کے چار چینلز ہوتے ہیں۔ pcf8591 کو پڑھتے وقت، کون سا چینل منتخب کیا جاتا ہے، اس چینل کے وولٹیج ان پٹ کو پڑھا جاتا ہے۔ تبدیل شدہ ڈیٹا کو چپ میں محفوظ کیا جاتا ہے اور پھر پڑھا جاتا ہے۔ پڑھتے وقت، سب سے پہلے چپ کا پتہ لکھیں، پھر ڈیوائس کا ذیلی ایڈریس (0x40|چینل نمبر)، اور پھر پڑھنے کا ڈیٹا لکھیں۔
4. ڈا کنورژن یہ ہے کہ سب سے پہلے ڈیوائس کا پتہ چپ میں لکھیں، پھر ذیلی ایڈریس (0x40) لکھیں، اور پھر تبدیل ہونے والی ڈیجیٹل مقدار لکھیں۔ ڈیوائس ایڈریس چپ کی معلومات متعارف کرائی گئی ہے۔
5. LCD ڈسپلے کے لیے، ڈیٹا لکھے اور ظاہر ہونے کے بعد، یہ ہمیشہ بغیر مسلسل ریفریش کے دکھایا جائے گا۔ اگر آپ اسے تبدیل کرنا چاہتے ہیں، تو آپ اسے دوبارہ درج کر سکتے ہیں۔
6. ds1302 کلاک چپ کے لیے، ڈیٹا پڑھتے وقت، ڈیٹا لکھتے وقت پہلا ڈیٹا آٹھویں گھڑی کے گرتے ہوئے کنارے پر پڑھا جاتا ہے، اور پھر اگلے آؤٹ پٹ کے لیے تیار ہوتا ہے۔ پروگرام کے تحریری طریقہ اور واپسی کی قیمت کے مقام پر توجہ دیں۔
7. پہلے Ds1302 میں رجسٹر کی وضاحت کریں، اور پھر اس پر ڈیٹا لکھیں۔ چپ ڈیٹا پر موجود رجسٹر ایڈریس کی نشاندہی کرتا ہے۔ (میں ابھی بھی تحریری تحفظ کے پروگرام کو اچھی طرح سے نہیں سمجھتا ہوں۔ کیا ہمیشہ لکھنا نہیں ہوتا ہے؟ تحریری تحفظ اب بھی کیوں آن ہے؟)
(پچھلے ہیرو کے مطابق، آپ شروعات کے وقت کے بعد ایک جھنڈا سیٹ کر سکتے ہیں۔ اگر یہ جھنڈا ہے، تو وقت شروع کرنے کی ضرورت نہیں ہے۔ تاہم، اگر پاور آف ہو، تو MCU کی RAM اس جھنڈے کو محفوظ نہیں کر سکتی، اس لیے آپ DS1302 کی RAM کو جھنڈے کو بچانے کے لیے استعمال کر سکتے ہیں اور اسے پاور آن کرنے کے بعد پڑھ سکتے ہیں۔ میں بھی ایک ابتدائی ہوں، اور میں نے حال ہی میں یہ منصوبہ درست کیا ہے، اور اگر میں یہ جانتا ہوں کہ DS1302 کا منصوبہ درست ہے۔ اور میں نے ابھی تک اس پر عمل نہیں کیا ہے براہ کرم مزید شیئر کریں)
8. اگر آپ اسے بعد میں بھول جائیں تو ابتدائی لکھنا بہتر ہے۔ کبھی کبھی اس بات پر دھیان دیں کہ پڑھتے یا لکھتے وقت سب سے کم بٹ یا سب سے زیادہ بٹ پہلے چلائی جاتی ہے، جس کا اندازہ ٹائمنگ ڈائیگرام کے مطابق کیا جا سکتا ہے۔
9. انفراریڈ ٹرانسیور کے لیے، وصول کرتے وقت، یہ طے کرتا ہے کہ آیا یہ دو گرتے ہوئے کناروں کے درمیان وقت کی بنیاد پر اونچی سطح پر ہے یا نچلی سطح پر۔ پروگرام لکھتے وقت، وقت کا تعین کرنے کے لیے پہلے ٹائمر کا استعمال کریں، اسے محفوظ کریں، اور پھر اسے بائنری میں تبدیل کریں (اس پروگرام کو لکھنے کے طریقے کے بارے میں مزید پڑھیں، یہ بہت اچھا ہے)۔
10. سٹیپر موٹر: یہ بنیادی طور پر سوئچنگ کے لیے استعمال ہوتا ہے۔ سٹیپر موٹر کا ٹارک رفتار بڑھنے کے ساتھ کم ہو جاتا ہے۔ یہ بنیادی طور پر مشین ٹولز پر پروسیس شدہ پرزوں کو خودکار کھانا کھلانے کے لیے استعمال کیا جاتا ہے۔ یہ اعلی صحت سے متعلق کنٹرول کے مقامات پر بھی استعمال کیا جا سکتا ہے.
سٹیپر موٹر ایک اوپن لوپ کنٹرول عنصر سٹیپر موٹر ڈیوائس ہے جو برقی پلس سگنلز کو کونیی نقل مکانی یا لکیری نقل مکانی میں تبدیل کرتی ہے۔ غیر اوورلوڈ حالات میں، موٹر کی رفتار اور رکنے کی پوزیشن صرف پلس سگنل کی فریکوئنسی اور نبضوں کی تعداد پر منحصر ہے، اور بوجھ کی تبدیلیوں سے متاثر نہیں ہوتے ہیں۔ جب سٹیپر ڈرائیور کو پلس سگنل ملتا ہے، تو یہ سٹیپر موٹر کو ایک مقررہ زاویہ پر سیٹ سمت میں گھومنے کے لیے چلاتا ہے، جسے "سٹیپ اینگل" کہا جاتا ہے۔ اس کی گردش ایک مقررہ زاویہ پر قدم بہ قدم چلتی ہے۔ کونیی نقل مکانی کو درست پوزیشننگ حاصل کرنے کے لیے دالوں کی تعداد کو کنٹرول کرکے کنٹرول کیا جاسکتا ہے۔ ایک ہی وقت میں، رفتار ریگولیشن حاصل کرنے کے لئے پلس فریکوئنسی کو کنٹرول کرکے موٹر گردش کی رفتار اور سرعت کو کنٹرول کیا جا سکتا ہے.
11. سروو موٹر: (سرو موٹر) سے مراد وہ انجن ہے جو سروو سسٹم میں مکینیکل اجزاء کے آپریشن کو کنٹرول کرتا ہے۔ یہ ایک بالواسطہ ٹرانسمیشن ڈیوائس ہے جو موٹر کی مدد کرتی ہے۔ سروو موٹرز رفتار اور پوزیشن کی درستگی کو بہت درست طریقے سے کنٹرول کر سکتی ہیں، اور کنٹرول اشیاء کو چلانے کے لیے وولٹیج سگنلز کو ٹارک اور گردشی رفتار میں تبدیل کر سکتی ہیں۔ سروو موٹر کی روٹر کی رفتار ان پٹ سگنل کے ذریعے کنٹرول کی جاتی ہے اور تیزی سے جواب دے سکتی ہے۔ آٹومیٹک کنٹرول سسٹم میں، اسے ایکچیویٹر کے طور پر استعمال کیا جاتا ہے اور اس میں چھوٹے الیکٹرو مکینیکل ٹائم کنسٹنٹ، ہائی لکیریٹی، سٹارٹنگ وولٹیج وغیرہ کی خصوصیات ہوتی ہیں۔ یہ موصول ہونے والے برقی سگنل کو کونیی نقل مکانی یا موٹر شافٹ پر کونیی رفتار آؤٹ پٹ میں تبدیل کر سکتا ہے۔ انہیں دو قسموں میں تقسیم کیا گیا ہے: DC اور AC سرو موٹرز۔ ان کی اہم خصوصیت یہ ہے کہ سگنل وولٹیج صفر ہونے پر کوئی گردش نہیں ہوتی، اور ٹارک بڑھنے کے ساتھ گردش کی رفتار مستقل رفتار سے کم ہو جاتی ہے۔ ڈی سی موٹر: بڑی رینج، تمام چھوٹی کاروں پر۔
12. چینی حروف کا جائزہ:
مانیٹر یا پرنٹر پر چینی حروف کو آؤٹ پٹ کرنے کے لیے، چینی حروف کو گرافک علامتوں کے مطابق ڈاٹ میٹرکس میں ڈیزائن کیا جاتا ہے، اور متعلقہ ڈاٹ میٹرکس کوڈ (گلیف کوڈ) حاصل کیا جاتا ہے۔
کمپیوٹر میں چینی حروف کی نمائندگی کرنے کے لیے استعمال ہونے والا یونیفائیڈ انکوڈنگ طریقہ چینی کریکٹر انکوڈنگ بناتا ہے جسے اندرونی کوڈ (جیسے قومی معیاری کوڈ) کہا جاتا ہے، اور اندرونی کوڈ منفرد ہوتا ہے (کریکٹر کے ID نمبر کے برابر)۔ چینی حروف کی ان پٹ کی سہولت کے لیے جو چینی حروف کی انکوڈنگ بنائی گئی ہے وہ ایک ان پٹ کوڈ ہے، جو چینی حروف کا ایک بیرونی کوڈ ہے۔ ان پٹ کوڈ مختلف انکوڈنگ طریقوں کی وجہ سے مختلف ہے اور متنوع ہے۔ چینی حروف کو ظاہر کرنے اور پرنٹ کرنے کے لیے بنایا گیا چینی کریکٹر کوڈ ایک گلائف کوڈ ہے۔ کمپیوٹر چینی کریکٹر کے اندرونی کوڈ کے ذریعے فونٹ ماڈل لائبریری میں چینی کردار کا گلیف کوڈ تلاش کرتا ہے اور اس کی تبدیلی کا احساس کرتا ہے۔
ان کیمرہ کوڈ
قومی معیاری کوڈ کی دفعات کے مطابق، ہر چینی کریکٹر کا ایک مخصوص بائنری کوڈ ہوتا ہے، لیکن یہ کوڈ ASCII کوڈ سے متصادم ہو جائے گا جب کمپیوٹر کے ذریعے اندرونی طور پر کارروائی کی جائے گی۔ اس مسئلے کو حل کرنے کے لیے، قومی معیاری کوڈ کے ہر بائٹ کے پہلے ہندسے میں 1 کا اضافہ کریں۔ چونکہ ASCII کوڈ صرف 7 بٹس استعمال کرتا ہے، اس لیے پہلی جگہ "1" کو چینی کریکٹر کوڈز کی شناخت کے لیے بطور نشان استعمال کیا جا سکتا ہے۔ جب کمپیوٹر پہلی جگہ "1" کے ساتھ کوڈ پر کارروائی کرتا ہے، تو وہ اسے چینی کریکٹر کی معلومات کے طور پر سمجھتا ہے، اور جب وہ کوڈ کو پہلی جگہ "0" کے ساتھ پروسیس کرتا ہے، تو وہ اسے ASCII کوڈ کے طور پر سمجھتا ہے۔ قومی معیاری کوڈ (اندرونی کوڈ) جو اس طرح عمل میں آتا ہے وہ اندرونی کوڈ ہے۔
اگر ہم "" کی جگہ لے لیتے ہیں۔ اس "口" گرافک کا "0" کے ساتھ، ہم "口" کا گلیف کوڈ بہت واضح طور پر حاصل کر سکتے ہیں: 0000H 0004H 3FFAH 2004H 2004H 2004H 2004H 2004H 2004H 2004H 2004H 2004H 2004H 2004H 2004H 2004H 0000H 0000H جب کمپیوٹر "口" کو آؤٹ پٹ کرنا چاہتا ہے، تو وہ سب سے پہلے ڈسپلے فونٹ لائبریری کا پہلا پتہ تلاش کرتا ہے، "口" کے اندرونی کوڈ کی بنیاد پر حساب لگاتا ہے، اور پھر "口" کا گلیف کوڈ تلاش کرتا ہے، اور پھر کریکٹر جنریٹر کے کنٹرول کے ذریعے گلیف کوڈ (بائنری میں) کے مطابق ترتیب وار اسکرین کو اسکین کرتا ہے۔ جہاں بائنری کوڈ "0" ہے، وہ جگہ جہاں یہ "0" ہے اسکین کیا جاتا ہے، اور جس جگہ "1" ہے اسے نمایاں کرنے کے لیے اسکین کیا جاتا ہے، تو "口" کا کریکٹر پیٹرن حاصل کیا جا سکتا ہے۔
چینی کریکٹر فونٹس کو قومی معیاری کوڈ کی ترتیب میں ترتیب دیا جاتا ہے اور بائنری فائلوں کی شکل میں میموری میں محفوظ کیا جاتا ہے، ایک چینی کریکٹر فونٹ لائبریری بناتی ہے، جسے چینی کریکٹر گلائف لائبریری بھی کہا جاتا ہے، یا چینی کریکٹر لائبریری۔
انکوڈنگ کے دو طریقے، ہیڈر فائل دیکھیں
GB1616.h//----------------- چینی کریکٹر فونٹ ڈیٹا سٹرکچر کی تعریف ------------------------//structtypFNT_GB16 //چینی کریکٹر فونٹ ڈیٹا ڈھانچہ {unsignedcharIndex[3]؛ //چینی کریکٹر انٹرنل کوڈ انڈیکس unsignedchar Msk[32];//dot matrix code data }; ///////////////////////////////////////////////////////////////////////////////////////////////// ہائی بٹ، ڈیٹا کا انتظام: بائیں سے دائیں، اوپر سے نیچے تک //ڈیٹا ٹیبل{/*-----------------------------------------------------------------------------------؛ ماخذ فائل/ٹیکسٹ: Xu؛ چوڑائی × اونچائی (پکسلز): 16 × 16 -------------------------------------------------------------------------- "Xu"، 0x10,0x80,0x10,0x80,0x21 ,0x40,0x42,0x20,0x94,0x10,0x1B,0xEC,0x20,0x80,0x60,0x80,0xAF,0xF8,0x 20,0x80,0x22,0xA0,0x24,0x90,0x2A,0x88,0x21,0x00,0x00,0x00,0x00,0x00, یہ ڈھانچہ بہت آسان ہے: ایک اندرونی کوڈ ہے، اور ایک ڈاٹ میٹرکس کی ترتیب ہے۔ پچھلی ڈاٹ میٹرکس لائبریری کو اندرونی کوڈ کی ترتیب میں رکھا گیا تھا، اور کسی اندرونی کوڈ انڈیکس کی ضرورت نہیں تھی۔ اگر صرف چند چینی حروف رکھے جائیں تو داخلی کوڈ انڈیکس کی ضرورت تھی۔ (سامنے میں چینی کریکٹر "Xu" لفظ کے ڈاٹ میٹرکس کی ترتیب کو تلاش کرنا ہے جب "Xu" کو آؤٹ پٹ کرتے ہیں۔ یہ ڈاٹ میٹرکس ترتیب میں نے خود لکھا ہے۔ جب 1602 کے ساتھ ڈسپلے کیا جائے، کیونکہ چپ کی میموری میں انگریزی ڈاٹ میٹرکس کی ترتیب ہے، اسے لکھنے کی ضرورت نہیں ہے۔) عام طور پر، اندرونی کوڈ کے لیے دو بائٹس کافی ہوتے ہیں۔ اگر آپ ایک اور بائٹ استعمال کرتے ہیں، تو آپ صرف ایک ٹریلنگ 0 شامل کرتے ہیں۔
کوڈ جی بی_16 ایک ہی وقت میں، انڈیکس ایک صف ہے، اس لیے اسے انڈیکس کیا جا سکتا ہے[0] If((codeGB_16[k].Index[0]==c[0])&&(codeGB_16[k].Index[1]==c[1])) && ایک منطقی اور آپریٹر ہے، جس کا مطلب ہے کہ & علامت کے دونوں طرف کی اقدار درست ہیں۔ صرف && کی قدر صحیح ہے، یعنی سچا && true = true۔ اس جملے کا مطلب ہے: codeGB_16[k].Index[0]==c[0] اور codeGB_16[k].Index[1]==c[1] ایک ہی وقت میں قائم ہیں۔ اگر درج ذیل بیان پر عمل کیا جاتا ہے تو، codeGB_16[] ایک ڈھانچہ سرنی ہے، codeGB_16[k]. Index[0] کا مطلب ہے ساختی صف کے Kth ڈھانچے کے انڈیکس ممبر کی 0ویں عنصر کی قدر۔
13. 12864 LCD: ہر ڈسپلے پوائنٹ بائنری نمبر سے مساوی ہے، 1 کا مطلب ہے آن، 0 کا مطلب آف ہے۔ ان ڈاٹ میٹرکس کی معلومات کو ذخیرہ کرنے والی RAM ڈسپلے ڈیٹا میموری کہلاتی ہے۔ کسی خاص گرافک یا چینی کردار کو ظاہر کرنے کے لیے متعلقہ ڈاٹ میٹرکس کی معلومات کو متعلقہ اسٹوریج یونٹ میں لکھنا ہے۔
گرافکس RAM کا ایڈریس کاؤنٹر (AC) صرف خود بخود افقی ایڈریس (X محور) کو ایک کرکے بڑھا دے گا۔ جب افقی پتہ = 0FH، یہ 00H پر دوبارہ ترتیب دیا جائے گا۔ تاہم، یہ خود بخود کیری کے ساتھ عمودی ایڈریس میں اضافہ نہیں کرے گا۔ لہذا، جب متعدد ڈیٹا مسلسل لکھے جاتے ہیں، تو پروگرام کو یہ تعین کرنے کی ضرورت ہوتی ہے کہ آیا عمودی ایڈریس کو دوبارہ ترتیب دینے کی ضرورت ہے۔
14. ڈرائنگ RAM (GDRAM) ڈرائنگ ڈسپلے RAM 128×8 بائٹس میموری کی جگہ فراہم کرتا ہے۔ ڈرائنگ RAM کو تبدیل کرتے وقت، سب سے پہلے افقی اور عمودی کوآرڈینیٹ اقدار کو مسلسل لکھیں، اور پھر ڈرائنگ RAM میں ڈیٹا کے دو بائٹس لکھیں۔ ایڈریس کاؤنٹر (AC) خود بخود افقی ایڈریس (X ایڈریس) کو ایک سے بڑھا دے گا۔ جب افقی پتہ 0XFH ہے، تو اسے 00H پر دوبارہ ترتیب دیا جائے گا۔ عمودی پتہ خود بخود 1 تک نہیں بڑھے گا۔
[cpp] سادہ کاپی دیکھیں//چینی حروف کو دکھائیں //چینی حروف ڈسپلے کریں اسکرین کے اوپری نصف حصے میں (i=0;i<32;i++)//32 کالم پتوں کے لیے مواد کی ترتیبات { write_com(0x80 + i)؛//عمودی پتہ VERTICALADD write_com(0x80)؛//SET افقی ایڈریس HORIZONTAL ADDfor(j=6+djta<) لکھیں adder++; }}//**************اسکرین کے نچلے نصف حصے میں مواد کی ترتیبات ڈسپلے کریں برائے(i=0;i<32;i++) //{ write_com(0x80 + i); // عمودی پتہ سیٹ کریں VERTICALADD write_com(0x88)؛ // افقی ایڈریس سیٹ کریں HORIZONTAL ADDfor(j=0;j<16;j++){write_data(*adder);adder++;} }} C زبان کے لیے، ایک متعین متغیر کے لیے جگہ خود بخود مختص ہو جاتی ہے، اور اس کا پتہ متغیر کا نام ہے۔ اس نام کے ذریعے میموری میں موجود ڈیٹا کو دوبارہ حاصل کیا جاسکتا ہے اور کیلکولیشن کے ذریعے نیا ڈیٹا حاصل کیا جاسکتا ہے۔ تاہم، اسمبلی میں، پروگرامر کو سٹوریج کی جگہ کی وضاحت کرنے اور حساب کے لیے ڈیٹا جمع کرنے والے کو بھیجنے کی ضرورت ہوتی ہے۔ ہر قدم کے لیے پروگرامر کے آپریشن کی ضرورت ہوتی ہے۔ C زبان میں، یہ عمل کمپائلر کے ذریعے مکمل ہوتے ہیں۔
15. کچھ مفید سوالات اور جوابات ① مائیکرو کنٹرولر سی زبان میں متغیر کی میموری ایلوکیشن کیسے کی جاتی ہے؟ کیا یہ ہو سکتا ہے کہ مرتب کرنے والا ذہانت سے تالیف کے عمل کے دوران مختص اور ری سائیکلنگ کوڈ کا اضافہ کرے؟ اہم نکتہ یہ ہے کہ جو پروگرام میں نے بنایا ہے، میں یہ کیسے یقینی بنا سکتا ہوں کہ اس میں میموری اوور فلو کی خرابیاں نہیں ہیں؟ اگر میں ایک بار بار چلنے والا آپریشن کر رہا ہوں، تو میموری کی ضروریات کا خود حساب لگانا مشکل ہے۔
② کیا مائیکرو کنٹرولر سی زبان کو متغیر تعریف میں محدود رکھا جائے گا؟ مثال کے طور پر، فلوٹنگ پوائنٹ ڈیٹا کی ضرب اور تقسیم کی کارروائیاں اسمبلی کے ذریعے لکھی جاتی ہیں، اور کوڈ کافی پیچیدہ ہے۔ اگر سی زبان میں براہ راست لکھا جائے تو کیا یہ بہت آسان نہیں ہوگا؟
③ مائیکرو کنٹرولر کی C زبان سے تیار کردہ ہیکس فائل میں، کیا ہدایات اور ڈیٹا ROM کی ایڈریس کی تقسیم خود کار طریقے سے مرتب کرنے والے کے ذریعے تفویض کی جاتی ہے؟ کیا صارفین اسے تفویض کر سکتے ہیں؟
جواب 1: سی زبان میں لکھا ہوا ایک مائکرو کنٹرولر پروگرام سب سے پہلے ایک پروگرام کے ذریعہ مرتب کیا جاتا ہے (یہ c51.exe لگتا ہے)۔ تالیف مکمل ہونے کے بعد، متغیرات کے ذخیرہ کرنے کی جگہ کا سائز ترتیب دیا گیا ہے، لیکن ابھی تک مخصوص پتہ مختص نہیں کیا گیا ہے (پتہ تیر رہا ہے)۔ اگلا، ایک اور پروگرام (یہ a51.exe لگتا ہے) منسلک ہے۔ کنکشن کے بعد، مخصوص ایڈریس کا تعین کیا جاتا ہے.
اگر بہت زیادہ متغیرات ہیں تو، مرتب کرنے والا اشارہ کرے گا کہ ڈیٹا سیگمنٹ بہت بڑا ہے۔ اس بات کو یقینی بنانے کے لیے کہ میموری اوور فلو کی کوئی خرابی نہیں ہے، اہم غور یہ ہے کہ آیا اسٹیک اوور فلو ہے، اور یہ تجربے پر منحصر ہے۔
مائیکرو کنٹرولرز کی سی زبان عام طور پر تکرار سے منع کرتی ہے، اور تکراری کارروائیوں سے عام طور پر گریز کیا جاتا ہے۔ سب کے بعد، مائیکرو کنٹرولرز پی سی نہیں ہیں، جو رفتار کو متاثر کرے گا. اگر آپ تکرار کرنا چاہتے ہیں تو ڈی ایس پی چپ استعمال کرنا زیادہ مناسب ہے۔ مختصراً، آپ کو مناسب چپ کا انتخاب کرنے کے قابل ہونا چاہیے۔
جواب 2: متغیر کا سائز (ہندسوں کی تعداد) عام طور پر چپ جمع کرنے والے ہندسوں کی تعداد کے برابر ہوتا ہے۔ مثال کے طور پر، 51 عام طور پر 8 بٹس استعمال کرتا ہے کیونکہ یہ ایک 8 بٹ مائیکرو کنٹرولر ہے۔
مائکروکنٹرولر بٹ متغیرات کی وضاحت کر سکتا ہے، لیکن یہ بٹ اری کی وضاحت نہیں کر سکتا۔ سی زبان میں لکھنا آسان لگتا ہے، لیکن اصل میں کوڈ کی سب سے زیادہ مقدار پیدا کرتا ہے۔ کنٹرول کے لیے استعمال ہونے والا مائیکرو کنٹرولر فلوٹنگ پوائنٹ آپریشنز کو مشکل سے استعمال کرتا ہے، جو نہ صرف سست ہے بلکہ پریشان کن ہے اور جگہ لیتا ہے۔ اگر یہ ڈی ایس پی چپ ہے، تو یہ زیادہ بہتر ہو گا اگر اس میں مناسب ہارڈ ویئر کا ڈھانچہ ہو۔
جواب 3: عام طور پر، یہ خود بخود مختص ہوجاتا ہے۔ اسے C زبان اور اسمبلی زبان کے مرکب میں پروگرام کیا جا سکتا ہے، یا اسے Keil C کا استعمال کرتے ہوئے آن لائن اسمبل کیا جا سکتا ہے۔ چپ اور باہر کے درمیان ڈیٹا کا تبادلہ بندرگاہ کے ذریعے کیا جاتا ہے۔
کمپنی کا فون نمبر: +86-0755-83044319
فیکس/FAX: +86-0755-83975897
ای میل: 1615456225@qq.com
QQ: 3518641314 منیجر لی
QQ: 332496225 منیجر Qiu
پتہ: کمرہ 809، بلڈنگ سی، ژانتاو ٹیکنالوجی بلڈنگ، نمبر 1079 منزی ایونیو، لونگہوا نیو ڈسٹرکٹ، شینزین