برنامه ذخيره شده در حافظه دستورالعمل هائي را براي CPU فراهم مي سازد تا بر اساس آن عملي را انجام دهد. اقدام مي تواند يك جمع داده ساده همچون صورتحساب و يا كنترل يك ماشين مانند روبات باشد. برداشت اين دستورات از حافظه و اجراي آنها بعهده CPU می باشد. براي انجام اعمال برداشت و اجرا، تمام CPU ها مجهز به امكانات زير هستند:

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

1- قبل از هر چيز تعدادي ثبات در اختيار CPU قرار دارد. CPU از اين ثبات ها براي ذخيره موقت اطلاعات بهره گیری مي كند. اطلاعات مي تواند دو مقدار مورد پردازش و يا آدرس مقدار مورد نظري باشد كه بايد از حافظه برداشت گردد. ثبات هاي درون CPU مي توانند 8 بيت ، 16 بيت، 32 بيت و يا حتي 64 بيت باشند. اندازه آنها به CPU بستگي دارد. بطور كلي هر چه ثبات ها بيشتر و بزرگتر باشند، CPU مناسب تر می باشد. عيب ثبات هاي بيشتر و بزرگتر، گراني CPU مي باشد.

2- CPU داراي بخشي بنام ALU (واحد حساب/ منطق) می باشد. بخش ALU در CPU مسئول انجام اعمال حسابي مانند جمع، تفريق، ضرب و تقسيم، و اعمال منطقي مانند AND ، OR و NOT مي باشد.

3- هر CPU داراي يك شمارنده برنامه می باشد. تأثیر شمارنده برنامه اشارهبه آدرس دستورالعمل بعدي براي اجرا می باشد. با اجراي هر دستورالعمل، شمارنده برنامه افزايش يافته و به آدرس دستورالعمل بعدي براي اجرا تصریح خواهد كرد. در اين تصریح، محتواي شمارنده برنامه روي گذرگاه آدرس قرار گرفته و دستورالعمل مورد نظر را يافته و آن را از مبدأ برداشت مي كند. در IBM PC شمارنده برنامه را IP يا تصریح گر دستورالعمل مي خوانند.

4- تأثیر ديكدر دستورالعمل ، تفسير دستور برداشت شده توسط CPU می باشد. مي توان ديكدر دستورالعمل را همانند يك فرهنگ لغت تصور كرد كه مفهوم هر دستورالعمل را ذخيره نموده و CPU را در برداشت قدم هاي بعدي پس از دريافت دستورالعمل هدايت مي كند. همانطور كه فرهنگ لغت باتعريف هر چه بيشتر لغات نياز به صفحات بيشتري دارد، CPU هم در درك دستورالعمل هاي بيشتر نياز به ترانزيستورهاي بيشتري خواهد داشت.

عمليات دروني كامپيوتر

براي نمايش برخي از مفاهيم مورد بحث فوق، تحليل قدم به قدمي از پردازش يك CPU براي جمع سه عدد در زير داده شده می باشد. فرض كنيد كه يك CPU فرضي داراي چهارثبات با نام هاي D,C,B,A باشد. اين پردازشگر داراي گذرگاه داده 8 بيتي و گذرگاه آدرس 16 بيتي می باشد. بنابراين CPU مي تواند به حافظه هايي از 0000 تا FFFFH دسترسي داشته باشد (جمعاً H 10000 مكان) . عملي كه CPU مي خواهد انجام دهد عبارتست از قراردادن مقدار 21 در ثبات A و سپس جمع ثبات A با مقادير H42 و H12 فرض كنيد كه كد انتقال مقدار به ثبات A برابر (BOH) 10111000 و كد جمع يك مقدار به ثبات A نيز (04H ) 0100 0000 باشد. مراحل لازم و كد اجراي آنها برابر زير می باشد:

اگر برنامه اجرايي فوق در مكان هايي از حافظه قرار گيرد كه از H 1400 شروع مي گردد. محتواي هر مكان حافظه بقرارزيراست:

عملياتي كه CPU براي اجراي برنامه فوق طي مي كند بقرار زير می باشد:

1- شمارنده برنامه CPU مي تواند مقداري بين 0000 و FFFFH داشته باشد. بايد 1400 را در شمارنده برنامه نشاند تا آدرس اولين دستورالعمل براي اجرا مشخص گردد. پس از باركردن شمارنده برنامه با آدرس اولين دستورالعمل، CPU آماده اجرا می باشد.

2- CPU ، H 1400 را روي گذرگاه آدرس قرار داده و آن را به خارج ارسال مي دارد. مدار حافظه مكان را مي يابد و در اين هنگام CPU نيز سيگنال READ را فعال مي نمايد و به اين ترتيب بايت مكان H1400 را از حافظه درخواست مي كند. اين موجب مي گردد تا محتواي حافظه در مكان H 1400 ، كه B0 می باشد، روي گذرگاه قرار گيرد و به CPU انتقال يابد.

3- CPU دستورالعمل B0 را به كمك مدار ديكد دستورالعمل، ديكد مي كند. پس از يافتن تعريف دستورالعمل متوجه مي گردد كه بايد محتوي مكان حافظه بعدي را به ثبات A در داخل CPU بياورد. بنابراين به مدار كنترل خود فرمان اجراي دقيق آن را صادر مي نمايد. وقتي كه مقدار H 21 را از مكان 1401 حافظه به درون آورد، دريچه هاي ورودي همه ثبات ها را بجز ثبات A ، مي بندد. بنابراين مقدار H 21 وقتي وارد CPU گردد مستقيماً وارد ثبات A مي گردد. پس از تكميل يك دستورالعمل ، شمارنده برنامه به آدرس دستورالعمل بعدي براي اجرااشاره مي كند، كه در اين حالت 1402 می باشد. سپس آدرس H 1402 به روي گذرگاه آدرس ارسال مي گردد تا دستورالعمل بعدي برداشت گردد.

4- آنگاه از مكان H 1402 ، كد 04 را بر مي دارد. پس از ديكد كردن، CPU مي فهمد كه بايد محتواي ثبات A را با بايتي كه در آدرس بعدي قرار دارد (1403) جمع كند. پس از آوردن مقدار (در اين حالت H42 ) به درون CPU ، مقدار درون ثبات A را همراه با اين مقدار به ALU براي انجام جمع تحويل مي دهد. سپس نتيجه جمع را از خروجي ALU دريافت كرده و در ثبات A قرار مي دهد. در اين هنگام شمارنده برنامه برابر با H 1404 ، يعني آدرس دستورالعمل بعدي مي گردد.

5- آدرس H 1404 روي گذرگاه آدرس قرار مي گيرد و كد درون آن آدرس به داخل CPU آورده شده و سپس ديكد و اجرا مي گردد. مجدداً اين كد مقداري را به ثبات A مي افزايد. شمارنده برنامه به H 1406 اصلاح مي گردد.

6- نهايتاً، محتواي آدرس 1406 برداشت و اجرا مي گردد. اين دستورالعمل، HALT ، به CPU مي فهماند تا افزايش شمارنده برنامه را متوقف نمايد. در غياب HALT ، CPU به اصلاح شمارنده برنامه ادامه داده و دستورالعمل ها را برداشت مي نمايد.

اكنون فرض كنيد كه آدرس H1403 به جاي H 42 ، حاوي 04 باشد. CPU چگونه داده 04 را براي جمع از كد 04 تفكيك مي كند؟ بخاطر آوريد كه براي اين CPU ، كد 04 به معني انتقال يك مقدار به داخل ثبات A می باشد، بنابراين CPU سعي بر ديكد مقدار بعدي نخواهد كرد، بلكه محتواي مكان حافظه بعدي را بدون در نظر داشتن مقدار آن بداخل ثبات A منتقل مي سازد.

اين فصل با بحثي در موردنقش و اهميت ميكروكنترلرها در زندگي روزمره آغاز مي گردد. در بخش 1-1 سیاق انتخاب يك ميكروكنترلر، همراه با بهره گیری از آنها را مورد بحث قرار مي دهيم. بخش 2-1 انواع اعضاي خانواده 8051 ، همچون 8052 ، 8031 و ويژگي هاي آنها را پوشش مي دهد. بعلاوه انواع مختلف 8051 مانند 8751 ، AT 51C89 و 5000DS را مورد بحث قرار خواهيم داد.

ميكروكنترلرها و پردازنده هاي دروني

در اين بخش نياز به ميكروكنترلرها و مقايسه آنها با ميكروپروسسورهاي همه منظوره اي زیرا پنتيوم و ديگر ميكروپروسسورها بحث شده می باشد. ما به تأثیر ميكروكنترلر در بازار نيز نگاه خواهيم كرد. بعلاوه، روالي را براي انتخاب يك ميكروكنترلر نيز ارائه خواهيم داد.

ميكروكنترلرها در برابر ميكروپروسسورهاي همه منظوره

تفاوت بين يك ميكروپروسسور و يك ميكروكنترلر چيست؟ مقصود از يك ميكروپروسسور (ريزپردازنده)، ميكروپروسسورهايي از خانواده 86x اينتل مثل 8086،‌80286 ، 80386 ، 68020 ، 68030 ، 68040 و يا خانواده هايي از اين قبيل می باشد. اين ميكروپروسسورها فاقد RAM ، ROM و پورت هاي I/O در درون خود تراشه هستند. با اين دليل به آنها ميكروپروسسورهاي همه مقصود مي گويند.

طراح سيستمي كه از ميكروپروسسور همه منظوره اي زیرا پنتيوم ، 68040 بهره گیری مي كند بايد در خارج از آن ROM, RAM ، پورت هاي I/O و تايمرها را اضافه نمايد تا سيستمي قابل كار ساخته گردد. گر چه افزايش ROM, RAM و پورت هاي I/O موجب حجيم شدن و گرانتر شدن سيستم ها مي گردد، ولي به قابليت انعطاف آنها افزوده مي گردد. مانند اينكه طراح مي تواند روي مقدار ROM, RAM پورت هاي I/O بر حسب نوع كاربردتصميم گيري و اعمال نظر نمايد. اين توانمندي در ميكروكنترلرها امكان پذير نيست. يك ميكروكنترلر داراي يك CPU به همراه مقدار ثابتي از ROM, RAM ، پورت هاي I/O و تايمر در درون خود مي باشد. به بيان ديگر، پروسسور، ROM, RAM پورت هاي I/O و تايمر همگي در يك تراشه جاي داده شده اند؛ بنابراين طراح نمي تواند يك حافظه، I/O يا تايمري را بدون گسترش لازم آن از بيرون اضافه كند. مقدار ثابت ROM ، RAM و مقدار پورت هاي تثبيت شده در ميكروكنترلرها ، آنها را براي كاربردهايي كه قيمت و محفظه در آنها بحراني می باشد ايده آل كرده می باشد.

در بسياري از كاربردها مثل كنترل از راه دور TV ،احتساب توان ميكروپروسسورهايي زیرا 486 يا حتي 8086 هم لزومي ندارد. در بعضي كاربردها، فضاي اشغالي، توان مصرفي و قيمت هر واحد اهميت بيشتري نسبت به توان محاسباتي دارد. اين كاربردها اغلب نياز به بعضي عمليات I/O براي خواندن سيگنال ها و روشن و خاموش كردن بيت هاي معيني دارند. باين دليل بعضي ، آنها را پروسسورهاي “itty-bitty” مي خوانند. مقاله “Good things in small Packages Are Generating Big Product Opportunities” كه بوسيله Rick Grehan در مجله Byte شماره www. Byte 1994; com

september نوشته شده و در آن بحث جالبي از ميكروكنترلرها ارائه شده مطالعه نماييد.

ميكروكنترلرها و سيستم هاي تك منظوره

در مقالاتي كه ميكروپروسسورها مطرح مي شوند، اغلب عبارت سيستم تك منظوره را ملاحظه مي كنيم. ميكروپروسسورها و ميكروكنترلرها بطور گسترده اي در توليد سيستم هاي تك منظوره بكار مي طریقه. يك محصول تك منظوره از يك ميكروپروسسور (يا ميكروكنترلر) براي انجام فقط و فقط يك كار بهره گیری مي كند. يك چاپگر نمونه اي از يك سيستم تك منظوره می باشد زير پروسسور داخل آن فقط يك كار را انجام مي دهد و آن اين می باشد كه داده را بدست آورده و آن را چاپ كند. اين كار را با يك PC مبتني بر پنتيوم (مانند هر PC سازگار با IBM 86 x ) مقايسه نماييد. PC مي تواند براي هر كاربردي مانند پردازشگرهاي كلمات، مراكز چاپ، پايانه، ليست هاي بانك، بازي هاي ويديوئي ، سرويس دهندة شبكه و پايانه اينترنت مورد بهره گیری قرار گيرد، براي انواع كاربردها مي توان به راحتي برنامه را در pC بار كرده وآن را اجرا كرد. البته دليل قابليت اجراي كارهاي متنوع در PC اين می باشد كه داراي حافظه RAM و سيستم عاملي می باشد كه نرم افزار كاربردي را در RAM بار كرده و اجازه اجراي آن را به PC مي دهد. در يك سيستم تك منظوره ، تنها يك نرم افزار كاربردي هست و معمولاً در ROM سوزانده مي گردد. يك PC 86 x ممكن می باشد به وسايل تك منظوره اي مانند صفحه كليد، چاپگر، مودم ، كنترل گر ديسك، كارت صدا، راه انداز CD-ROM ، ماوس و غيره متصل باشد. هر يك از اين وسايل جانبي در داخل خود داراي يك ميكروكنترلر براي انجام كار خاص مي باشند. مثلاً در داخل هر ماوس يك ميكروكنترلر هست كه وظيفه اش يافتن مكان ماوس و ارسال آن به PC می باشد. جدول 1-1 بعضي از محصولات تك منظوره را نشان مي دهد.

8051 داراي دو شمارنده / تايمر می باشد. آنها مي توانند به عنوان تايمر (زمان سنج) براي توليد يك تأخير زماني ياشمارنده براي شمارش وقايع رخداده در خارج ميكروكنترلر بكار طریقه. در اين فصل نشان مي دهيم كه آنها چگونه برنامه ريزي شده و مورداستفاده قرار مي گيرند. در بخش 1-9 چگونگي بهره گیری از تايمرها براي توليد تأخيرهاي زماني نشان داده شده می باشد. در بخش 2-9 نشان مي دهيم كه چگونه در شمارش وقايع (يا پديده هاي فيزيكي) مورد بهره گیری قرار مي گيرند.

برنامه نويسي تايمرهاي 8051

8051 داراي دو تايمر می باشد: تايمر 0 و تايمر 1 اين تايمرها مي توانند به عنوان تايمر يا پديده شمار بكار طریقه. در اين بخش ما آغاز ثبات هاي تايمر را بحث كرده و سپس چگونگي برنامه نويسي تايمرها را براي توليد تأخيرهاي زماني نشان خواهيم داد.

ثبات هاي اساسي تايمر

هر دو تايمر 0 و 1 شانزده بيت عرض دارند. زیرا 8051 ساختار 8 بيتي دارد، هر تايمر شانزده بيتي با دو ثبات مختلف بايت پايين و بايت بالا دستيابي مي گردد. هر تايمر بطور جداگانه بحث شده می باشد.

ثبات هاي تايمر 0

ثبات 16 بيتي تايمر 0 بصورت بايت بالا و بايت پايين دستيابي مي شوند. ثبات بايت پايين را TL0 (بايت پايين تايمر 0 ) و ثبات بايت بالا را TH0 (بايت بالا تايمر 0 ) مي خوانند. اين ثبات ها مثل هر ثبات ديگري مانند R2,R1,R0,B,A و غيره قابل دسترسي هستند. مثلا دستور MOV TL0,#4FH ، مقدار 4FH را به TL0 منتقل مي سازد، كه بايت پايين تايمر 0 می باشد. اين ثبات ها مانند ديگر ثبات ها قابل خواندن هم هستند. مثلاً TH0 , “MOV R5, TH0” را در R5 ذخيره مي كند.

ثبات هاي تامير 1

تايمر 1 هم 16 بيتي می باشد و 16 بيت آن به صورت دو بايت به دو نيم شده می باشد. كه هر يك را TL1 (بايت پايين تايمر 1 ) و TH1 (بايت بالاي تايمر 1 ) مي نامند. اين ثبات ها به روشي مشابه با ثبات هاي تايمر 0 قابل دستيابي اند.

ثبات TMOD (مد تايمر)

شما می توانید مطالب مشابه این مطلب را با جستجو در همین سایت بخوانید                     

هر دو تايمر 0 و 1 از يك ثبات به نام TMOD براي تنظيم انواع مدهاي عملياتي تايمر بهره گیری مي كنند. TMOD يك ثبات 8 بيت می باشد كه در آن 4 بيت پايين تر براي تايمر 0 و 4 بيت بالاتر براي تايمر 1 كنار نهاده شده می باشد. در هر حال، دو بيت پايين تر براي تنظيم تايمر و دو بيت بالاتر براي مشخص كردن عمليات بكار مي طریقه. اين انتخاب ها در زير بحث شده اند.

M1, M0

M1, M0 براي انتخاب مد تايمر می باشد. همانطور كه در شكل 3-9 ديده مي گردد،‌سه مد 0 و 1 و 2 هست. مد 0 يك تايمر 13 بيت، مد 1 يك تايمر 16 بيت و مد 2 يك تايمر 8 بيت می باشد. ما اکثراً بر مدهاي 1 و 2 تأكيد خواهيم كرد زيرا بيشتر از ديگري مورد بهره گیری اند. بزودي مشخصه اين مدها را بيان خواهيم كرد. اين كار بعد از توصيف بقيه ثبات TMOD خواهد بود.

C/T (تايمر / ساعت)

اين بيت در ثبات TMOD براي تصميم گيري انتخاب تايمر به عنوان مولد تأخير و يا شمارنده وقايع بكار مي رود. اگر 0 = C/T باشد از آن به عنوان تايمر براي توليد زمان تأخير بهره گیری مي گردد. منبع ساعت براي تأخير فركانس كريستال 8051 می باشد. اين بخش با اين انتخاب به بحث ادامه خواهد داد. بهره گیری از تايمر به عنوان پديده شمار در بخش بعد بحث شده می باشد.

توليد زمان تأخير طولاني

همانطور كه در مثال هاي فوق تا كنون ديديم، سايز تأخير زماني به دو فاكتور وابسته می باشد (الف) فركانس كريستال، و (ب) به ثبات 16 بيتي تايمر در مد 1 ، هر دو فاكتور فوق خارج از كنترل 8051 بوسيله برناهم نويس می باشد. قبلاً ديدم كه بزرگترين زمان قابل دسترسي با صفر كردن TH و TL بدست مي آيد. چرا اين مقدار كافي نيست؟‌مثال 13-9 چگونگي دستيابي به تأخيرهاي زماني بزرگ را نشان مي دهد.

با بهره گیری از ماشين حساب ويندوز، TL و TH را پيدا كنيد.

ماشين حساب علمي در ويندوز ميكروسافت يك ابزار ساده اي براي يافتن مقادير TL و TH می باشد. فرض كنيد مي خواهيم مقادير TH و TL را براي تأخير زماني 35000 پالس 085/1 پيدا كنيم. در زير مراحل محاسبه آمده می باشد:

1- ماشين حساب علمي را در MS Windows بالا آورده و دهدهي را انتخاب كنيد.

شما می توانید تکه های دیگری از این مطلب را در شماره بندی انتهای صفحه بخوانید              

2- 35000 را وارد كنيد.

3- مبناي 16 را انتخاب نماييد. اين موجب تبديل 35000 به B8H 88 مي گردد.

4- – / + را براي 35000- دهدهي (7748H) اختيار كنيد.

5- دو رقم كم ارزشتر (48) از مقدار فوق به TL و (77) براي TH می باشد. ما همه F هاي سمت را صرفنظر مي كنيم زيرا داده 16 بيت می باشد.