ارسالکننده : علی در : 95/5/17 5:45 صبح
تحقیق اکوسیستم تحت فایل ورد (word) دارای 10 صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد تحقیق اکوسیستم تحت فایل ورد (word) کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
این پروژه توسط مرکز مرکز پروژه های دانشجویی آماده و تنظیم شده است
توجه : در صورت مشاهده بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی تحقیق اکوسیستم تحت فایل ورد (word) ،به هیچ وجه بهم ریختگی وجود ندارد
بخشی از متن تحقیق اکوسیستم تحت فایل ورد (word) :
گیاهان (مانند علف در علفزار) انرژی خورشید را از طریق فتوسنتز به انرژی شیمیایی ذخیره شده ، تبدیل می کنند. این انرژی در سلولهای گیاه ذخیره شده و جهت رشد ، اصلاح و تکثیر آن استفاده می گردد. گاوها و سایر حیوانات، انرژی ذخیره شده در علف یا دانه را استفاده نموده و آن را به انرژی ذخیره شده ای در بدن خود تبدیل می کنند. زمانیکه ما گوشت و سایر محصولات حیوانی را می خوریم ، ما نیز آن انرژی را در بدن خود ذخیره می کنیم. ما از این انرژی ذخیره شده برای راه رفتن ، دویدن ، دوچرخه سواری و یا حتّی خواندن یک مطلب برروی اینترنت استفاده می کنیم. اکوسیستم و زنجیره ی غذایی:در محیط زیستی عوامل غیر زنده مانند خاک ، آب ، گازها و غیره به همراه جانداران وجود دارند. موجودات زنده با هم و با محیط غیر زنده خود ارتباطی متقابل برقرار میسازند. این ارتباطها برای بقای محیط زیست بسیار لازمند. کارشناسان محیط زیست هنگام بررسی ، مناطق زیستی را مورد مطالعه قرار میدهند. هر منطقه زیستی شامل موجودات زنده ویژه عوامل غیر زنده است اکوسیستم نام دارد و دانشی که به بررسی اکوسیستمها میپردازد. اکولوژی نامیده میشود. عوامل زنده اکوسیستم جانداران را براساس نقشی که در محیط دارند به دستههای زیر تقسیم میشوند. 1. موجودات تولید کننده (گیاهان سبز) 2. موجودات مصرف کننده (جانوران) 3. موجودات تجزیه کننده (باکتریها و قارچها) ارتباط موجودات زنده با هم دیگر مهم ترین ارتباط غذایی است که به صورت زنجیره غذایی و شبکه غذایی در جریان است. علاوه بر ارتباط کلی میان جانداران که به صورت زنجیره غذایی نشان داده میشود. انواع دیگری از ارتباط نیز میان آنها وجود دارد که در آن الزاما ارتباط غذایی منجر به از بین رفتن طرفین نمیشود بلکه در این نوع ارتباط جانداران به زیستن در کنار هم ادامه میدهند. ارتباط غذایی زنجیره غذایی اگر وابستگی غذایی یک موجود زنده را با موجود زنده دیگر به صورت AB نمایش دهیم بدین معنی است
کلمات کلیدی :
ارسالکننده : علی در : 95/5/17 5:45 صبح
تحقیق بهداشت مادران و نوزادان تحت فایل ورد (word) دارای 188 صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد تحقیق بهداشت مادران و نوزادان تحت فایل ورد (word) کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
این پروژه توسط مرکز مرکز پروژه های دانشجویی آماده و تنظیم شده است
توجه : در صورت مشاهده بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی تحقیق بهداشت مادران و نوزادان تحت فایل ورد (word) ،به هیچ وجه بهم ریختگی وجود ندارد
بخشی از متن تحقیق بهداشت مادران و نوزادان تحت فایل ورد (word) :
بخشی از فهرست تحقیق بهداشت مادران و نوزادان تحت فایل ورد (word)
فهرست مطالب
عنوان صفحه
1- اهداف و مراقبتهای دوران بارداری 3
2- ارزیابی سلامت مادر در دوران بارداری
3- آموزش در ارتباط با مراقبت از خود
4- تغذیه در دوران بارداری
5- علائم هشدار دهنده در بارداری
6- ناراحتی های جزئی در دوران بارداری
7- ناراحتی های شایع در دوران بارداری
8- بررسی سلامت جنین
9- دوره بعد از زایمان
مراقبتهای دوران بارداری
مراقبتهای دوران بارداریprenatal care به معنی مراقبت از مادر در طی حاملگی و قبل از لیبر می باشد که با هدف کاهش مرگ و میر پری ناتال انجام می شود. هر چه این مراقبت زودتر شروع شود بهتر است چون سبب می شود که پرستار اطلاعات پایه را از طریق معاینات فیزیکی و تست های آزمایشگاهی جمع آوری نماید.
اهداف مراقبت دوران بارداری
1-فراهم آوردن یک مادر سالم و آماده که ناراحتی های کمتری را تجربه کند 2- تعیین مشکلات بالقوه و یا عوارض هر چه سریعتر 3- انجام یک وضع حمل ایمن و تولد یک کودک سالم 4- آماده کردن پدر یا شریک جنسی طوریکه بتواند حداقل انتظارات مادر را فراهم نماید 5- آماده کردن خانواده برای تولد نوزاد جدید
ارزیابی سلامت مادر در دوران بارداری
معاینات اولیه ( ملاقات اول 45 دقیقه طول میکشد)
یک محیط راحت و ارتباطات باز فراهم و خصوصیات پرستار طوری باشد که مادر در طی اولین معاینات دوران بارداری احساس امنیت کند گرفتن یک تاریخچه کامل برای تعیین فاکتورهایی که میتواند اثرات منفی بر روی بارداری بگذارد ضروری است. معاینات فیزیکی نیز باید انجام شود.
اگر زایمان بعد از 24 هفتگی انجام شود = para
تاریخچه کاملی از وضعیت سلامتی مادر در گذشته و حال باید گرفته شود اکثر خانواده ها علاقه مند به دانستن زمان" due date "یعنی زمان تولد نوزاد می باشند تخمین زمان تولد Estimated date of birth = ( EDB ) یعنی 40 هفته بعد از اولین روز آخرین پریودی مادر. EDB بر اساس1-LMP 2- سایز رحم 3- زمان حرکت جنین هفته (20-16 هفتگی quickening) 4- زمانیکه ضربان قلب شنیده می شود 5- از طریق اولترا سوند مشخص می شود.
قانون نگله Naegeles Rule یک روش رایج برایEDB می باشد.
قانون نگله = 7 روز + 3 ماه – اولین روز آخرین پریودی
ارتفاع رحم Fundal Height :
ارتفاع رحم معمولا در سه ماهه دوم بررسی می شود ارتفاع رحم از بالای سمفیز پوبیس تا قله رحم بر حسب سانتی متر مساوی با هفته های حاملگی است که به روش مک دونالد مشهور است. رحم بعد از هفته هشتم مشخص می شودفوندوس در هفته 12 بالای سمفیز پوبیس است و در هفته 20 در سطح ناف است. این روش در هفته های 30 – 18 حاملگی روشی مطمئن است که بیانگر رشد جنین هم می باشد.
چرا در سه ماهه اول و سوم مناسب نمی باشد؟
اولترا سوند:6-5 هفته بعد از LMP اولترا سوند میتواند ساک حاملگی را تشخیصدهد.
ضربان قلب جنین : به طور متوسط در هفته های 12-10 با داپلر شنیده می شود.
حرکت جنین : بطور متوسط در هفته 20 ولی از هفته 22-16 هم قابل درک است. در حاملگی دوم مادر زودتر از حاملگی اول حرکت جنین را احساس میکند.
معاینات فیزیکی
شامل اندازه گیری قد و وزن و علایم حیاتی مادر است. همچنین یک بررسی از سر تا نوک پا با تاکید بیشتر بر قلب و ریه ها، لگن، پستان ها و نوک پستان انجام می شود. انجام پاپ اسمیر و نمونه ترشحات موکوس واژن برای بررسی گنوره معمولا انجام می شود.
تستهای آزمایشگاهی :
در طی اولین ویزیت تست هایی برای بررسی سلامت مادر و بدست آوردن اطلاعات پایه برای مقایسه آن با تست های بعدی انجام می شود.تست های شمارشCBC ،Hgb HCT ، گروه خونی و Rh تست کومبس، گلوکز خون، VDRL،گنوره، سیفلیس استرپتوکک گروه B در ترشحات واژینال، آنتی ژن هپاتیت B ،HIV و آنالیز ادراری و آلفافتوپروتئین میبا شد.
ویزیتهای بعدی
در یک حاملگی بدون عارضه به شرح زیر است. 1- هر 4 هفته در طی 28 هفته اول 2- هر 2 هفته در طی 36 – 28 هفتگی 3- هر هفته بعد از 36 هفتگی تا زمان تولد نوزاد.
اطلاعات subjective :
حاملگی خواسته بوده است یا نا خواسته؟
مادر چه احساسی دارد
تغییراتی که برای مادر قابل توجه است؟
ناراحتی یا سوالی دارد
وظایف تکاملی را چگونه انجام می دهد؟
اطلاعات Objective
1- فشار خون :هر افزایش فشار ستسیولی به مقدار 30mmHg و دیا ستولی 15mmHg از یک معاینه تا معاینه بعدی باید گزارش شود بهر حال 90/140مناسب است.
2- وزن: 5/12 کیلو گرم افزایش وزن در طی حاملگی که 9 کیلو گرم آن مربوط به پدیده های فیزیولوژیک طبیعی و 5/3 کیلو مربوط به ذخیره چربی در بدن مادر می باشد.
نکته: اندازهمطلق تغییرات وزن مهم نمیباشد بلکه نسبت تغییرات وزن به قد یا BMI مهم می باشد.
3- اندازه رحم: در بینهفتههای30 – 18 اندازه رحم به سانتیمتر بیانگر تعداد هفتههای حاملگی است.
کلمات کلیدی :
ارسالکننده : علی در : 95/5/17 5:44 صبح
مقاله در مورد انواع سازوکار زمانبندی متغیر سوپاپها تحت فایل ورد (word) دارای 17 صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد مقاله در مورد انواع سازوکار زمانبندی متغیر سوپاپها تحت فایل ورد (word) کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
این پروژه توسط مرکز مرکز پروژه های دانشجویی آماده و تنظیم شده است
توجه : در صورت مشاهده بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی مقاله در مورد انواع سازوکار زمانبندی متغیر سوپاپها تحت فایل ورد (word) ،به هیچ وجه بهم ریختگی وجود ندارد
بخشی از متن مقاله در مورد انواع سازوکار زمانبندی متغیر سوپاپها تحت فایل ورد (word) :
انواع سازوکار زمانبندی متغیر سوپاپها
VVT
1. سازوکار تغییر زاویه بادامک
زمانبندی متغیر سوپاپ از نوع تغییر زاویه بادامک سادهترین، ارزانترین، و متداولترین سازوکاری استکه درحال حاضر مورد استفاده قرار می گیرد. اساسا این سازوکار زمانبندی سوپاپها را با تغییر دادن زاویه زمانبندی میل بادامک تغییر میدهد. به عنوان مثال در سرعت زیاد میل بادامک تنفس به اندازه 30 درجه چرخانده میشود تا سوپاپ هوا زودتر بازشود. این حرکت با استفاده از عملگر هیدرولیکی اعمال شده و مقدار جابجایی موردنیاز توسط سیستم کنترل الکترونیک موتور مراقبت و تنظیم میشود.
توجه داشته باشید که سازوکار تغییر زاویه بادامک نمیتواند زاویه بازبودن سوپاپ را تغییر دهد و فقط دیر یا زود باز شدن سوپاپ تنفس را تغییر میدهد. در نتیجه اگر سوپاپ هوا زود باز شود، زود هم بسته میشود و اگر دیر باز شود، دیرهم بسته میشود. همچنین نمیتواند کورس بازشدن سوپاپ را نیز تغییر دهد. با این وجود سادهترین، و ارزانترین شکل سازوکار زمانبندی متغیر سوپاپ محسوب میشود. زیرا برخلاف سایر سازوکارها که برای هر سیلندر یک عملگر مستقل نیاز دارد، این سازوکار برای هر میل بادامک تنها به یک عملگر هیدرولیکی نیاز دارد.
تغییر پیوسته یا گسسته زاویه میلبادامک
سادهترین سازوکار تغییر زاویه بادامک فقط 2 یا 3 نقطه ثابت برای تغییر زاویه دارد، مثلا زاویه 0 و 30 درجه. سیستم بهتر سازوکار تغییر پیوسته زاویه بادامک میباشد که هر زاویهای بین 0 تا 30 درجه را برحسب سرعت پوشش میدهد. واضح استکه بدین ترتیب زمانبندی بهنیه برای هرسرعتی قابل تنظیم است، ضمن آنکه تغییرات نیز با پیوستگی صورت میگیرد که مزیت مهمی است.
برخی طراحیها مانند سیستم :
BMW: VANOS (VAriable NOckenwellenspreizung, Variable Camshaft Lobe Separation)
برروی هر دو میل بادامک تنفس و تخلیه سازوکار تغییر پیوسته زاویه بادامک قرار دارد و موجب میشود تا قیچی سوپاپ یا همپوشانی بیشتری بدست آمده و بازدهی بیشتری حاصل شود. به همین دلیل است که خودروی M3 3.2 از نمونه قبلی خود M3 3.0 که فقط روی میل بادامک تنفس عملگر تغییر پیوسته زاویه بادامک دارد، بازدهی بیشتری داشته و قدرت 100 اسب بخار در هر لیتر تولید میکند.در سری E46 این سازوکار برروی میل بادامک تنفس 40 درجه و بروی میل بادامک دود 25 درجه تغییر زاویه ایجاد میکند.
مثال 1
BMW’s Vanos
(VAriable NOckenwellenspreizung, Variable Camshaft Lobe Separation)
همانطوریکه در شکل دیده می شود، کارکرد این مجموعه بسیار آسان است. به انتهای میل بادامک یک چرخدنده هلیکال متصل شده است. این چرخدنده هلیکال در درون یک فنجانی قرار داشته و میتواند در امتداد محور میل بادامک حرکت خطی داشته باشد. از انجائیکه چرخدنده هلیکال دارای دندانههای مایل مییاشد، در اثر حرکت خطی فنجانی زاویه میل بادامک نسبت به چرخدنـده
تایمینــگ اختـلاف فـاز پیـــــدا میکند و موجب تقدم یا تاخیر در باز و بسته شدن سوپاپها میشود و به همین ترتیب عقب رفتن فنجانی اختلاف فاز در جهت معکوس ایجاد میکند. مقدار جابجایی فنجانی بستگی به اختلاف فشار هیدرولیک دارد. به این ترتیب که در کنار فنجانی دو حفره برای روغن قرار داشته و یک پیستون نازک در وسط آن دو حرکت میکند. جریان روغن بوسیله یک شیر
الکترومغناطیس کنترل شده و روغن به میزان لازم وارد حفره موردنظر در سمت جلو یا عقب پیستون میشود. سپس حرکت پیستون توسط یک محور به فنجانی منتقل و سبب جلو یا عقب رفتن آن شده و در نتیجه مقدار پیش افتادن یا تاخیر در زاویه میل بادامک تنظیم میشود. به عبارت دیگر اگر مطابق شکل سامانه مدیریت موتور فرمان ورود روغن به حفره سبز رنگ را صادر کند، پیستون به طرف میل بادامک حرکت کرده و فنجانی را هم به طرف میل بادامک میراند. در نتیجه موجب پیش افتادگی در زاویه باز و بسته شدن سوپاپها خواهد شد. به این ترتیب تغییر پیوسته زمانبندی سوپاپها براساس موقعیت قرارگیری فنجانی بدست میآید.
مثال 2
Toyota VVT-i
(Variable Valve Timing – Intelligent)
میل بادامک متغیر هوشمند تویوتا در مدلهای مختلف خودروها، از تینی واریس Tiny Yaris تا سوپرا Supra نصب و مورد استفاده میباشد. این مکانیزم کم و بیش شبیه سیستم بکار رفته در BMW است ضمن آنکه تغییر پیوسته زمانبندی سوپاپها را نیز شامل میشود. با این وجود استفاده از لغت هوشمند بخاطر هوشمندی برنامه کنترل آن است. بطوریکه علاوه بر تغییر پیوسته زاویه بادامک براساس سرعت موتور، تغییر آن براساس عوامل دیگر مانند شتاب، شیب روی بطرف بالا و پایین را نیز شامل میشود.
________________________________________
2. سازوکار تعویض بادامک
شرکت هندا در دهه 80 میلادی با ارائه سیستم معروف به VTEC پیشگام استفاده از VVT در خودروهای سواری محسوب میشود. این عنوان در واقع مخفف Valve Timing Electronic Control بوده و برای اولین بار در خودروی Civic CRX و Civic NS-X مورد استفاده قرار گرفت و پس از آن برروی سایر مدلها رایج گردید.
این سیستم در واقع از دو سری بادامک با شکل نیمرخ تشکیل شده تا زمانبندی متفاوتی را تولید نماید. یک سری از بادامکها در شرایط عادی و سرعت کمتر از 4500 دور در دقیقه مورد استفاده قرار میگیرد. مجموعه دیگر بادامکها مربوط به سرعت بیشتر است. بدیهی است که چنین سازوکاری
قادر به تغییر پیوسته زمانبندی دریچه ها نیست و در نتیجه در سرعت کمتر از 4500 دور در دقیقه خودرو حرکت نرمی داشته و در سرعت بیشتر از آن بطور ناگهانی اوضاع تغییر میکند. این مجموعه توان بیشینه را افزایش داده و سرعت دورانی بیشینه موتور را مانند یک خودروی مجهز به میل بادامک مسابقهای، به بیش از 8000 دور دقیقه میرساند و موجب میشود تا در یک موتور 1600 سی سی توان بیشینه 30 اسب بخار افزایش یابد. با این وجود برای رسیدن به چنین توان قابل
توجهی باید سرعت موتور از مقدار معینی بیشتر باشد و رسیدن به آن نیازمند تعویض دنده مکرر خواهد بود. شرکت هندا اخیرا در برخی مدلها سیستم VTEC دو مرحلهای را به یک سیستم 3 مرحلهای توسعه داده است. اگرچه این مجموعه همچنان نسبت به سیستمهای تغییر پیوسته زاویه بادامک ضعیفتر میباشد ولی چون میتواند ارتفاع گشودگی سوپاپها را نیز تغییر دهد، یک سازوکار VVT قدرتمند محسوب میشود.
فهرست انواع خودروها با سازوکار تعویض بادامک
Advantage: Powerful at top end
Disadvantage:2 or 3 stages only, non-continuous; no much improvement to torque; complex
Who use it Honda VTEC, Mitsubishi MIVEC, Nissan Neo VVL
.
مثال1
Honda’s 3-stage VTEC
(Valve Timing Elecrtonic Control)
آخرین سیستم 3 مرحلهای VTEC که برروی خودروی Civic با موتور تک میل بادامک رو در ژاپن بکار رفته در شکل دیده می شود. این سازوکار دارای 3 بادامک با زمانبندی و بر آمدگی مختلف است. لازم به ذکر است که ابعاد و شکل نیمرخ بادامکها نیز با یکدیگر متفاوت میباشد. به عبارت دیگر بادامک سمت راست دارای نیمرخ با بر آمدگی متوسط و سرعت باز و بسته شدن آرام، بادامک سمت چپ دارای نیمرخ با بر آمدگی کم و سرعت باز و بسته شدن آرام، و بادامک میانی دارای نیمرخ با بر آمدگی زیاد و سرعت باز و بسته شدن تند است.
مثال2
Nissan Neo VVL
این مجموعه بسیار شبیه سیستم بکار رفته در هندا بوده ولی بادامکهای سمت چپ و راست دارای منحنی نیمرخ یکسانی هستند. در سرعت کم هر دو بازو مستقل از هم عمل کرده و سرعت حرکت آرامتر و گشودگی کمتر سوپاپها را موجب میشود و در سرعت بالا هر سه بازو به یکدیگر متصل شده و سرعت حرکت تندتر و گشودگی بیشتر سوپاپها را موجب میشود. شاید تصور کنید که این سازوکار یک سازوکار دو مرحلهای است، در صورتیکه مشابه همین سازوکار برای میلبادامک دود نیز وجود داشته و در نتیجه 3 مرحله به شرح ذیل قابل دسترسی میباشد:
1 در سرعت کم هر دو سوپاپ دود و هوا در وضع آرام هستند.
2 در سرعت متوسط سوپاپ هوا در وضع تند و سوپاپ دود در وضع آرام است
3 در سرعت تند هر دو سوپاپ دود و هوا در وضع تند هستند.
شانزده سوپاپ با دو میل بادامک رو
DOHC – 16 Valve
طراحی ویژهای که برای سرسیلندر و محفظه احتراق موتور درنظر گرفته شده از نوع کاملا پیشرفته بوده و برای هر سیلندر چهار سوپاپ برای تنفس و تخلیه درنظر گرفته شده است. یعنی 2 سوپاپ برای ورود مخلوط سوخت و هوا، و 2 سوپاپ برای تخلیه دود. سوپاپهای هوا هر دو در یک طرف سرسیلندر واقع شدهاند و سوپاپهای دود نیز در طرف دیگر. به این ترتیب تنفس و تخلیه موتور تا حد قابل ملاحظه ای بهبود یافته و موجب میشود تا مخلوط هوای ورودی به موتور زیاد شده و متناسب با آن قدرت موتور افزایش یابد. در موتورهای احتراق داخلی چهار زمانه همانطوریکه میدانید تنها در
مرحله احتراق قدرت تولید میشود و در مراحل دیگر شامل مرحله تنفس، تراکم، و تخلیه، کار فقط مصرف میشود. مزیت مهمی که از 16 سوپاپ کردن موتور بدست میآید این استکه هنگام تنفس برای مکیدن مخلوط تازه به درون سیلندر و تخلیه دود به بیرون کار کمتری مصرف خواهد شد زیرا وجود دو دریچه گفته شد که در طراحی موتور امکانات فنی ویژهای مانند: توربوشارژر، 16 سوپاپ با دو میل بادامک رو، زمانبندی متغیر سوپاپ و غیره درنظر گرفته خواهد شد. درباره 16 سوپاپ و دو
میل بادامک بودن مطالبی گفته شد.اکنون میخواهیم مزایای زمانبندی متغیر سوپاپ را بررسی کنیم. زمانبندی سوپاپها چیست و چه اثری بر کارکرد موتور دارد؟ این سؤالی است که پاسخ آن استفاده از مکانیزم زمانبندی متغیر سوپاپها را توجیه خواهد کرد.
زمانبندی متغیـر سوپاپها
V V T
پس از آنکه فنآوری بکارگیری چندسوپاپ برروی موتورها به عنوان یک سازوکار استاندارد درآمد، زمانبندی متغیر سوپاپها قدم بعدی برای بهبود عملکرد حاصل از موتورها انتخاب شد؛ آنهم نه فقط برای افزایش قدرت و گشتاور. همانطوریکه میدانید زمانبندی تنفس و تخلیه توسط شکل و زاویه قرارگیری بادامکها تنظیم میشود. برای آنکه وضع تنفس بهینه باشد، موتور به زمانبندی مختلف سوپاپ در سرعتهای مختلف نیاز دارد. وقتیکه سرعت موتور افزایش مییابد، زمان لازم برای تنفس و تخلیه کم میشود و بنابراین فرصت کافی برای ورود مخلوط تازه به درون موتور و محفظه احتراق و خروج سریع دود از موتور وجود ندارد. بنابراین بهترین راه حل این استکه سوپاپ دود دیرتر بسته شده و سوپاپ هوا زودتر باز شود. به عبارت بهتر همپوشانی سوپاپهای دود و هوا باید متناسب با افزایش سرعت بیشتر شود.
بدون استفاده از فنآوری زمانبندی متغیر سوپاپها، مهندسین مجبورند زمانبندی میانهای را برای موتور انتخاب کنند. برای مثال در یک خودروی باری ممکن است زاویه همپوشانی کمی درنظر گرفته شود زیرا عموما آنرا با سرعت کم میرانند. برعکس یک خودروی مسابقهای نیازمند زاویه
همپوشانی زیاد است زیرا باید در حداکثر سرعت، حداکثر قدرت را داشته باشد. یک خودروی معمولی از زاویه همپوشانی متوسط برخوردار است زیرا چه در سرعت کم و چه در سرعت زیاد باید کارکرد مناسبی داشته باشد و نمیتوان در این خودروها یک ناحیه را قربانی ناحیه دیگر کرد درصورتیکه در خودروی مسابقه یا خودروی باری میتوان ناحیهای از عملکرد را که کمتر مورد
توجه میباشد را قربانی ناحیه دیگر نمود. با استفاده از زمانبندی متغیر سوپاپ، قدرت و گشتاور میتواند در ناحیه وسیعی از سرعت بهینه شود.
کلمات کلیدی :
ارسالکننده : علی در : 95/5/17 5:44 صبح
مقاله در مورد آموزش میکرو کنترلر 8051 تحت فایل ورد (word) دارای 58 صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد مقاله در مورد آموزش میکرو کنترلر 8051 تحت فایل ورد (word) کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
این پروژه توسط مرکز مرکز پروژه های دانشجویی آماده و تنظیم شده است
توجه : در صورت مشاهده بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی مقاله در مورد آموزش میکرو کنترلر 8051 تحت فایل ورد (word) ،به هیچ وجه بهم ریختگی وجود ندارد
بخشی از متن مقاله در مورد آموزش میکرو کنترلر 8051 تحت فایل ورد (word) :
آموزش میکرو کنترلر 8051
قبل از همه چیز چرا 8051 ؟
میکرولنترلر 8051 پایه و اساسی است برای یادگیری دیگر میکروکنترلر ها دستورات اسمبلی این میکرو نسبت به AVR خیلی کمتر هست و دارای امکانات کمتری نسبت به دیگر میکرو ها است به همین دلیل یادگیری و فهم آن خیلی راحت و آسان می باشد که برای شروع ابتدا باید مفاهیم منطق و دیجیتال را خوب فهمیده باشید و بعد از آن باید سخت افرار 8051 و RAM
و ROM داخلی آن را درک کرده باشید تا بتوانید یک برنامه کاربردی بنویسید تا یک پروسه را کنترل کند. خیلی ها برای یادگیری میگن که ما که می خواهیم برنامه نویسی میکرو را یاد بگیرم پس بهتر بالاترین میکرو یعنی AVR یا PIC یاد بگیریم در صورتی که به نظر من کاملا اشتاه بوده و کار غلطی است که اگه بخواهید تا آخر ادامه دهید کاری طاقت فرسا خواهد بود. مثل این خواهد بود که سقف طبقه اول یک ساختمان را درست نکرده باشیم و بخواهیم طبقه دوم را درست
کنیم. در این وبلاگ من تا بتوانم به زبان ساده و روان مطالب را بیان خواهم کرد که البته اگه یکم علاقه و پشتکار داشته باشد مطمئن باشید به میکرو مسلط خواهید شد و می توانید آن را به راحتی برنامه ریزی کنید. قیمت این میکرو خیلی ارزان می باشد در حدود 1000 تومان و حافظه ROM آن قابل پاک کردن و استفاده مجدد می باشد پس شما به راحتی می توانید در خانه یا محل کار برای راحتی خود و افراد خانواده چیزهایی با آن بسازید که آدم باورش نشه که اینو خودش ساخته و طراحی کرده.
تشریح پایه های 8051 و RAM و ROM داخلی آن
8051 دارای 4 پورت ورودی یا خروجی می باشد یعنی اینکه هر کدام از این پورت ها را می توان در یک لحظه به عنوان ورودی استفاده کرد و همان پورت را دوباره در یک لحظه دیگر به عنوان خروجی از آن استفاده کرد. منظور از پورت چیست؟ پورت در میکرو یعنی 8 عدد پین یا 8 خط دیتا یا ذر اصطلاح 8بیتی، که 8051 دارای 4 پورت 8 بتی یعنی 32 پایه می باشد.
میکرو کنترلر AT89C51 دارای 128 بایت RAM و 4KB حافظه برنامه ROM می باشد. و AT89C52 دارای 256 بایت RAM و 8KB حافظه برنامه ROM می باشد. و AT89C55 دارای 256 بایت RAM و 20KB حافظه برنامه ROM می باشد. که بستگی به حجم برنامه ما دارد که از کدام میکرو استفاده کنیم.
کاربرد RAM چست؟ اصلا به چه دردی می خوره؟
RAM یعنی random access memory حافظه با دستیابی تصادفی. از این حافظه برای ذخیره اطلاعات موقت استفاده می شود یعنی اینکه تا زمانی که تغذیه میکرو وصل باش
د این اطلاعات از بین نمی روند و با قطع کردن تغذیه این اطلاعات از بین می روند. ما در میکرو 8 ثبات 8 بتی برای ذخیره کردن داده ها داریم در بعضی از مواقع پیش می آید که این 8 ثبات در کل برنامه استفاده شوند و ما به یک ثبات 8 بیتی برای ذخیره سازی داده ها داریم مثلا یک شمارنده طراحی کردیم و همه ثبات ها هم استفاده شده و ما مثلا به دو ثبات احتیاج دار
یم که می توانیم از هر کدام از خانه های RAM استفاده کنیم. منظور از اطلاعات همان داده های 8 بیتی می باشند یعنی همون 0 یا 1 ها که به 8 تا از آنها یک بایت یا یک داده 8 بیتی می گویند.
حال به تقسیم بندی RAM توجه کنید. برای برنامه نویسی خیلی مهم است که ما از چه خانه های RAM مجاز هستیم استفاده کنیم آیا می توانیم در فلان خانه RAM داده را به صورت بیتی دستکاری کنیم یا داده را 8 بیتی دستکاری کنیم. اصلا در چه محدوده ای از RAM قادر هستیم داده ذخیره کنیم یا بانک های ثباتی در کجای RAM واقع شده اند و دیگر ثبات ها; به جدول زیر که مربوط به RAM خوب توجه کنید:
عملکرد ثبات خانه های 8 بتی RAM آدرس
FF
ثبات B B F0 F1 F2 F3 F4 F5 F6 F7 F0
ثبات A یا انباره ACC E0 E1 E2 E3 E4 E5 E6 E7 E0
کلمه وضعیت PSW D0 D1 D2 D3 D4 D5 D6 D7 D0
IP B8 B9 BA BB BC — — — B8
پورت 3 P3 B0 B1 B2 B3 B4 B5 B6 B7 B0
کنترل وقفه ها IE A8 A9 AA AB AC — — AF A8
پورت 2 P2 A0 A1 A2 A3 A4 A5 A6 A7 A0
ارتباط سریال SBUF قابل آدرس دهی نیست 99
SCON 98 99 9A 9B 9C 9D 9E 9F 98
پورت 1 P1 90 91 92 93 94 95 96 97 90
بایت سنگین تایمر 1 TH1 قابل آدرس دهی نیست 8D
بایت سنگین تایمر 0 TH0 قابل آدرس دهی نیست 8C
بایت سبک تایمر 1 TL1 قابل آدرس دهی نیست 8B
بایت سبک تایمر 0 TL0 قابل آدرس دهی نیست 8A
مد تایمر TMOD قابل آدرس دهی نیست 89
مد شمارنده TCON 88 89 8A 8B 8C 8D 8E 8F 88
PCON قابل آدرس دهی نیست 87
بایت سنگین ثبات DPTR DPH قابل آدرس دهی نیست 83
بایت سبک ثبات DPTR DPL قابل آدرس دهی نیست 82
اشاره گر پشته SP قابل آدرس دهی نیست 81
پورت 0 P0 80 81 82 83 84 85 86 87 80
فقط بایتی 80 بایت برای خواندن و نوشتن موقت 30تا7F
بیتی و بایتی 16 بایت برای خواندن و نوشتن موقت 20تا2F
بانک های ثباتی شامل R0-R7 R0-R7 بانک 3 18تا1F
R0-R7 بانک 2 10تا17
R0-R7 بانک 1 08تا0F
R0-R7 بانک 0 00تا07
MGH MGH MGH MGH
8051 در کل 128 بایت RAM دارد که به صورت جدول بالا تقسیم بندی می شود:
1) 32 بایت از مکان های 00 تا 1F برای بانک های ثباتی و پشته کنار گذاشته شده.
2) 16 بایت از 20 تا2F برای خواندن و نوشتن آدرس پذیر بیتی کنار گذاشته شده.
3) 80 بایت از مکان های 30 تا7F برای خواندن و نوشتن بایتی و یا آنچه که عموما داده موقت گفته می شو به کار می رود.
نکته: جلوی خانه هایی که نوشته شده قابل آدرس دهی نیست یعنی اینکه نمی توان با آدرس هگز آن از این ثبات استفاده کرده به عنوان مثال برای SBUF در برنامه نویسی حتما باید خود SBUF را نوشت یعنی از آدرس هگز آن نمی توان استفاده کرد. ولی در بقه موارد مجاز هستیم. با یک مثال این قضیه را روشن می کنیم:
MOV A,#60H یعنی عدد 60 در مبنای هگز را در انباره کپی کن. حال این دستور را این طوری هم می توان نوشت یعنی از آدرس A استفاده کرد. MOV E0,#60H
در RAM /8051 ما چهار بانک ثباتی داریم که هر بانک داری 8 بایت(R0تاR7) 8بیتی می باشد یعنی:
بانک صفر
R7 D0 D1 D2 D3 D4 D5 D6 D7
R6 D0 D1 D2 D3 D4 D5 D6 D7
R5 D0 D1 D2 D3 D4 D5 D6 D7
R4 D0 D1 D2 D3 D4 D5 D6 D7
R3 D0 D1 D2 D3 D4 D5 D6 D7
R2 D0 D1 D2 D3 D4 D5 D6 D7
R1 D0 D1 D2 D3 D4 D5 D6 D7
R0 D0 D1 D2 D3 D4 D5 D6 D7
بقیه بانک ها نیز مانند جدول بانک صفر می باشد از این ثبات ها در برنامه نویسی خیلی زیاد استفاده می شودند.نحوی انتخاب بانک یا تغییر دادن آن به صورت زیر می باشد:
8051 هنگامی روشن می شود بانک صفر به صورت پیش فرض برای بانک ثباتی خود انتخاب می کند که برای تغییر دادن آن می توانیم به صورت زیر عمل کنیم.
RS0(PSW.3) RS1(PSW.4)
0 0 بانک صفر
1 0 بانک یک
0 1 بانک دو
1 1 بانک سه
به کمک دستورات بیتی می توان این بانک را تغییر داد به مثال زیر توجه کنید می خواهیم بانک 3 را به عنوان بانک ثباتی میکرو تغییر دهیم؟
SETB PSW.4
SETB PSW.3
می خواهیم بانک دو را انتخاب کنیم؟
SETB PSW.4
CLR PSW.3
پشته:
هنگامی که 8051 روشن می شود اشارگر پشته به صورت پیش فرض عدد 07 را در خود دارد که نهایت با عث انتخاب بانک 1 برای پشته خود می شود. SP=07H
برای تغییر پشته به مکان دیگری ازRAM یا بانک دیگری می توان به کمک دستور زیر پشته را تغییر داد: MOV SP,#XX که XX آدرس آن مکان از RAM می باشد.
حال کاربرد پشته چیست؟ پشته کاربرد زیادی دارد شاید ما زیاد با آن سرو کار نداشته باشیم ولی CPU با آن خیلی کار دارد به عنوان مثال برای اجرای یک زیر برنامه(برنامه فرعی) مثلا CALL LABEL پردازنده آدرس این مکانی را که در آن به این دستور برخورد کرده، را در پشته خود ذخیره می کند و بعد از اجرای پشته به کمک این آدرس بر می گردد تا ادامه برنامه اصلی را انجام دهد.
برای درج داده رد پشته از دستور PUSH استفاده می کنیم و برای بازیافت داده از پشته از دستور POP استفاده می کنیم. با هر بار درج در پشته اشارگز پشته یک واحد به آن اضافه می شود. و با هر بار بازیافت از پشته اشارگر پشته یک واحد از آن کم می شود.
ROM چیست؟
این حافظه از دست ما خارج است یعنی اینکه فقط توسط کامپیوتر می توان برنامه اصلی را توی این حافظه کپی کرد و ما بعدا توسط خود میکرو نمی توانیم محتوای آن را تغییر دهیم بلکه فقط می توانیم اطلاعات را این حافظه به حافظه RAM انتقال داده و بعد از پردازش می توان آنها را به خروجی فرستاد.
پایه RST(9) ریست
با فعال شدن این پایه یعنی یک شدن به مدت حداقل 2 سیکل ماشین میکرو ریست شده و به خانه 0000H پرش کرده و ار آنجا شروع به خواندن برنامه می کند.
پایه EA
اگر این پایه را یک کنیم میکرو برنامه را از ROM داخلی خودش شروع به خواندن می کند و اگر این پایه را صفر کنیم میکرو از ROM داخلی خودش هیچ اطلاعاتی نمی خواند و با برنامه ریزی که شده از ROM بیرونی شروع به خواندن اطلاعا
ت می کند.
پایه PSE
این پایه برای زمانی است که بخواهیم از RAM یا ROM بیرونی استفاده کنیم که بسته به شرایط یا صف می شود یا یک.
پایه ALE
اگر از RAM یا ROM بیرونی استفاده کنیم این پایه پورت صفر را به عنوان خطوط آدرس معرفی می کند.
دستور EQU و DB
البته این دو دستور جزء قالب های دستوری 8051 نیست یعنی اصلا میکرو چنین دستوری را ندارد و اجرا هم نمی کند. این دو دستور را فقط کامپایلر ها می شناسد که به رهنمون هم معرف هستند اینها برای راحتی کار و برنامه نویسی هستند.
EQU به کمک این دستور می توان یه متغیر تهریف کنیم مثلا ما در یک پروژه داریم که در آن یک کلید به نام OK وجود دارد ما می خواهیم OK را روی بیت 3 از پورت 2 قرار دهیم یعنی اینکه P2.3=OK برای راحتی کار در طول برنامه ممکن از این کلید بخواهیم زیاد استفاده کنیم به همین دلیل اول برنامه این بیت را به متغییر OK نسبت می دهیم به روش زیر:
OK EQU P2.3
…………………….
JB OK,LOOP
برنامه اینطور می باشد که P2.3 به OK اختصاص داده شده و در برنامه اصلی ما می خواهیم که هر گاه این بیت یک شد به آدرس LOOP پرش کند. پس ما می نویسیم اگر OK یک شده به LOOP پرش کن.
DB اگه با LCD سرو کار داشته باشیم برای نمایش پیغام ها روی LCD باید کد اسکی آنها رو نوشت که خیلی کار سخت و وقت گیری به همین دلیل در برنامه پیغام خود را به صورت زیر می نویسیم:
ORG 600H
DB ‘WWW.MC8051.BLOGFA.COM’
ابتدا باید مکان این پیغام را مشخص کنیم مثلا من در خانه 600 ROM این عبارت را نوشته توجه شود که هر کاراکتر 8 بیت دارد و هر یک از آنها در خانه 600و601و602و603 تا;. قرار می گیرد. قالب دستور به این صورت می باشد DB ‘ ‘ متن یا پیغام را باید حتما بین این دو علامت نوشت تا کامپایلر متوجه شود که متن ما همینی هست که توی این دو تا علامت قرار دارد و بعد از این علامت جزء پیغام ما نیست.
دستور MOV
این دستور پر کاربرد ترین دستور در میکرو می باشد معنی این دستور هم کپی کردن هست و انتقال دادن به مثال های زیر توجه کنید!
MOV A,#80H عدد 80 را در انباره کپی کن
MOV R1,#50H عدد50 را در ثبات R1 کپی کن
MOV P1,A محتوای انباره روی پورت 1 انتقال بده
مثال : برنامه یک چشمک زن بنویسید با دو تا LED که روی بیت های P1.1 , P1.2 وصل شده اند؟
ابتدا بیتهای پورت یک را به صورت زیر می نویسیم و کد هگز آن را بدست می آوریم توجه شود که باید حتما بعد از کد H بنویسیم.
P1 D0 D1 D2 D3 D4 D5 D6 D7
02 0 1 0 0 0 0 0 0
04 0 0 1 0 0 0 0 0
عدد 2 را روی پورت 1 انتقال بدهSTART: MOV P1,#02H
یک تاخیر ایجاد کن ACALL DELAY
عدد 4 را روی پورت 1 انتقال بده MOV
به اول برنامه بر گردد و مراحل را تکرار کن SJMP START
یک زیر برنامه تاخیریDELAY:
نکته بجای اینکه کد هگز را بدست بیاوریم می توانیم از قاعد زیر استفاده کنیم فقط توجه شود که باید از حرف B حتما استفاده کنیم.MGH
MOV P1,#00000010B , MOV P1,#00000100B
انواع مدهای آدرس دهی
الف) آدرس دهی ثباتی
این روش آدرس دهی به صورت ثباتی انجام می گیرد یعنی اینکه ثبات با ثبات کپی می شوند.
محتوای یکی از ثبات های 1 تا 7 را در انباره کپی می کندMOV A,R1…R7
محتوای R3 در خانه 30 از RAM کپی می شود MOV 30H,R3
ب) آدرس دهی مستقیم
یعنی اینکه ثبات با ثبات یا خانه ای از RAM با خانه ای دیگر به طور مستقیم و بدون واسطه انجام می گیرد.
محتوای R5 در R4 کپی می شودMOV R4,R5
محتوای ثبات B در انباره کپی می شودMOV A,B
محتوای خانه 30 از RAM در ثبات R3 کپی می شود MOV R3,30H
محتوای خانه 30 از RAM در ثبات B کپی می شود MOV B,30H
ج) آدرس دهی غیره مستقیم
همانطور از اسمش پیداست به صورت غیر مستقیم دیتایی از یک نقطه به نقطه دیگر کپی می شود.
محتوای خانه ای از RAM که آدرس آن در ثبات R0 می باشد را در انباره کپی کن MOV A,@R0
محتوای خانه ای از RAM که آدرس آن در ثبات R1 می باشد را در ثبات B کپی کن MOV B,@R1
محتوای خانه ای از RAM که آدرس آن در ثبات R0 می باشد را در خانه 40Hاز RAM کپی کن MOV 40H,@R0
محتوای خانه ای از RAM که آدرس آن در ثبات R1 می باشد را در TL0 کپی کن MOV TL0,@R1
نکته: برای آدرس دهی غیر مستقیم تنها مجاز هستیم از R0 و R1 استفاده کنیم.
از این نوع آدرس دهی بیشتر در مواردی استفاده می شود که بخواهیم خانه های زیادی از RAM را بخوانیم یا در آن چیزی بنویسیم که باعث کاهش بسیار زیاد تعداد دستورات می شود برای واضح تر شدن به این نوع آدرس دهی به مثال زیر توجه کنید.
برنامه بنویسید تا عدد 50H را در 20 خانه از RAM با آدرس شروع 40H کپی نماید؟
عدد 20H را در R5 کپی کن MOV R5,#20H
عدد 40H را در R0 کپی کن MOV R0,#40H
عدد 50H را در آدرسی که R0 دارد کپی کن START: MOV @R0,#50H
یک واحد به R0 اضافه کن INC R0
یک واحد از R5کم کن اگر صفر نشده به برچسپ START پرش کن DJNZ R5,START
برنامه به این صورت کار می کند که ابتدا عدد 20 که معادل14H می باشد در R5 کپی می شود که بعنوان شمارنده بکار می رود تا فقط 20 خ
انه از RAM را اطلاعات در آن کپی کند. به ثبات R0 مقدار 40H یعنی اولین خانه ای که باید در آن این اطلاعات کپی شود را قرار می دهیم در خط بعدی عدد 50H در آدرسی که R0 دارد کپی می شود یعنی در خانه 40H و در خط بعدی یک واحد به R0 اضافه می شود تا در تکرار بعدی عدد 50 در خانه 41H کپی شود. در آخرین خط برنامه یک واحد از R5 کم می شود تا به 19 و 18 و 17و در نهایت به صفر برسد و عدد 50 در 20 خانه از RAM کپی شود.MGH
د) آدرس دهی فوری
هرگاه از علامت پوند (#) در پشت یک عدد استفاده کردیم آدرس دهی فوری می شود یعنی اینکه فورا عددی در ثبات و یا در خروجی انتقال می یابد.
MOV A,#05H
MOV R1,#85H
MOV @R1,#60H
دستور MOVC A,@A+DPTR
از این دستور بیشتر برای رفتن به خانه های از حافظه با آدرس بیشتر از FF که دیگر دستورات قادر به انجام آن نخواهند بود استفاده می شود. طرز کار این دستور به این گونه است که چون DPTR یک ثبات 16 بیتی می باشد قادر است تا از 0000 تا FFFF را در خود ذخیره کند. پس محتوای DPTR با محتوای انباره جمع می شود و تشکلیل یک آدرس را می دهند که میکرو به این آدرس رفته و محتوای 8 بیتی آن را در انباره کپی میکند. این دستور کاربرد های فراونی دارد از جمله در آوردن اطلاعات یا یک متن یا پیغام از حافظه ROM و نمایش بر روی LCD .عملکرد ان در آوردن اطلاعات مشابه قسمت ج) در مثال بالا می باشد.MGH
آموزش میکرو کنترلر 8051 قسمت اول (سخت افزار)
آموزش میکرو کنترلر 8051 قسمت سوم (معرفی دستورات)
جمع و تفریق بی علامت )دستور (ADD
از این دستور برای جمع دو داده 8 بیتی استفاده می شود. برای عمل جمع حتما باید یکی از داده ها در انباره A باشد و دیگری می تواند در یکی از ثباتها یا داده فوری باشد.
قالب دستور: ADD A,SOURCE
مثال عدد 10H را با E5 جمع کنید؟
ابتدا یک از اعداد را به طور دلخواه در انباره
ریخته و سپیس عدد دیگر را با انباره جمع می کنیم
MOV A,#10H 10H
ADD A,#0E0H +E5H =F5H A=F5H
نکته: اگر بعد از علامت پوند # عددی در مبنای هگز باشد که بایت سنگین آن یکی از حروفهای A تا F باشد باید حتما بین این حروفها و # صفر قرار دهیم تا کامپایلر آن را یک عدد در مبنای هگز بشناسد نه یک حرف انگلیسی.
بعد از عملیات جمع نتیجه حاصل جمع در خود انباره قرار می گیرد.
جمع اعداد 16 بتی دستور ADDC
از این دستور برای جمع دو داه 16 بیتی استفاده می شود البته نه اینکه مستقیما داده 16 بیتی را با هم جمع می کند بلکه ما ابتدا باید این داده 16 بتی را به داده 8 بتی تجزیه کردن و با هم جمهع کنیم برای این کار اگر با 8 بیتی اول عدد اول را با 8 بیت اول عدد دوم جمع کنیم اگر رقم نقلی تولید شود این دستور به طور اتوماتیک این رقم نقلی را با بایت دوم عدد اول و دوم جمع می کند به مثال زیر توجه کند!
مثال می خواهیم عدد 3CE7+3B8D را در مبنای هگز با هم جمع کنیم. برای جمع ابتدا پرچم کری را صفر می کنیم چون ممکن است از قبل توسط برنامه ای دیگر یک شده باشد. سپس این داده 16 بیتی را به داده 8 بیتی تجزیه می کنیم. می دانیم که در میکر همه چیز 8بتی می باشد پس از جمع دو داده 16 بیتی مطمئنا یک داده 16 بزرگتر تولید می شود برای همین ما بایت سبک را در R1 قرار می دهیم و بایت سنگین را در R2 قرار می دهیم البته این یک فرض دلخواه می باشد شما می توانید این داده را در هر ثباتی قرار دهید و از حاصل این جمه در جایی دیگر استفاده کنید.
CLR C
MOV A,#0E7H
ADD A,#8DH
MOV R1,A
MOV A,#3CH
ADDC A,#3BH
MOV R2,A
اصول کار ADDC در اصل این است که دو عمل جمع را انجام می دهد یعنی اینکه ابتدا عدد 3C را با عدد 3B جمع کرده و نتیجه این محاسبه را دوباره با مقدار کری یعنی CY=1 جمع می کند و نتیجه نهایی را در انباره قرار می دهد.
1
3CE7
در این مثال از جمع E7+8D یک رقم نقلی تولید می شود که در نتیجه پرچم کری برابر با 1 خواهد شد که نشانگر انشار رقم نقلی از بایت پایین به بایت بالا می باشد که در خط بعدی برنامه این رقم نقلی با حاصل جمع بایت های سنگین نیز جمع خواهد شد.
دستور DA A
از این دستور برای جمع BCD استفاده می شود همانطور که می دانیم اعداد ما از 0 تا 9 می باشد که در میکرو بعد از جمع ممکن است این حاصل جمع BCD نباشد و برای ما قابل فهم نیست یعنی اینکه قابل نمایش روی سون سگمنت یا LCD نیست که برای حل این مشکل از دستور DA A استفاده می شود قابل ذکر است که این دستور تنها بعد از دستور جمع و با انباره می تواند کار کند یعنی اینکه قبل از DA A باید از دستور جمع حتما استفاده شود. عددی که قرار است برای BCD بودن تست شود اول باید انباره قرار گیرد و سپس از این دستور استفاده کنیم. این دستور یک بایت را چک می کند و در صورت لزوم به نیبل پایین عدد 6 را اضافه می کند تا این BCD استاندارد شود و برای نیبل بالا عدد 6 یعنی 60 را اضافه می کند. به مثال های زیر توجه کنید!
17H+28H=3FH=00111111B
عدد F یک عدد BCD نمی باشد همانطور که می دانیم حداکثر عدد یعنی 9 دارای کد 1001 می باشد که در نیبل پایین این عدد 1111 می باشد برای BCD کردن آن به صورت زیر عمل می کنیم. ابتدا عدد را در انباره قرار داده و سپس از دستور DA A استفاده می کنیم دستور به طور خودکار عدد 6 را به نیبل پایین اضافه می کند.
MOV A,#17H 17
ADD A,#28H +28
DA A 3F+06=45H
برای نیبل بالا هم همین مراحل انجام می گیر البته همانطور گفتیم این دستو خودکار است یعنی اینکه اگر خود حاصل جمع BCD بود دیگر عدد 6 را اضافه نمی کند.
تفریق اعداد بی علامت (SUB SUBB)
البته دستور تفریق دو نوع می باشد یکی SUB و دیگری SUBB تفریق با قرض. در بسیار از میکرو پروسسورها این دو نوع دستور وجود دارد حال در8051 فقط SUBB وجود دارد برای تبدیل SUBB به SUB کافی است که قبل از اجرای این دستور CY=0 گردد.
SUBB با CY=0
8051 و دیگر پردازنده های مدرن از روش متمم 2 برای تفریق استفاده می کنند.
برای مثال عدد 3F-23 را انجام م دهیم:
CLR C CY=0
MOV A,#3FH A=3F
MOV R1,#23H R1=23
SUBB A,R1 A-R1 = 1C
اگر بعد از اجرای SUBB پرچم CY=1 گردد نتیجه عملیات منفی بوده و اگر CY=0 گردد نتیجه عملیات مثبت بوده. حال اگر نتیجه منفی بود CPU آن را به صورت متمم 2 رها میکند که باید خود برنامه نویس با استفاده از دستوات شرطی نتیجه را به کمک دستور CPL (یعنی متمم کردن) و دستور INC (یک واحد اضافه کردن) تغییر دهد.
مثال عدد 6E از 4C کم شود و نتیجه تفریق در ثبات R1 قرا گیرد؟
در این برنامه اگر نتیجه مثیت باشد که MGH پرش می کند و حاصل را د R1 قرار می هد و اگر نتیجه منفی باشد ابتدا محتوا انباره متمم می شود و سپس یک واحد به آن اضافه می شود که در نهایت نتیجه برایر خواهد بود با -22
پرچم کری برابر صفر گردد CLR C
عدد 4C در انباه قرار گیرد MOV A,#4CH
عدد 6E از انباره کم شود SUBB A,#6E
اگر پرچم کری صفر است به MGH پرش کن JNC MGH
محتوای انباره را متمم کن CPL A
یک واحد به انباره اضافه کن INC A
محتوای انباره را در R1 کپی کن MGH: MOV R1,A
SUBB با CY=1
از این دستور برای تفریق اعداد 16 بیتی استفاده می شود که از قرض عملوند پایین تر مراقبت می کند. اگر CY=1 باشد بعد از اجرای دستور SUBB عدد 1 از حاصل تفریق کم خواهد شد. به مثال زیر توجه کنید!
می خواهیم عدد 2762-1296 را از هم کم کنیم؟ بایت سبک در R1و بایت سنگین در R2
کری برابر با صفر شود CLR C
عدد 62 را در انباره بریز MOV A,#62H
عدد 96 را از انباره کم کن که از این کم کردن پرچم کری 1 خواهد شد SUBB A,#96H
نتیجه این دو بایت را در R1 قرار بده MOV R1,A
عدد 27 را در انباره کپی کن MOV A,#27H
عدد 12 را از انباره کم کن و این نتیجه را اگر CY=1 است از 1 هم کم کن SUBB A,#12H
نتیجه را در R2 قرار بده MOV R2,A
توضیح برنامه: ما در اول برنامه پرچم کری را به کمک دس
تور CLR صفر کردیم حال برای تفریق این عدد 16 بتی را به دو عدد 8 بتی تجزیه کرده و از هم کم می کنیم از تفریق عدد 96 از 62 پرچم کری ما یک می شود و این نشان دهنده منفی بودن عملیات است و در تفریق دو بایت بعدی میکرو دو بایت سنگین را از هم کم می کند و سیپس نتیجه هر چه بود به پرچ کری نگاه می کند می بیتد که CY=1 شده بود از قیل، پس این نتیجه را از 1 کم می کند و نتیجه را در R2 قرار می دهد.
قضیه اعدا مثبت و منفی در دیجیتال
در دیجیتال ما بیت آخر را به عنوان علامت مثبت و منف
ی اعدد استفاده می کنیم به این صورت که اگر بیت آخر که با رنگ قرمز نشان داده شده صفر بود نشانگر مثبت بودن عدد می باشد و اگر یک بود یعنی اینکه عدد منفی می باشد پس ما تنها از 7 بیت برای مقدار عدد می توانیم استفاده کنیم. به محاسبه عدد زیر توجه کنید؟
0 1 0 0 0 1 1 0 = 62H
0 1 1 0 1 0 0 1 = -96H
در میکرو CPU عمل جمع را جمع می کند و عمل تفریق را هم جمع می کند چون طراحی مدار تفریق گر در CPU مشکل است از همان جمع کننده استفاده کرده اند اما برای تفریق CPU مراحل زیر را انجام می دهد.
1) ابتدا عدد منفی را متمم کرده (مکمل 1)
2) سپس یک واحد به آن اضافه می نماید (مکمل 2)
CPU دو عدد بالا را برای تفریق به صورت زیر انجام می دهد:
با عدد 62 که خودش مثبت می باشد کاری ندار و فقط روی عدد منفی به صورت زیر کار می کند.
0 1 0 0 0 1 1 0 = 62H ثابت می ماند
0 1 1 0 1 0 0 1 = -96H معادل باینری این عدد
1 0 0 1 0 1 1 0 متمم کردن فقط عدد 96
1 + با عدد 1 جمع می شود
0 1 0 1 0 1 1 0 = 6AH نتیجه بعد از جمع با عدد 1
0 1 0 0 0 1 1 0 = 62H
0 1 0 1 0 1 1 0 = 6AH حال این نتیجه را با عدد 62 جمع می کنیم
0 0 1 1 0 0 1 1 = CCH نتیجه نهایی پایان کار CPU
برای اینکه نتیجه را به دسیمال تبدیل که بفهمیم نتیجه عملیات چند بوده به شکل زیر عمل می کنیم
0 0 1 1 0 0 1 1 = CCH نتیجه نهایی را دوباره متمم می کنیم
1 1 0 0 1 1 0 1 البته در ابن مرحله بیت علامت را متمم نمی کنیم
1 +
0 0 1 0 1 1 0 1 = دسیمال عدد همرا با بیت علامت آن
4 3 – = -34H که -34H معادل -52 دسیمال می باشد
با توجه به جدول بالا که به وضوحنشان داده ش
ده که چطوری اعدا منفی از هم تفریق می شود فهمیدیم که اگر عدد ما علامت دار باشد در نتیجه 7 بیت اول مقدار عدد می شود و بیت آخر علامت عدد می شود که این بیت آخر روی پرچم کری تاثیر دارد یعنی اینکه اگر این بیت 1 شود در اصل پرچم کری یک شده و وقتی کری 1 شود CPU متوجه می شود که نتجه محاسبه منفی بود.
کلمات کلیدی :