تارا فایل

پردازش دیجیتالی تصویر ، معرفی میکرو کنترلر 8051


پیشگفتار:
با ساخت وسایل الکترو مغنا طیسی نظیر انواع الکتروموتورها، بوبین ها ،رله ها وغیریه ،انسان قادر شد با بهره گیری از الکترونیک ، کنترل ابزارهای مکانیکی را در دست گیرد و سر انجام با پیدایش میکرو پروسسورها و با توجه به توانایی آنها در پردازش اطلاعات و اعمال کنترلی و همچنین قابلیت مهم برنامه پذیر بودن آنها تحول شگرفی در ساخت تجهیزات الکترونیکی و صنعتی وغیره به وجودآمد.
پیشرفت ها و تحولات اخیر باعث پیدایش اتوماسیون صنعتی شده که در بسیاری از موارد جایگزین نیروی انسانی می گردد.به عنوان نمونه انجام امور سخت در معادن و یا کارخانه ها و یا کارهایی که نیازمند دقت وسرعت بالا می باشد و یا انجام آن برای نیروی انسانی خطر آفرین است به انواع دستگاهها و رباتها سپرده شده است. همچنین با پیشرفت الکترونیک در زمینه ساخت سنسورها . بالا رفتن دقت آن ها، امروزه انواع گوناگونی از حس گرها در دنیا تولید می شود که در ساخت رباتها و در زمینه اتوماسیون نقش مهمی را ایفا می کنند.
در این پایان نامه پس از مباحثی در مورد پردازش دیجیتالی تصویر ، معرفی میکرو کنترلر 8051 بصورت مختصر و در حد نیاز و بخش کوچکی در مورد استپ موتورها به طراحی وپیاده سازی نمونه ای کوچک از یک ماشین مسیر یاب پرداخته شده است .شایان ذکر است که مطالب مربوط به طراحی وساخت ماشین بگونه ای بیان شده که توسط هر فردی که آشنایی مختصری با میکرو کنترلرها داشته باشد، قابل پیاده سازی است.
در خاتمه از استاد گرانقدر جناب آقای همایون موتمنی و نیز تمام کسانی که در این امر مرا یاری دادند، از جمله مهندس فیض ا… خاکپور و نیز دوست عزیزم مهدی جعفری ، تشکر و قدردانی می نمایم.

فصل اول

آشنایی با ماشین بینایی و تصویر برداری دیجیتالی
1-1کلیات
تکنولوژی ماشین بینایی وتصویر بر داری دیجیتالی شامل فرایند هایی است که نیازمند بکارگیری علوم مختلف مهندسی نرم افزار کامپیوتر می باشد این فرایند را می توان به چند دسته اصلی تقسیم نمود :
1- ایجاد تصویر به شکل دیجیتالی
2- بکارگیری تکنیکهای کامپیوتری جهت پردازش ویا اصلاح داده های تصویری
3- بررسی و استفاده از نتایج پردازش شده برای اهدافی چون هدایت ربات یا کنترل نمودن تجهیزات خود کار ، کنترل کیفیت یک فرایند تولیدی ، یا فراهم آوردن اطلاعات جهت تجزیه و تحلیل آماری در یک سیستم تولیدی کامپیوتری (MAC)
ابتدا می بایست آشنایی کلی ، با هر یک از اجزاء سیستم پیدا کرد و از اثرات هر بخش بر روی بخش دیگر مسطح بود . ماشین بینایی و تصویر بر داری دیجیتالی از موضوعاتی است که در آینده نزدیک تلاش و تحقیق بسیاری از متخصصان را بخود اختصاص خواهد بود.
در طی سه دهه گذشته تکنولوژی بینایی یا کامپیوتری بطور پراکنده در صنایع فضایی نظامی و بطور محدود در صنعت بکار برده شده است . جدید بودن تکنولوژی ، نبودن سیستم مقرون به صرفه در بازار و نبودن متخصصین این رشته باعث شده است تا این تکنولوژی بطور گسترده استفاده نشود .
تا مدتی قبل دوربین ها و سنسورهای استفاده شده معمولا بصورت سفارشی ومخصوص ساخته می شدند تا بتوانند برا ی منظورخاصی مورد استفاده قرار گیرند همچنین فرایند ساخت مدارهای مجتمع بسیار بزرگ آنقدر پیشرفت نکرده بود تا سنسورهای حالت جامد با رزولوشن بالا ساخته شود .
استفاده از سنسورهای ذکر شده مستلزم این بود که نرم افزار ویژه ای برای آن تهیه شود و معمولا این نرم افزارها نیز نیاز به کامپیوتر هایی با توان پردازش بالا داشتند. علاوه بر همه این مطالب مهندسین مجبور بودند که آموزشهای لازم را پس از فراغت از تحصیل فرا گیرند . زیرا درس ماشین بینایی در سطح آموزشهای متداول مهندسی در دانشگاهها وبه شکل کلاسیک ارائه نمی شد .
تکنولوژی ماشین بینایی در دهه آینده تاثیر مهمی بر تمامی کارهای صنعتی خواهد گذاشت که دلیل آن پیشرفتهای تکنولوژی اخیر در زمینه های مرتبط با ماشین بینایی است واین پیشرفتها در حدی است که استفاده از این تکنولوژی هم اکنون حیاتی می باشد .

2-1-بینایی واتوماسیون کارخانه
وظایف اساسی که می تواند توسط سیستمهای ماشین بینایی انجام گیرد شامل سه دسته اصلی است.
1- کنترل
2- بازرسی
3- ورود داده
کنترل در ساده ترین شکل آن مرتبط با تعیین موقعیت و ایجاد دستورات مناسب می باشد تا یک مکانیزم را تحریک نموده ویا عمل خاصی صورت گیرد . هدایت نقاله های هدایت شونده خود کار (AGVS) در عملیات انتقال مواد در یک کارخانه هدایت مشعل جوشکاری در امتداد یک شمایر یا لبه یا انتخاب یک سطح بخصوص برای انجام عملیات رنگ پاشی توسط ربات ، مثلهایی از بکار گیری ، ماشین بینایی در کنترل می باشند . کاربردهای ماشین بینایی در بازرسی مرتبط با تعیین برخی پارامترها می باشد . ابعاد مکانیکی وهمچنین شکل آن ، کیفیت سطوح ، تعداد سوراخها در یک قطعه ، وجود یاعدم وجود یک ویژگی یا یک قطعه در محل خاصی از جمله پارامترهایی هستند که توسط ماشین بینایی ممکن است ، بازرسی می شوند عمل اندازه گیری توسط ماشین بینایی کم و بیش مشابه بکار گیری روشهای سنتی استفاده از قیدها و سنجه های مخصوص و مقایسه ابعاد می باشد . سایر عملیات بازرسی بجز موارد اندازه گیری شامل مواردی چون کنترل وجود بر چسب بر روی محصول بررسی رنگ قطعه ، وجود مواد خارجی در محصولات غذایی نیز با تکنیکهای خاصی انجام می گیرد . کار بازرسی ممکن است حتی شامل مشخص نمودن خواص یا ویژگیهایی الکتریکی یک محصول گردد . با مشاهده خروجی اندازه گیرهای الکتریکی می توان صحت عملکرد محصولات الکتریکی را بازرسی نمود . هر چند که در چنین مواردی چنانچه سیستم بینایی کار دیگری بجز مورد ذکر شده انجام ندهد معمولا روش ساده تر و مقرون به صرفه ترین بدین صورت خواهد بود که کار بازرسی فوق توسط یک ریز پردازنده و ابزارهای مربوط انجام گیرد .
اطلاعات مربوط به کیفیت محصول ویا مواد وهمچنین تعقیب فرایند تولید را می توان توسط ماشین بینایی گرفته ودر بانک اطلاعاتی سیستم تولید کامپیوتری جامع بطور خود کار وارد نمود . این روش ورود اطلاعات بسیار دقیق و قابل اعتماد است که دلیل آن حذف نیروی انسانی از چرخه مزبور می باشد . علاوه بر این ورود اطلاعات بسیار مقرون به صرفه خواهد بود چرا که اطلاعات بلافاصله پس از بازرسی وبه عنوان بخشی از آن جمع آوری و منتقل می شوند .
میزان پیچیدگی سیستم های بینایی متفاوت می باشد این سیستم ها ممکن است منحصر به یک سیستم بارکدینگ معمولی که برای مشخص نمودن محصول جهت کنترل موجودی بکار می رود تشکیل شده باشد یا ممکن است متشکل از یک سیستم بینایی صنعتی کامل برای اهدافی چون کنترل کیفیت محصول باشد .

3-1 سرعت واکنش
زمان مورد نیاز برای تصمیم گیری توسط ماشین بینایی بستگی به اندازه ماتریس تصویر یا زمان پردازش لازم در کارت تصویر گیر و نوع دوربین دارد . دوربیهایی نوع لاچکی که با استاندارد Rs-170 کار می کنند تعداد 30 تصویر در ثانیه تولید می کنند که این تصاویر بر روی مونیتورهای موجود در بازار قابل نمایش هستند . چنانچه از استاندارد Rs-170 استفاده نشود می توان تعداد تصاویر در ثانیه را پنج تا ده برابر افزایش داد . دوربینهای حالت جامد می توانند در زمان بسیار کوتاه معادل ( میکرو ثانیه تصویر گیری کنند زمان لازم جهت خواندن سیگنال تصویر از سنسور دوربین بستگی به اندازه ماتریس سنسور سرعت پردازش و پهنای باند سیستم دارد. با استفاده از تکنیکهای پردازش موازی می توان زمان پردازش را متناسب با تعداد پردازشگرهای موازی کاهش داد .
زمان واکنش سیستم بینایی انسان در حدود 6% ثانیه یا 16/1 ثانیه می باشد این موضوع توسط این حقیقت تائید می شود که وقتی تصاویر ، با سرعت 30 عدد در ثانیه یک صحنه متحرک را نشان می دهند چشم انسان قادر به تشخیص انقطاع بین تصاویر نیست .
سیستم های ماشین بینایی مورد استفاده در صنعت که برای کنترل بر چسب روی بطریها بکار می رود می توانند با سرعتی معادل 900 بطری در دقیقه یا در صورت یک بطری در 7% ثانیه کار کنند . البته می توان با گرفتن تصاویری که بیش از یک بطری را در بر می گیرد سرعت کنترل را بیش از این نیز افزایش داد . سرعت چشم انسان برای انجام کار مشابه حداکثر 60 بطری در دقیقه می باشد که این سرعت در اثر خستگی و شرایط نامساعد محیطی کاهش نیز می یابد .
بطور خلاصه تصویر گیری توسط ماشین بینایی تقریبا 10 برابر سرعت بینایی انسان می باشد این نسبت با پیشرفت تکنولوژی در علوم الکترونیک رو به افزایش می باشد در حالیکه سرعت چشم انسان مقدار مشخصی است سرعت انجام فرایند کامل توسط ماشین بینایی در حدود 15 برابر چشم انسان می باشد .

4-1 واکنش طیف موج
چشم انسان فقط در مقابل نور قابل رویت که طیف محدودی است می تواند اشیاء را ببیند . دامن دید از طول موج بنفش در 390 میکرون تا طول موج قرمز در 790 میلی میکرون می باشد
واکنش سیستم ماشین بینایی در مقایسه با چشم انسان بسیار وسیع تر بوده و دامنه از پرتو گاما و X در منطقه طول موج کوتاه شروع شده وتا طول موج مادون قرمز در قسمت طول موجهای طویلی ختم می شود .
توانایی چشم انسان در تشخیص رنگها و پیچیده بوده ودر هنگام تشخیص رنگ مولفه های آن بطور مجزا در نظر گرفته نمی شوند . در عوض میانگین ، انرژی در طول موجهای مختلف مورد استفاده قرار گرفته ورنگ دیده شده یکی از طول موجهای مابین آنها می باشد .
ماشین بینایی برای شناسایی رنگها نیازمند سه دسته اطلاعات است که همان مولفه های رنگ یعنی طول موجهای قرمز یا سبز و آبی می باشد ایجاد رنگ بر روی مانیتور نیز با تحریک هر یک از مولفه ها به مقدار معین بوده بطوریکه نهایتا رنگ مورد نظر ایجاد شود .
ذخیره سازی تصاویر رنگی به حافظه ای معادل سه برابر تصاویر غیر رنگی نیاز دارد .
همچنین حجم پردازش تصاویر رنگی که حاوی اجزاء B,G,R می باشند در مقایسه با تصاویر یک رنگ بیشتر می باشد .
بطور خلاصه طیف طول موج قابل رویت توسط ماشین بینایی بسیاروسیعتر از طیف قابل رویت توسط چشم انسان می باشد همچنین امکان تلفیق و استفاده از طول موجهای مختلف یک تصویر توسط ماشین بینایی وجود دارد یکنواختی و دقت ماشین بینایی در مورد تصاویر رنگی بیش از چشم انسان می باشد .

5-1مقایسه بینایی انسان و ماشین بینایی

ماشین
انسان

محدود به تنظیمات اولیه ،نیازمند داده های عددی
بسیار تطبیق پذیر وانعطاف پذیر در مقابل نوع کار و ورود اطلاعات
انعطاف پذیری
قادر به اندازه گیری ابعادی می باشد مثال : طول یک قطعه برحسب تعداد پیکسل
قادر به تخمین نسبتا دقیق موارد توصیفی مثل : تشخیص میوه بد از روی رنگ و شکل آن
توانایی
اندازه گیری مقدار هر یک از R,B
بیان توصیفی از رنگ
رنگ
حساس به فرکانس و سطح روشنایی

قابلیت تطبیق ، باشرایط نوری ،خواص فیزیکی
حالت

ماشین
انسان

حساس به خواص فیزیکی سطح جسم ، قابلیت بیان سطح خاکستری به صورت عددی دقیق و مشخص ،براحتی قادر به تشخیص 256 سطح خاکستری می باشد
سطح اجسام و فاصله تا جسم ، محدودیت در توانایی تشخیص مقدار سطوح خاکستری بستگی به بیننده دارد و ممکن است در یک زمان متفاوت از زمان دیگر باشد مقدار سطوح خاکستری قابل تشخیص بین 7 تا 10 می باشد
حساسیت
بسیار بالا که البته بستگی به پردازشگر مورد استفاده و پهنای بانددارد سرعت واکنش در حدود ثانیه بوده وسرعتهای بالاتر نیز از نظر تکنیکی قابل دسترسی است.
سرعت واکنش کند و حداکثر در حدود 10/1ثانیه می باشد
واکنش
صحنه های دو بعدی براحتی قابل تشخیص می باشد ودر صحنه های سه بعدی براحتی مقدور نیست و نیازمند به 2 دوربین بوده وسرعت نیز کم است .
صحنه های سه بعدی براحتی قابل درک می باشد
دو و سه بعدی
اطلاعات اخذ شده بطور خودکار و مداوم وارد بانک اطلاعاتی می شود ، انتقال ورود و اطلاعات دقیق و کم هزینه می باشد.
اطلاعات اخذ شده می بایستی بطور دستی انتقال داده شود هزینه انتقال و ورود اطلاعات زیاد بوده و میزان خطا زیاد می باشد .
خروج داده ها
می تواند به هر دو صورت خطی و لگاریتمی دریافت کند .
محدوده طیف از طول موجهای پائین پرتو تا طول موجهای بالای مادون قرمز می باشد .
براساس مقیاس لگاریتمی است و متاثر از رنگ زمینه می باشد
محدود به طیف قابل رویت از 300 تا 700میلی میکرون
دریافت داده ها

طول موج

6-1 سیستم بینایی چیست ؟
1-6-1 کلیات سیستم
یک سیستم ماشین بینایی شامل تمام اجزاء لازم بمنظور تهیه ، تعریف دیجیتالی یک تصویر تغییر واصلاح داده ها وارائه نمایش داده های تصویری دیجیتالی به دنیای بیرون می باشد چنین سیستمی چنانچه در یک محیط صنعتی بکار گرفته شود ، ممکن است به دلیل اینکه متصل به سایر تجهیزات خط تولید می باشد بسیار پیچیده بنظر می رسد ولی اگر چنانچه با توجه به نقش و وظیفه سیستم بینایی اجزاء اصلی تشکیل دهنده آن بیان شوند ، مشخص خواهد شد که پیچیدگی زیادی در سیستم وجود ندارد اجزاء اصلی سیستم شامل سه قسمت اصلی است :
1- قسمت تصویر برداری
2- پردازش
3- نمایش یا وسایل خروجی اطلاعات
2-6-1 تصویر گیری
تصویر گیری در ماشین بینایی یعنی تبدیل اطلاعات تصویری یک شئی فیزیکی و خواص ظاهری آن بصورت داده های عددی است بگونه ای که این تصویر می تواند از توسط پردازشگر پردازش شود تصویر گیری ممکن است شامل چهار فرایند زیر باشد :
1- نور پردازی
2- تشکیل تصویر یا متمرکز کردن آن
3- تبدیل تصویر به سیگنالهای الکتریکی
4- قالب بندی کردن سیگنال خروجی تصویر
3-6-1 نور پردازی
نور پردازی یک عامل کلیدی وتاثیر گذ ار بر روی کیفیت تصویر تشکیل شده است که به عنوان ورودی ماشین بینایی مورد استفاده قرار می گیرد ممکن است تا 30 درصد حجم کار و تلاش طراحی اجزاء یک سیستم ماشین بینایی را بخود اختصاص دهد .
بسیاری از سیستم های ماشین بینایی که در گذشته در صنعت بکار رفته اند از نور قابل رویت استفاده کرده اند که علت آن از یک طرف در دسترس بودن آن واز طرف دیگر خود کار نمودن عمل بازرسی که قبلا توسط کارگر انجام می شده است می باشد بازرسی توسط کارگر براساس توانایی چشم ودر محدوده طول موج نور قابل رویت می باشد چهار نوع لامپ از لامپهایی که نور قابل رویت تولید می کنند واغلب در صنعت استفاده شده اند عبارتند از : لامپهای التهابی فلورسنت بخار جیوه وبخار سدیم استفاده از نور غیر قابل رویت شبیه اشعه ایکس ماوراء بنفش و مادون قرمز بدلیل نیاز به انجام بررسی های ویژه که توسط نور قابل رویت انجام پذیر نیست ، روبه افزایش است روشهای نور پردازی جهت کار بردهای صنعتی ماشین بینایی شامل چهار دسته زیر است :
1- نور پردازی از پشت
2- نور پردازی از مقابل
3- نور پردازی دارای ساختار
4- نور پردازی لحظه ای
نور پیرامون محیط کار که منابعی بجز منبع اصلی نور پردازی سیستم ماشین بینایی بر مجموع میزان نور تابیده شده برجسم اثر گذاشته وبطور کلی بصورت نویز در داده های تصویری ظاهر می شود .
برای کم کردن تاثیر نور پیرامونی می توان از پرده نوری یا دیواره های محافظ استفاده نمود تا از ورود آن به لنز دوربین جلوگیری شود .

1-3-6-1 نور پردازی از پشت :
وقتیکه شی مورد بررسی بین دوربین و منبع نور قرار می گیرد نور پردازی را اصطلاحا نور پردازی از پشت می گویند در این روش سایه ای از جسم تشکیل می شود و مرز جسم کاملا مشخص می باشد .

(شکل 1-1)

مزیت نور پردازی از پشت ایجاد تصاویر با کنتر است بالاو تفکیک آسان مرز جسم می باشد کنتر است بالاباعث کم شدن پردازش های بعدی شده همچنین از حساسیت سیستم به تغییرات نوردهی منبع نور می کاهد در مورد نور پردازی اجسامی که مسطح نیستند ممکن است لازم باشد تا با استفاده از عدسی های مناسب نور به جسم تابانده شود .
روش نور دهی از پشت برای اعمالی از قبیل تشخیص ترک ، مک و وجود اشیاء خارجی در قطعات شفاف ایده آل می باشد . تشخیص ترک الستخوان در تصاویر اشعه X واندازه گیری میزان تنش انرژی و حرارتی از یک ساختمان توسط پرتو مادون قرمز از جمله مثالهای این روش نور پردازی می باشند .
اساسا تصویر حاصل از روش نور دهی از پشت تک رنگ است با توجه به اینکه لب های تصویر بگونه ای بر روی صفحه سنسور تشکیل تصویر می دهند که ممکن است یک پیکسل کامل را پر نکنند .
بنابراین این پیکسلها دارای مقادیر حدود سطحی بین سیاه و سفید مطلق خواهند بود به عنوان مثال مقدار عددی پیکسل که 50 درصد آن توسط جسم پوشیده شده است در یک سیستم دارای 16 سطح خاکستری معادل عدد 7 خواهد بود و بطور کلی مقدار عددی هر پیکسل که نشانگر مرزهای قطعه باشد متناسب با مقدار پوشش آن خواهد بود شی نشان داده شده در صفحه بعد در قسمت مرزها ، فقط بخشی از مساحت پیکسلها را پوششی می دهد که مقادیر عددی پیکسلها یا همان سطح خاکستری بدست آمده برای پیکسلها در ماتریس تصویر نشان داده شده است شایان ذکر است که مقدار عددی پیکسلها وهمچنین مقدار کاهش یافته آن نمی تواند هیچگونه اطلاعاتی در خصوص شکل قطعه ارادئه دهد و بایستی اطلاعات مربوط به اینکه چه شکلی در مقابل دوربین قرار گرفته است با مقادیر عددی پیکسلها توام گردد.
(شکل2-1)

2-3-6-1نور پردازی از مقابل :
در روش نور پردازی از مقابل نور منعکس شده از سطح جسم به دوربین وارد می شود . در این روش دوربین ومنبع نور در یک طرف شئی قرار می گیرند با استفاده از این روش می توان اطلاعاتی درباره سطح جسم یا برجستگی و فرورفتگیهای آن وهمچنین ابعاد جسم بدست آورد .
بسته به زاویه دوربین می توان از تکنیکهای اندازه گیری مات ویا نور پردازی Specular استفاده نمود . (شکل 3-1)

3-3-6-1نور پردازی لحظه ای :
درنور پردازی لحظه ای شی و برای مدت بسیار کوتاه ولی باشدت زیاد ( 5 تا 500 میکروثانیه ) نور دهی می شود پالس کوتاه نور دهی ممکن است برای ایجاد یک تصویر ساکن از اجسام در حال حرکت بکار رود ویا ممکن است برای کاهش اثر نامطلوب نور محیط استفاده شود .
در فرایند های تولید معمولا قطعات بر روی نوارنقاله متحرک بوده ویا قطعه طبعا در حال حرکت می باشد .
در این نور پردازی لازم است تا دوربین و منبع نور برای ایجاد پالس کوتاه نور منکرون شوند .با توجه به اینکه لازم است تا تصویر ساکن از جسم تهیه شود ، لذا مدت پالس حائز اهمیت فراوان می باشد .

4-3-6-1نور پردازی دارای ساختار :
نور پردازی دارای ساختارعبارت است از نور دادن به شئی با پرتوهای نوری دارای الگوهای خاص یا بصورت الگوی مشبک 10 از تلاقی شئی با تصویر پرتوهای نور دارای ساختار ، یک الگوی منحصر بفرد از شی حاصل می شود که این الگو بستگی به شکل واندازه های جسم دارد یک جسم سه بعدی دارای تصویری خواهد بود که طبعا وقتی در صفحه سنسور قرار می گیرد دارای دو بعد بیشتر نخواهد بود با استفاده از تکنیک نور پردازی دارای ساختار ونه تنها می توان فواصل افقی بلکه اندازه های عمودی را بر روی قطعه اندازه گیری نمود و شکل سه بعدی قطعه را مشخص کرد مشاهده می شود که خط نشان داده شده در شکل از حالت خط مستقیم خارج شده و بصورت منقطع در آمده است که علت آن وجود برآمدگی بر روی قطعه است اندازه فاصله بین قسمت مقطع وسطی با امتداد اولیه مرتبط ، با ارتفاع برآمدگی می باشد اطلاعات بیشتر تا شبیه فواصل بین اجزاء قطعه را می توان با استفاده از گونه های مختلف ساختار نور بدست آورد .(شکل 4-1)

7-1مفاهیم اولیه پردازش تصویر
1-7-1 پیکسل
هر تصویر توسط یک ماتریس M ×N از مقادیرپیکسلها ( المانهای P( I,j) با مقادیر اسکالر منفی که بیانگر شدت نور تابیده شده از جسم بر سطح پیکسل واقع درموقعیت ( x,y) می باشد تعریف می شود این مطلب درشکل پائین نشان داده شده است در این شکل ارتباط بین المان تصویر و پیکسلهای ماتریس نشان داده شده است مبدا مختصات استفاده شده برای تصویر ماتریس با یکدیگر فرق دارند مبدا مختصات تصویر درگوشه چپ پائین قرار دارد در حالیکه مبدا مختصات پیکسلها در گوشه چپ بالای ماتریس قرار دارد .(شکل 5-1)

برخی از سیستم هابجای نقطه شروع (1و1) از نقطه (0و0) استفاده می کنند . تمامی ماتریسهای استفاده شده در این مبحث بصورت ربعی M ×Nخواهند بود ولی در عمل مقادیر M ×N ممکن است متفاوت باشند .
(شکل 6-1)

مقدار عددی پیکسل عبارت از میانگین شدت نور تابیده شده برسطح پیکسل می باشد مقدار هر پیکسل P(I,j) بین 0 و 1 می باشد .

2-7-1 پنجره
یک بخش یا ناحیه از تصویر از یک پنجره گویند پنجره توسط مختصات نقاط چهارگوشه آن بیان می شود .

(شکل 7-1 )

3-7-1 مکان پیکسل
یک پیکسل متعلق به ماتریس M ×N در ساده ترین شکل توسط مختصاتش بیان می شود پیکسل واقع در مکان n,m از یک ماتریس دارای مقدار عددی می باشد که این مقدار بیانگر مقدار نور تابیده شده از بخشی ازسطح به پیکسل مربوطه می باشد .
به عنوان مثال تصویری را در نظر بگیرید که در قسمت با روی آن هیچگونه لوزی وجود ندارد ( سیاه کامل ) وقسمت پائین آن بسیار روشن می باشد ( سفید کامل ) واین تصویر دارای ابعاد 10×10 می باشد اگر از یک سیستم دو روئی برای نشان دادن تصویر استفاده شود آنگاه ناحیه ای که در آن هیچ نوری وجود ندارد توسط عدد صفر و قسمت روشن با مقدار یک مشخص خواهد شد و شکل پائین چنانچه از یک ماتریس 4×5 یعنی دارای 5 ردیف و 4 ستون از پیکسلها استفاده شود هر المان 2× 5/2 ( پهنا در ارتفاع ) اینچی از تصویر توسط یک پیکسل بیان خواهد شد که مقدار آن بستگی به میانگین نور تابیده شده برسطح آن دارد .
(شکل 8-1)

سطح 2×5/2 اینچی واقع در گوشه بالای سمت چپ که با موقعیت ( 1و1) در ماتریس 4×5 المانی مشخص می شود با مقدار صفر بیان می شود که معنی آن این است که هیچگونه نوری از این قسمت دریافت نشده است سطح 2×5/2 اینچی واقع در گوشه پایین سمت راست تصویر یعنی المان واقع در ستون چهارم و ردیف پنجم ( مختصات (4×5)) با مقدار یک یعنی حداکثر دریافت نور بیان می شود .
بایستی توجه داشت که چنانچه از یک سیستم که دارای 16 سطح خاکستری است استفاده می شد آنگاه مقدار پیکسل ( 1و1) برابر صفحه ومقدار پیکسل ( 4و 5) برابر 16 سی بود .
مشاهده می شود که هیچگونه اطلاعاتی در مورد مقادیر میانی سطوح وجود ندارد و طراح سیستم بایستی یک حد آستانه را مشخص نماید تا مقادیر زیر حد آستانه
توسط عدد صفحه ومقادیر بالای حد آستانه توسط یک عدد بیان شوند .
در مثال ذکر شده شکل المانها تصویر مستطیلی در نظر گرفته شدند ولی بسته به نوع سنسور ممکن است المانها بصورت مستطیلی یا دایره ای در نظر گرفته شوند در مورد دوربینهای لابی با سطح سنسور دایره ای ممکن است المانها قدری همپوشانی داشته باشند . (شکل 9-1)

در هنگام استفاده از المانها مدور مجزا ( بدون همپوشانی ) نور انعکاسی از سطح تصویر که در پیرامون دوایر قرار می گیرند اندازه گیری نمی شود در حالیکه وقتی از المانهای با همپوشانی استفاده می شود بخشهایی از تصویر دوبار اندازه گیری می شود بایستی توجه داشت نمی توان هیچگونه اطلاعاتی در مورد شکل سطحی از تصویر که توسط یک پیکسل نمایش داده می شود بدست آورد وهمچنین نمی توان از مقدار یک پیکسل اطلاعاتی درباره توزیع نور بر سطح آن پیکسل بدست آورد .

4-7-1سطح خاکستری
برای اینکه بتوان مقادیر میانی بین روشن وتاریک کامل را بیان نمود واطلاعات تصویری کاملتری بدست آورد لازم است تا تعداد بیتهایی که مقدار پیکسل را نشان می دهند افزایش داد به عنوان نمونه ، چنانچه قرار باشد شدت نور پردازی را با چهار شدت مختلف بیان نمود لازم است تا از دو بیت دودوئی استفاده نمود بهمین ترتیب برای 16 سطح نیاز به 4 بیت و برای 256 سطح نیاز به 8 بیت می باشد تعداد مجموع سطوح خاکستری معمولا بصورت توانی از عدد 2 می باشد کمترین مقدار پیکسل یعنی صفر برای سیاه کامل بکار می رود و مقدار یک یا عددی برابر یکی کمتر از تعداد سطوح خاکستری سیستم برای سفید کامل استفاده می شود مثلا عدد 15 برای بیان سفید کامل در یک سیستم سطحی بکار می رود مقادیر پیکسلها همواره مقادیر صحیح می باشند .
سطح خاکستری دامنه مقدار خاکستری
21 2 مقدار 0 و 1
23 8 مقدار از 0 تا 7
24 16 مقدار از 0 تا 15
25 256 مقدار از 0 تا 255
سیستم های اولیه ماشین بینایی فقط دو دویی بودند به همین دلیل سنسورهای استفاده شده بسیار ساده بودند . علاوه بر آن جمع آوری داده ها ، پردازش وذخیره سازی تصویر ساده تر بود .
اغلب ریز پردازنده های امروزی حداقل 8 بیتی هستند لذا سیستم های 16 و 64 و 256 سطح خاکستری ، متداول می باشند . استفاده از سیستم هایی با سطوح بیشتر از 256 چندان سفید نبوده و برای اکثر کاربردهای صنعتی فعلی سیستم های با 256 سطح کفایت می کنند . سیستم های 64 و 256 سطحی تعداد سطوح بیشتری از آنچه توسط چشم انسان قابل تشخیص است را فراهم می کنند چشم انسان قادر است درهنگام مقایسه بین رنگهای مختلف خاکستری تا 40 سطح مختلف بین سفید و سیاه کامل را تشخیص دهد ولی بطور مطلق قادر به مشخص نمودن 10 تا 15 سطح بیشتر نیست . قدرت تمایز یک سیستم 16 سطحی قادر کمتر از چشم انسان می باشد در حالیکه سیستم های 64 و 256 سطحی قدرت تمایز بیشتری از چشم انسان دارند .
اگر چه سیستم بینایی استفاده شده در یک کاربرد خاص ممکن است دارای 256 سطح باشد ولی بنا به دلایلی ممکن است لازم باشد تا تعداد سطوح متفاوت استفاده شود برای دستیابی به دقت باتلرانس مورد نیاز از تکنیکهای اعشار پیکسل با دقت 9/1 ، 13/1 یا 20/1 پیکسل ممکن است استفاده شود در این صورت سیستمی با سطوح 9 ، 13 یا 20 بکار گرفته می شود .
تعداد سطوح خاکستری با و اضح تر جلوه دادن بعضی از ویژگیهای تصویر یا با حذف برخی از جزئیات بر روی کیفیت تصویر تاثیر می گذارند . در حالت کلی افزایش تعداد سطوح خاکستری باعث بهبود کیفیت تصویر شده واین امکان را بوجود می آورد تا بتوان بخشهای خاصی از تصویر را بهبود داد تصویر گیری بصورت تصاویر دو دویی نیازمند حافظه کمتری می باشد .
اما امکان استفاده از تکنیکهای بسط سطوح خاکستری در هنگام پردازش تصویر را محدود می کند افزایش تعداد پیکسلهای تصویر از مقادیر کم شبیه 32×32 به 250×250 از روزلوشن سیستم را افزایش می دهد وتصویر حاوی جزئیات بیشتری خواهد داد . افزایش روزلوشن متفاوت از بزرگ کردن تصویر توسط عدسی می باشد . با بزرگ کردن تصویر توسط عدسی فقط اندازه پیکسل افزایش می یابد .
سیستم های دارای سطوح بیشتر از 2 اولا این امکان را فراهم می کنند تا سطوح متفاوت شدت نور تابیده شده را تفکیک نموده ثانیا امکان بهره گیری از تکنیک اعشار پیکسل را فراهم آورده که می تواند در اندازه گیری دقیق ابعاد اجسام از آن بهره جست . (شکل10-1)

(aشی برروی میزنور
(bنمای شئی از بالا
(cداد های تصویری متناظر نقاط سیاه با صفر و نقاط سفید با 15نشان داده شده است .

در یک تحلیل سلول به سلول مشاهده می شود که سطح نشان داده شده توسط پیکسل ( 4و2) یک سطح تاریک بوده ولذا مقدار پیکسل بر1 و صفر خواهد بود . در حالیکه فقط صف سطح پیکسل ( 2و2) توسط جسم پوشانده شده است از اینرو میانگین نور دریافت شده برابر 2 ( 15+0) یا 5/7 خواهد بود تمامی سطوح کناری روشن بوده لذ ا مقادیر پیکسلهای مربوطه برابر 15 خواهد بود .
با توجه به اینکه مقادیر پیکسلها بایستی اعداد صحیح باشد عدد 5/7 بایستی تبدیل به یک عدد صحیح گردد در هر سیستمی بایستی نحوه تبدیل اعداد اعشاری به اعداد صحیح مشخص باشد به عنوان مثال یک قانون کلی می تواند این باشد که از روش گرد کردن ریاضی استفاده شود یعنی اعداد اعشاری با جز صحیح کوچکتر گرد شوند از اینرو مقدار 5/7 در مثال فوق بایستی به عدد 8 گرد شود یا اگر مقدار پیکسل 6/6 باشد به عدد 7 گرد خواهد شد انتخاب حد آستانه برای گرد کردن مهم بوده و بر روی تلرانس اثر می گذارد لذا اطلاع از این مقدار نیز مهم می باشد .
8-1 هیستو گرام
به نموداری که تعداد تکرار سطوح مختلف خاکستری در یک تصویر را نشان دهد هیستو گرام گویند . در این نمودار محور x ها را نشان دهنده هر یک ازسطوح خاکستری و محور y ها تعداد پیکسلهای متناظره با سطوح خاکستری مختلف می باشند .

هیستو گرام بدین گونه ساخته می شود که :
1- داده های تصویری بصورت دیجیتال در آورده شود .
2- تعداد پیکسلها در هر یک از سطوح خاکستری شمرده می شوند .
3- نمودار تعداد تکرار پیکسلها در هر یک از سطوح خاکستری ترسیم می گردد .
نمودار می تواند بصورت میله ای باشد که ارتفاع هر یک از میله ها بیانگر تعداد پیکسل در آن 32 سطح خاکستری خاص می باشد مقدار هیستو گرام در یک مقدار مشخص از پیکسل بیانگر احتمال وضوح آن سطح خاکستری در هر یک از المانهای تصویر می باشد از این گراف هیچ اطلاعی در خصوص مکان پیکسلها نمی توان بدست آورد احتمال اینکه یک پیکسل در مکانی مثل ( x,y) دارای مقداری مثل b باشد از شکل ( 1-3) می تواند بدست آید که این مقدار عبارت است از :
مقدار b = P(b) در نقطه (y,x) از تصویر
مجموع تعداد پیکسل ها

اگر b=6 فرض شود با توجه به شکل صفحه قبل مقدار هیستو گرام به ازای سطح خاکستری 6 برابر 7 می باشد لذا :
شکل هیستو گرام اطلاعاتی را درباره خواص تصویر فراهم می کند به عنوان مثال ، یک هیستو گرام باریک ( در امتداد محور x ها ) نشان دهنده این واقعیت است که کمتر است تصویر کم می باشد یا یک مقدار پیکسل مشخص می تواند نشان دهنده یک خاصیت منحصر بود از یک جزء تصویری مثل یک سوراخ باشد هیستو گرام می تواند در مواردی از قبیل بدست آوردن مقدار حد آستانه 6 که برای تبدیل تصاویر سطح خاکستری به تصاویر دو دویی لازم است یا در تصحیح بخشی از طیف سطوح خاکستری سفیدباشد .

1-8-1 ایجاد هیستو گرام
هیستو گرام یک تصویر می تواند طبق زیر وهمانگونه که در شکلهای زیر نشان داده شده است ایجاد گردد . (شکل11-1)

تعداد مجموع پیکسلهای تشکیل دهنده تصویر مشخص گردد این تعداد بستگی به تعداد المانها دارد . در مثال ذکر شده ماتریس با ابعاد M ×N استفاده شده است اگر 10 = N=M باشد تعداد مجموع پیکسلها برابر 100 = 10×10 خواهد بود .
1-لازم به ذکر است که M الزاما برابر N نیست و مقادیر آن بستگی به دوربین استفاده شد ه سرعت نمونه گیری در فرایند تبدیل سنگنال آنالوگ به دیجیتال و گنجایش حافظه سیستم دارد
هر چه مقادیر N,M بیشتر باشد دقت و زیر سنجی سیستم افزایش می یابد ولی لازم است تا محاسبات بیشتری انجام گیرد و زمان واکنش نیز افزایش می یابد .
1- داده های تصویری بصورت ماتریسی در آ‎ورده شود در مثال از یک ماتریس 5×5 یعنی مجموعا 25 مقدار استفاده شده است .
2- داده های تصویری بصورت جدول در آورده شده است یعنی به ازای هر سطح خاکستری چه تعداد پیکسل دارای آن مقدار می باشد به عنوان مثال 6 پیکسل دارای مقدار صفر هستند و یک پیکسل دارای مقدار 3 است مجموع تعداد مقادیر جدول بایستی مساوی M ×N باشد در مثالی که ذکر شد این مقدار برابر 25 خواهد بود .
3- نمودار میله ای براساس جدول تهیه شده در مرحله 3 ترسیم گردد محور افقی از صفر شروع شده تا مقدار حداکثر یکی کمتر از تعداد سطوح خاکستری ادامه می یابد درمثال ذکر شده چون از یک سیستم 16 سطحی استفاده شده حداکثر عدد افقی عدد 15 خواهد بود .
بایستی توجه داشت که مقدار حداکثر پیکسل ها عامل تعیین کننده ای نیست هیستو گرام حاصل دارای میله هایی با ارتفاع های مختلف به ازای مقادیر از 0 تا 15 خواهد بود .

9-1سیستم های رنگی CMYB , RGB
در سیستم های رنگی هر یک از پیکسل ها دارای 3 یا 4 مقدار مرتبط با آن پیکسل می باشند بعنوان مثال ، در سیستم سنتی قرمز ، سبز ، آبی ( RGB) برای هر پیکسل سه مقدار وجود دارد که هریک از این مقادیر مرتبط با یکی از اجزاء اصلی رنگ می باشد از ترکیب سه مولفه رنگ میتوان رنگهای گوناگون را ایجاد نمود در صنعت چاپ معمولا از سیستم چهار رنگی CMYB استفاده می شود زیرا بیننده نور انعکاسی را مشاهده می کند که یک فرایند تفریحی است .
همچنین میتوان از دیاگرام کروماتوگرافی CIE در جهت متضاد استفاده کرد بدین معنی که بر روی نمودار یک نقطه که همان رنگ مورد نظر است انتخاب می شود مختصات نقطه انتخاب شده نشان دهنده مقادیر اجزاء رنگ هستند بایستی استفاده شوند هر یک از مولفه های رنگ دارای 16 یا 256 سطوح مختلف می باشند .
سیستم سه رنگی قرمز ، سبز ، آبی در صنعت مورد استفاده قرار می گیرد و سیستم چهار رنگی (CMYB)مورد استفاده در صنعت چاپ از این جهت باهم تفاوت دارند که سیستم سه رنگی یک سیستم اصطلاحا افزودنی است در حالیکه سیستم 4 رنگی اصطلاحا یک سیستم کاهشی می باشند . اگر پرتوهای نورانی سه رنگ RGB بر روی یک صفحه سفید که در یک اتاق تاریک تابا نده شودوقتی هر سه دسته نور برروی هم قرار گیرند رمگ سفید حاصل خواهد شدووقتی که پرتو نوری وجود نداشته باشد, کا ملا تاریک خواهد شد .رنگ سفید تشکیل شده حاصل جمع سه مولفه رنگ می باشد.
در سیستمCMYB نور سفید مرکب از تما می مولفه ها می باشدو برای آنکه بتوان یک رنگ خاص را ایجاد کرد لازم است تا از فیلتر مناسب که در بین نور وصفحه شفات قرار می گیرد استفاده شود تا با حذف یکی از رنگها رنگ مورد نظر تشکیل شود .فرایند فوق یک فرایند کاستنی است.

فصل دوم

میکروکنترلر 8051
1-2 مقدمه
با وجود اینکه بیش از بست سال از تولد ریز پردازنده نمی گذرد،تصور وسایل الکترونیکی و اسباب بازیهای امروزی بدون آن کار مشکلی است.در 1971 شریک انیتل،8080 را به عنوان اولین ریز پردازنده موفق عرضه کرد.مدت کوتاهی پس از آن،موتور ولا،RCA و سپس Mostechnology و Zilog انواع مشابهی را به ترتیب به نامهای 6800،1801،6502،Z80 عرضه کردند.گرچه این مدارهای مجتمع (IC) به خودی خود فایده چندانی نداشتند اما به عنوان بخشی از یک کامپیوتر تک بورد(SBC) به جزء مرکزی فرآورده های مفیدی برای آموزش طراحی با ریز پردازنده ها تبدیل شدند.تز تیم SBC ها که به سرعت به آزمایشگاههای طراحی در کالج،دانشگاهها و شرکت های الکترونیک راه پیدا کردند می توان برای نمونه از D2 موتورولا،KIM-1 ساخت Mos technology و SDK-85 متعلق به شرکت انتیل نام برد.
میکروکنترلر قطعه ای شبیه به ریز پردازنده است.در 1976 انتیل 8748 را به عنوان اولین قطعه خانواده میکروکنترلرهای MCS-48TM معرفی کرد.8748 با 17000 ترانزیستور،در یک مدار مجتمع،شامل یک cpu، 1کیلوبایت EPROM، 64 بایت RAM ، 27 پایه I/O و یک تایمر 8 بیتی بود.این IC و دیگر اعضای MCS-48TM که پس از آن آمدند خیلی زود به یک استاندارد صنعتی در کابردهای کنترل گرا تبدیل شدند.جایگزین کردن اجزاء الکترومکانیکی در فرآورده های مثل ماشین های لباسشویی و چراغ های راهنمایی از ابتدا کار،یک کاربرد مورد توجه برای این میکروکنترلرها بودند و همین طور باقی ماندند.دیگر فرآورده هایی که در آنها می توان میکروکنترلر را یافت عبارتند از اتومبیل ها،تجهیزات صنعتی،وسایل سرگرمی و ابزارهای جانبی کامپیوتر (افرادی که یک IBM PC دارند کافی است به داخل صفحه کلید نگاه کنند تا مثالی از یک میکروکنترلر را در یک طراحی با کمترین اجزاء ممکن ببینند)
توان ابعاد و پیچیدگی میکروکنترلر با اعلام ساخت 8051،یعنی اولین عضو خانواده میکروکنترلرهای MCS-51TM در 1980 توسط انیتل پیشرفت چشمگیری کرد.در مقایسه 8048 این قطعه شامل بیش از 60000 ترانزیستور،K4 بایت ROM، 128 بایت RAM، 32 خط I/O یک درگاه سریال و دو تایمر 16 بیتی است.که از لحاظ مدارات داخلی برای یک TC بسیار قابل ملاحظه است.امروزه انواع گوناگونی از این IC وجود دارند که به صورت بخاری این مشخصات را دو برابر کرده اند.شرکت زیمنس که دومین تولید کننده قطعات MCS-51TM است SAB80515 را به عنوان یک 8015 توسعه یافت در یک بسته 86 پایه با شش درگاه I/O 8 بیتی،13 منبع وقفه و یک مبدل آنالوگ به دیجیتال با 8 کانال ورودی عرضه کرده است.خانواده 8051 به عنوان یکی از جامعترین و قدرتمندترین میکروکنترلرهای 8 بیتی شناخته شده و جایگاهش را به عنوان یک میکروکنترلر مهم برای سال های آینده یافته است.
یک سیستم کامپیوتری شامل یک واحد پردازش مرکزی (CPU) است که از طریق گذرگاه آدرس،گذرگاه داده و گذرگاه کنترل به حافظه قابل دستیابی تصادفی (RAM) و حافظه فقط خواندی (ROM) متصل می باشد.مدارهای واسطه گذرگاه های سیستم را به وسایل جانبی متصل می کنند.

(شکل1 -2)

2-2واحد پردازش مرکزی
CPU ،به عنوان "مغز" سیستم کامپیوتری،تمامی فعالیت های سیستم را اداره کرده و همه عملیات روی داده را انجام می دهد.اندیشه اسرار آمیز بودن CPU در اغلب موارد ناردست است زیرا این تراشه فقط مجموعه ای از مدارهیا منطقی است که بطور مداوم دو عمل انجام می دهند:واکنشی دستورالعمل ها و اجرای آنها،CPU توانایی درک و اجرای دستورالعمل های را براساس مجموعه ای از کدهای دورویی دارد که هریک از این کدها نشان دهنده یک عمل ساده است.این دستورالعمل ها معمولاً حسابی (جمع،تفریق،ضرب و تقسیم)،منطقی (AND،OR،NOT و غیره)انتقال داده یا عملیات انشعاب هستند و یا مجموعه ای از کدهایی دروریی با نام مجموعه دستورالعمل ها نشان داده می شوند.

3-2حافظه نیمه رسانا:RAM وROM
برنامه ها و داده ها در حافظه ذخیره می شوند.حافظه های کامپیوتر بسیار مشوعند و اجزای همراه آنها بسیار و تکنولوژی بطور دائم و پی در پی موانع را برطرف می کند.بگونه ای که اطلاع از جدیدترین پیشرفت ها نیاز به مطالعه جامع و مداوم دارد.حافظه هایی که به طور مستقیم توسط CPU قابل دستیابی می باشند،IC های (مدار مجتمع)نیمه رسانایی هستند که RAM و ROM نامیده می شوند.دو ویژگی RAM و ROMرا از هم متمایز سازد:اول آنکه RAM حافظه خواندنی /نوشتنی است .در حالیکه ROM حافظه خواندنی است و دوم آنکه RAM فرّار است(یعنی محتویات آن هنگام عبور ولتاژ تغذیه می شود)در حالی که ROM غیرفرّار است.

4-2ابزارهای کنترل/نظارت
به کمک ابزارهای کنترل/نظارت در برخی نرم افزارها و روابط های الکترونیکی (دقیق)کامپیوترها می توانند کارهای کنترلی زیادی را بی وقفه،بدون خستگی و بسیارفراتر از توانایی انسان انجام دهند.
کاربردهایی نظیر کنترل حرارت یک ساختمان،محافظت از خانه، کنترل آسانسور،کنترل وسایل خانگی و حتی جوش دادن قطعات مختلف یک خودرو همگی با استفاده از این ابزارها امکان پذیر هستند.ابزارهای کنترل،ابزارهای خروجی یا عمل کننده هستند.آنها وقتی که با یک ولتاژ با جریان،تغذیه شوند می توانند بر جهان پیرامون خود اثر بگذارند(مثل موتورها مولدها).ابزارهای نظارت،ابزارهای ورودی یا مسگر هستند که با کمیت هایی نظیر حرارت،نور،فشار،حرکت و مانند آن،تحریک شده و آنها را به جریان یا ولتاژی که توسط CPU خوانده می شود تبدیل می کنند(مثل فتوترانزیستورها و ترمیستورها و سوئیچ ها).ولتاژ یا جریان توسط مدارهای واسطه، به یک داده دورویی تبدیل می وشد و یا برعکس و سپس نرم افزار،یک رابطه منطقی بین ورودی ها و جروجی ها برقرارمی کند.

5-2مقایسه ریز پردازنده ها با میکروکنترلرها
پیش از این خاطرنشان شد که ریز پردازنده ها CPU هایی تک تراشه هستند و در میکروکامپیوترها به کار می روند.پس فرق میکروکنترلرها با ریز پردازنده ها چیست؟با این سوال از سه جنبه می توان برخورد کرد:معماری سخت افزار،کاربردهایو ویژگی های مجموعه دستورالعمل ها.

1-5-2 معماری سخت افزار
در حالی که زیز پردازنده یک CPU تک تراشه ای است،میکروکنترلر در یک تراشه واحد شامل یک CPU و بسیاری از مدرارات لازم برای یک سیستم میکروکامپیوتری کامل می باشد.اجزای داخل خط چین در شکل زیر بخش کاملی از اغلب IC های میکروکنترلر می باشند.علاوه بر CPU میکروکنترلرها شامل RAM و ROM یک رابطه سریال،یک رابط سریال،یک رابط موازی،تایمر و مدارات زمانبدی البته مقدار RAM روی تراشه حتی به میزان آن در یک سیستم میکروکامپیوتری کوچک هم نمی رسد اما آن طور که خواهیم دید این مساله محدودیتی ایجاد نمی کند زیرا کاربردهای میکروکنترلر بسیار متفاوت است.

(شکل 2-2)

یک ویژگی مهم میکروکنترلرها،سیستم وقفه موجود در داخل آنهاست.میکروکنترلرها به عنوان ابزار های کنترل گرا اغلب برای پاسخ بی درنگ به محرکهای خارجی (وقفه ها)مورد استفاده قرار می گیرند.یعنی باید در پاسخ به یک "اتفاقی" سریعاً یک فرآیند را معدق گذاره،به فرآیند دیگر بپردازند.باز شدن در یک اجاق مایکروویو مثالی است از یک اتفاق ممکن است باعث ایجاد یک وقفه در یک سیستم میکروکنترولی شود.البته اغلب ریز پردازنده ها می توانند سیستم های وقفه قدرتمندی را به اجرا بگذارند،اما برا این کار معمولاً نیاز به اجزای خارجی دارند.مدارات روی تراشه یک میکروکنترولر شامل تمام مدارات مورد نیاز برای بکارگیری وقفه های می باشد.

2-5-2 کاربردها
ریز پردازنده اغلب به عنوان CPU در سیستم های میکروکامپیوتری بکار می روند.این کاربرد دلیل طراحی آنها و جایی است که می توانند خود را به نمایش بگذارند.با این وجود میکروکنترلرها در طراحی های کوچک با کمترین اجزاء ممکن که فعالیت های کنتری گرا انجام می شد.یک میکروکنترلر می تواند در کاهش تعداد کل اجزاء کمک کند.آنچه که مورد نیاز است عبارت است از یک میکروکنترلر،تعداد کمی اجزاء پشتیبان و یک برنامه کنترلی در ROM میکروکنترلرها برای "کنترل" ابزارهای I/O در طراحی هایی با کمترین تعداد اجزاء ممکن مناسب هستند،اما ریزپردازنده ها برای "پردازش" اطلاعات در سیستم های کامپیوتری مناسبند.

3-5-2 ویژگی های مجموعه دستورالعمل ها
به علت تفاوت در کاربردها،مجموعه دستورالعمل های مورد نیاز برای میکروکنترلرها تاحدودی با ریز پردازنده ها تفاوت دارد.مجموعه دستورالعمل های ریز پردازنده ها بر عمل پردازش تمرکز یافته اند و در نتیجه دارای روش های آدرس دهی قدرتمند به همراه دستورالعمل هایی برای انجام عملیات روی حجم زیاد داده می باشند. دستورالعمل های روی چهار بیت ها،بایتها،کلمه ها یا حتی کلمه های مضاعف عمل می کنند.روش های آدرس دهی با استفاده از فاصله های نسبی و اشاره گر های آدرس امکان دسترسی به آرایه های بزرگ داده را فراهم می کنند.حالت های افزایش یک واحدی اتوماتیک و کاهش یک واحدی اتوماتیک حرکت گام به گام روی بایت ها،کلمه ها کلمه های مضاعف را درآرایه ها آسان می کنند.دستورالعمل هیا رمزی نمی توانند در داخل برنامه کاربرد اجرا شوند وبسیاری ویژگی های دیگر از این قبیل.از طرف دیگر میکروکنترلرها مجموعه دستورالعمل هایی مناسب برای کنترل ورودی ها و خروجی ها دارند.ارتباط با بسیاری از ورودی ها و خروجی ها تنها نیازمند یک بیت است.برای مثال یک موتور می تواند توسط یک سیم پیچ که توسط یک درگاه خروجی یک بیتی انرژی دریافت می کند،روشن و خاموش شود.میکروکنترلرها دستورالعمل هایی برای 1 کردن و0 کردن بیت های جداگانه دارند و دیگر عملیات روی بیت ها مثل AND،OR یا XOR کردن منطقی بیت ها،پرش در ثورت ایا پاک بودن یک بیت و مانند آن ها را نیز انجام می دهند.این ضمیمه مفید بندرت در ریزپردازنده یافت می شود زیرا آنها معمولاً برای کار روی بیت ها یا واحدهای بزرگتر داده طراحی می شوند.برای کنترل و نظارت بر ابزارها (شاید توسط یک رابط تک بیتی)،میکروکنترلرها مدارات داخلی و دستورالعمل هایی برای عملیات ورودی/خروجی،زمان بندی انفاقات و فعال کردن و تعیین اولویت وقفه های ناشی از محرک های خارجی دارند.ریزپردازنده ها اغلب به مدارات اضافی (IC های رابط سریال،کنترل کننده های وقفه،تایمرها و غیره)برای انجام اعمال مشابه نیازدارند.با این همه در قدرت پردازش محض،یک میکروکنترلر هرگز به ریزپردازنده نمی رسد(اگر در بقیه موارد یکسان باشند)زیرا بخش عمده "فضای واقعی".IC میکروکنترلر صرف تهیه امکانات روی تراشه می شود البته به قیمت کاهش توان پردازش.از آنجا که فضاهای واقعی در تراشه برای میکروکنترلر اهیمت دارند دستورالعمل ها بایدبی نهایت فشرده باشند و اساساً در یک بایت پیاده سازی شوند.یکی از نکات در طراحی جادادن برنامه کنترلی در داخل ROM روی تراشه است.زیرا افزودن حتی یک ROM خارجی هزینه نهایی تولید را بسیار افزایش می دهد.به ریزدرآوردن فشرده برای مجموعه دستورالعمل های میکروکنترلر اساسی است،در حالیکه ریزپردازنده بندرت دارای ویژگی می باشند،روش های آدرس دهی قدرتمند آنها باعث به رمز درآوردن غیرفشرده دستورالعمل ها می شود.

6-2 مفاهیم جدید
میکروکنترلر مانند دیگر فرآورده هایی که پیش از آن برای برطرف کردن موانع کار مورد ملاحظه بودند،توسط دو نیروی مکمل هم یعنی نیاز بازار و تکنولوژی جدید بوجود آمده اند.تکنولوژی جدید همان است که پیش از این ذکر شد،یعنی نیمه رساناهایی با ترانزیستورهای بیشتر در فضای کمتر که با قیمت پایین تری به صورت انبوه تولید می شوند.نیاز بازار،تقاضای صنعت و مصرف کنندگان وسایل و اسباب بازی های هوشمند می باشد.این تعریف گسترده ای است،بهترین مثال شاید داشبورد خودور باشد که شاهد تغییر "مرکز کنترل" خودرو در طی دهه گذشته بوده است.زمانی راننده ها باید با دانستن سرعت خوداکتفا می کردند،اما امروزه نمایشی از سرعت صرفه جویی شده و زمان تقریبی رسیدن را دراختیار دارند.زمانی دانستن این که یک کمربند ایمنی در شروع حرکت محکم شده است یا نه کافی بود.امروزه به ما گفته می شود که کدام کمربند ایمنی ایراد دارد- اگر دری نیمه باز بماند بموقع توسط کلمات به ما اطلاع داده می شود(شاید کمربند ایمنی لای درگیر کرده باشد)
همه این موارد این مطلب را در ذهن تداعی می کنند که ریز پردازنده ها (و دراین مورد میکروکنترلر)به راه حل هایی تبدیل شده اند که به دنبال یک مساله می گردند.به نظر می رسد که آنها در کاهش پیچیدگی مدارات فرآورده های مصرفی بسیار موثر عمل کرده اند بطوری که تولیدکنندگان اغلب برای افزودن امکانات اضافی اشتیاق زیادی دارند،فقط به این علت که میکروکنترلرها خیلی راحت برای فرآورده های قابل طراحی هستند.نتیجه کار،اغلب فاقد سادگی لازم می باشد.بهترین مثل ممکن ظهور فرآورده های سخنگو درسال های اخیر است.این فرآورده ها،چه خودرو،چه اسباب بازی معمولاً مثال هایی از زیاده روی ها و طراحی های اضافه برنیاز، و شاید گوشه ای از هر دهه هشتاد هستند.در آن زمان هم بسیاری معتقد بودند که همین که گردکهنگی روی این وسایل بنشیند،تنها چیزی که برای آنها باقی می ماند قابلیت کاری آنها خواهد بود.میکروکنترلرها پردازنده هایی اختصاصی هستند آنها به خودی خود در کامپیوترها به کار نمی روند بلکه در فرآورده های صنعتی و وسایل مصرفی مورد استفاده قرار می گیرند.استفاده کنندگان این فرآورده ها اغلب از وجود میکروکنترلرها کاملاً بی اطلاع هستند.از دید آنها اجزای داخلی وجود دارند اما جزو جزئیات بی اهمیت طراحی به شمار می روند.برای مثال اجاق های مایکروویو،ترموسات قابل برنامه ریزی،ترازو های الکترونیکی و حتی خودروها را می توانید در نظر بگیرید.قسمت الکترونیکی هر یک از این فرآورده ها عموماً شامل ارتباط میکروکنترلر با کلیدهای فشاری،سوئیچ ها، وسایل هشدار دهنده و لامپ های روی یک تابلو می باشد.در نتیجه به استثنای برخی امکانات اضافی،طرز استفاده آنها یا فرآورده های الکترومکانیکی قبلی تفاوتی نکرده است و میکروکنترلر آنها از دید استفاده کنندگان مخفی است.برخلاف سیستم های کامپیوتری که توسط قابلیت برنامه ریزی و دوباره برنامه ریزی شدن،باز شناخته می شوند،میکروکنترلها یک بار برای همیشه و برای یک کار برنامه ریزی می شوند.این مقایسه به یک تفاوت اساسی در معماری این دو سیستم منجر می شود.سیستم های کامپیوتری نسبت RAM به ROM بالایی دارند و برنامه های کاربران در یک فضای نسبتاً بزرگ ROM اجرا می شوددر حالیکه روالهای ارتباط با سخت افزار در یک فضای کوچک ROM اجرا می گردد.از طرف دیگر میکروکنترلرها نسبت ROM به RAM بالایی دارند،برنامه کنترلی آنها که شاید نسبتاً بزرگ سیم باشد در ROM ذخیره می شود،در حالی که RAM فقط برای ذخیره موقت مورد استفاده قرار می گیرد.از آنجا که برنامه کنترلی برای همیشه در ROM ذخیره می شود در مرتبه میان افزار قرارمی گیرد.یعنی چیزی بین سخت افزار(مدارهای واقعی) ونرم افزار (برنامه هایی در RAM که هنگام خاموش شدن سیستم پاک می شوند)تفاوت بین سخت افزار و نرم افزار تا حدی شبیه به تفاوت بین یک صفحه کاغذ (سخت افزار)وکلمات نوشته شده روی آن (نرم افزار)می باشد.میان افزار را می توان به صورت فرم های استانداردی که برای یک کاربرد مشخص طراحی و چاپ شده اند درنظر گرفت.

7-2 مزیت ها و معایب:یک مثال طراحی
وظایفی که میکروکنترلرها انجام می دهند وظایف تازه ای نیستند.آنچه جدید است این است که طراحی ها با تعداد اجزای کمتری از گذشته انجام می شوند.طراحی هایی که در گذشته با استفاده از ده ها یا حتی صدها IC انجام می شوند امروزه با یک میکروکنترلر و اجزایی به تعداد از انگشتان دست قابل انجام اند.کاهش تعداد اجزاء که نتیجه مستقیم قابلیت برنامه ریزی و توانایی زیاد میکروکنترلرها درایجاد یکپارچگی می باشد،معمولاً منجر به زمان طراحی و ساخت کوتاه تر،هزینه تولید پائین تر،مصرف توان کمتر و قابلیت اطمینان بیشتر می شود.اعمال منطقی که نیازمند چندین IC می باشند،اغلب توسط یک میکروکنترلر با اضافه کردن یک برنامه کنترلی انجام می شوند.عیب کار در سرعت است.راه حل های میکروکنترلی هرگز در سرعت به پای راه حل های مشابه با اجزای گسسته نمی رسند.در موقعیت هایی که نیاز به پاسخ های بسیار سریع به رویدادها وجود دارد که البته بندرت چنین کاربردهایی پیدا می شوند)میکروکنترلرها عکس العمل ضعیفی از خودنشان می دهند.به عنوان یک مثل،نمایش ساده ای از انجام عمل NAND با استفاده از میکروکنترلر8051 در شکل الف نشان داده شده است.به کاربردن میکروکترلر برای چنین عملی چندان مرسوم نیست،اما این امکان وجود دارد.نرم افزار باید عملیات نشان داده شده در نمودار گردشی شکل (ب) را انجام دهد.برنامه زبان اسمبلی 8051 برای این عمل منطقی به صورت زیر می باشد.
Loop: Mov c,p1,4
ANL c,p1,5
ANL c,p1,6
CPL c
Mov p1,7,c
SUMP Loop
اگر این برنامه در یک میکروکنترلر 8051 اجرا شود بدون شک تابع NAND با سه ورودی تحقق می یابد(این مطلب را می توان با یک ولتمتر یا نوسان تحقیق کرد)تاخیر انتشار یک گذار1 در ورودی تا استقرار سطح منطقی درست در خروجی دست کم در مقایسه با معادل TTL2 آن بسیار طولانی است.(شکل 3-2)
(الف _انجام یک عمل منطقی ساده توسط میکرو کنترلر)

(ب_نمودار گردشی برای برنامه گیت منطقی)

بسته به نسبت زمانی تغییر در ورودی و تشخیص این تغییر توسط برنامه،تاخیر بین 3 تا 17 میکروثانیه خواهد بود.(با فرض عملکرد استاندارد 8051 با استفاده از یک کریستال 12 مگاهرتز)در حالی که تاخیر انتشار در معادل TTL از مرتبه 10 نانو ثانیه است یعنی حدود هزار با کمتر.واضح است که در ایجاد توابع منطقی با سرعت میکروکنترلرها با مدارهای معادل TTL قابل مقایسه نیست.در بسیاری از کاربردها بویژه آنهایی که با عملکرد انسان سروکار دارند این تاخیرها با نانوثانیه اندازه گیری می شوند یا میکروثانیه و میلی ثانیه اهمیتی ندارند،هنگامی که فشار روغن در خودروی شما افت می کند آیا لازم است که ظرف چند میکروثانیه مطلع شوید؟)مثال گیت منطقی نشان می دهد که میکروکنترلرها می توانند عملیات منطقی را انجام دهند از این گذشته هر چه طراحی ها پیچیده تر باشند طراحی میکروکنترلر بیشتر خود را نشان می دهد،تعداد کم اجزاء مزیتی است که قبلاً به آن اشاره شده علاوه برآن عملیات پیش بینی نشده در برنامه کنترلی را می توان تنها با تغییر نرم افزار دگرگون کرد و این روش کمترین اثر ممکن را روی چرخه تولید خواهد گذاشت.

8-2 خلاصه سخت افزار
1-8-2 مروری بر خانوادهMcs-51TM
8051 یک IC نوعی و اولین عضو این خانواده است که بصورت تجاری مطرح شد خلاصه مشخصات این IC از این قراراست:
* K4 بایت ROM
* 128 بایت RAM
* چهاردرگاه I/O 3 (ورودی – خروجی)هشت بیتی
* دو تایمر/شمارنده4 16 بیتی
* رابط سریال5
* K64 بایت فضای حافظه خارجی برای کد
* K64 بایت فضای حافظه خارجی برای داده
* پردازنده بویی6(که عملیات روی بیت ها را انجام می دهد)
* 210 مکان بیتی آدرس پذیر7
* انجام عملیات ضرب و تقسیم در 4 میکروثانیه
دیگر اعضای خانواده Mcs-51TM هریک امکانات دیگری از قبیل ROM روی تراشه8EPROM RAM روی تراشه و یا یک تایمر سوم را دارا هستند.درضمن هر یک از انواع ICهای این خانواده یک نسخه مشابه یا CMOS کم مصرف9نیزدارد

شماره قطعه
حافظه کد روی تراشه
حافظه داده روی تراشه
تعداد تایمر
8051
8031
8751
8052
8032
8752
K ROM4

K EP ROM4
K ROM8

K EPROM8
128 Byte
128 Byte
128 Byte
256 Byte
256 Byte
256 Byte
2
2
2
3
3
3

مشخصاتی که ذکر شد در نمودار بکومی شکل زیر نشان داده شده اند.(شکل 4-2)

2-8-2 بررسی اجمالی پایه ها
در این شکل دیده می شود 32 پایه از 40 پایه 8051 به عنوان خطوط درگاه I/O عمل می کنند.معهذا 24 خط از این خطوط دو منظوره هستند.هریک از این خطوط می توانند به عنوان I/O یا خط کنترل و یا بخشی از گذرگاه آدرس یا گذرگاه داده به کار روند.در طراحی هایی که با کمترین مقدار حافظه و دیگر قطعات خارجی انجام می شوند،از این درگاهها به عنوان I/O همه منظوره استفاده می کنند.هرهشت خط یک درگاه می تواند به صورت یک واحد ارتباط با وسایل موازی مانند چاپگرها و مبدل های دیجیتال به آنالوگ بکار رود.یا هر خط به تنهایی با وسایل تک بیتی مثل سوئیچ ها،LED ها،ترانزیستورها،سیم پیچ ها10،موتورها و بلندگوها ارتباط برقرار کند.(شکل5-2)

درگاه O
درگاه O: یک درگاه دو منظوره از پایه 32 تا 39 تراشه 8051 می باشد.این درگاه در طراحی های با کمترین اجزای ممکن به عنوان یک درگاه I/O عمومی استفاده می شود.در طراحی های بزرگتر که از حافظه خارجی استفاده می کنند،این درگاه یک گذرگاه آدرس و داده حالتی پلکس شده می باشد.
درگاه1
درگاه 1 درگاه اختصاصی I/O روی پایه های 1 تا 8 است.پایه های p1.o تا P1.7 در صورت نیاز برای ارتباط با وسایل خارجی بکار می روند.وظیفه دیگری برای پایه های درگاه در نظر گرفته نشده است با بنابراین آنها گهگاه برای ارتباط با وسایل خارجی بکار می روند.استثناء در Icهای 8032/8052 که از p1.o و p1.1 به عنوان خطوط I/O و یا ورودی تایمر سوم استفاده می شود.

درگاه 2
درگاه 2 (پایه های 21 تا 28)یک درگاه سات که به عنوان I/O عمومی و یا بایت بالای گذرگاه آدرس طراحی با حافظه کد خارجی11 به کار می رود.این درگاه همچنین در طراحی هایی که به بیش از 256 بایت از حافظه داده خارجی 12نیازدارد نیز استفاده می شود.

درگاه 3
درگاه 3 یک درگاه دو منظوره روی پایه های 10 تا 17 می باشد.علاوه بر I/O عمومی این پایه ها هریک وظایف دیگری نیز در رابطه با امکانات خاص 8051 دارند.وظایف خاص پایه های درگاه 3 و درگاه 2 در جدول خلاصه شده است.

بیت
نام
آدرس بیت
عملکرد خاص
P3.3
RXD
B0H
دریافت داده برای درگاه سریال
P3.1
TXD
B1H
ارسال داده برای دریافت سریال
P3.2

B2H
وقفه خارجی 0
P3.3

B3H
وقفه خارجی 1
P3.4
TO
B4H
ورودی خارجی برای تایمر شمارنده 0
P3.5
T1
B5H
ورودی خارجی برای تایمر شمارنده 1
P3.6

B6H
سیگنال فعال ساز نوشتن در حافظه داده خارجی
P4.7

B7H
سیگنال فعال ساز خواندن از حافظه داده خارجی
P1.0
T2
90H
ورودی خارجی تایمر شمارنده 2
P1.1
T2EX
91H
تسخیر/reload تایمر شمارنده 2

( Program stare Enable)
8051 چهار سیگنال اختصاص یافته برای کنترل گذرگاه دارد. یک سیگنال خروجی روی پایه 29 است که حافظه برنامه خارجی (کد)را فعال می کند.این پایه معمولاً به پای CE یک EPROM وصل می گردد تا خواندن با بیتهای برنامه از EPROM امکان پذیر شود.
سیگنال در طی مرحله خواندن یک دستورالعمل پائین می رود.کدهای دورویی برنامه از EPROM خوانده می شوند.در گذرگاه داده منتقل می گردند و برای رمز گشائی در ثبات دستورالعمل 8051 ذخیره می شوند هنگام اجرای برنامه از ROM داخلی در حالت غیرفعال باقی می ماند.

ALE(Address latch Enable)
سیگنال خروجی ALE در پایه 30 برای هر فردی که با ریزپردازنده انیتل مثل 80806,8085 یا 8088 کارکرده باشد آشناست.8051 بطور مشابهی از ALE برای جداسازی گذرگاه آدرس داده استفاده می کند.هنگامیکه درگاه o در حالت خاص خود به عنوان گذرگاه داده وبایت پایین گذرگاه آدرس استفاده می شود سیگنال ALE آدرس را در یک ثبات خارجی در طی غیر نخست سیکل13 حافظه نگاه می دارد.پس از آن خطوط درگاه برای ورود و خروج داده در طی نیمه دوم سیکل حافظه یعنی هنگامیکه انتقال داده انجام می شود،در دسترس هستند سیگنال ALE با فرکانس یک ششم فرکانس نوسان ساز روی تراشه نوسان می کند و می تواند به عنوان یک پالس ساعت همه منظوره در تعبه سیستم بکار رود.اگر 8051 از یک کریستال 12 مگاهرتز،پالس ساعت دریافت کند،ALE با فرکانس 2 مگاهرتز نوسان می کند.تنها استثناء در طی انجام دستورالعمل Movx است که یک پالس ALE حذف می شود.این پایه همچنین برای برنامه ریزی پالس ورودی در انواع EPROM در 8051 مورد استفاده قرار می گیرد.

(Extrral Access)
سیگنال ورودی در پایه 31 معمولاً به سطح منطقی بالا(+5V) یا پائین (زمین)وصل می شود اگر این پایه در وضعیت بالا قرارگرفته باشد 8051/8052 برنامه را از ROM داخلی یعنی K4 یا K8 بایت پائین حافظه اجرا می کند.هنگامی که پایین باشد ROM داخلی غیرفعال می شود و برنامه ها از EPROM خارجی اجرا می شوند.همچنین نوع EPROM در 8051 از خط برای تغذیه 21 ولت در برنامه ریزی EPROM داخلی استفاده می کند.

RST(Reset)
ورودی RST در پایه 9، آغازگر اصلی 8051 است وهنگامیکه این سیگنال حداقل برای دوسیکل ماشین 14در وضعیت بالا بماند اثبات های داخلی 8051با مقادیر نسبی برای یک شروع به کار سازمان یافته بکار می شوند.

ورودی های نوسان ساز روی تراشه
8051 دارای یک نوسان ساز روی تراشه15 است و معمولاً با یک کریستال که به پایه های 18 و 19 متصل می شود به راه می افتد.فازنهای پایدار کننده نیز به صورت نشان داده شده مورد نیاز هستند،فرکانس نامی کریستال برای اغلب IC ها خانواده MCS-51TM ،14 مگاهرتز است،هرچند که 80c31BH می تواند با فرکانسهایی تا 16 مگاهرتز نیز کارکند.نوسان ساز روی تراشه الزاماً نیازی به یک کریستال ندارد.همانطور که در شکل نشان داده شده است یک منبع پالس ساعت TTL می تواند به XTAL1 و XTAL 2 وصل شود.

اتصالات تغذیه
8051 با یک تغذیه +5 ولتی کارمی کند.اتصالVss به پایه 40 و Vss (زمین)به پایه 20 وصل می شود.

3-8-2 ساختار درگاه I/O
مدارات داخلی پایه های درگاه ها به صورت مختصر درشکل نشان داده شده است.نوشتن در پایه یک درگاه،داده را در یک ذخیره ساز درگاه بار16می کند.در اثر این عمل یک ترانزیستور اثر میدانی (FET)که به پایگاه درگاه وصل شده است،راه اندازی می شود.قابلیت راه اندازی برای درگاههای 1،2 و 3 به اندازه چهار TTL شا تکی کم مصرف17و برای درگاه o به اندازه هشت عدد از همین نوع TTL می باشد.
(شکل 6-2) راه اندازی 8051 با یک نوسان ساز TTL

(شکل7-2 )

توجه کنید که مقاومت بالابرنده18در درگاه o وجود ندارند.ممکن است یک مقاومت بالا برنده خارجی بسته به مشخصات ورودی وسیله ای که توسط درگاه راه اندازی می شود مورد نیاز باشد.
در 8051 دو قابلیت خواندن ذخیره ساز19و خواندن پایه20وجود دارد.دستورالعمل هایی که عمل بخوان تغییر بده- بنویس ر ابکار می برد(مثل CPL p1.5)برای پرهیز ازتشخیص نادرست سطح ولتاژ در مواقعی که پایه بشدت تحت بار قراردارد،عمل خواندن را از ذخیره ساز انجام می دهند و دستورالعمل هایی که یک بیت ازدرگاه وارد می کنند،پایه را می خوانند.ذخیره ساز درگاه در این مورد باید شمال 1 منطقی باشد وگرنه FET راه انداز روشن می شود و خروجی را پایین می کشد.reset کردن سیستم همه ذخیره سازه های درگاه را می کند.پس اگر یک ذخیره ساز درگاه پاک شود متعاقب آن نمی توان از پایه به عنوان ورودی استفاده کرد،مگر اینکه ابتدا ذخیره ساز 1 شود.شکل بالا مدارات مربوط به عملکرد خاص درگاههای o و 2 و3 را نشان نمی دهد،هنگامیه عملکرد خاص این درگاه ها در حال انجام است.راه اندازهای خروجی به یک آدرس داخلی آدرس/داده داخلی با یک سیگنال کنترلی بصورت مقتضی سوئیچ می شوند.

9-2 سازمان حافظه
اغلب ریزپردازنده ها یک فضای حافظه مشترک برای داده و برنامه در نظر می گیرند.این کار معتولی است چون برنامه ها معمولاً روی یک دیسک ذخیره شده و برای اجرا به RAM منتقل می گردند.به این ترتیب برنامه ها و داده ها هر دو در RAM سیستم مقیم می شوند.از طرف دیگر میکروکنترلرهابندرت به عنوان cpu در سیستم های کامپیوتری مورد استفاده قرار می گیرند.در عوض،به عنوان جزء مرکزی در طراحی های کنترل گرا به کار می روند که دراین موارد حافظه محدود است،دیسک درایو یا سیستم عامل دیسک وجود ندارد و برنامه کنترلی باید در ROM قرارداده شود.به همین دلیل 8051 یک فضای حافظه جداگانه برای برنامه (کد)و داده در نظر می گیرد.همان طور که در جدول مقایسه IC ها نشان داده شده است،که داده هر دو ممکن است داخلی باشند. با این وجود هردو با استفاده از اجزاء را خارجی تا خد K64 بایت حافظه کد و K64 بایت حافظه داده قابل توسعه هستند.حافظه داخلی شامل ROM روی تراشه و RAM داده روی تراشه است.RAM روی تراشه شامل آرایش مناسبی از حافظه همه منظوره،حافظه بیتی آدرس پذیر،بانک های ثبات و ثبات ها کاربرد خاص21می باشد.دو ویژگی جالب توجه در 8051 بدین قرار است:الف – ثباتها و درگاههای ورودی- خروجی بصورت نقشه حافظه 22هستند و مانند هر مکان دیگر حافظه قابل دسترسی می باشند ب)پشته،برخلاف معمول دیگر ریز پردازنده ها که پشته را در RAMخارجی قرار می دهند،در RAM داخلی قراردارد.شکل زیر به صورت خلاصه شده،فضای حافظه را برای 8031 بدون ROM و بدون نشان دادن جزئیات حافظه داد.روی تراشه نشان می دهد
(شکل 8-2)

همانطور که در شکل صفحه بعد نشان داده شده است فضای حافظه داخلی میان بانک های ثبات (ooH-Ffh)،RAM بیتی آدرس پذیر(20H-ffH)،RAM همه منظوره ((30H-7FHو ثبات ها کاربرد خاص (80H-ffh)تقسیم شده است.

1-9-2 RAM همه منظوره

(شکل 9-2)
اگر به شکل بالا،80 بایت را از آدرس 30H تا 7FH برای RAM همه منظوره نشان می دهد.32 بایت پائین ازآدرس 00H تا 2FH نیز می توانند به صورت مشابهی استفاده شوند.هر مکانی در RAM همه منظوره با استفاده از روشهای آدرس دهی مستقیم یا غیرمستقیم قابل دسترس است.برای مثال برای خواندن محتویات RAM داخلی آدرس 5FH به داخل انباره این دستورالعمل بکار می رود:

MOV A,5FH
این دستورالعمل یک بایت داده را با استفاده از آدرس دهی مستقیم برای مشخص کردن مکان مبدا منتقل می کند،مقصد داده بطور منحتی در کد عملیاتی دستورالعمل با عنوان A انبار،23مشخص شده است.در ضمن RAM داخلی با استفاده از آدرس دهی غیر مستقیم و R0 و R1 نیز قابل دسترسی است.برای مثال دو دستورالعمل زیر همان کاری را می کنند که دستورالعمل بالا به تنهایی انجام می دهد:
5FH # وMOV R0
MOV A, @ Ro
دستورالعمل نخست از آدرس دهی فوری برای انتقال مقدار 5FH به ثبات Ro استفاده می کند و دستورالعمل دوم آدرس دهی غیرمستقیم را برای انتقال داده ای که "Ro به آن اشاره می کند"به داخل انباره به کار می گیرد."RAM بیت آدرس پذیر"
8051،210 مکان بیت آدرس پذیر دارد،که 128 مکان آن درآدرس بایت 20H تا 2FH قرارداشته و بقیه ثبات های کاربرد خاص هستند که بعداً مورد بحث قرار می گیرند.اندیشه دستیابی به بیت های منفرداز طریق نرم افزار،یکی از امکانات قدرتمند اغلب میکروکنترلها است.بیت ها می توانند توسط یک دستورالعمل،1،0،AND و یا OR گردند.اغلب ریزپردازنده ها به یک رشته از دستورالعمل های "بخوان – تغییر بده- بنویس"برای انجام همین اعمال نیاز دارند.بعلاوه درگاه های I/O در 8051 بصورت بیت های آدرس پذیر هستند که ارتباط اقراری را با تک بیت ها ورودی و خروجی می کنند.تعداد 28 امکان آدرس پذیر همه منظوره در آدرس بایت یا به عنوان بیت قابل دسترسی هستند.برای مثال برای 1 کردن بیت 64H این دستورالعمل را می توان بکار برد:
MOV A,2CH
ORL A,#1000000013
MOV 2CH,A
2-9-2 بانک های ثبات24
بانک های شات در 32 مکان پائین حافظه داخلی قراردارند.مجموعه دستورالعمل 8051 هشت ثبات را از Ro تا R7 پشتیبانی می کند و به صورت پیش فرض،این ثبات ها،در آدرس 00H تا07H قرارمی گیرند دستورالعمل زیر محتوای آدرس 05H را به داخل انباره منتقل می کند. MOV A,R5
این دستورالعمل یک دستورالعمل یک بایتی است که از آدرس دهی ثبات استفاده می کند.البته همین عملیات با یک دستورالعمل دو بایتی با استفاده از آدرس دهی مستقیم دربایت دوم نیز انجام پذیر است:MOV A,05H
دستورالعمل هایی که از ثبات های Ro تاR7 استفاده می کنند کوتاهتر و سریعتر از دستورالعملهای معادلی هستند که از آدرس دهی مستقیم استفاده می کنند.داده هایی که بطور متناوب استفاده می شوند،بهتر است یکی از این ثبات ها را استفاده کنند.
بانک ثبات فعال با تغییر بیت هایی انتخاب بانک ثبات در کلمه وضعیت برنامه25 قابل تغییر است.با فرض آنکه بانک ثابت شماره 3 فعال باشد دستورالعمل زیر محتوای انباره را در مکان 18H می نویسد.
MOV Ro,A
اندیشه بانک های ثبات "امکان" سوئیچ متن را بصورت سریع و کارا فراهم می کند،که به موجب آن بخشهای جداگانه یک نرم افزار،مستقل از دیگر بخشها از یک مجموعه ثبات خاص خود استفاده می کنند.

3-9-2 ثبات های کاربرد خاص
ثبات های داخلی در اغلب ریز پردازنده توسط مجموعه دستورالعمل ها به صورت صنفی قابل دسترسی هستند.برای مثال"INCA" در ریزپردازنده 6809 محتوای انبار،A را یک واحد افزایش می دهد.عملیات به صورت مختلفی در کد عملیاتی دستورالعمل مشخص شده است.روش دستیابی مشابهی برای ثبات ها درمیکروکنترلرها 8051 امکان پذیر است.در حقیقت دستورالعمل "INCA" در 8051 همان عمل را انجام می دهد.ثبات ها داخلی 8051 به عنوان بخشی از RAM روی تراشه پیکربند شده اند . بنابراین هر ثبات دارای یک آدرس نیز هست.26
این برای 8051 منطقی است چون ثبات زیادی دارد.علاوه بر R7،21 ثبات کاربرد خاص (SFR) در ناحیه بالای RAM از آدرس 80H تا FFH وجود دارد.دقت کنید که اکثر 128 آدرس از 80Hتا FFH تعریف نشده اند.تنها 21 آدرس SFR تعریف شده است.
اگرچه انباره به صورت مخفی قابل دسترسی است اکثر SFRها با استفاده از آدرس دهی مستقیم قابل دستیابی است.طراحان باید هنگام بازکردن با بیت ها به جای بایت ها مراقب باشند.برای مثال دستورالعمل:SETB OEOH بیت 0 در انباره را 1 می کند ولی دیگر بیت ها را متغییر نمی دهد.شگرد کار تشخیص این نکته است که بدانیم EOH هم آدرس کامل با بیت انباره و هم آدرس کم ارزش ترین بیت درانباره می باشد.چون دستورالعمل SETB روی بیت ها عمل می کند تنها روی بیت آدرس دهی شده تاثیر می گذارد.برای مثال درگاه 1 آدرس با بیت 90H یا 1001000B قراردارد بیت های درگاه 1 در آدرس 90H تا 97H قراردارند یعنی 10010XXXB.
"کلمه وضعیت برنامه"
کلمه وضعیت برنامه (psw) در آدرس DOH همانطور که در جدول خلاصه شده است شامل بیت های وضعیت می باشد.

خلاصه ثبات psw
بیت
نماد
آدرس
شرح عملکرد بیت
Psw.7
CY
D7H
پرچم نقلی
Psw.6
AC
D6H
پرچم نقلی کمکی
Psw.5
Fo
D5H
پرچم 0
Psw.4
RS1
D4H
انتخاب بانک ثبات 0
Psw.3
RS0
D3H
انتخاب بانک ثبات 1

00H-07H
00= بانک0، آدرسهای

08-0FH
01= بانک 1، آدرس های

10H-17H
1 0= بانک 2، آدرس های

18H-1FH
11= بانک 3، آدرس های

Psw.2
ov
D2H
پرچم سرریز
Psw.1

D1H
رزروشدده
Psw.0
p
D0H
پرچم توازن زوج

.
پرچم نقلی
بیت نقلی (CY) یک بیت دو منظوره است که کاربرد آن برای عملیات حسابی است اگر در طی عمل جمع،یک بیت نقلی از بیت 7 خارج شود یا در طی عمل تفریق،یک بیت فرضی به بیت 7 وارد شود پرچم نقلی 1 می شود.برای مثال اگر انباره شامل ffh باشد دستورالعمل:
ADD A,#1
به انباره مقدار 00H را داده و پرچم نقلی را در psw،1 می کند.
پرچم نقلی در ضمن یک انباره بولی نیز هست،که به عنوان یک ثبات تک بیتی برای دستورالعمل های بولی که روی بیت ها عمل می کنند به کار می آید.برای مثال دستورالعمل زیر بیت 25H را با پرچم نقلی AND می کند و نتیجه را به پرچم نقلی برمی گرداند: C,25H AND
پرچم نقلی کمکی
هنگام جمع کردن مقادیر دهدهی کد شده بصورت دورویی (BCD) اگر یک انتقال از بیت 3 به بیت 4 اتفاق بیفتد،یا نتیجه در چهار بیت پائینی بین oAH تا oFH باشد پرچم نقلی کمکی Set می شود.اگر مقادیر که جمع شده اند،BCD باشند دستورالعمل جمع باید با DAA(تصحیح اعشاری انباره)27دنبال می شود.تا نتایج بزرگتر از 9 به محدوده کاربرگردانده شوند.
پرچم صفر 0
پرچم 0 یا F0 یک بیت پرچم همه منظوره برای استفاده کاربران می باشد.
"بیت های انتخاب بانک ثبات"
بیت های انتخاب بانک ثبات (Rs1 و RS0)،بانک ثبات فعال را مشخص می کنند،در پی Reset شدن سیستم پاک می شوند و در صورت لزوم بصورت نرم افزاری تغییر می کنند.برای مثال سه دستورالعمل زیر بانک 3 را فعال کرده سپس محتویات ثبات R7 را به انباره منتقل می کنند:
SETB Rs1
SETB RS0
MOV A,R7
هنگامی که برنامه بالا اسمبل شود آدرس های بیت درست،جانشین نمادهای "Rso" و "RS1" می شوند و به این ترتیب دستورالعمل SETBRS1 همان SETB OD4H می باشد.

پرچم سرریز 28
پرچم سرریز (OV)پس از یک عمل جمع یا تفریق،اگر یک سرریز حسابی اتفاق بیفتد 1 می شود.هنگامی که اعداد علامت دار جمع یا تفریق می شوند،نرم افزار می تواند این بیت را بررسی کند تا مشخص شود که نتیجه در محدوده مناسب قراردارد یا خیر.وقتی که اعداد بدون علامت جمع می شوند از بیت 57 صرف نظر می شود.نتایج بزرگتراز +127 یا کوچکتر از -128 بیت 57/1 1 می کنند.برای مثال عمل جمع زیر باعث سرریز شده و بیت OV را در 1,Psw می کند:

8EH به عنوان یک عدد علامت دار،با -116 معادل است که به وضوح با نتیجه درست یعنی 142 متفاوت است بنابراین بیت 1,OV می شود.

بیت توازن29
بیت توازن(P) در هر سیکل ماشین برای ساختن توازن زوج انباره،بطور خودکار 1 ویا پاک می شود.تعداد بیت های 1 در انباره به علاوه بیت p همواره زوج است اگر برای مثال انباره شامل 10101101 باشد p حاوی 1 خواهدبود.بیت توازن اغلب در ارتباط بار اول های درگاه سریال برای اضافه کردن یک بیت توازن پیش از فرستادن و یا بررسی توازن پس از دریافت به کار می رود.

ثبات B
ثبات B در آدرس foH به همراه انباره برای عملیات ضرب و تقسیم استفاده می شود.دستورالعمل MUL AB مقادیر هشت بیتی بدون علامت در AوB را صرف کرده و نتیجه 16 بیتی را در A و B قرار می دهد.دستورالعمل A,DIV AB را بر B تقسیم می کند و خارج قسمت را در A و باقی مانده را در B می گذارد.ثبات B همچنین به عنوان یک ثبات چرکنویس همه منظوره عمل می کند.این ثبات بیت آدرس پذیر ازآدرس FOH تا F7H نیز هست.
اشاره گر پشته 30
اشاره گر پشته یک ثبات هشت بیتی در آدرس 81H است. این ثبات حاوی آدرس داده ای است که در همان هنگام در بالای پشته قراردارد.عملیات پشته شامل پوش کردن داده به پشته و چاپ کردن داده ازپشته می باشد.پوش کردن به پشته sp را پیش از انتقال داده به پشته یک واحد افزایش می دهد و عمل پاپ کردن،داده را ازپشته می خواند سپس sp را یک واحد کاهش می دهد.
پشته 8051 در RAM داخلی قرار دارد و محدود به آدرس هایی است که با آدرس دهی غیرمستقیم قابل دسترسی است.یعنی 128 بایت اول در 8031/8051 یا تمام 256 بایت RAM روی تراشه 8032/8051 .برای مقدار اولیه دادن دوباره به sp در پشته ای که از آدرس 60H آغاز می شود.دستورالعمل زیر مورد استفاده قرار می گیرد:
MOV SP,#5FH
در 8031/8051 این دستورالعمل پشته را به 32 بایت محدود می کند،چون بالاترین آدرس در RAM روی تراشه،7FH است.در این دستورالعمل مقدار 5FH به کار رفته چون SP پیش از اولین عمل پوس یک واحد افزایش می یابد و 60H می شود،طراحان ممکن است نخواهند اشاره گر پشته را مقدار دهی اولیه کنند و بگذارند مقدار پیش فرض خود را از هنگام reset شدن حفظ کند این مقدار یعنی 07H با 8048 که پردازنده،قبل 8051 است،سازگاری دارد وباعث می شود که اولین نوشته در پشته،داده را در آدرس 08H ذخیره کند.اگر نرم افزار مورد استفاده به sp مقدار اولیه ندهد،بانک ثبات 1 در دسترس نخواهدبود.زیرا این ناحیه از RAM داخلی بخشی از پشته می باشد.پشته بطور صریح توسط دستورالعمل های push و pop برای ذخیره و بازیافت موقتی داده ها قابل دسترس است یا بصورت صنفی با فراخوانی زوال ها (ACALL,LCALL)31و بازگشت(RETIوRET)که دستورالعمل هایی برای ذخیره و بازیابی شمارنده برنامه32هستند.می توان به آن دسترسی پیدا کرد.
اشاره گر داده33
اشاره گر داده که برای دستیابی به حافظه کد یا داده خارجی استفاده می شود،یک ثبات 16 بیتی است که در آدرس های 82H و 83H قراردارد.سه دستورالعمل زیر 55H را در مکان 1000H در RAM خارجی می نویسد:
MOV A,#55H
MOV DPTR ,# 1000H
MOVX @DPTR,A
اولین دستورالعمل از آدرس دهی فوری برای انتقال داده ثبات 55H به انباره استفاده می کند.دومین دستورالعمل نیز آدرس دهی فوری را این بار برای انتقال آدرس ثبات 16 بیتی 1000tt به اشاره گر داده به کار می برد.دستورالعمل سوم از آدرس دهی غیرمستقیم برای انتقال محتوای A(55H) به مکانی از RAM خارجی که آدرسش در DPTR است (1000H)استفاده می کند.

ثبات های درگاه34
درگاههای I/O در 8051 عبارتند از درگاه 0 در آدرس 80H ، درگاه 1 در آدرس 90H درگاه 2 در آدرس A0H و درگاه 3 در آدرس BoH.درگاه های 3,2,0 در صورت استفاده از حافظه خارجی یا برخی از امکانات خاص 8051،برای عملیات I/O در دسترس نیستند.با این همه p1.2 تا p1.7 همواره به عنوان خطوط I/O همه منظوره قابل استفاده می باشند.همه درگاه ها بیت آدرس پذیر هستند که امکانات قدرتمندی را برای ارتباطات متقابل فراهم می کنند.اگر یک موتور از طریق یک سیم و پیچ و سوئیچ ترانزیستوری به بیت 7 درگاه 1 وصل باشد،برای مثال می تواند:یک دستورالعمل 8051 یعنی:
SETB P1.7
روشن شود و با دستورالعمل زیر خاموش گردد:
CLR P1.7
دستورالعمل ها فوق از عملگر نقطه برای آدرس دادن به یک بیت دریک مکان بیت آدرس پذیر استفاده می کنند.اسمبلر تغییرات لازم را انجام می دهد بدین ترتیب دو دستورالعمل زیر معادل هستند:
CLR P1.7
CLR 97H
به عنوان یک مثال دیگر ارتباط با وسیله ای شامل یک بیت وضعیت بنام Bvsy را درنظر بگیریدئ که هنگام مشغول بودن وسیله،او هنگام آماده بودن آن پاک می باشد.1 مگر Busy برفرض به بیت 5 درگاه 1 وصل شده باشد،حلقه زیر باعث می شود که سیستم برای آماده شدن وسیله صبر کند:
WAIT: JB P1.5 , WAIT
این دستورالعمل یعنی "اگر بیت P1.5 شد،برحسب WAIT پرش کن"به عبارت دیگر "برگرد و دوباره آن را بررسی کن".

ثبات های تایمر
8051 دارای دو تایمر شمارنده 16 بیتی برای زمان بندی فاصله های زمانی35و یا شمارش اتفاقات36است.تایمر 0 درآدرس های 8AH و 8CH و تایمر 1 در آدرس های 8BH قراردارند.عملکرد تایمر توسط ثبات حالت تایمر37(TMOD) در آدرس 89H و ثبات کنترل تایمر(TCON)در آدرس 88H تعیین می شود که از این دو،تنها TCON بیت آدرس پذیر است.
ثبات های درگاه سریال
8051 شامل یک درگاه سریال روی تراشه برای ارتباط با ابزارهای سریال مانند پایانه ها و مدم ها و یا برای ارتباط با دیگر IC هایی که خطوط ارتباطی سریال دارند،می باشد.ثباتی به نام با فرداده سریال38(SBUF) در آدرس 99H هر دو داده ارسالی و دریافتی را نگه می دارد.نوشتن در SBUF،داده را برای ارسال آماده می کند و خواندن از SBUF،داده دریافتی را دردسترس قرار می دهد.حالت های مختلف عملکرد مختلف عملکرد درگاه سریال از طریق ثبات کنترل درگاه سریال در آدرس 99H که بیت آدرس پذیر نیز هست،قابل برنامه ریزی می باشد.

ثبات های وقفه
8051 دارای یک ساخت با پنج منبع وقفه در دو سطح تقدم39می باشد.وقثه ها پس از reset شده سیستم غیرفعال می شوند وسپس با نوشتن در ثبات فعال سازی وقفه40(IE)در آدرس A8H،فعال می گردند.سطح تقدم از طریق ثبات تقدم وقفه41در آدرس B8H تعیین می شود.هر ثبات بیت آدرس پذیر هستند.

ثبات کنترل توان42
ثبات کنترل توان (PCON) در آدرس 87H شامل بیت های کنترلی مختلفی است که در جدول آمده است:
بیت
نماد
شرح عملکرد
7

6
5
4
3
2
1*

0*

SMOD

GF1
GF0
PD

IDL

بیت دو برابر کننده نرخ ارسال، هنگام 1 شدن، نرخ ارسال
در حالت های 1، 2 یا 3 درگاه سریال دو برابر می شود
تعریف نشده
تعریف نشده
بیت 1 پرچم همه منظوره
بیت 0 پرچم همه منظوره
افت تغذیه، برای فعال کردن حالت افت تغذیه 1
می شود تنها راه خروج، reset شدن است.
حالت معلق، برای فعال کردن حالت معلق 1 می شود
تنها راه خروج، یک وقفه یا reset شدن است.
* تنها در نسخه های CMOS منظور شده است.

بیتSMOD نرخ ارسال درگاه سریال را در حالت های 3,2,1 دو برابر می کند.بیت های 4 و 5 و 6 در PCON تعریف نشده اند و بیت های 2 و 3 بیت های پرچم همه منظوره برای استفاده کاربران می باشند.بیت های کنترل توان یعنی افت تغذیه43(PD)و معلق 44(IDL)ابتدا در همه ICهای خانواده MCS-51TM در دسترس بودند اما هم اکنون در نسخه های CMOS منظور می شوند.ثبات PCON بیت آدرس پذیر نیست.

حالت معلق
دستورالعملی که بیت IDL را 1 کند،آخرین دستورالعملی خواهد بود که پیش از ورود به حالت معلق اجرا می شود در حالت معلق سیگنال ساعت داخلی به CPU اعمال می شود.1مانه برای کاربردهای وقفه،تایمر و درگاه سریال.وضعیت CPU حفظ و محتویات ثبات ها تثبیت می گردد.پایه های درگاه ها هم سطح منطقی خود را حفظ می کنند.ALE و نیزبالا می روند.حالت معلق توسط هر وقفه ای که فعال شود یا با reset شدن سیستم پایان می یابد هریک ازاین شرایط بیت IDL را پاک می کند.

حالت افت تغذیه
دستورالعملی که بیت PD را کند آخرین دستورالعملی خواهد بود که پیش از ورود به حالت افت تغذیه اجرا می شود.در حالت افت تغذیه:1- نوسان ساز روی تراشه متوقف می وشد 2- تمامی اسامی متوقف می شوند 3- محتویات RAM روی تراشه حفظ می شود 4-پایه های درگاه سطح منطقی خود را حفظ می کنند 5- ALE و پایین می روند.تنها راه خروج از این حالت،reset کردن سیستم است.هنگامی که سیستم در این حالت قراردارد Vcc می تواند تا 2 ولت افت کند.باید مراقب بود که Vcc پیش از ورود به این حالت افت کند و دست کم ده سیکل نوسان ساز پیش از پایین رفتن پایه Vcc,RST به 5 ولت برگردد.

4-9-2 حافظه خارجی
برای پرهیز از یک تنگنای بالقوه در طراحی،میکروکنترلرها باید قابلیت توسعه را فراتر ازمنابع و امکانات روی تراشه خود داشته باشند.اگر قرار است امکاناتی توسعه یابد قابلیت آن باید وجود داشته باشد.معماری MCS-51TM این قابلیت را به صورت K64 بایت فضای حافظه خارجی باری کد و K64 بایت فضای حافظه خارجی برای داده فراهم کرده است و در صورت نیاز ROM و RAM اضافی را می توان به آن افزود.IC های ارتباط با ابزارهای جانبی نیز می توانند برای افزایش قابلیت I/O اضافه گردند.اینها جزئی از فضای حافظه داده خارجی با استفاده از نقشه حافظه برای I/O می باشند.هنگامیکه حافظه جارجی مورد استفاده قرار می گیرد درگاه 0 به عنوان یک درگاه I/O قابل استفاده نیست.این درگاه به یک گذرگاه آدرس (A0-A7)و داده (D0-D7)مالتی پلکس شده تبدیل می شود.ALE بایت پائین آدرس را در شروع هر سیکل حافظه خارجی ذخیره می کند.
درگاه 2 معمولاً برای بایت بالای گذرگاه آدرس به کار گرفته می شود.
پیش از بحث پیرامون جزئیات خاص مالتی پلکس کردن گذرگاه های آدرس و داده،ایده کلی و درشکل نشان داده شده است.یک آرایش بدون مالتی پلکس از 16 خط اختصاصی آدرس و 8 خط اختصاصی داده یعنی کلاً از 24 پایه استفاده می کند. آرایش مالتی پلکس شده 8 خط گذرگاه را با بایت پائین گذرگاه آدرس مالتی پلکس می نماید.این تعداد با 1 خط دیگر برای بایت بالای گذرگاه آدرس،کلاً 16 پایه می شود این صرفه جویی درپایه ها باعث می شود که امکانات و توانایی های بیشتری در یک بسته بندی دوردیفه45 40 پایه ای ایجاد شود.در طی نیمه نخست هرسیکل حافظه بایت پایین آدرس در درگاه 0 قرار می گیرد و توسط ALE ذخیره می شود.(شکل 10-2)

یک 74HC373 بایت پائین آدرس را در طی سیکل حافظه باید از نگاه می دارد.در طی نیمه دوم سیکل حافظه درگاه 0 به عنوان گذرگاه داده به کار می رود و داده،بسته به عمل انجام شده خوانده یا نوشته می شود.

5-9-2 دستیابی به حافظه کد خارجی
حافظه گد خارجی یک حافظه خواندنی است که توسط سیگنال فعال می شود.هنگامی که از یک EPROM خارجی استفاده می کنیم،درگاه های 0 و 2 به عنوان درگاه های I/O همه منظوره در دسترس ما نیستند.اتصالات سخت افزاری برای حافظه EPRUM در شکل نشان داده شده است.یک سیکل ماشین در 8051 برابر با 12 ولتاب نوسان ساز است. برای نوسان ساز روی تراشه با یک کریستال 12 مگاهرتز هر سیکل ماشین یک میکروثانیه طول می کشد.(شکل11-2)

در طی یک سیکل ماشین نوعی ALE دو پالس می دهد و دو بایت از حافظه برنامه خوانده می شود.زمان بندی این عملیات که به واکنشی کد عملیاتی46معروف است در شکل زیر نشان داده شده است.(شکل 12-2)

6-9-2 دستیابی به حافظه داده خارجی
حافظه داده خارجی یک حافظه خواندنی – نوشتنی است که با یا فعال می شود.این دو سگنال عملکرد و دیگر پایه های p3.6 و p3.7 می باشند.تنها راه دستیابی به حافظه داده خارجی دستورالعمل MOVx می باشد که از اشاره گر داده 16 بیتی،R0 و یا R1 به عنوان ثبات آدرس استفاده می کند.
RAM ها می توانند همانند EPROM ها به 8051 مرتبط شوند.با این تفاوت که به خط تراشه RAM و به خط آن وصل می شود.اتصالات گذرگاه آدرس و داده همانند EPROM ها است.همان طور که گفته شد با استفاده از درگاههای 0 و 2 تا 64K بایت از RAM خارجی داده می تواند به 8051 وصل شود.
یک نمودار زمان بندی برای یک عمل خواندن از حافظه داده خارجی برای دستورالعمل @ DPTR و MOV X A در شکل نشان داده شده است.یک پالس ALE و یک پالس در عوض یک پالس روی خط برای فعال کردن RAM حذف شده است.47
زمان بندی یک سیکل نوشتن برای A و MOV X @ DPTR به همان شکل است.
فقط پایین می رود و داده از درگاه 0 خارج می شود. در سیم هایی که با کمترین اجزاء ممکن طراحی می شوند،از عملکرد دیگر درگاه 2 صرف نظر می شود.زیرا این سیستم ها از حافظه کد خارجی استفاده نمی کنند و تنها به مقدار کمی حافظه داده خارجی نیاز دارند.اگر حافظه داده خارجی به صورت حافظه های کوچک صفحه گرا پیکربندی شود توسط آدرس های هشت بیتی قابل دسترسی است.اگر بیش از یک صفحه 25 بیتی از RAM مورد نیاز باشد چند بیت از درگاه 2 می تواند یک صفحه را انتخاب کند.برای مثال K1 بایت RAM می تواند مطابق شکل به 8051 مرتبط شود.بیت های 0 و 1 درگاه 2 باید برای انتخاب یک صفحه مقدار دهی اولیه شوند و سپس یک دستورالعمل MOVX برای خواندن و نوشتن داده در صفحه استفاده می شود.

(شکل13-2)

برای مثال فرض کنید دستورالعمل های زیر می توانند برای خواندن محتویات RAM خارجی به داخل انباره در آدرس 0050H به کار بروند:
Mov Ro,#50H
Mov X A , @RO
برای خواندن آخرین آدرس این RAM یعنی 03ffH دو بیت انتخاب صفحه باید 1 شوند.رشته دستورالعمل های زیر برای این منظور می توانند مورد استفاده قرار بگیرند:
SETB P2.0
SETB P2.1
Mov RO,# offH
Mov X A ,@ RO
یک مزیت این طراحی این است که بیت های 2 تا 7 درگاه 2 به عنوان بیت های آدرس استفاده نمی شوند،در حالی که اگر DPTR به عنوان ثبات آدرس به کار می رفت مورد نیاز بودند.در نتیجه P2.2 تا P2.7 برای مقاصد I/O در دسترس قرار می گیرند.

7-9-2 عملیات راه اندازی مجدد،reset
8051 با قرارگرفتن RST در وضعیت منطقی بالا برای دست کم دو سیکل ماشین و سپس پایین آمدن آن می تواند reset شود.RST ممکن است بطور دستی با استفاده از یک سوئیچ و یا هنگام اعمال تغذیه توسط یک مدار RC فعال گردد.شکل صفحه بعد دو مدار برای reset کردن سیستم را نشان می دهد.
(شکل14-2)

وضعیت همه ثبات های 8051 پس از reset سیستم در جدول صفحه بعد خلاصه شده است:
شاید مهم ترین این ثبات ها شمارنده برنامه باشد که با 0000H بار می شود.هنگامیکه RST دوباره پایین می رود.اجرای برنامه همیشه از اولین مکان در حافظه که یعنی 0000H آغاز می شود.عمل reset تاثیری بر محتوای RAM روی تراشه ندارد.
محتویات
ثبات ها
0000H
شمارنده برنامه
00H
انباره
00H
ثبات B
00H
PSW
07H
SP
0000H
‍‍PPTR
FFH
درگاه 0-3
XXX 00000B
(8031/8051)IP
XX000000B
(8032/8052)IP
0XX00000B
(8031/8051)IP
0X000000B
(8032/8052)IP
00H
ثبات های تایمر
00H
SCON
00H
S F
0XXXXXXXB
(HMOS)‍PCON
0XXX0000B
(CMOS)PCON
10-2 خلاصه دستورالعمل ها:
الف)دستورات محاسباتی:
دستور
عملوند
توضیح
ADD
A,source
Add source to A
ADD
A,#data

ADDC
A,source
Add with carry
ADDC
A,#Data

SVBB
A,source
Subtract from A
SVBB
A,#dare
With borrow
INC
A
Ineremenr
INC
Source

DEC
A
Decrement
DEC
Source

INC
DTPR
Inerement DPTR
MUL
AB
Mvltiply A 8B
DIV
AB
Divide A by B
DA
A
Decimel adjvst A

ب)دستورات انتقال:
دستور
عملوند
توضیح
MOV
A,Source
Move source
MOV
A,#Data
To dastination
MOV
Dest,source

MOV
Dest,#data

MOV
DPTR,#data 16

MOV C
A,@AtDPTR
Move from code
MOV C
A,@Atpe
Memory
MOVX
A,@Ri
Move from daca
MOVX
A,@DPTR
Memory
MOVX
@Ri.A

MOVX
@ DPTR,A

PusH
Direct
Push on to srack
POP
Direct
Pop from stack
XCH
A.source
Exchange bytes
XEHD
A,@Ri
Exchang elow

Order digits

ج)دستورات منطقی:
دستور
عملوند
توضیح
ANL
A,source
Logical AND
ANL
A,#data

ANL
Direct,A

ANL
Direct,#data

ORL
A,source
Logical OR
ORL
A.#data

ORL
Direct,A

ORL
Direct,#data

XRL
A,source
Logical XOR
XRL
A,#data

XRL
Direct,A

XRL
Direct,#data

CLR
A
Elear A
CPL
A
Complement A
RL
A
Rotate Alefr
RLC
A
(through c)
RR
A
Rorare A right
RRC
A
(throughe)
SWAP
A
Swap nibbles

د)دستورات بیتی:
دستور
عملوند
توضیح
CLR
C
Clear c
CLR
Bit
Clear bit
SETB
C
Set C
SETB
Bit
Set bit
CPL
C
Complement C
CPL
Bit
Complement bit
ANL
C,bit
AND bit with C
ANL
C,/bit
AND NOT bit with C
ORL
C,bit
OR not bit with C
Mov
C,bit
Mov bit to carry
Mov
Bit,c
Mov carry to bit
Jc
Rel
Jump if c set
JNC
Rel
Jvmp if c notser
JB
Bit,rel
Jump if bit set
JNB
Bit,rel
Jump if bit not set
JBC
Bit,rel
Jump if set then clear

ه)دستورات انشعاب:
دستور
عملوند
توضیح
ACALL
Addr11
Call subroutine
ACALL
Addr16

RET

Return from svb
RETI

From interupt
AJMP

Jump
LJMP
Addr 16

SJMP
Addr16

JZ
Rel

JNZ
@ATDPTR
Jump if A=0
CJNE
Rel
If A not= 0
CJNE
Rel
Compare and Jump
CJNE
A,data,rel
IF not equel
CJNE
A,#data,rel

DJNZ
@ Ri,#data,rel

DJNZ
Rn,rel
Decrement and jump
DJNZ
Dircct.rel
If not zero

و)دستور NOP:
دستور
عملوند
توضیح
NOP

No operarion

راهنمای جدول:
RN: آدرس دهی ثبات،R0 تا R7 مجاز است.
@Ri: آدرس غیرمستقیم به کمک R0 و R1 (آدرس حافظه داخلی یا SFR یا 256 بابت اول حافظه خارجی در R0 یا R1 قرار می گیرد.)
direct:آدرس حافظه داخلی(00H الی 7FH یا نام یکی از SFR ها مثل TMOD یا PO یا A که جلوی عدد علامت # نباشد).
Dara:یک عدد ثابت 8 بیتی مثل #12H یا #24 یا 0101b یا #1111 یا #240 (اکتال)
Dara16:یک عدد ثابت 16 بیتی مثل #1234H
Addr11: یک آدرس 11 بیتی (می تواند نام یک Lable و یا یک عدد 11بیتی در صفحه جاری که علامت # لازم ندارد).
Addr16: یک آدرس 16 بیتی مستقیم (می تواند نام یک Lable یا یک عدد 16 بیتی باشد و علامت # لازم ندارد).
Bit: عددی بین 00H الی 7FH (آدرس یکی از بیت های قابل آدرس کردن بیتی)یا نام بیت sfrهای قابل آدرس دهی بیتی مثل tcon.5 یا p1.2
REL: یک عدد 8 بیتی علامت دار(که در برنامه نام lable مقصد پرش است).
Sovrce: یکی از نمادهای RA و @Ri و direct که مقصد را نشان می دهد.
تذکر: میکروکنترلر 8X51 همانند هر پردازنده با کد 8 بیتی می تواند تا 256 دستور داشته باشد که کلاً 140 دستور یک بایتی و 91 دستور دو بایتی و 24 دستور 3 بایتی دارد.برای کد A5H دستورالعمل تعریف نشده است.(140+91+24=255).

فصل سوم

1-3موتور پله ای و مشخصه های اساسی آن
شکل 301 مقطع عرضی ساختار یک موتور پله ای مدرن نمونه را نشان می دهد.این موتور به نام موتور رلوکتانس متغیر تک پشته ای خوانده می شود. ما ابتدا با استفاده از این شکل نمونه عملکرد این ماشین را مطالعه خواهیم کرد هسته استاتور دارای قطب یا دندانه برجسته می باشد، روتور هم دارای 4 قطب است.هر هسته روتور و استاتور از جنس فولاد نرم هستند.سردسته سیم پیچی همان طور که در شکل نشان داده شده،آرایش داده شده اند.
هر دسته دارای دو کلاف است که بصورت سری متصل شده اند
یک دسته از سیم پیچی ها فاز نامیده می شود و نتیجاً این ماشین یک موتور سرفاز است.جریان از یک منبع تغذیه DC از طریق کلیدهای III,II,I به سیم پیچی ها تامین می شود.در وضعیت(1)،سیم پیچی فاز I از طریق جریان کلید I تغذیه می شود یا به اصطلاح فنی فاز I تحریک می شود،شار مغناطیسی ماشینی از تحریک که در فاصله هوایی واقع می شود با پیکانهایی نشان داده شده است.در وضعیت (1)سیم پیچی فاز I از طریق جریان کلید I تغذیه می شود،یا به اصطلاح فنی فاز I تحریک می شود،شار مغناطیسی ناشی از تحریک که در فاصله هوایی واقع می شود با پیکان هایی نشان داده شده است در وضعیت (1) دو قطب برجسته استاتور فاز I که تحریک شده اند با دو دندانه از 4 دندانه روترو همردیف هستند.این حالت از نظر دینامیکی یک حالت تعادل است هنگامی که کلید II برای تحریک فاز II علاوه بر فاز I بسته می شود،شار مغناطیسی در قطب های استاتور فاز II به حالت نشان داده شده در وضعیت (2) بوجود می آید و گشتاوری در جهت عکس ساعتگرد بعلت کشش در خط خمیده میدان مغناطیسی بوجود می آید.از این رو روتور سرانجام به وضعیت (3) خواهد رسید.
از این رو روتور با یک زوایه ثابت می چرخد که زاویه پله خوانده می شود که در این مورد 150 با انجام هر عمل سوئیچینگ است.اکنون اگر کلید I برای تخلیه انرژی فاز I باز شود،روتور 150 دیگر برای رسیدن به وضعیت (4) حرکت خواهد کرد. .
(شکل1-3)

پس موقعیت زاویه ای روتور را می توان برحسب واحدهای زاویه پله از طریق فرآیند سوئیچینگ کنترل کرد.اگر سوئیچینگ به ترتیب انجام شود،روتور با حرکتی پله ای خواهد چرخید،سرعت متوسط را هم می توان از طریق فرآیند سوئیچینگ کنترل کرد.
امروزه، ادوات حالت جامد بعنوان سوئیچ های الکترونیکی در درایو یک موتور پله ای بکار می روند و سیگنال های سوئیچینگ توسط IC های دیجیتال یا ریز پردازنده تولید می شوند(شکل 102) همانطور که در بالا ذکر شد،موتور پله ای یک موتور الکتریکی است که ورودی الکتریکی دیجیتال را به یک حرکت مکانیکی تبدیل می کند.در مقایسه با دیگر ادواتی که می توانند اعمال مشابه یا یکسانی را انجام دهند،سیستم کنترلی که از یک موتور پله ای بهره می برد دارای چندین مزیت مشخصی به ترتیب زیر است:
1- معمولاً به هیچ فیزیکی برای کنترل موقعیت یا کنترل سرعت نیاز نمی باشد.
2- خطای موقعیت جمع ناپذیر است.
3- موتورهای پله ای با تجهیزات دیجیتال مدرن سازکار هستند.
به این دلیل انواع و کلاس های مختلف موتورهای پله ای در لوازم جانبی کامپیوتر،دستگاههای خودکار سیستم های مشابه کار رفته اند

(شکل 2-3)

2-3 تاریخچه ابتدایی موتورهای پله ای:
در شماره ای از JIEE چاپ سال 1927 مقاله ای با عنوان کاربرد الکتریسیته د رناوهای جنگی وجود داشت و بخشی از این مقاله یک موتور پله ای رلوکتانس متغیر سه فاز از نوع فوق را تشریح می کرد که برای کنترل از را دور نشانگر جهت تفنگها و لوله های اژدر افکن در ناوهای جنگی انگلیسی بکار رفته بود.یک کلید گردان مکانیکی برای سوئیچینگ جریان تحریک به کار رفته بود.یک دور چرخش هندل شش پالس پله ای تولید می کند که باعث 900 حرکت روتور می شود.حرکت روتور در پله های 150 به منظور رسیدن به دقت موقعیتی لازم کاهش می یافت.
در این مقاله اشاره شده بود که در طراحی این موتور پله ای ظاهراً ساده فاکتورهای بسیاری می بایست مورد توجه قرار گیرند و احتیاط های بسیاری به منظور عملکرد مطلوب و مطمئن لحاظ شوند. این ماشینی نیاز به بست بالای گشتاور به اینرسی افراد متحرک به منظور اجتناب از دست دادن پله دارد.و ثابت زمانی نسبت اندوکتانس مدار به مقاومت،بایستی کوچک باشد تا به سرعت عملکرد بالایی دست یافت.این مسائل هنوز هم در موتورهای مدرن وجود دارند.
براساس مقاله های در IEEE transaction s on automatic control،موتورهای پله ای بعدها در نیروی دریایی ایالات متحده با هدفی مشابه بکار گرفته شدند.با اینکه کاربردهای عملی موتورهای پله ای مدرن در دهه 1920 واقع شده اشکال اولیه روسیه موتورهای رلوکتاس متغیر به واقع از قبل وجود داشتند.در مقاله ای نوشته Byrne آمده است: موتورهای رلوکتانس از نوع پله ای که اکنون بعنوان ادوات تعین موقعیت بکار می روند مثل ماشینهای بخار الکترو مغناطیسی موتورهای الکترونیکی نیم قرن نوزدهم بودند.ما در اینجا به دو اختراع قابل ذکر در سال های 1919 و 1920 در انگلستان می پردازیم.
(1) ساختار دندانه ای برای به حداقل رساندن زاویه پله.امتیاز اختراعی در انگلستان در سال 1919 توسط یک مهندس عمران در آبردین،اسکاتلند،بنام C.L.walker به خاطر اختراع نوعی ساختار موتور پله ای اخذ شد که قادر بود با زاویه های پله کوچک حرکت می کند هر یک ازقطب های برجسته دارای یک گروه دندانه کوچک است.دندانه های روتور در گام یکسان با دندانه های کوچک استاتوری می باشند.تعداد دندانه های روتور در اینجا 32 می باشند.هنگامی که فاز I تحریک می شود،گروههای پزانه ها در این فاز با برخی استاتور،همردیف می شوند.در این آرایش،دندانه های روتور و استاتور در فازهای II و III بایستی به اندازه 3/1 گام دندانه در جهات متقابل ناهمردیف شوند.هنگامی که جریان تحریک از فاز I به فاز II سوئیچ می وشد،روتور در جهت ساعتگرد به اندازه یک زاویه پله که در این مورد750 /3 = 3/(32/360)می باشند،خواهد چرخید بهرحال اگر در جریان تحریک به فاز III سوئیچ شود،چرخش در حرکت عکس ساعتگرد با همان زاویه کوچک خواهدبود.walker در مشخصات اختراع ثبت شده طرحی را برای ساخت نوعی از موتور پله ای که امروزه به نام نوع رلوکتانس متغیر چند پشته ای خوانهد می شود به همراه طرح هایی برای ساخت یک موتور خطی ارائه کرد.بهرحال در دهه 1950 بود که موتورهای پله ای مدرن که از اساس این اختراع بهره می بردند بصورت تجاری عرضه شدند

3- 3 پیشرفت سریع در دهه 1970:
پیش از آغاز دهه 1970 موتورهای پله ای با عملکرد دینامیک بسیار خوب در دسترس بودند.پس از ورود به دهه 1970 رشد سریعی در تعداد موتورهای پله ای بکار رفته در صنعت کامپیوتر مشاهد شد. و این منجر به تولید انبوه موتورها شد.در ایالات متعهده آمریکا،ساخت چاپگرهای دارای موتورهای پله ای و سرو موتورهای DC بصورت تجارتی مخاطره آمیز درآمد.
چاپگرهایی که سیستم های کنترل موتور الکتریکی را در برداشتند،با بکارگیری مدارهای مجتمع بجای مکانیزم های پیچیده معمول در گذشته، برای مهندسینی جوان دارای جاذبه قوی بودند زیرا آن ها امکان بهره گیری آزاد از دانسته های الکترونیک شان را می داد.گرایش های مشابهی در سایر کشورهای صنعتی در سال های نخستین 1970 دیده شد.انواع برجسته موتورهای پله ای ساخته شده برای استفاده در لوازم جانبی کامپیوتر در طول این دهه شامل موارد زیر می شود:
موتورهای دو فاز یا پله ای 1180
موتورهای هیبرید دوفاز با پله های 20 ، 50/2، 50
موتورهای آهنربای دائمی با پله های 50/7، 450 ، 900
موتورهای رلوکتانس متغیر سه و 4 فاز با پله های 50/7 ، 150
موتورهای رلوکتانس متغیر با 128 یا 132 پله بردور.
دسته آخر شامل موتورهای تک منظوره برای چابگر سریال می وشد که برای انطباق تعداد کاراکترهای بکار رفته در خط طراحی شده است.
در سال های نخستین دهه 1970، ماشین های نقشه کشی خود کار با بهره گیری از موتورهای پله ای سطحی از نوع هیبرید ظاهر شدند.در اواخر دهه 1970 بود که موتورهای خطی از نوع رلوکتانس متغیر به منظور انتقال حامل در پرینترهای سریال بکار گرفته شدند.بهرحال کاربرد موتورهای خطی همانگونه که از ابتدا انتظار می رفت بدلیل اندازه بزرگ و انعطاف پذیری در طراحی ترقی نکرده اند.در موتورهای پله ای بکار رفته از ماشین های NC نیز پیشرفت حاصل شد.در سال 1973 Fanuc itd. با رهبری S.Inaba به ساخت یک موتور پله ای توان بالای منحصر به فرد نائل شد.این موتور،یک موتور رلوکتانس متغیر چند پشته ای است.اما از ساختار ساندویچی پیشنهاد شده در مرجع برای اعمال گشتاوری بالا بهره می برد.از این موتور در ماشین های با کنترل عددی استفاده شده است.بهرحال به زودی این موتور با یک سروموتور DC جایگزین شد.یک دلیل برای این کار محدودیتی است که موتورهای پله ای در دستیابی به حرکت پایانی آرام دارا هستند.دلیل دیگر نیز پیشرفت های حاصل شده در سیستم های درایو دیجیتال برای موتورهای DC بود.در زمینه کامپیوترهای هم،سرو موتورها در جایی که سرعت های بالا و کاهش افزایش سریع ضروری ست بکار گرفته شده اند.بعنوان مثال د ردرایوهای گردونه دیزی و محورهای گرداننده نوار مغناطیسی.اما در موتورهای DC کمر تاتورو جارویک ها در برابر سایش مکانیکی به دور هستند و قابلیت اعتماد بالایی را فراهم می کنند.
4-3مینیاتوری شدن بعلت پیشرفت در مغناطیس و تکنولوژی کاربردی آن:
تولید موفقیت آمیز آهنربای از نوع کمیاب در زمین طراحی مینیاتوری موتور پله ای را به پیش برد.هنگامی که آلینکو در آهنربای اصلی موتورهای پله ای هیبرید بکار می رفت، کوتاهترین طول آهنربا بایتس mm10 باشد.در موتورهای بکار رفته تعیین موقعیت مغناطیسی یک درایو در سبک سخت،آهنربا دیسکی به ضخامت تنها mm1 یا در حدود آن می باشد.به علاوه روش عناصر محدود در آنالیز مدارهای مغناطیسی منجر به کاهش اندازه ماشین شد.

5-3طرح کلی موتورهای پله ای مدرن:
1-5-3 سیستم های کنترل حلقه باز:
بطور کلی موتورهای پله ای توسط مدارات الکترونیک،اکثراً با متبع تغذیه DC کار می کنند.موتور پله ای در مقایسه با موتورهای معمولی AC یا DC که اکثراً بطور مستقیم از یک منبع تغذیه درایو می شوند،یک موتور منحصر به فرد می باشد.به علاوه موتورهای پله ای در کنترل سرعت و موقعیت بدون حلقه های فیزیک پر هزینه کاربرد پیدا می کنند.این روش درایو به نام درایو حلقه باز خوانده می شود.
با اینکه کنترل حلقه باز از نظر اقتصادی روش درایو با صرفه ای است،از محدودیت رها نیست.بطور مثال چرخش روتور در محدوده های سرعت مشخص به شکل نوسانی و ناپایدار در می آید و به خاطر این مشخصه رفتاری،سرعت و شتاب یک موتور پله ای کنترل شده توسط یک طرح حلقه باز نمی تواند به سرعت یک موتور DC درایو شده توسط یک طرح کنترل – فیزیک باشد.از این رو در تلاش برای گسترش محدوده های کاربردی،توقف نوسان مساله ای است که بایستی حل شود.کنترل حلقه – بسته روش درایو موتور بدور از ناپایداری بود،و قادر به افزایش سرعت سریع می باشد.
ترکیب سیستم:
برای درک ترکیب اساسی سیستم درایو موتور پله ای،درایو یک نوار پانچ را که در ماشین های کنترل عددی بکار رفته بررسی می کنیم.یک پانچ کننده نوار از یک موتور پله ای برای فرستادن نوار کاغذ استفاده می کند.دستورالعمل های کار ماشین های کنترل عددی به شکل سوراخ های ایجاد شده توسط این وسیله ذخیره شده اند.موتور پله
ای بکار رفته برای این منظور معمولاً یک موتور دو – سه یا چهار فاز می باشد.در اینجا یک موتور سه فاز شامل سه دسته سیم پیچی را بررسی می کنیم
مهمترین ویژگی موتور پله ای این است که با یک زاویه ثابت به ازای هر پالس اعمال شده به توالی ساز منطقی می چرخد مقدار نامی این زاویه (درجه) زاویه پله خوانده می شود.با دریافت یک پالس دستور پله،توالی ساز منطقی فازی را که باید تحریک (یا انرژی دار) شود و فازی را که بایستی تخلیه انری شود تعیین می کند و سیگنالهایی به درایور موتور که طبقه کنترل کننده جریان تحویلی به موتور می باشد، می فرستد. توالی ساز منطقی معمولا با تراشه های مدار مجتمع TTL یا CMOS ساخته می شود. هنگامیکه پتانسیل یک کانال خروجی توالی ساز منطقی در سطح H (= بالا) می باشد، درایور قدرت برای تحریک فاز متناظر سیم پیچی عمل می کند. بطور مشابه، اگر خروجی در سطح L باشد، فاز همشماره تحری نمی شود، یا خاموش می شود. همانطور که در شکل 2.3 نشان داده شده، اگر موتور با ترتیب تحری …. 1-2-3-1 در جهت ساعتگرد که (CW=) حرکت کند، جهت چرخش با ترتیب عکس ….. 1-3-2-1 در جهت عکس ساعتگرد (CCW=) خواهد بود. در سیستم پانچ نوار، ترتیب معمولا برای فرستادن نوار در یک جهت ثابت است. بطور کلی، هیچ قاعده مشخصی برای تعیین اینکه کدام جهت ساعتگرد یا عکس آن است وجود ندارد، موتوری که از یک سر در جهت ساعتگرد می چرخد اگر از سر دیگر دیده شود بنظر می رسد که در جهت عکس ساعتگرد حرکت می کند. جهت چرخش معمولا با تطبیق بخشهای مورد نظر معین می شود. در این جا فازها با Ph1، Ph2، Ph3 و غیره نشان داده شده اند. یا PhA، PhB برای برخی موتورهای دو فاز. تحریک بکار رفته در شکل 2.3 تحریک تکفاز یا یکفاز خوانده می شود، و به این معنی است که به یک فاز از سه فاز ( یا از چهار فاز در یک موتور چهار فاز) در هر لحظه توان تحویل داده می شود. تحریک تکفاز اغلب به منظور تشریح اصول اساسی موتورهای پله ای ذکر می شود. اما همیشه بهترین روش درایو کردن نیست.

.(شکل 3-3)

2-5-3 سیستم های کنترل حلقه -بسته:
درایو حلقه باز جالب بوده و بطور گسترده ای در کاربردهای کنترل سرعت و موقعیت مقبولیت دارد.بهرحال عملکرد یک موتور پله ای در درایو حلقه – باز محدود است،بطور مثال یک موتور پله ای درایو شده به روش حلقه – باز هنگامی که فرکانس قطار پله خیلی بالاست یا اینرسی بار خیلی سنگینی است قادر به دنبال کردن فرمان پالس نیست بعلاوه حرکت موتور در درایوهای حلقه ب-باز تمایل به نوسانی شدن دارد.
عملکرد یک موتور پله ای بااستفاده از فیزیک موقعیت و یا فیزیک سرعت برای تعیین فازهای مناسب برای سوئیچینگ در زمان بندی های مناسب تا حد بسیار زیادی بهبود می یابد این نوع از کنترل بنام درایو حلقه – بسته خوانده می شود.در کنترل حلقه – بسته برای تشخیص موقعیت روتور نیاز به یک سنسور موقعیت می باشد،بعنوان مثال یک سنسور معمول،امروزه انکدر نوری بکار می رود و معمولاً به محور موتور ترویج می شود در یک مکانیسم پیشرفته تر،بجای یک سنسور مکانیکی اضافی،موقعیت روتور با مشاهده شکل موج های جریان سیم پیچی های موتور تشخیص داده می شود.کنترل حلقه بسته نسبت به کنترل حلقه – باز نه تنها در اینکه هیچگاه نقص در پله اتفاق نمی افتد بلکه در اینکه حرکت سریع تر وروان تر است نیز مزیت دارد.

فصل چهارم

نمونه عملی از یک ربات مسیر یاب ساده

1-4 مقدمه
در این فصل یک نمونه ساده از یک ربات مسیر یاب را که با حداقل امکانات قابل ساخت است معرفی می کنیم. عملکرد این ربات به این صورت خواهد بود که می تواند بر روی امتداد خطی به پهنای یک نوار چسب 15mm که رنگ آن با رنگ زمینه تفاوت دارد (مثلا سیاه با زمینه سفید و یا برعکس)حرکت کند و خط را دنبال نموده و حتی پیچهای با زاویه بزرگتر از 90 درجه را نیز تعقیب کند. در این ماشین ساده بیشتر تاکید به هوشمندی آن می باشد تا دقت در حرکت. چرا که این ماشین ممکن است دقیقا بر روی خط حرکت نکند اما عمل دنبال کردن خط را با هوشمندی خاصی انجام می دهد. البته می شد که حرکت ماشین را نیز به صورتی دقیق تر و با خطای بسیار کمتری طراحی نمود اما مکانیک پیچیده تری را شامل می شد که طراحی و ساخت آن احتیاج به فردی متخصص در این زمینه است.
این ربات مستقل از سه جزء مکانیکی, سخت افزاری و نرم افزاری می باشد.

2-4 مکانیک ربات
در طراحی مکانیک این ماشین از عملکرد تانک در حرکت ایده گرفته شده است.همانطور که می دانید تانک دارای دو تسمه در طرفین می باشد که برای حرکت نیرویی تسمه ها را به گردش در می آورد و باعث حرکت تانک به جلو می شود و در هنگام گردش به راست تسمه سمت راستی از حرکت باز می ایستد و با حرکت تسمه سمت چپ تانک به طرف راست متمایل می شود. و همین طور برای حرکت به سمت چپ تسمه سمت چپ متوقف و تسمه سمت راست به حرکت ادامه می دهد.
در مکانیک این ماشین نیز از یک تانک اسباب بازی که شامل دو موتور معمولی الکتریکی (یکی برای حرکت تسمه راست و دیگری برای حرکت تسمه سمت چپ) می باشد استفاده شده است.شاید این سوال به وجود آید که چرا در موتور معمولی از step موتور استفاده نشده است؟پاسخ این است که step موتور در جاهایی که به حرکت های ریز با دقت و یا در جاهایی که زاویه گردش از دقت خاص باید برخوردار باشد استفاده می شود.مثلا اگر در این ربات از مکانیکی شبیه مکانیک اتومبیل که دارای محور فرمان در چرخ های جلو می باشد استفاده می کردیم آنگاه برای چرخش به راست و یا چپ چون میزان چرخش فرمان پارامتر متغیری بود باید از step موتور استفاده می شد . اما در تانک به علت این که چرخش به مدت زمان چرخش موتور و اصطکاک ماشین با زمین بستگی دارد.پارامتر قابل اندازه گیری نیست پس باید به صورت پویا کنترل شود مثلا برای چرخش30درجه ای به راست ما نمی دانیم که موتور سمت چپ باید چند دور بزند که تانک 30 درجه به راست انحراف یابد پس باید موتور آنقدر دور بزند تا تانک در مسیر مورد نظر قرار گیرد.

3-4 سخت افزار
هر سیستم کنترلی شامل یک دسته ورودی پردازشگر و خروجی می باشد که پردازشگر با توجه به ورودی ها تصمیم گرفته و عمل خاص را توسط خروجی به محیط بیرون اعمال می کند.
این ماشین مسیر یابی نیز مانند سیستم های کنترلی دیگر شامل micro controller input وoutput می باشد. که هر یک را به ترتیب توضیح می دهیم.

(شکل 1-4)

Input 1-3-4
ورودی این سیستم همان سیگنال هایی است که از قسمت بینایی ماشین وارد میکرو کنترلر می شود. در اینجا برای دیدن و تمیز دادن خطی که قرار است دنبال شود از سه سنسور مادون قرمز استفاده شده است. که هر یک از این سنسورها شامل دو قسمت فرستنده و گیرنده می باشد که در کنار هم قرار دارند و به این ترتیب از آنها در این مدار استفاده شده است که فرستنده همواره در حال فرستادن نور مادون قرمز می باشد و در صورت برخورد مادون قرمز با رنگ روشن منعکس شده و به گیرنده می رسد و گیرنده قطعه ای است که با رسیدن نور مادون قرمز به آن مقاومت آن کاهش یافته و در حقیقت در مدار مانند یک سوئیچ عمل می کند(شکل2-4).

اگر گیرنده نور مادون قرمز را دریافت نکند سنسور مانند یک سوییچ باز عمل کرده ودر نتیجه ورودی گیت not ا ز طریق پتانسیومتر 1 شده و خروجی آن صفر می شود که عدد صفر برای میکروکنترلر تمایانگر رنگ تیره در مقابل سنسورمی باشد.

(شکل 3-4)

و بر عکس اگر سنسور مادون قرمز را دریافت کند گیرنده مانند یک سوئیچ بسته عمل کرده و ورودی گیت not صفر می شود که در نتیجه خروجی آن عدد یک را به میکرو کنترلر تحویل میدهد.

(شکل4-4)

به بیان دیگر در مقابل سنسور رنگ روشن وجود دارد.
علت استفاده از این سنسور برای بینایی در این ماشین این است که در این صورت 0ربات تنها تعقیب خط مد نظر بوده و کافی است که ماشین خط سفید را روی زمینه سیاه و یا بالعکس تمیز دهد و این سنسورها نیاز ما را در این زمینه برآورده می سازند و نیازی به وسایل پیچیده تر مانند دوربین های دیجیتال و غیره نمی باشد.
همانطور که گفته شد در این ماشین از سه سنسور مادون قرمز برای پیدا کردن مسیر استفاده شده است که این سه سنسور با فاصله های یکسان (تقریبا 1cm) در یک خط در کنار هم و در جلوی ماشین نصب شده اند.

فاصله بین سنسورها به پهنای خط بستگی دارد و باید طوری باشد که اگر خط از بین هر جفت از آنها عبور کند در هر حالت حداقل یکی از آن دو سنسور فعال باشد(خط را ببیند) اگر فاصله سنسور ها خیلی کم باشد دقت ماشین بیشتر شده و از طرفی میدان دید کاهش می یابد و ماشین سعی بر آن دارد که درست روی خط حرکت کند که این باعث کندی حرکت ماشین و چپ و راست شدن مداوم آن برای عمود شدن برخط می شود که زیاد مطلوب نمی باشد از طرفی اگر فاصله سنسورها بیش از حد مجاز باشد آنگاه خط دوربین سنسورها گم می شود.

حال که سنسورها با دقت در جلوی ماشین نصب شده می توان از سیگنال های خروجی آنها وضعیت خط را نسبت به سنسورها و در نتیجه نسبت به ماشین تشخیص داد و ماشین را در جهت اصلاح حرکت و تعقیب خط هدایت کرد.حال اگر خروجی سنسورها به صورت سه بیت در نظر بگیریم که سنسور سمت راست بیت کم ارزش و سنسور سمت چپ بیت با ارزش را تشکیل دهد به عنوان مثال داریم:

در اینجا چون خط سفید و زمینه سیاه است پس سنسورها عدد 2را که همان 010 باینری است نشان می دهند که این حالت ایده آل است و معنی آن این است که ماشین باید مستقیم حرکت کند و اگر سنسورها عدد1 را نشان دهند معنی آن این است که سنسور سمت راست خط را می بیند پس باید برای اصلاح حرکت ماشین به سمت راست حرکت کند تا حالت ایده آل ایجاد گردد چون سه سنسور داریم 8 حالت ممکن وجود دارد که هر حالت تعبیر خاصی دارد که در قسمت نرم افزاری توضیح داده خواهد شد.

2-3-4 Micro controller
میکرو کنترلر همانطور که از نامش پیداست نقش کنترل کننده را بر عهده دارد و یا توجه به پارامترهای ورودی خروجی مطلوبی را ایجاد می کند و در واقع مهمترین بخش سیستم محسوب می شود.
در این ماشین از 8951, micro controllerاستفاده شده است که در واقع همان 8051 است با این تفاوت که به جای byte k 4 EPROM موجود در 8051 4kbyte, E2PROM در 8951 وجود دارد که نوشتن و پاک کردن در آن از 8051 آسانتر است در بقیه موارد و مشخصات پایه ها همانند 8051 است و توضیحات بیشتر آن در فصل میکروکنترلرها آورده شده .سه بیت از پورت p1 (p1.0 , p1.1 , p1.2 ) به عنوان ورودی به سنسورها و دو بیت p2(p2.1 p2.0 ) به عنوان خروجی به موتورها متصل می شود .
(شکل 5-4)

یک کلید نیز به عنوان ورودی دیگری برای ماشین در نظر گرفته شده است که نقش stasrt و راه انداز ربات را دارد و بیت p3.0 که ورودی تعریف شده است را تحت تاثیر قرار می دهد.ورودی بعدی یک جامپر است و برای مشخص نمودن رنگ خط در نظر گرفته شده است و بیت p3.7 را در وضعیت صفر یک قرار می دهد. به این صورت که اگر خط سفید و زمینه تیره باشد جامپر را در وضعیتی قرار می دهیم که p3.7 یک شود و اگر خط تیره و زمینه روشن است با جابجا کردن جامپر p3.7 را به زمین وصل می کنیم.
کلید بعدی کلیدی برای reset کردن ماشین است و باعث توقف ماشین می شود و در واقع عمل stop را در ماشین انجام می دهد و تا زمانی که کلید start زده نشود ماشینی حرکت نخواهد کرد. (شکل 6-4)

3-3-4 Output
خروجی میکروکنترلرها همانطور که گفته شد به دو موتور الکتریکی اعمال می شود و باعث چرخاندن آنها و حرکت ماشین می شود. به این صورت که اگر موتور سمت راست بچرخد ماشین به سمت چپ و اگر موتور سمت چپ بچرخد ماشین به سمت راست حرکت می کند و در حالت سوم اگر هر دو موتور با هم بچرخند ماشین به صورت مستقیم به حرکت ادامه میدهد.
همانطور که گفته شد p2.1,p2.0 رابط بین میکروکنترلر و موتورها می باشند که البته در این بین از مداری شامل دو ترانزیستور برای تامین جریان مورد نظر موتورها استفاده شده است. (شکل 7-4)

ترانزیستور اول BC238 می باشد که یک ترانزیستور NPN است و در حالت switching عمل می کند یعنی با یک شدن بیس آن کلکتور رامیتور مانند کلید به هم راه می دهند و در نتیجه بیس ترانزیستور دوم یعنی BD140 که یک ترانزیستور PNP است صفر می شود یعنی ترانزیستور به حالت اشباء رفته و مانند switch امیتور به کلکتور راه می دهد که در نتیجه ولتاژ 9v در دو سر موتور بر قرار می گردد و موتور راه اندازی می شود.
نقشه کامل مدار در زیر آمده است:

(شکل 8-4)

آی سی 7805 یک IC رگولاتور بوده که برای تثبیت ولتاژ بروی 5 ولت که برای عملکرد میکروکنترلر لازم می باشد بکار رفته است. چرا که در این مدار از دو ولتاژ 9و5 ولت استفاده شده که ولتاژ 5 ولت برای تغزیه مدار و ولتاژ 9 ولت برای راه اندازی موتورها بکار می رود و 7805 وظیفه تبدیل ولتاژ 9 به 5 را به عهده دارد.
پتانسیومترها موجود بر روی سنسورها برای تغییر میزان حساسیت سنسورها می باشد به عنوان مثال برای تمیز دادن خط سیاه از زمینه سفید حساسیت زیادی لازم نیست اما برای تمیز دادن خط سفید از زمینه خاکستری باید حساسیت سنسورها را بیشتر کرد یعنی مقاومت پتانسیومترها را افزایش می دهیم.
سه LED قرار داده شده بر روی پورت p1 صرفا به عنوان نمایشگر بوده و برای تنظیم حساسیت سنسورها به کار می آید.
4-4 نرم افزار
هر سیستم میکروکنترلری علاوه بر سخت افزار و مدارات واسط نیاز به برنامه ای برای انجام دارد. در واقع میکروکنترلرها برنامه را به ترتیب از ROM خوانده و انجام می دهد و به این ترتیب عمل کنترل تحقق می یابد.
یک برنامه زبان اسمبلی توسط میکروکنترلرها قابل اجرا نیست و پس از نوشته شدن باید به زبان ماشین ترجمه شود. برنامه ای که اسمبلر خوانده می شود نمادهای دستورالعمل را که به کدهای دودویی زبان ماشین تبدیل می کند و linker برنامه ای است که بخش های مختلف برنامه را از فایل های مجزا ترکیب کرده و آدرس حافظه ای را که برنامه ممکن است از آنجا انجام شود می سازد. (شکل 9-4)

5-4 نوشتن برنامه ربات مسیریاب
پس از آنکه مدار سخت افزاری آماده شد حال باید حالت های مختلف ورودی را در نظر گرفته و برای هر حالت زمان لازم را به صورت برنامه بنویسیم.همانطور که گفته شد در این ماشین سه سنسور مادون قرمز برای پیدا کردن مسیر در جلوی ماشین نصب شده است که نقش ورودی را برای میکروکنترلر دارد پس 2 به توان 3 یعنی 8 حالت ممکن است این سه سنسور به خود بگیرد.
1-5-4 حالت های ممکن:

اگر زمینه سیاه و خط سفید باشد بهترین حالت به صورت زیر می باشد 000 (0) یعنی هیچ یک از سنسورها خط را نمی بینند و در واقع ماشین به انتهای مسیر رسیده است و یا از مسیر خارج شده است.

حالت 001 (1) یعنی سنسور سمت راست روی خط قرار دارد و معنی آن این است که یا خط به سمت راست پیچیده است و یا ماشین به سمت چپ منحرف شده است.

حالت (2)010 حالت ایده آل می باشد و مفهوم آن اینست که سنسور وسط روی خط می باشد و ماشین دقیقا روی مسیر است .

حالت 011 (3) در این حالت مسیر به سمت راست متمایل شده است مثلا پیچ 90 درجه به سمت راست.

حالت (4)100 در این حالت سنسور سمت چپ خط را می بیند یعنی مسیر به سمت چپ پیچیده شده است و یا ماشین به سمت راست منحرف شده است.

حالت 101 (5) در این حالت سنسورهای چپ و راست خط را می بینند ولی یک تناقض می باشد مگر آنکه ماشین به دوراهی رسیده باشد .

حالت 110 (6) چون سنسور وسط و سمت چپ خط را می بیند معنی این اینست که مسیر به سمت چپ پیچیده شده است.

حالت 111 (7) در این حالت که آخرین حالت ممکن نیز می باشد هر سه سنسور خط را می بینند و روی خط قرار دارند و این به پهنای خط تناقض دارد پس تنها در یک صورت امکان پذیر است که ماشین به یک مسیر عمود بر مسیر خود رسیده باشد.

حال اگر قرار باشد که رنگ زمینه سفید و رنگ خط سیاه باشد در سه بیت به دست آورده از سنسورها جای صفرها با یک و جای یک ها با صفر عوض می شود یعنی بر خلاف حالت قبل که عدد یک نشانگر خط بود و در این حالت عدد صفر نشانگر خط می باشد پس برای راحتی کار کافی است این سه بیت را not منطقی کرد. سپس همان تعبیرهایی که برای خط سفید بیان کردیم در مورد خط سیاه نیز بیان می کنیم به عنوان مثال برای خط سیاه اگر خروجی سنسورها حالت 111 (7) باشد بعد از not شدن عدد حالت 000 (0) خواهد شد که نشان می دهد هیچ سنسوری روی خط نیست و ماشین یا به انتهای خط رسیده و یا از آن خارج شده است.
حال باید پاسخ های لازم را برای هریک از 8 حالت ممکن در نظر بگیریم یعنی هنگامی که ماشین روی خط قرار دارد و تنها سنسور وسط فعال است(حالت2 ).
ماشین به حرکت مستقیم خود ادامه می دهد یعنی هر دو موتور فعال باشند که لازمه آن این است که عدد (0110)3 در پورت شماره (p2)2 نوشته شود. چرا که p2.0 به موتور سمت چپ و p2.1 به موتور سمت راست فرمان می دهد. و هنگامیکه مسیر به سمت راست متمایل می شود یعنی عدد 1تا 3 در p1 ظاهر می شود باید موتور سمت چپ فعال گردد یعنی در p2 عدد 1 قرار گیرد و در صورتیکه مسیر گردش به چپ باشد (عدد 4 یا 6 در p1) باید موتور سمت راست فعال شود و عدد 2 در p2 قرار گیرد .

حالت بعد حالتی است که ماشین به دوراهی می رسد یعنی عدد 5 در p1 قرار می گیرد در این صورت عدد 0 در p2 نوشته می شودو ماشین توقف خواهد کرد.

دو شرط توقف دیگر نیز وجود دارد یکی هنگامی که ماشین به انتهای خط می رسد و در واقع خط تمام می شود حالت 0 و دیگری زمانی که ماشین به حالت 7 می رسد که در این حالت نیز باید عدد صفر در p2 قرار گیرد تا هر دو موتور غیر فعال شوند.

حال با توجه به فلوچارت نوشتن برنامه کار ساده ای است اما به دلیل اینکه ماشین صرفا دنبال کننده خط است و از طرفی به دلیل دقیق نبودن قطعات مکانیکی ربات ممکن است در بعضی مواقع مثلا در سر چرخش ها به میزان کمی از مسیر خارج شود و به همین دلیل سنسورها خط را گم می کنند که برای اصلاح آن باید برنامه را به گونه ای تغییر داد که خطای به وجود آمده در این رابطه را پوشش دهد. در حقیقت برنامه را هوشمند تر کرد.تنها در دو حالت از 8 حالتی که سنسورها نشان میدهند امکان بروز خطا در تصمیم گیری توسط میکرو کنترولرمیباشد و آن در حالتهای 000 و111 یا به عبارتی حالت های 0 و7 میباشد که در آنها ابهام وجود دارد که آیا ربات به انتهای مسیر رسیده است و یا از مسیر خارج شده است؟

و در حالت 7 یعنی حالتی که همه سنسورها روی خط هستند این ابهام وجود دارد که ماشین به یک دو راهی رسیده است ویا ربات در اثر چرخش به موقعیتی رسیده که هرسه سنسور روی مسیر قرار دارند.

2-5-4 رفع اشکال
برای رفع اشکال های بالا برنامه را کمی هوشمند تر نموده و کاری کردیم که در صورت بروز حالت های 0 و 7 میکروکنترلر با توجه به حالت های قبل متوجه شود که کدام یک از حالات دارای ابهام صحیح تر است و بعد تصمیم بگیرد به این صورت که مثلا اگر ماشین در حال حرکت مستقیم بود(حالت 2 ) و بعد خط را گم می کند (حالت 0)یعنی ماشین به انتهای مسیر رسیده و باید توقف کند اما اگر ماشین در حالت گردش به چپ یا راست بود و سپس خط را گم کند مفهوم آن این است که ماشین از مسیر خارج شده و برای اصلاح آن میکروپروسسور همان عکس العمل قبل (عمل چرخش) را ادامه می دهد تا بالاخره سنسورها خط را پیدا کنند پس در اینجا لازم به ذکر است که انتهای مسیر نمی تواند دقیقا بعد از یک پیچ باشد بلکه حتما باید ماشین مسیری مستقیم را طی نموده و بعد به انتهای مسیر برسد در غیر این صورت ماشین انتهای مسیر را تشخیص نمی دهد و متوقف نخواهد شد در حالت 7 نیز میکروکنترلر را با توجه به حالت قبل تصمیم گیری می کند یعنی اگر ماشین در حال حرکت مستقیم بوده و سپس حالت 7 ایجاد شده است یعنی ماشین به دو راهی رسیده و باید متوقف شود و اگر در حال گردش به چپ و یا راست به حالت 7 رسیده باید به حرکت قبلی خود تا زمانی که از این حالت خارج شود ادامه دهد.در کل اینگونه خطاها و خارج شدن از مسیر در صورتی به وجود می آید که فاصله پیچ های مسیر از یکدیگر کمتر از طول ماشین باشد چرا که هنوز ماشین پیچ قبلی را کاملا طی نکرده و کاملا روی خط قرار نگرفته است تغییر مسیر دیگری را می بیند و این باعث خروج ماشین از خط خواهد شد . برای پیاده سازی برنامه جدید لازم است که عکس العمل میکروکنترلر در هر لحظه در رجیستری ذخیره شود تا در حالت های 0 و 7 مورد استفاده قرار گیرد سپس فلوچارت جدید به صورت زیر خواهد بود.

6-4 برنامه

ORG 00H
MOV P2,#00H
MOV R1,#00H
WAIT_HIGH: JNB P3.0,WAIT_HIGH
WAIT_LOW: JB P3.0,WAIT_LOW
START:
MOV A,P1
ANL A,#07H
JB P3.7,WHITE_LINE
CPL A
WHITE_LINE:
CJNE A,#00H,STATE1
MOV P2,R1
SJMP START
STATE1:
CJNE A,#01H,STATE2
MOV P2,#01H
MOV R1,#01H
SJMP START
STATE2:
CJNE A,#02H,STATE3
MOV P2,#03H
MOV R1,#00H
SJMP START
STATE3:
CJNE A,#03H,STATE4
MOV P2,#01H
MOV R1,#01H
SJMP START
STATE4:
CJNE A,#04H,STATE5
MOV P2,#02H
MOV R1,#02H
SJMP START
STATE5:
CJNE A,#05H,STATE6
MOV P2,#00H
MOV R1,#00H
SJMP START
STATE6:
CJNE A,#06H,STATE7
MOV P2,#02H
MOV R1,#02H
SJMP START
STATE7:
CJNE A,#07H,START
MOV P2,R1
SJMP START
END

7-4 توضیح برنامه
عبارت ORG00H جزء دستورات نمی باشد و تنها برای اسمبلر معنا دارد و باعث می شود اسمبلر نوشتن کدهای برنامه را در ROM از خانه ooH آغاز کند.
OoH # وmov p2 :عدد ooH را در پورت p2 قرار می دهد.
(موتورها غیر فعال می شوند)
: mov R1,#ooHعدد ooH را در رجیستر R1 قرار داد و غیر فعال بودن موتورها را نشان می دهد.
Wait-high یک lable می باشد Wait-high و JNB,P3.0 باعث می شود که تا زمانی که P3.0 به سطح منطقی یک نرفته است میکروکنترلر در این خط منتظر بماند و P3.0 زمانی به سطح 1 می رسد که کلید start فشرده شود و بعد از آن میکروکنترلر در خط بعد منتظر صفر شدن P3.o می ماند یعنی منتظر می ماند تا شخص کلید start را رها کند. سپس برنامه شروع به کار خواهد کرد و در یک حلقه بی پایان می افتد که تنها راه خلاصی از آن فشردن کلید stop و reset کردن میکروکنترلر است در ابتدای این حلقه ابتدا عدد سنسورها یعنی پورت ‍P1 خوانده شده و در accumulator قرار می گیرد سپس با عدد AND,07H منطقی می شود تا سایر بیت ها بعد از سه بیت کم ارزش صفر شوند.حال میکروکنترلر با مراجعه به جامپر (P3.7) می خواهد بداند که خطی را که باید دنبال کند سفید است یا سیاه و اگر خط سیاه باشد یعنیP3.7 صفر باشد اکومولاتور را not می کند و سپس تصمیم گیری می نماید و به این ترتیب عمل می کند که عدد اکومولاتور را به ترتیب با تمام حالات ممکن مقایسه می کند تا به حالت مورد نظر برسد سپس پاسخ لازم را نسبت به آن حالت و پاسخ قبلی که در R1 وجود دارد اعمال می نماید و p2 را عدد دهی می کند.

منابع:
1- ماشین بینایی و ا صول پردازش دیجیتالی تصویرLOUIS J.GALBIATI,JR
ترجمه دکتر خلیل خلیلی

2- میکرو کنترلر 8051 مهندس فیض ا.. خاکپور

3- میکرو کنترلر 8051MAKENZI.I.SCOTT ترجمه مهندس حمید رضا رضایی نیا و مهندس پیمان در بندی

4- طراحی وتحلیل مدار های منطقی دیجیتال VICTOR,P.NELSON
ترجمه مهندس حامد محمد حسینی

5-موتورهای پله ای وکنترل میکرو پروسسوری آنهاKENJO,TAKASHI ترجمه مهندس نوید تقی زادگان و مهندس امید یوسف پور

1 Transition
2 Transistor-Transistor logic
3 I/O Port
4 Timer/counter
5 Serial-interface
6 Boolean processo
7bit-addressable
8 On-chipRom
9 low power CMOs
10 Solenoids
11 external code memory
12 external data memory
13 memory cycle
14 Machine Cycle
15 On.chip oscillator
16 prot latch
17 low power schttkg TR
18 Pull-up resister
19 read latch
20 read pin
21 spe cial Function Registers
22 memory mapped
23 Accumulator
24 registor baanks
25 Program status word

27 Decimal Adjust Accumulator
28 overflow flag
29 parity flag
30 Stack pointer
31 subriutines
32 Programcounter
33 data pointer
34 Port registers
35 interval timing
36 event counting
37 timer mode register
38 Serial data buffer
39 Priority level
40 interrupt emable register
41 inteivpt prioroty registevs

43 Power Down
44 Idle
45 Dual Inline package
46 opcode f.etch
47 اگر دستورالعمل های Movx(و RAM خارجی)هرگز استفاده نشوند،ALE بطور ثابت با 6/1 فرکانس کریستال،پالس ارسال می کند.
—————

————————————————————

—————

————————————————————

129


تعداد صفحات : 185 | فرمت فایل : WORD

بلافاصله بعد از پرداخت لینک دانلود فعال می شود