- مطلوبہ اجزاء:
- سرکٹ ڈایاگرام:
- تعدد کی پیمائش کے ل 80 8051 کے ٹائمر کا استعمال:
- 555 ٹائمر بطور تعدد ماخذ:
- ورکنگ اور کوڈ کی وضاحت:
فریکوئینسی سائیکل سیکنڈ کی تعداد کے طور پر بیان کی جاتی ہے۔ اسے کل وقت 'T' کے باہمی تعی.ن سے بھی تعبیر کیا جاسکتا ہے۔ اس پروجیکٹ میں ہم پورٹ 3.5 میں داخل ہونے والی دالوں کی تعداد گنوا رہے ہیں جس میں 8051 مائکرو قابو پانے والے ہیں اور اسے 16 * 2 LCD ڈسپلے پر ڈسپلے کریں گے۔ لہذا بنیادی طور پر ہم نے پورٹ 3.5 میں 8051 کے سگنل کی فریکوئنسی کی پیمائش کی ہے۔ یہاں ہم نے AT89S52 8051 چپ کا استعمال کیا ہے ، اور نمونے کی نبض کو مظاہرے کے لrating پیدا کرنے کے لئے ایک 555 آایسی استیبل موڈ میں استعمال کیا جاتا ہے۔ اس سے پہلے ہم ارڈینو کا استعمال کرتے ہوئے فریکوئینسی کاؤنٹر بنا چکے ہیں۔
مطلوبہ اجزاء:
- 8051 مائکروکانٹرولر (AT89S52)
- 16 * 2 LCD ڈسپلے
- فریکوئینسی ماخذ (555 ٹائمر)
- پوٹینومیٹر
- مربوط تاروں
سرکٹ ڈایاگرام:
تعدد کی پیمائش کے ل 80 8051 کے ٹائمر کا استعمال:
8051 مائکروکینٹرلر ایک 8 بٹ مائکروقانونی ہے جس میں چپ ریم پر 128 بائٹ ، چپ روم پر 4K بائٹ ، دو ٹائمر ، ایک سیریل پورٹ اور چار 8 بٹ پورٹس ہیں۔ 8052 مائکروکونٹرولر مائکروکانٹرولر کی توسیع ہے۔ انسداد کے طور پر پورٹ 3.5 کو تشکیل دینے کے لئے ، ٹی ایم او ڈی رجسٹر اقدار 0x51 پر سیٹ ہیں۔ اعداد و شمار کے نیچے ٹی ایم او ڈی رجسٹر دکھاتا ہے۔
گیٹ | C / T | ایم 1 | ایم0 | گیٹ | C / T | ایم 1 | ایم 2 |
ٹائمر 1 | ٹائمر 0 |
گیٹ - جب گیٹ سیٹ ہوجاتا ہے ، تب ہی ٹائمر یا کاؤنٹر اس وقت فعال ہوتا ہے جب آئی این ٹی ایکس پن ہائی ہو اور ٹی آر ایکس کنٹرول پن سیٹ ہوجائے۔ جب گیٹ کو صاف کیا جاتا ہے ، جب بھی ٹی آر ایکس کنٹرول بٹ سیٹ ہوتا ہے تو ٹائمر قابل ہوجاتا ہے۔
C / T - جب C / T = 0 ہوتا ہے ، تو یہ ٹائمر کی حیثیت سے کام کرتا ہے۔ جب C / T = 1 ہوتا ہے ، تو یہ کاؤنٹر کے طور پر کام کرتا ہے۔
M1 اور M0 آپریشن کے موڈ کو ظاہر کرتا ہے۔
TMOD = 0x51 کے لئے ، ٹائمر 1 کاؤنٹر کے طور پر کام کرتا ہے اور یہ موڈ 1 (16 بٹ) میں کام کرتا ہے۔
ہرٹز (ہرٹج) میں سگنل کی فریکوئینسی کو ظاہر کرنے کے لئے 16 * 2 LCD استعمال کیا جاتا ہے۔ اگر آپ 16x2 LCD میں نئے ہیں تو ، یہاں 16x2 LCD کی پنوں اور اس کے احکامات کے بارے میں مزید جانچیں۔ 8051 کے ساتھ LCD کو انٹرفیس کرنے کا طریقہ بھی چیک کریں۔
555 ٹائمر بطور تعدد ماخذ:
تعدد کا ذریعہ مربع لہروں کو پیدا کرنا چاہئے اور زیادہ سے زیادہ طول و عرض 5V تک ہی محدود ہے ، کیونکہ 8051 مائکروکونٹرولر کی بندرگاہیں 5V سے زیادہ وولٹیج نہیں سنبھال سکتی ہیں۔ TH1 اور TL1 رجسٹر کی میموری حد (ہر ایک میں 8 بٹ) کی وجہ سے اس کی زیادہ سے زیادہ تعدد 655.35 KHz ہے ۔ 100 ملی سیکنڈ میں ، TH1 اور TL1 میں 65535 کا حساب ہوسکتا ہے۔ لہذا زیادہ سے زیادہ تعدد جس کی پیمائش کی جاسکے وہ 65535 * 10 = 655.35 KHz ہے ۔
اس 8051 فریکوینسی میٹر پروجیکٹ میں ، میں متغیر فریکوینسی مربع لہروں کو تیار کرنے کے لئے 555 ٹائمر کو حیرت انگیز موڈ میں استعمال کر رہا ہوں۔ اس پروجیکٹ کے اختتام پر دیئے گئے ویڈیو میں دکھائے جانے والے ویڈیو میں 555 آایسی کے ذریعہ پیدا ہونے والے سگنل کی فریکوئنسی مختلف ہوسکتی ہے ۔
اس پروجیکٹ میں ، ٹائمر 1 (ٹی 1) پورٹ 3.5 میں داخل ہونے والی دالوں کی تعداد شمار کرتا ہے جس میں 1005 ملی سیکنڈ کے لئے 8051 مائکرو قابو پانے والوں میں سے 3.5 بندرگاہ میں داخل ہوتا ہے۔ گنتی اقدار بالترتیب TH1 اور TL1 کے رجسٹر میں محفوظ کی جائیں گی۔ TH1 اور TL1 رجسٹر کی اقدار کو یکجا کرنے کے لئے ، ذیل میں فارمولہ استعمال کیا گیا ہے۔
دالیں = TH1 * (0x100) + TL1
اب 'پلس' میں سائیکلوں کی تعداد 100 ملی سیکنڈ میں ہوگی۔ لیکن سگنل کی فریکوئنسی سائیکل سیکنڈ کی تعداد کے طور پر بیان کی جاتی ہے۔ اسے تعدد میں تبدیل کرنے کے لئے ، ذیل میں فارمولا استعمال کیا جاتا ہے۔
دالیں = دالیں * 10
ورکنگ اور کوڈ کی وضاحت:
مکمل C پروگرام اس تعدد کے میٹر اس منصوبے کے اختتام پر دیا جاتا ہے. کوڈ کو چھوٹے معنی خیز حصوں میں تقسیم کیا گیا ہے اور ذیل میں اس کی وضاحت کی گئی ہے۔
8051 مائکروکانٹرولر کے ساتھ انٹرفیسنگ کے لئے 16 * 2 LCD کے ل we ، ہمیں پنوں کی وضاحت کرنی ہوگی جس پر 16 * 2 یلسیڈی 8051 مائکروکانٹرولر سے منسلک ہے۔ 16 * 2 ایل سی ڈی کا آر ایس پن پی 2.7 سے منسلک ہے ، 16 * 2 ایل سی ڈی کا آر ڈبلیو پن پی 2.6 سے منسلک ہے اور 16 * 2 ایل سی ڈی کا ای پن پی 2.5 سے منسلک ہے۔ ڈیٹا پنوں کو بندرگاہ 0 سے 8051 مائکروکانٹرولر سے منسلک کیا گیا ہے۔
sbit RSS = P2 ^ 7؛ sbit rw = P2 ^ 6؛ sbit en = P2 ^ 5؛
اگلا ہمیں کچھ افعال کی وضاحت کرنا ہوگی جو پروگرام میں استعمال ہوتے ہیں۔ مقررہ وقت کی تاخیر پیدا کرنے کیلئے تاخیر کا استعمال کیا جاتا ہے۔ Cmdwrt فنکشن 16 * 2 LCD ڈسپلے پر کمانڈ بھیجنے کے لئے استعمال ہوتا ہے۔ ڈیٹاورٹ فنکشن کا استعمال 16 * 2 ایل سی ڈی ڈسپلے پر ڈیٹا بھیجنے کے لئے کیا جاتا ہے۔
باطل تاخیر (بغیر دستخط شدہ)؛ باطل cmdwrt (دستخط شدہ چار)؛ باطل ڈیٹاورٹ (بغیر دستخط شدہ چار)؛
کوڈ کے اس حصے میں ، ہم 16 * 2 ایل سی ڈی پر کمانڈ بھیج رہے ہیں ۔ کمانوں جیسے واضح ڈسپلے، اضافہ کرسر، 1 کے آغاز پر کرسر مجبور سینٹ لکیر کچھ مخصوص وقت میں تاخیر کے بعد ایک ایک کرکے 16 * 2 LCD ڈسپلے ایک کو بھیجے جاتے ہیں.
(i = 0؛ i <5؛ i ++) {cmdwrt (cmd)؛ تاخیر (1)؛ }
کوڈ کے اس حصے میں ، ٹائمر 1 کو کاؤنٹر کے طور پر تشکیل دیا گیا ہے اور آپریشن کا انداز موڈ 1 میں سیٹ کیا گیا ہے۔
ٹائمر0 کو ٹائمر کے بطور تشکیل دیا گیا ہے اور آپریشن کا موڈ موڈ 1 پر سیٹ کیا گیا ہے ۔ ٹائمر 1 دالوں کی تعداد گننے کے لئے استعمال ہوتا ہے اور ٹائمر 0 وقت کی تاخیر پیدا کرنے کے لئے استعمال ہوتا ہے۔ TH1 اور TL1 اقدار کو 0 پر سیٹ کیا گیا ہے ، اس بات کا یقین کرنے کے لئے کہ گنتی 0 سے شروع ہوگی۔
TMOD = 0x51؛ TL1 = 0؛ TH1 = 0؛
کوڈ کے اس حصے میں ، 100 ملی سیکنڈ تک چلانے کے لئے ٹائمر بنایا گیا ہے۔ تاخیر کی تقریب کا استعمال کرتے ہوئے 100 ملی سیکنڈ تاخیر پیدا ہوتی ہے۔ TR1 = 1 ٹائمر شروع کرنے کے لئے ہے اور TR1 = 0 ٹائمر کو 100 ملی سیکنڈ کے بعد روکنے کے لئے ہے۔
TR1 = 1؛ تاخیر (100)؛ TR1 = 0؛
کوڈ کے اس حصے میں ، TH1 اور TL1 کے اندراجات میں موجود گنتی کی قدروں کو جوڑ دیا گیا ہے اور پھر اس کو 10 کے ساتھ ضرب دیا جاتا ہے تاکہ 1 سیکنڈ میں سائیکلوں کی کل تعداد حاصل کی جاسکے ۔
دالیں = TH1 * (0x100) + TL1؛ دالیں = دالیں * 10؛
کوڈ کے اس حصے میں ، فریکوئینسی ویلیو کو سنگل بائٹس میں تبدیل کیا جاتا ہے تاکہ 16 * 2 ایل سی ڈی ڈسپلے پر ڈسپلے کرنا آسان ہو۔
d1 = دالیں٪ 10؛ s1 = دالیں٪ 100؛ s2 = دالیں٪ 1000؛ s3 = دالیں٪ 10000؛ s4 = دالیں٪ 100000؛ d2 = (s1-d1) / 10؛ d3 = (s2-s1) / 100؛ d4 = (s3-s2) / 1000؛ d5 = (s4-s3) / 10000؛ d6 = (دالیں- s4) / 100000؛
کوڈ کے اس حصے میں ، تعدد ویلیو کے انفرادی ہندسوں کو ASCII فارمیٹ میں تبدیل کیا جاتا ہے اور یہ 16 * 2 lcd ڈسپلے پر ظاہر ہوتا ہے۔
اگر (دالیں = = 100000) ڈیٹاورٹ (0x30 + d6)؛ اگر (دالیں = = 10000) ڈیٹاورٹ (0x30 + d5)؛ اگر (دالیں = = 1000) ڈیٹاورٹ (0x30 + d4)؛ اگر (دالیں = = 100) ڈیٹاورٹ (0x30 + d3)؛ اگر (دالیں = = 10) ڈیٹاورٹ (0x30 + d2)؛ ڈیٹاورٹ (0x30 + d1)؛
کوڈ کے اس حصے میں ، ہم 16 * 2 ایل سی ڈی ڈسپلے پر کمانڈ بھیج رہے ہیں۔ اس کمانڈ کو پورٹ 0 کے 8051 مائکرو قابو والے پر کاپی کیا گیا ہے۔ کمانڈ لکھنے کے لئے آر ایس کو کم بنایا گیا ہے۔ لکھنے کے عمل کے لئے RW کو کم بنایا گیا ہے۔ کمانڈ رائٹ آپریشن شروع کرنے کے قابل (E) پن پر اعلی سے کم نبض لاگو ہوتا ہے۔
باطل cmdwrt (دستخط شدہ چار x) {P0 = x؛ RSS = 0؛ rw = 0؛ en = 1؛ تاخیر (1)؛ en = 0؛ }
کوڈ کے اس حصے میں ، ہم 16 * 2 ایل سی ڈی ڈسپلے پر ڈیٹا بھیج رہے ہیں ۔ ڈیٹا کو پورٹ 0 میں 8051 مائکرو قابو والے پر کاپی کیا گیا ہے۔ آر ایس کمانڈ لکھنے کے لئے اعلی بنایا گیا ہے۔ لکھنے کے عمل کے لئے RW کو کم بنایا گیا ہے۔ ڈیٹا لکھنے کا عمل شروع کرنے کے لئے قابل (E) پن پر اعلی سے کم نبض لاگو ہوتا ہے۔
باطل ڈیٹاورٹ (دستخط شدہ چار y) {P0 = y؛ RSS = 1؛ rw = 0؛ en = 1؛ تاخیر (1)؛ en = 0؛ }
اسی طرح ہم کسی بھی سگنل کی تعدد کی پیمائش کرسکتے ہیں 8051 مائکروکانٹرولر ۔ نیچے مکمل کوڈ اور ڈیمو ویڈیو چیک کریں۔