- مطلوبہ اجزاء:
- سرکٹ ڈایاگرام:
- 8051 کا استعمال کرتے ہوئے LM35 کے ساتھ درجہ حرارت کی پیمائش:
- 16x2 LCD:
- ADC0804 آایسی:
- LM35 درجہ حرارت سینسر:
- ضابطہ کی وضاحت:
کبھی کبھی لوگوں کو اتار چڑھاو کی وجہ سے مطابق تھرمامیٹر سے درجہ حرارت پڑھنا مشکل محسوس ہوتا ہے۔ لہذا یہاں ہم 8051 مائکروقابو کنٹرولر کا استعمال کرتے ہوئے ایک سادہ ڈیجیٹل تھرمامیٹر تیار کرنے جارہے ہیں جس میں درجہ حرارت کی پیمائش کے ل L LM35 سینسر استعمال کیا جاتا ہے۔ ہم نے ارڈینو ، نوڈیم سی یو ، پی آئی سی ، راسبیری پائی اور دیگر مائکروکانٹرولرز کا استعمال کرتے ہوئے ڈیجیٹل تھرمامیٹر بنانے کے ل L LM35 کا استعمال کیا ہے۔
یہ پروجیکٹ 8051 اور 165 2 LCD کے ساتھ 8051 مائکروکانٹرولر کے ساتھ ADC0804 کی مناسب مداخلت کا بھی کام کرے گا۔
مطلوبہ اجزاء:
- 8051 ترقیاتی بورڈ
- ADC0804 بورڈ
- 16 * 2 LCD ڈسپلے
- LM35 سینسر
- پوٹینومیٹر
- جمپر تاروں
سرکٹ ڈایاگرام:
LM35 کا استعمال کرتے ہوئے ڈیجیٹل تھرمامیٹر سرکٹ کے لئے سرکٹ ڈایاگرام ذیل میں دیا گیا ہے:
8051 کا استعمال کرتے ہوئے LM35 کے ساتھ درجہ حرارت کی پیمائش:
8051 مائکروکینٹرلر ایک 8 بٹ مائکروقانونی ہے جس میں چپ ریم پر 128 بائٹ ، چپ روم پر 4K بائٹ ، دو ٹائمر ، ایک سیریل پورٹ اور چار 8 بٹ پورٹس ہیں۔ 8052 مائکروکونٹرولر مائکروکانٹرولر کی توسیع ہے۔ مندرجہ ذیل جدول میں 8051 کنبہ کے ممبروں کا موازنہ دکھایا گیا ہے۔
خصوصیت |
8051 |
8052 |
روم (بائٹس میں) |
4K |
8K |
رام (بائٹس) |
128 |
256 |
ٹائمر |
2 |
3 |
I / O پنوں |
32 |
32 |
سیریل پورٹ |
1 |
1 |
مداخلت کے ذرائع |
6 |
8 |
16x2 LCD:
ایمبیڈڈ ایپلی کیشنز کے لئے 16 * 2 LCD بڑے پیمانے پر استعمال شدہ ڈسپلے ہے۔ پنوں اور 16 * 2 LCD ڈسپلے کے کام کرنے کے بارے میں مختصر وضاحت یہ ہے۔ LCD کے اندر دو بہت اہم رجسٹر ہیں۔ وہ ڈیٹا رجسٹر اور کمانڈ رجسٹر ہیں۔ کمانڈ رجسٹر کمانڈ بھیجنے کے لئے استعمال ہوتا ہے جیسے واضح ڈسپلے ، کرسر گھر پر وغیرہ ، ڈیٹا رجسٹر کو ڈیٹا بھیجنے کے لئے استعمال کیا جاتا ہے جو 16 * 2 LCD پر ڈسپلے ہونا ہے۔ جدول کے نیچے 16 * 2 lcd کی پن کی تفصیل دکھائی گئی ہے۔
پن |
علامت |
I / O |
تفصیل |
1 |
Vss |
- |
زمین |
2 |
وی ڈی ڈی |
- |
+ 5V بجلی کی فراہمی |
3 |
وی |
- |
اس کے برعکس کو کنٹرول کرنے کے لئے بجلی کی فراہمی |
4 |
RS |
میں |
کمانڈ رجسٹر کے لئے RS = 0 ، ڈیٹا رجسٹر کے لئے RS = 1 |
5 |
آر ڈبلیو |
میں |
لکھنے کے لئے R / W = 0 ، پڑھنے کے لئے R / W = 1 |
6 |
ای |
I / O |
فعال |
7 |
D0 |
I / O |
8 بٹ ڈیٹا بس (LSB) |
8 |
ڈی 1 |
I / O |
8 بٹ ڈیٹا بس |
9 |
ڈی 2 |
I / O |
8 بٹ ڈیٹا بس |
10 |
ڈی 3 |
I / O |
8 بٹ ڈیٹا بس |
11 |
ڈی 4 |
I / O |
8 بٹ ڈیٹا بس |
12 |
ڈی 5 |
I / O |
8 بٹ ڈیٹا بس |
13 |
ڈی 6 |
I / O |
8 بٹ ڈیٹا بس |
14 |
ڈی 7 |
I / O |
8 بٹ ڈیٹا بس (MSB) |
15 |
A |
- |
بیک لائٹ کیلئے + 5 وی |
16 |
K |
- |
زمین |
نیچے دی گئی ٹیبل میں اکثر استعمال ہونے والے LCD کمانڈ کوڈز دکھائے جاتے ہیں۔
کوڈ (ہیکس) |
تفصیل |
01 |
ڈسپلے اسکرین صاف کریں |
06 |
اضافہ کرسر (دائیں شفٹ) |
0A |
آف کریں ، کرسر آن کریں |
0C |
ڈسپلے آن ، کرسر آف |
0F |
آن ، پر چمکتے ہوئے |
80 |
کرسر کو 1 ST لائن کے آغاز پر مجبور کریں |
C0 |
کرسر کو 2 این ڈی لائن کے آغاز پر مجبور کریں |
38 |
2 لائنیں اور 5 * 7 میٹرکس |
ADC0804 آایسی:
ADC0804 آایسی نیشنل سیمیکمڈکٹر سے ADC0800 سیریز کے خاندان میں ایک 8 بٹ متوازی اے ڈی سی ہے. یہ +5 وولٹ کے ساتھ کام کرتا ہے اور اس کی ریزولیوشن 8 بیٹس کی ہے۔ Vref / 2 کی مختلف اقدار کے ل step قدم کا سائز اور ون کی حد ہوتی ہے۔ مندرجہ ذیل جدول میں Vref / 2 اور Vin کی حد کے درمیان تعلق کو ظاہر کیا گیا ہے۔
Vref / 2 (V) |
ون (V) |
مرحلہ سائز (ایم وی) |
کھلا |
0 سے 5 |
19.53 |
2.0 |
0 سے 4 |
15.62 |
1.5 |
0 سے 3 |
11.71 |
1.28 |
0 سے 2.56 |
10 |
ہمارے معاملے میں Vref / 2 1.28 وولٹ سے منسلک ہے ، لہذا قدم کا سائز 10mV ہے۔ ADC0804 کے لئے قدم کے سائز کا حساب (2 * Vref / 2) / 256 کے حساب سے کیا جاتا ہے۔
آؤٹ پٹ وولٹیج کا حساب لگانے کے لئے درج ذیل فارمولے کا استعمال کیا جاتا ہے:
ڈاؤٹ = ون / قدم کا سائز
جہاں ڈاؤٹ اعشاریہ ڈیجیٹل ڈیٹا آؤٹ پٹ ہے ، ون = ینالاگ ان پٹ وولٹیج اور مرحلہ سائز (ریزولوشن) سب سے چھوٹی تبدیلی ہے۔ یہاں ADC0804 کے بارے میں مزید معلومات حاصل کریں ، 8051 کے ساتھ ADC0808 کی انٹرفیسنگ بھی چیک کریں۔
LM35 درجہ حرارت سینسر:
LM35 ایک درجہ حرارت کا سینسر ہے جس کا آؤٹ پٹ وولٹیج سیلسیس درجہ حرارت کے ل line نسبتاal متناسب ہے۔ LM35 پہلے ہی کیلیبریٹڈ ہے لہذا بیرونی انشانکن کی ضرورت نہیں ہے۔ یہ سیلسیس درجہ حرارت میں سے ہر ایک ڈگری کے لئے 10mV کا نتیجہ نکالتا ہے۔
LM35 سینسر درجہ حرارت کے مطابق وولٹیج تیار کرتا ہے۔ اس وولٹیج کو ADC0804 کے ذریعہ ڈیجیٹل (0 سے 256) میں تبدیل کیا گیا ہے اور اسے 8051 مائکروکانٹرولر کھلایا گیا ہے۔ 8051 مائکروکونٹرولر اس ڈیجیٹل ویلیو کو ڈگری سیلسیس میں درجہ حرارت میں تبدیل کرتا ہے۔ پھر یہ درجہ حرارت ascii شکل میں تبدیل ہوتا ہے جو نمائش کے لئے موزوں ہے۔ اس عیسوی اقدار کو 16 * 2 ایل سی ڈی کھلایا جاتا ہے جو اس کی سکرین پر درجہ حرارت ظاہر کرتا ہے۔ یہ عمل مخصوص وقفہ کے بعد دہرایا جاتا ہے۔
ذیل میں 8051 استعمال کرتے ہوئے LM35 ڈیجیٹل تھرمامیٹر کے لئے سیٹ اپ امیج ہے :
آپ یہاں LM35 پر مبنی تمام ڈیجیٹل ترمامیٹر تلاش کرسکتے ہیں۔
ضابطہ کی وضاحت:
اس پروجیکٹ کے اختتام پر LM35 استعمال کرنے والے اس ڈیجیٹل تھرمامیٹر کے لئے مکمل سی پروگرام دیا گیا ہے۔ کوڈ کو چھوٹے معنی خیز حصوں میں تقسیم کیا گیا ہے اور ذیل میں اس کی وضاحت کی گئی ہے۔
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؛ // رجسٹر سلیکٹ (آر ایس) پن کا 16 * 2 lcd sbit rw = P2 ^ 6؛ // پڑھیں / لکھیں (RW) پن کا 16 * 2 lcd sbit en = P2 ^ 5؛ // 16 (2) ایل سی ڈی کی پن (ای) پن کو فعال کریں
اسی طرح ، ADC0804 انٹرفیسنگ میں 8051 مائکروکانٹرولر کے ل we ، ہمیں پنوں کی وضاحت کرنی ہوگی جس پر ADC0804 8051 مائکروکانٹرولر سے منسلک ہے۔ ADC0804 کا RD پن P3.0 سے منسلک ہے ، ADC0804 کا WR پن P3.1 سے منسلک ہے اور ADC0804 کا INTR پن P3.2 سے منسلک ہے۔ ڈیٹا پنوں کو 8051 مائکروکانٹرولر میں سے 1 بندرگاہ سے منسلک کیا گیا ہے۔
sbit rd_adc = P3 ^ 0؛ // ADC0804 sbit wr_adc = P3 ^ 1 کا پن (آر ڈی) پن؛ // ADC0804 sbit انٹ_اڈک = P3 ^ 2 کا لکھنا (WR) پن؛ // ADC0804 کا انٹراپٹ (INTR) پن
اگلا ہمیں کچھ افعال کی وضاحت کرنا ہوگی جو پروگرام میں استعمال ہوتے ہیں۔ تاخیر کا استعمال مقررہ وقت کی تاخیر پیدا کرنے کے لئے کیا جاتا ہے ، c mdwrt فنکشن 16 * 2 LCD ڈسپلے پر کمانڈ بھیجنے کے لئے استعمال ہوتا ہے ، ڈیٹاورٹ فنکشن 16 * 2 LCD ڈسپلے پر ڈیٹا بھیجنے کے لئے استعمال ہوتا ہے اور AD_ ڈیٹا کو درجہ حرارت میں تبدیل کرنے کے لئے کنورٹ_ ڈسپل فنکشن استعمال ہوتا ہے اور اسے 16 * 2 ایل سی ڈی ڈسپلے پر ظاہر کرنے کے ل.۔
باطل تاخیر (بغیر دستخط شدہ)؛ // تاخیر کو ختم کرنے کے لئے فنکشن cmdwrt (دستخط شدہ چارٹ)؛ 16 * 2 ایل سی ڈی ڈسپلے باطل ڈیٹاورٹ (دستخط شدہ چار) پر کمانڈز بھیجنے کے لئے // فنکشن؛ // ڈیٹا بھیجنے کے لئے 16 * 2 ایل سی ڈی ڈسپلے کو باطل کنورٹ_ڈسپلے (بغیر دستخط شدہ چار) پر کام کرنا۔ درجہ حرارت میں اے ڈی سی کی قیمت کو تبدیل کرنے اور اسے 16 * 2 ایل سی ڈی ڈسپلے پر ظاہر کرنے کے لئے // فنکشن
کوڈ کے نیچے والے حصے میں ، ہم 16 * 2 ایل سی ڈی پر کمانڈ بھیج رہے ہیں ۔ کمانوں جیسے واضح ڈسپلے، اضافہ کرسر، 1 کے آغاز پر کرسر مجبور سینٹ لکیر کچھ مخصوص وقت میں تاخیر کے بعد ایک ایک کرکے 16 * 2 LCD ڈسپلے ایک کو بھیجے جاتے ہیں.
(i = 0؛ i <5؛ i ++) // 16 * 2 lcd پر کمانڈ بھیجیں ایک وقت میں ایک کمانڈ ڈسپلے کریں {cmdwrt (cmd)؛ // فنکشن کال بھیجنے کے لئے 16 * 2 lcd ڈسپلے میں تاخیر (1)؛ }
کوڈ کے اس حصے میں ، ہم 16 * 2 ایل سی ڈی پر ڈیٹا بھیج رہے ہیں ۔ 16 * 2 ایل سی ڈی ڈسپلے پر ظاہر ہونے والا ڈیٹا کچھ مخصوص وقت کی تاخیر کے بعد ایک ایک کرکے ظاہر کرنے کے لئے بھیجا جاتا ہے۔
(i = 0؛ i <12؛ i ++) // ایک وقت میں 16 * 2 lcd پر ایک کردار دکھائیں ڈیٹا بھیجیں۔ ڈیٹاورٹ (ڈیٹا 1)؛ // فنکشن کال میں ڈیٹا بھیجنے کے لئے 16 * 2 ایل سی ڈی ڈسپلے میں تاخیر (1)؛ the کوڈ کے اس حصے میں ہم LM35 سینسر کے ذریعہ تیار کردہ ینالاگ وولٹیج کو ڈیجیٹل ڈیٹا میں تبدیل کر رہے ہیں اور پھر اسے درجہ حرارت میں تبدیل کیا جاتا ہے اور 16 * 2 lcd ڈسپلے پر ظاہر کیا جاتا ہے۔ ADC0804 کو تبادلہ شروع کرنے کے لئے ہمیں ADC0804 کے WR پن پر کم سے زیادہ نبض بھیجنی ہوگی ، پھر ہمیں تبادلوں کے اختتام کا انتظار کرنا ہوگا۔ تبادلوں کے اختتام پر INTR کم ہوجاتا ہے۔ ایک بار جب INTR کم ہوجاتا ہے تو ، ڈیجیٹل ڈیٹا کو 8051 مائکروکانٹرولر کے 0 میں پورٹ پر کاپی کرنے کے لئے RD کو کم کردیا جاتا ہے۔ ایک مقررہ وقت کی تاخیر کے بعد ، اگلا سائیکل شروع ہوتا ہے۔ یہ عمل ہمیشہ کے لئے دہرایا جاتا ہے۔
جبکہ (1) // ہمیشہ کے لئے دہرائیں {wr_adc = 0؛ // WR پن تاخیر (1) پر HOW نبض پر LOW بھیجیں؛ wr_adc = 1؛ جبکہ (انٹ_اڈکا == 1)؛ // منتقلی کے اختتام کا انتظار کریں rd_adc = 0؛ // ADC0804 ویلیو = P1 سے ڈیٹا پڑھنے کے لئے آر ڈی = 0 بنائیں؛ // کاپی ADC ڈیٹا کنورٹ_ ڈسپلے (قیمت)؛ // فنکشن کال اے ڈی سی ڈیٹا کو درجہ حرارت میں تبدیل کرنے اور اسے 16 * 2 ایل سی ڈی ڈسپلے تاخیر (1000) پر ظاہر کرنے کے لئے۔ // ہر سائیکل کے درمیان وقفہ rd_adc = 1؛ // اگلے چکر کے لئے آر ڈی = 1 بنائیں}
کوڈ کے نیچے حصے میں ، ہم 16 * 2 ایل سی ڈی ڈسپلے پر کمانڈ بھیج رہے ہیں۔ اس کمانڈ کو پورٹ 0 کے 8051 مائکرو قابو والے پر کاپی کیا گیا ہے۔ کمانڈ لکھنے کے لئے آر ایس کو کم بنایا گیا ہے۔ لکھنے کے عمل کے لئے RW کو کم بنایا گیا ہے۔ کمانڈ رائٹ آپریشن شروع کرنے کے قابل (E) پن پر اعلی سے کم نبض لاگو ہوتا ہے۔
باطل cmdwrt (دستخط شدہ چار x) {P0 = x؛ // پورٹ 0 پر کمانڈ بھیجیں جس پر 16 * 2 lcd منسلک ہے = = کمانڈ rw = 0 کے لئے // Make RS = 0؛ // تحریری کارروائی کے لئے RW = 0 بنائیں این = 1؛ // کمانڈ رائٹ آپریشن میں تاخیر (1) شروع کرنے کے لئے قابل (E) پن پر ایک HIGH سے LOW پلس بھیجیں؛ en = 0؛ }
کوڈ کے اس حصے میں ، ہم 16 * 2 ایل سی ڈی ڈسپلے پر ڈیٹا بھیج رہے ہیں۔ ڈیٹا کو پورٹ 0 میں 8051 مائکرو قابو والے پر کاپی کیا گیا ہے۔ آر ایس کو کمانڈ رائٹ کے لئے اعلی بنایا گیا ہے۔ لکھنے کے عمل کے لئے RW کو کم بنایا گیا ہے۔ ڈیٹا لکھنے کا عمل شروع کرنے کے لئے قابل (E) پن پر اعلی سے کم نبض لاگو ہوتا ہے۔
باطل ڈیٹاورٹ (دستخط شدہ چار y) {P0 = y؛ // پورٹ 0 پر ڈیٹا ارسال کریں جس پر 16 * 2 یلسیڈی مربوط ہے = = 1؛ // rs = 1 کمانڈ rw = 0 کے لئے بنائیں؛ // تحریری کارروائی کے لئے RW = 0 بنائیں این = 1؛ // ڈیٹاورائٹ آپریشن میں تاخیر (1) شروع کرنے کے لئے ایبل (ای) پن پر ایک HIGH سے LOW پلس بھیجیں۔ en = 0؛ }
کوڈ کے اس حصے میں ، ہم ڈیجیٹل ڈیٹا کو درجہ حرارت میں تبدیل کر رہے ہیں اور اسے 16 * 2 ایل سی ڈی ڈسپلے پر آویزاں کررہے ہیں۔
باطل کنورٹ_ ڈس پلے (بغیر دستخط شدہ چار ویلیو) {دستخط شدہ چار x1 ، x2 ، x3؛ cmdwrt (0xc6)؛ // کمسن کو 16 * 2 ایل سی ڈی ایکس 1 = (قیمت / 10) پر دوسری لائن کی 6 ویں پوزیشن پر سیٹ کرنے کا حکم؛ // قیمت کو 10 سے تقسیم کریں اور متغیر x1 x1 = x1 + (0x30) میں ذخیر؛ ذخیرہ کریں۔ // 0x30 x2 = ویلیو٪ 10 شامل کرکے متغیر X1 کو ascii میں تبدیل کریں؛ // قیمت کو 10 سے تقسیم کریں اور بقیہ x2 x2 = x2 + (0x30) میں ذخیرہ کریں؛ // 0x30 x3 = 0xDF شامل کرکے متغیر x2 کو ascii میں تبدیل کریں؛ // ڈسک کی ascii ویلیو (°) علامت ڈیٹاورٹ (x1)؛ // ڈسپلے درجہ حرارت 16 * 2 LCD ڈسپلے ڈیٹاورٹ (x2) پر؛ ڈیٹاورٹ (x3)؛ ڈیٹاورٹ ('سی')؛ }
نیز ، LM35 استعمال کرنے والے دوسرے تھرمامیٹروں کو مختلف مائکروکانٹرولرز کے ساتھ چیک کریں:
- ارڈینو اور LM35 کا استعمال کرتے ہوئے ڈیجیٹل تھرمامیٹر
- درجہ حرارت کی پیمائش LM35 اور AVR مائکروکانٹرولر کا استعمال کرتے ہوئے
- راسبیری پائی کے ساتھ کمرے کا درجہ حرارت کی پیمائش