دماسنج دیجیتال با استفاده از میکروکنترلر AT89C2051
دماسنج دیجیتال با استفاده از میکروکنترلر AT89C2051 – ایران ترجمه – Irantarjomeh
مقالات ترجمه شده آماده گروه برق – الکترونیک
مقالات ترجمه شده آماده کل گروه های دانشگاهی
مقالات
قیمت
قیمت این مقاله: 15000 تومان (ایران ترجمه - irantarjomeh)
توضیح
بخش زیادی از این مقاله بصورت رایگان ذیلا قابل مطالعه می باشد.
شماره | ۳ |
کد مقاله | ELC03 |
مترجم | گروه مترجمین ایران ترجمه – irantarjomeh |
نام فارسی | دماسنج دیجیتال با استفاده از میکروکنترلر AT89C2051 |
نام انگلیسی | A Digital Thermometer Using the AT89C2051 Microcontroller |
تعداد صفحه به فارسی | ۱۰ |
تعداد صفحه به انگلیسی | ۳ |
کلمات کلیدی به فارسی | میکروکنترلر |
کلمات کلیدی به انگلیسی | Microcontroller |
مرجع به فارسی | ATMEL |
مرجع به انگلیسی | ATMEL |
کشور | ایالات متحده |
دماسنج دیجیتال با استفاده از میکروکنترلر AT89C2051
دماسنج دیجیتال
با استفاده از میکروکنترلر AT89C2051
ATMEL
مقدمه
سیستمی که در این مقاله معرفی میشود شامل یک دماسنج ساده دیجیتالی است که از یک نمایشگر LCD داخلی و یک پورت ارتباطی RS-485 تشکیل یافته است. این وسیله با استفاده از پردازنده Atmel AT89C2051 ، دماسنج /ترموستات دیجیتال DS1620 از شرکت ”دالاس سمیکانداکتور“ ، نمایشگر LCD کوچک با صفحه ۲×۸، و یک رابط خطی RS485 طراحی گردیده است. سیستم نشان داده شده در شکل ۱، میتواند بعنوان مبنایی برای توسعه راه حلهای مشتری جهت شبکه و سیستمهای جمعآوری داده مستقل و کنترل ابزار مورد استفاده قرار گیرد. این وسیله را میتوان در هرکجا که باشیم بواسطه کوچکی و نیازهای کم آن نصب و مورد استفاده قرار دهیم.
نرمافزار
درایور LCD کاملا به زبان C نوشته شده و تحت نرمافزار Micro-C از شرکت ”دانفیلد دولوپمنت سیستمز“ با استفاده از ماژول حافظه کامپایل گردیده است. با وجود آنکه این سیستم بر اساس عملکرد پشته میباشد، Micro-C شامل تعدادی از خصیصههای خاص بوده که آن را برای تولید کدها با قابلیت رام (ROM) برای سیستمهای کوچک مناسب میسازد. واحد هندل نمودن پشته عملکرد اورهد بوسیله توابه کتابخانهای ساخته شده که کلیه آن کدهای دستی در یک اسمبلر بهینه شده کامل میباشند. با توجه به مزیتهای اضافه شده، Micro-C دارای یک کد منبع کتابخانه مستند سازی شده کامل بوده و از این طریق میتواند تغییرات خاص را در آن اعمال داشت.
اولین توابعی که درایو LCD وجود دارند جزء موارد متعارف کتابخانهای C میباشند. PutString نشان دهنده یک رشته قطع شده تهی با استفاده از عبور کاراکترها به PutChar میباشد تا آنکه با یک بایت تهی روبرو شود. PutChar یک کاراکتر را به خروجی LCD ارسال میدارد و کاراکتر خط جدید را با قرار دادن مکان نما در ابتدای خط جدید کنترل مینماید.
PositionLcd بسادگی آدرس مکاننما را در ارزش مشخص شده بوسیله صدازن یا Caller قرار میدهد. تابع ClearLcd نیز برای پاک نمودن کل فضای LCD و قرار دادن مکاننما در ابتدای سطر یا Home بکار میرود.
دماسنج دیجیتال با استفاده از میکروکنترلر AT89C2051
توابعی که به دنبال میآیند نیز در خصوص ارتباط فیزیکی حقیقی با LCD میباشند. از آنجائیکه مترادف مستقیمی بین داده LSI رم یا RAM و نقشه فیزیکی LCD وجود ندارد، نیاز به دقت در برخی از شرایط فیزیکی مرزی وجود دارد. به هنگامی که با یک مرز مواجه میشود، مکاننما باید وضعیت خود را تغییر داده تا آنکه پیوستگی یا مجاورت خود را حفظ نماید. از آنجا که کلیه دادههای قابل نمایش میبایست از مقابل DataWr عبور کنند، داشتن عملکرد مناسب و درست در اینجا قابل تامل خواهد بود. جهت حل این مشکل، رد مکاننمای منطقی را دنبال نموده و در زمانی که ممکن است پیوستگی قطع شود، یک مانور یادآوری را انجام دهید. دو روش برای انجام این مهم وجود دارد:
خواندن وضعیت رجیستر LCD (جهت بدست آوردن آدرس مکاننما) یا
نگهداشتن یک کپی محلی بخاطر داشتن مرجعی برای خود نخواسته باشید
از تلف کردن یک پین جهت کنترل خط خواندن / نوشتن پرهیز کنید. (اجرا در مد فقط نوشتی میباشد)، و دیدگاه بعدی اتخاذ شده است. در اینجا رجیستر جهانی (IRAM) مکاننمای متغییر مورد استفاده قرار میگیرد. مکاننما قبل از هرگونه عملیات نوشتن داده مورد کنکاش قرار میگیرد. چنانچه تصحیح مورد نیاز باشد، یک آدرس جدید مکاننما تولید شده و از طریق CommandWR به رجیستر کنترل LCD ارسال میگردد.
در پی این عمل، DataWr بایت داده را به نیبل (نصف بایت) تقسیم میکند (توجه داشته باشید که LCD با استفاده از باس ۴ بیتی عمل مینماید) و سپس جهت هندل نمودن انتقال فیزیکی حقیقی اقدام میکند. با استفاده از Micro-C پیش پردازنده تعمیم یافته اجازه دستکاری بیتهای مکرو را داده که مستقیما به دستورالعمل ۸۰۵۱ SETB و CLR تعمیم داده میشود. در اینجا پاک کردن DRS رجیستر داده LCD را انتخاب نموده و DEN جهت تولید بارقه داده سوئیچ میشود. CommandWr نیز بصورت مشابهی عمل مینماید ولی نیازی به سر و کار داشتن با گرفتاری مکاننما را ندارد. این مورد ریجیستر دستور را بعنوان مقصد خود با تنظیم DRS با اولویت بالا نسبت به ساعت نیبل در خلال رابط انتخاب میکند.
تابع راهاندازی InitLcd در سطح نیبل اولیه شروع شده است، چرا که هیچگونه فرضیهای را نمیتوان در خصوص وضعیت عملیاتی LCD در این زمان داشت. سه دامنه اول اطمینان میدهد که مد انتقال بصورتی تنظیم گشته که بتواند در باس ۴ بیتی نیز عمل نماید. تکرار این دامنه برای ۳ بار این اطمینان را حاصل میکند که دستور بدون توجه به مد عملیاتی LSI شناسایی خواهد شد.(منطقی خواهد بود که به هنگامی که هر گونه راهاندازی سطح پایینی را انجام میدهیم از داشتن هرگونه فرضیه اجتناب نمائیم.) در پی این عمل ، پارامترهای عملیاتی حقیقی با استفاده از تابع استاندارد CommandWr به LCD انتقال مییابند. نرمافزار این مورد برنامه کاربردی را میتوان از وب سایت Atmel یا BBS دانلود نمود.
دماسنج دیجیتال با استفاده از میکروکنترلر AT89C2051
دمای دیجیتال
اکتساب دما با استفاده از یک ایسی ترموستات/ دماسنج از شرکت ”دالاس سمیکانداکتور“ حاصل میگردد. DS1620 شامل کلیه موارد اندازهگیری دما و شرایط سیگنال مدار روچیپه بوده و برای پردازنده یک رابط ۳ سیمی دیجیتال که شامل داده خط دوطرفه DQ ، و یک ورودی ریست \RST ، و یک ورودی ساعت CLK میباشد را عرضه میدارد. خواندن دما با استفاده از یک فرمت ۹ بیتی که دارای دو ضمیمه میباشد محقق میگردد. محدوده اندازهگیری از منفی ۵۵ درجه تا مثبت ۱۲۵ درجه و با افزایش ۵ درجه میباشد.
انتقال داده به DS1620 و یا خارج از آن بوسیله درایو \RST حاصل میشود. به هنگامی که DS1620 آزاد شد، یکسری از پالسهای ساعت بوسیله پردازنده جهت انتقال داده انتشار داده میشوند برای انتقال DS1620 ، داده میبایست در طول لبه اوج پالس ساعت بصورت معتبر باشد. بیتهای داده دریافت شده توسط پردازنده از لبه تنزل یافته یا پایین آمده پالس ساعت خارج گشته و از طریق لبه اوج معتبر میمانند. با در نظر گرفتن ساعت بصورت اوج میتوان فرض DQ با حالت امپدانس بالا را در نظر گرفت. این دامنه میتواند با کشش پایین \RST که منجر به فشار بر DQ و بوجود آوردن امپدانس بالا و انتقال میشود، بسرعت قطع گردد. داده دما از طریق یک باس ۳ سیمه با فرمت اولیه Isb انتقال مییابد. یک مجموعهای از ۹ بیت انتقال مییابد در حالیکه که با ارزشترین بیت، بیت علامت میباشد. در صورتی که هیچ یک از ۹ بیت جالب توجه نباشند انتقال میتواند در هر زمان با آزاد نمودن \RST قطع گردد.
روتین پشتیبانی DS1620 به زبان اسمبلی کد شده است. DS1620 همچنین دارای رجیسترهای پیکربندی غیرفرار بوده که اطلاعات ترمواستاتیک و کنترل عملیات را نگهداری میکنند. TempConfig یک کد سخت میباشد که مد را برای عملیات تحت کنترل CPU و تبدیل دمای متوالی آماده مینماید. سپس در مد تبدیل متوالی، فرآیند تبدیل حقیقی بوسیله صدور دستور کانورت یا تبدیل از طریق TempConvert آغاز میگردد. اکنون DS1620 را در هر زمان میتوان خواند و تبدیل دمای آخری که اجرا گردیده است برگشت داده میشود. این مورد نیز با احظار یا خواندن TempRead عملی میگردد. نتیجه به یک انباشتگر ۱۶ بیتی برگشت داده میشود، همانگونه که بوسیله Micro-C که شامل رجیسترهای B(msb) و ACC(Isb) است تعریف گردیده است.
دماسنج دیجیتال با استفاده از میکروکنترلر AT89C2051
اتصال خطاصلی
هماهنگی بین درایوهای پشتیبان توسط ماژول اصلی انجام میگردد. این ماژول، کنترل را پس از خاتمه عملیات روتین شروع Micro-C بدست میگیرد. با آغاز عملیات کد پورت سریال را راهاندازی میکند ، به DS1620 دستور میدهد تا مرحله تبدیل دما را آغاز کند، LCD را راهاندازی کرده ، یک پیام شروع را نمایش میدهد، و در نهایت وارد یک لوپ یا حلقه بینهایت میشود. این حلقه بصورت پیایی DS1620 را خوانده، سلسیس را به فارنهایت تبدیل کرده، نتایج بدست آمده باینری را به رشته اسکی تبدیل میکند، و نتایج تبدیل را بر روی صفحه نمایشگر نشان میدهد. بصورت دورهای کد ممکن است به خطا LCD را کنترل نموده و دادههای دما را بصورت سریالی ارسال نماید.
مرحله تبدیل سلسیس به فارنهایت توسط معادله معروف F=C*9/5+32 انجام میپذیرد. از آنجا که DS1620 دما را بصورت فواصل افزایشی ۵/۰ درجه نشان میدهد، در ابتدا ارزش دمای بدست آمده تقسیم بر ۲ میشود. به غیر از دوران غیرقابل نفوذ که نتیجه کار با اعداد اسمبلر میباشد، معرف C در این محاسبه بطور کاملی در فانکشنهای مربوطه واضح و آشکار است. یک دامنه کوتاه از تقسیمات، ماژولها، و عملیات منطقی OR در مقادیر عددی اسکی، رشته خروجی را بوجود میآورند.
دماسنج دیجیتال با استفاده از میکروکنترلر AT89C2051