تبليغاتX
::: HaRdWaRe :::
 
   

 

 

 

 

 

 

 
   
   

 

صفحه نخست
پست الکترونیک
آرشیو وبلاگ
 

 

 


این وبلاگ صرفا برای ارائه گزارش کار سخت افزار می باشد .
با تشکر ××××مدیران وبلاگ منیره و سمیه ××××

 

 


 

 



 
   

اردیبهشت 1386
اسفند 1385
بهمن 1385
دی 1385
خرداد 1385
اردیبهشت 1385
فروردین 1385
اسفند 1384
بهمن 1384
دی 1384
آذر 1384
 

 

   
 

نوشته شده در  چهارشنبه پنجم اردیبهشت 1386ساعت 20:12

فصل 3 :مجموعه دستورات و ثبات ها در 8051

بانک های ثبات:

8051 دارای 8 ثبات با نامهای R0-R7  میباشد دستوراتی که از این ثباتها استفاده می کنند نسبت به دستورات مشابه خود که از انواع دیگر آدرس دهی استفاده می کنند دارای تعداد بیت کمتر و سرعت بیشتری هستند بنابراین در صورتی که از داده ای به طور متناوب در برنامه استفاده می کنیم بهتر است که این داده در یکی از ثباتهای بانک ثبات قرار گیرد.

در 8051 ,  4 بانک ثبات وجود دارد که در هر لحظه از زمان می توان فقط یکی از این بانکها را فعال و از آن استفاده کرد . برای فعال کردن یک بانک ثبات از دو بیت با نامهای PSW.3, PSW.4  استفاده می کنیم این 2 بیت اجزای ثبات PSW  هستند.

 

ثبات PSW:

مخفف Program status word  یا کلمه وضعیت سیستم است .این ثبات در هر سیکل ماشین بسته به وضعیت و جواب برنامه تغییر می کند و برنامه نویس می تواند بر اساس این تغییرات منطق برنامه را تغییر  دهد. PSW  مشابه FLAG  های ریزپردازنده های سیستم های میکروکامپیوتری می باشد.

شکل زیر بیتهای ثبات وضعیت    (PSW) را نشان می دهد.

 

C  یا    CY

 

AC

 

F0

 

RS1

 

RS0

 

OV

 

----

 

P

 

                             

 

 

شکل 1-3

 

 

 

بیت توازن ((P :

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

 

بیت پرچم سرریز یا OV :

این بیت با نام OVER FLOW  یا سرریز نام دارد. اگر هنگام  جمع یا تفریق حسابی  نتیجه حاصل بزرکتر از 127 + یا کوچکتر از 127- شود سرریز اتفاق می افتد و بیت OV  برابر 1 می شود.

 

بیت های انتخاب بانک ثبات   :(RS0,RS1)

این دو بیت به منظور فعال کردن یکی از 4 بانک ثبات مورد استفاده قرار می گیرد.مقدار پیش فرض این 2 بیت 00 است که بانک ثبات 0 را فعال می کند.

 

بیت :FO

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

 

بیت :AC

در هنگام انجام عملیات حسابی در صورتی که از بیت شماره 3 به شماره 4 رقن نقلی داشته باشیم در این صورت این بیت یک می شود.

 

بیت پرچم نقلی یا :CY

این بیت به دو منظور به کار می رود:

1- در مواقع محاسبات یعنی زمانی که عمل جمع انجام می شود اگر از بیت 7 رقم خارج شود بیت  C یک می شود.

2-  اگر در زمان تفریق از بیت 7 قرض گرفته شود در این صورت بیت C  برابر یک می شود.

 

ثبات A:

این ثبات Accumulator  یا انباره نامیده می شود. این ثبات همه منظوره است . بیشتر دستورات میکروکنترولر با این ثبات کار می کنند بنابراین ابتدا باید داده در این ثبات قرار بگیرد سپس عملیات انجام شود.

 

ثبات :B

ثبات یا آکومولاتور   B در آدرس F0H  حافظه قرار دارد و معمولا با ثبات  A  برای محاسبات ضرب و تقسیم استفاده می شود.

ثبات B  را می توان به عنوان یک ثبات عمومی برای هر کاربرد دیگری نیز لستفاده نمود. علاوه بر این بیت های ثبات B  آدرس پذیر و از آدرس F0H  تا  F7H  می باشند لذا می توان با دستورات روی بیت ,  عملیات بر روی آنها انجام داد.

 

 

ثبات  DPTR  یا اشاره گر داده:

این ثبات یک ثبات 16 بیتی است که از 2 ثبات 8 بیتی با نامهای DPL,DPH  ساخته شده است و به عنوان اشاره گر داده به کار می رود.ای ثبات برای دسترسی به حافظه کد و داده خارجی به کار می رود. به عنوان مثال دستورات زیر عدد 55H  را در حافظه داده خارجی RAM  می نویسند:

                                       MOV A,#55H

MOV DPTR,#1000H

MOV @DPTR,A

 

اشاره گر پشته یا  :SP

SP  یک ثبات 8بیتی می باشد که آدرس اطلاعات بالای حافظه پشته را دارا می باشد . عملیات حافظه پشته شامل قرار دادن اطلاعات در بالای حافظه پشته ( با دستور    ( PUSH یا برداشتن اطلاعات (با دستور   (POP  از بالای حافظه پشته می باشد.

هربار که اطلاعات در حافظه پشته قرار می گیرد ابتدا به محتوای SP  یک واحد اضافه می شود و سپس اطلاعات در حافظه پشته نوشته می شود ((PUSH

هربار که اطلاعاتی از حافظه پشته خوانده می شود (     ( POPابتدا اطلاعات خوانده می شود و سپس یک واحد از SP  کم می شود.

 

 روش های آدرس دهی:

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

در 8051 . هشت نوع آدرس دهی وجود دارد که عبارتند از:

 1- آدرس دهی ثبات((Rejister Addresing

 2- آدرس دهی مستقیم((Direct Addresing

 3- آدرس دهی غیر مستقیم((Indirect Addresing

 4- آدرس دهی فوری ((Immediate Addresing

 5- آدرس دهی نسبی ( (Relative Addresing

 6- آدرس دهی مطلق ((Absolute Addresing

 7- آدرس دهی بلند ((Long Addresing

 8- آدرس دهی اندیس دار ((Index Addresing

 

1- آدرس دهی ثبات:

   در 8051 هشت ثبات با نام بانک ثبات وجود دارد که این ثبات ها به صورت تک تک با نامهای R0-R7  شناخته می شوند تعدادی از دستورالعمل های 8051 بر روی این ثباتها کار می کنند ابن دستورالعملها را دستورهای با آدرس دهی ثبات گویند.در دستورا ت آدرس دهی ثبات ,  سه بیت کم ارزشتر کد دستور  ,  آدرس ثباتهای مذکور را مشخص می کند بنابراین کد اجرا و آدرس ثبات در یک بایت دستور قرار می گیرد.

زبان اسمبلی میکروکنترولر 8051 ,  آدرس دهی ثبات را با سمبل RN  مشخص می کند که  N  بین 0 تا 7 می باشد.به عنوان مثال برای اضافه کردن محتوای ثبات   R7 به آکومولاتور دستور زیر استفاده می شود:

ADD A,R7

 

کد اجرای این دستور 00101111   است که 5بیت پر ارزشتر یعنی 00101  دستور جمع ADD  و سه بیت کم ارزش تر آن یعنی 111 ثبات  R7  را مشخص می نماید.

مثال2: کد اجرای دستور زیر چیست و این دستور چه عملی انجام می دهد؟

 

MOV A,R7

فرم کلی دستور  MOV  به صورت زیر است:

منبع ,  مقصد MOV

اصولا 15 نوع دستور  MOV  وجود دارد که در اینجا نوع MOV A,Rn  را بررسی می کنیم. کد باینری این دستور به صورت 11101rrr  است که سه بیت کم ارزش تر ,  آدرس ثبات منبع را مشخص می کند . با قرار دادن آدرس  R7  یعنی 111 در کد باینری به جای rrr  خواهیم داشت 11101111 که کد EFH  برای دستور مذکور حاصل می شود.دستور مذکور محتوای ثبات R7  را به آکومولاتور منتقل می کند.

 

آدرس دهی مستقیم:

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

لذا با استفاده از این آدرس می توان به کلیه مکانهای حافظه دسترسی داشت . آدرس دهی مستقیم از این آدرس استفاده می کند. علائه بر آدرس ,  بیشتر مکانهای حافظه دارای نام نیز هستند. برای مثال پورت یک هم دارای آدرس 90H  است و هم نام P1  را دارد. استفاده از هر دو (نام یا آدرس ) در برنامه نویسی مجاز است.

در برنامه نویسی هنگامی که عددی را بدون هیچ پیشوندی می نویسند نشان دهنده استفاده از آدرس دهی مستقیم است.

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

MOV P1,A

که محتوای ثبات آکومولاتور (A) را به پورت P1  انتقال می دهد ,  از آدرس دهی مستقیم استفاده شده است.

 

آدرس دهی غیر مستقیم:

آدرس دهی غیر مستقیم از آدرس بایت مورد نظر استفاده می کند. تفائت آن با آدرس دهی مستقیم این است که در آدرس دهی غیر مستقیم آدرس مکان حافظه ابتدا در یکی از ثباتهای بانک ثبات قرار می گیرد و سپس ثبات مذکور به همراه پیشوند @  در دستورالعمل استفاده می شود.

کاربدر این نوع آدرس دهی برای مواقعی است که آدرس یک متغیر بیتی در زمان اجرای برنامه  ,  نه در زمان نوشتن کد , محاسبه شود و نیز هنگام استفاده از مکانهای متوالی حافظه نیز باید از آدرس دهی غیر مستقیم استفاده کنیم . در موارد بالا نمی توانیم از آدرس دهی مستقیم و ثبات استفاده کنیم زیرا این دو آدرس دهی در هنگام کامپایل برنامه به آدرس مکان حافظه نیاز دارند در حالی که ما آدرس مکان حافظه را نمی دانیم.

برای فهم بیشتر مطلب دو دستور زیر را در نظر بگیرید:

MOV R0,#90h

MOV @R0,A

دستور اول عدد 90 در مبنای 16 را در ثبات R0  قرار می دهد. عدد 90h  آدرس پورت یک می لاشد.دستور دوم به میکرو دستور می دهد تا محتوای ثبات A  را در آدرسی که در R0  است (یا مکانی که R0 به آن اشاره می کند) قرار بده.

جمله بالا در مفاهیم برنامه نویسی به نام اشاره گر معروف است . اشاره گر متغیری است که آدرس مکان حافظه را در خود نگه می دارد.

در این دستور @R0 معادل همان P1 است.

 

آدرس دهی فوری یا بلافاصله:

در صورتی که بخواهیم یک عدد ثابت نه یک آدرس را در مکانی از حافظه قرار دهیم از آدرس دهی فوری استفاده می کنیم. دستور اول در مثال قبلی نوعی از آدرس دهی فوری بود . مشخصه آدرس دهی فوری استفاده از پیشوند # قبل از عدد است.

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

MOV A,#90h

MOV A,9h

دستور اول عدد 90 در مبنای 16 را در ثبات A  قارا می دهد . بعد از اجرای دستور مطمئن هستیم که محتوای ثبات A  ,  . 90h است.دستور دوم مقداری را که در آدرس 90h  حافظه است در ثبات  A قرار می دهد یادآوری می کنم که 90h آدرس پورت یک است . بنابراین هر عددی که بر روی پورت یک باشد در درون ثبات A قرار خواهد گرفت و ما از مقدار این عدد هیچ اطلاعی نداریم.

 

 

آدرس دهی نسبی:

این نوع آدرس دهی در چند دستورالعمل پرشی به کار رفته است ( مانند ( sjmp با استفاده از این نوع آدرس دهی می توان به 127 بایت بالاتر و 127 بایت پایین تر از مکان فعلی برنامه پرش کرد. هنگامی که کامپایلر به این نوع دستورات پرشی می رسد آدرس مبدا را از آدرس مقصد تفریق می کند و نتیجه را به شمارنده برنامه اضافه می کند( (pc دستور زیر را در نظر بگیرید:

 

90 sjmp 100

اکنون در مکان 90 حافظه هستیم برنامه می خواهد به مکان 100 پرش کوتاه انجام دهد . آدرس مبدا از مقصد کم می شود (100-90) و به  pc  ,  +10 واحد اضافه می شود.

مزیت استفاده از این نوع آدرس دهی این است که کد مستقل از مکان ایجاد می کند.

 

آدرس دهی مطلق:

آدرس دهی مطلق فقط برای دستورات ACALL  (فراخوانی سابروتین) و AJMP  (پرش مطلق) به کار برده می شود و دو بایتی هستند . با این دستورات می توان تا 2K بایت در داخل یک صفحه حافظه پرش نمود.به عنوان مثال:

AJMP BACK

 

آدرس دهی بلند:

این نوع آدرس دهی با دستورات فذاخوانی سابروتین(( LCALL و دستور پرش بلند ((LJMP به کار برده می شود.این دستورات 3 بایتی هستند که در بایت دوم و سوم آنها آدرس 16 بیتی مقصد می باشد.

یکی از مزیتهای این دستورات این است که می توان به تمات فضای حافظه برنامه دسترسی پیدا کرد ولی اشکال آن ها این است که سه بایت طول دارند.به عنوان مثال:

LJMP FAR_AHEAD

 

 

 

آدرس دهی اندیس دار:

این نوع آدرس دهی در دستورات پرش ( ( JMP و انتقال ( (MOVC  استفاده می شودکه محتوای ثبات پایه مانند((pc یا اشاره گر داده ((DPTR را با محتوای آکومولاتور جمع می کند تا آدرس مقصد حاصل شود.

هم چنین این نوع آدرس دهی در نوشتن جداول جستجو ((LOOUP TABLE استفاده می شود.به عنوان مثال:

MOVC A,@A+DPTR

 

انواع دستورات:

دركل دستوراتي كه دربرنامه نويسي ميكروكنترلر استفاده مي شوند به دودسته تقسيم مي شوند

1-           دستورات مربوط به  cpuدر ميكروكنترلر هاي 8051

2-           دستورات مربوط به assembler

تفاوت اين دونوع دستوراين است كه دستورهاي assembler  درهنگام كامپايل شدن اجرامي شوندوبراي رساندن مفهومي به اسمبلراست ولي دستورهاي نوع اول در داخل ميكرو اجرامي شوند.

 

شروع برنامه نويسي:

اگرتاكنون بازبان هاي برنامه نويسي مختلف كاركرده باشيد مشاهده كرده ايد كه تمامي آنها محيط مخصوص به خودرا دارا مي باشندوليكن خصوصيت زبان اسمبلي اين است كه تنها نياز به محيطي دارد كه اصطلاحاً قابليت(Text Editor) را داشته باشد.

اگر محيط كارشما ويندوزباشد مي توانيد با اجرا نمودن نرم افزار NOTE PAD وچنانچه در سيستم عامل  dosكارمي كنيدمي توانيد با اجراي نرم افزارEdit.exe محيط برنامه نويسي خودرافعال نماييد.

هم اكنون شما مي توانيد دستورات برنامه نويسي رادراين محيط تايپ نماييد.

به طور کلی دستورات میکروکنترولر 8051 به 5 گروه تقسیم شده اند که

 عبارتند از:

- دستورات محاسباتی

- دستورات منطقی

- دستورات انتقال اطلاعات

- دستورات روی بیت

- دستورات کنترلی

 

دستور ORG  :

org

دستورفوق كه مربوط به Assembler مي باشدبه شما امكان مي دهد،آدرس شروع برنامه در حافظه برنامهeeprom ميكروكنترلر راتعيين نماييد. مثال:

org  0h

اين دستور شروع برنامه در حافظه راازخانه صفرآن تعيين مي كند

 

دستورات محاسباتی:

این مجموعه دستورات شامل دستورات جمع و تفریق و کاهش و افزایش و ضرب و تقسیم 8 بیتی می باشند.

 

دستور :ADD

دستوراالعمل ADD   برای جمع کردن یک مقدار 8 بیتی با ثبات A مورد استفاده قرار می گیرد. عملوند اول این دستور ثبات A  می باشد این دستورالعمل در 4 مورد آدرس دهی (که قبلا بحث کردیم ) مورد استفاده قرار می گیرد.

دستور دیگری برای جمع وجود دارد با سمبل ADC  که مخفف  ADD whit carry  می باشد و به معنی جمع با رقم نقلی است عملکرد آن بدین صورت است که ابتدا مقدار بیت  C  (نقلی) با ثبات A  جمع شده و سپس عملوند دوم هم به ثبات A  اضافه می شود . این دستور هم مانند دستور ADD  در 4 مود آدرس دهی گفته شده مورد استفاده قرار می گیرد.

 

دستورالعمل تقسیم 8 بیتی:

DIV A

 

این دستورالعمل مقدار موجود در ثبات A  را بر مقدار موجود در ثبات B  تقسیم می کند . خارج قسمت در ثبات A  و باقیمانده عمل تقسیم در ثبات B  ذخیره خواهد شد.

فرض کنید که ثبات A حاوی مقدار 11 است و ثبات B   حاوی مقدار 4 باشد پس از اجرای عمل تقسیم مقدار 2 در ثبات A  و مقدار 3 در ثبات  B  ذخیره خواهد شد.

 

دستورالعمل افزایش(:(INC

یک دستورالعمل تک عملوندی است این دستور عملوند خود را یک واحد افزایش می دهد . نکته ای که در مورد این دستورالمل باید به آن توجه کرد اینست که هیچ پرچمی بعد از اجرای دستور تغییر نخواهد کرد برای مثال اگر ثبات  A حاوی مقدار #0ffh باشد بعد از اجرای این دستور مقدار A , 00   خواهد شد اما پرچم  OVER FLOW  تغییر نخواهد کرد.

این دستورالعمل در سه مورد آدرس دهی ثبات . مستقیم و غیر مستقیم عمل می کند.

 

دستورالعمل کاهش(:(DEC

یک دستورالعمل تک عملوندی است . پس از اجرای این دستور از محتوای عملوند یک واحد کم می شود.به عنوان مثال اگر ثبات A حاوی مقدار 10 باشد پس از اجرای  DEC A ثبات A  حاوی مقدار 9 خواهد بود.

 

دستورالعمل ضرب(:(MULL

MULL AB

این دستور محتوای ثبات A را در ثبات  B  ضرب می کند نتیجه ضرب بدین گونه ذخیره می شود بیت پایین حاصلضرب در ثبات A  و بیت بالای حاصلضرب در ثبات  B  ذخیره می شود.

 

دستورالعمل تفریق(:(SUBB

دستور  SUBB  برای تفریق یک مقدار 8 بیتی از ثبات A  مورد استفاده قرار می گیرد این دستور مخفف  Sub with BARROW  است و عملوند دوم را به اضافه  Carry  از ثبات A کم می کند اگر در جریان تفریق از بیت  هشتم نیاز به رقم قرضی باشد  Carry  یک می شود و در غیر این صورت صفر می شود .       

 

دستورالعمل منطقی:

این دستورالعمل ها بر روی تک تک بیت ها اعمال منطقی AND,OR,XOR را انجام می دهند . دستورات چرخش و شیفت بیتی هم در زمره این دستورات هستند.

در AND  کردن نتیجه دو بیت زمانی یک است که هر دو بیت یک باشند . در OR  کردن دو بیت نتیجه دو بیت زمانی صفر است که هر دو بیت صفر باشند. در  XOR  کردن نتیجه هنگامی صفر است که هر دو بیت یا صفر باشند یا یک.

XOR  برای مکمل کردن بیت ها هم به کار می رود نتیجه  XOR  یک بیت با بیت 1 مکمل آن خواهد بودو نتیجه xor  یک بیت با بیت 0 خود آن بیت را نتیجه خواهد داد . این دستورات برای مکمل کردن بیت های مشخصی از یک بایت حافظه که بیت آدرس پذیر نیستند مفید است.

دستور اسمبلی که برای AND کردن مورد استفاده قرار می گیرد  ANL (And Logic)  است.

دستورات  OR  کردن و XOR کردن هم ساختاری مانند دستور  ANL  داند فقط برای  OR  از  ORL و برای  XOR  از  XRL  استفاده می کنیم.

دستور دیگری هم با نام CPL وجود دارد که کارش مکمل کردن عملوند خود است.

 

دستورات چرخشی:

چهار دستور RR A,RL A,RLC A,RRC A  برای عملیات چرخشی مورد استفاده قرار می گیرد.

RLA  بیت های ثبات  A را یک واحد به طرف چپ چرخش می دهد بیت شماره هفت از ثبات خارج می سود و دوباره وارد بیت شماره صفر می شود اگر ثبات A حاوی #10000001 b باشد:

10000001--------------> 00000011

RR L  ثبات را یک واحد به راست چرخش می دهد در دستورات چرخش بیتی که خارج می شود از طرف دیگر وارد ثبات می شود

10000001-------------------> 11000000

  RLC  A, RRC A هم مشابه دستورات بالا هستند با این تفاوت که بیتی که از یک طرف خارج می شود وارد بیت Carry  می شود و محتوای قبلی  Carry از طرف دیگر وارد ثبات می گردد. 

 

دستورات انتقال اطلاعات:

دستورات انتقال داده به دو دسته RAM  خارجی و دستورهای RAM  داخلی تقسیم می شوند .

MOV

اين دستور براي كپي كردن يك خانه از حافظه يا داده ها در بايت ها ي حافظه استفاده مي شود.توجه كنيدكه اين دستوريك دستوربايتي است.

مثال1:

mov p1,#55h

اين دستور مقدارعددي 55 درمبناي شانزده رادر بايتي از حافظه به نام p1مي ريزد.

mov p1,#85d

اين دستور مقدارعددي 85 درمبناي ده رادر بايتي از حافظه به نام p1مي ريزد.

mov p1,#010100011b

اين دستور مقدارعددي 01010011 درمبناي دو را در بايتي از حافظه به نام p1  مي ريزد.

توجه :همانطوركه در دستور ات بالامشاهده نموديدعلامت# قبل ازهركدام ازاعداد قيد شده بود.اين علامت براي مشخص نمودن اين مفهوم است كه مقدارعددي عبارت بعدي مي بايست دربايت معرفي شده از حافظه ريخته شود.

مثال2:

mov p1,55h

اين دستور محتويات داخل بايت 55h  حافظه رادرخانه مي ريزد.دقت كنيدكه تمام ثبات هاي موجود را مي توان به جاي اين بايت استفاده كرد.

مثال3:

mov a,p1

mov a,p2

درمثال بالا اگربخواهيم اطلاعات روي p1 راروي p2 بريزيم ابتدا بايد ديتا را به آكومولاتورانتقال دهيم وسپس از اكومولاتور به p2انتقال دهيم.

عبارتb,d,hكه بعد از مقدارهاي عددي قيد شده آمده است مبين مبناي عدد مي باشد.

 

B=Binary

D=Decimal

H=Hexadecimal

 

دستورات 16 بیتی انتقال اطلاعات:

دستورات انتقال اطلاعات 16 بیتی برای مقدار اولیه دادن به اشاره گر داده((DPTR به صورت زیر است:

MOV DPTR,#DATA16

ثبات اشاره گر داده برای دسترسی به حافظه داده خارجی یا جداول حافظه به کار برده می شود مثال:

MOV DPTR,#1234H

این دستور عدد 1234H  را به ثبات اشاره گر داده بار می کند.

دستور :XCH

فرم کلی این دستور به صورت زیر است:

XCH  A,آدرس منبع

که باعث می شود تا محتوای ثبات آکومولاتور A  با خانه ای که آدرس آن داده شده ,   جابجا شود. به عنوان مثال :

XCH A,20H

محتوای خانه حافظه 20H  را با محتوای آکومولاتور A    ,  جابجا می کند.

 

دستور حافظه داده خارجی :RAM

دستورات انتقال اطلاعات که داده را با حافظه خارجی مبادله می کند مانند MOVX از آدرس دهی غیر مستقیم استفاده می کند.

 

آدرس دهی غیر مستقیم:

* یا یک بایت آدرس از طریق  @R0 (Ri  که  برابر   R0   یا R1   است)  استفاده می کند.

* و یا دو بایت آدرس اشاره گر داده را به صورت    @DPTR به کار می برد.

مثال:

دستوراتی بنویسید که محتوای خانه های حافظه به آدرس های 10F4H , 10F5H  را بخواند و آن ها را به ترتیب در ثباتهای R6,R7 قرار دهد.

حل: دستورات مذکور مطابق زیر می باشند:

MOV DPTR,#10F4H    دستور (1)

دستور (2)     MOV A,@DPTR

MOV R6,A       دستور (3)

INC DPTR      دستور (4)

MOVX A,@DPTR     دستور (5)  

MOV R7,A         دستور (6)

دستور 1 : آدرس 16 بیتی 10F4H   را در ثبات اشاره گر قرار می دهد.

دستور 2: محتوای خانه حافظه ای که با اشاره گر داده نشان داده شده یعنی محتئای خانه حافظه 10F4H را می خواند و در آکومولاتور A قرار می دهد.

دستور 3: محتوای آکومولاتور A را در ثبات R6 قرار می دهد به این ترتیب اولین خواسته مسئله انجام شده است.

دستور 4: به ثبات اشاره گر داده یک واحد اضافه می کند یعنی اشاره گر داده برابر 10F5H  می شود.

دستور 5: محتوای خانه حافظه ای که با اشاره گر داده نشان داده شده را می خواند و در ثبات آکومولاتور A قرار می دهد.

دستور 6: محتوای آکومولاتور  A را در ثبات R7  قرار می دهد یعنی خواست دوم مسئله انجام می پذیرد.

نکته: فقط با دستور MOVX می توان به حافظه داده خارجی RAM دسترسی داشت در این صورت یکی از عملوندها حتما آکومولاتور می باشد.

EQU

اين دستورمربوط به اسمبلر بوده وجهت نامگذاري قسمتي از حافظه داخلي ميكرو كنترلر استفاده مي شود

مثال4: برنامه زير خانه 20از حافظه رابه memory نامگذاري مي كند.

Memory       equ     20h

 

ايجاد حلقه در برنامه نويسي ميكروكنترلر :

دستورات کنترل برنامه:

اين دستور براي پرش به مكاني از برنامه استفاده مي شود كه اين مكان يك برچسب است كه قبلاً نامگذاري شده است.دقت كنيدكه براي پرش هاي كوتاه مي توان ازدستور sjmpوبراي پرش هاي بلنداز دستور ljmp استفاده كرد.

مثال5:

loop:

.

.

.

jmp loop

دستور فوق به مكاني از برنامه به نام loopپرش مي كند.

loop:jmp loop

اين خط برنامه باعث مي شود cpu دريك حلقه گيركند.البته مي توان به جاي برنامه فوق ازدستورjmp$ نيز استفاده كرد.

end

اين دستور مربوط به اسمبلر است كه نشان دهنده پايان برنامه وخروج ازآن است.لازم به ذكراست اين دستور مي بايست هميشه آخرين خط برنامه باشد.

نكته:شمابايد به گونه اي برنامه نويسي نماييدكه هيچگاه برنامه به دستور end نرسد.

نمونه برنامه(1):

باتركيب دستورات فوق شما مي توانيد يك برنامه ساده بنويسيد:

org 0

mov p1,#55h

loop:jmp loop

end

باپروگرام نمودن ic وقراردادن آن برروي بردآموزشي اين برنامه باعث مي شودكه ledهاي روي برد به صورت يك درميان روشن شوند.چرا؟

حال به تحليل برنامه ونحوه كار آن مي پردازيم:

اولين دستور كه نمايانگر خانه شروع برنامه است.همانطوركه درمباحث ميكرو كنترلر 89c51 مطالعه نموده ايد،p1 دقيقاً يك بايت از حافظه ram ميكروكنترلر مي باشد كه به ازاي هربيت خوديك پايهi/o برروي ميكروكنترلر دارد (پايه يك تاهشت).حال اگرهر بيت ازاين حافظه يك شودشما روي پايه نظيرآن  +5vو چنانچه صفر شود شماروي پايه نظير هر بيت مقدارصفريا gnd خواهيدداشت و  بالعكس.

حال عدد55h رابه باينري تبديل نماييد ودربيت هاي نظير حافظه قراردهيد.

55H=010101010B

دقيقاً به ازاي عددباينري بالا پايه هاي ميكرو فعال مي شوند.

نكته :البته توجه نماييد ledهاي روي بردآموزشي به صورت آندمشترك بسته شده اند در نتيجه Active Lowهستند،پس به ازاي هرصفرledروشن مي شود.

دستورات پرش های شرطی:

میکروکنترولر دارای تعدادی دستورات پرش شرطی است که عبارتند از JZ , JNZ , DJNZ , CJNE

دستور :JZ

JZ آدرس مقصد یا برچسب دستور

این دستور یعنی اگر محتوای آکومولاتور A  برابر 0 است به آدرس مقصد پرش کن در غیر این صورت دستور بعدی را اجرا کن.

دستور :JNZ

JNZ  آدرس مقصد یا برچسب دستور

یعنی اگر محتوای آکومولاتور A برابر 0 نباشد به آدرس مقصد پرش می کند در غیر این صورت دستور بعدی اجرا می گردد.

دستور :CJNE

این دستور برای عملیات حلقه به کار می رود و فرم کلی آن به صورت زیر است:

CJNE اپراند 1 , آدرس نسبی. اپراند 2

این دستور اپراند 1 را با اپراند 2 مقایسه می کند اگر مساوی نباشد به آدرس نسبی مقصد پرش می کند در غیر این صورت دستور بعدی اجرا می شود.

 

ايجادتأخيرزماني درروند فعاليت ميكرو به وسيله حلقه ها:

DJNZ  COUNT,LOOP

اين دستور مقدارعددي خانه اي از حافظه راكه قبلاً توسط دستورEQUبه نام countتعريف شده است رايك واحد كاهش مي دهدواگرمقدارآن خانه صفرنبودبه آدرسي از خانه حافظه به نام  loopپرش مي كند

درمثال زير بايت ها ايجاد يك تأخير زماني دو مقدار مختلف رابرروي پورت يك بايت ها فاصله زماني مشخص رامي توانيم روي اسكوپ ببينيم.

نمونه برنامه(2):

count  equ  30h

org  00h

main:

mov   count ,#200

mov  p1,#01010101b

 

loop:djnz  count,loop

mov  p1,#10101010b

mov  count,#250

 

loop1:djnz  count,loop

jmp   main

برنامه فوق يك بار پورت يك رابا55h فعال كرده وبعداز 400µs پورت يك را با aah بارگذاري مي كندوبعداز501µs دوباره پورت رابا 55hبارگذاري مي كند وهمين كارادامه خواهدداشت.شايدازخود بپرسيدچگونه متوجه مي شويم مقدارپورتها ، بعد از گذشت چه زماني عوض مي شوند؟

خيلي ساده است انجام هر دستور djnzدو سيكل ماشين زمان نيازداردودرحلقه اول ما200باراين دستور رااجرانموديم پس درمجموع400µsودرحلقه بعدي چون قبل ازآن يك دستورmov  وجودداردومي دانيم براي انجام اين دستور نيز يك سيكل ماشين زمان نياز داريم درمجموع1+250*2سيكل ماشين تأخير ايجادشده است.

نكته:طبق استانداردي كه براي سخت افزار ميكرو قرارداده شده است ازنوسان ساز 12MHz استفاده مي كنيم ودرنتيجه هر سيكل ماشين يك ميكروثانيه زمان نيازدارد.

شما مي توانيد براي تست بصري اين تغييرات ازدستگاه اسكوپ استفاده نماييد.زيرابه علت سرعت زيادledها تغييرات آن براي ماشين ملموس نيست .

z= 10* y

براي تنظيم زمان بيشتر مي توانيدازچندحلقه متداخل استفاده نماييدكه بايك مثال درزيرنشان داده شده است.

x=loop1=2*255

y= 255 * x

y=loop2=255*x

x=2*255

 

 

 


z=loop3=10*y

درنتيجه

z=10*(255*(2*255))=1300500

پس باتشكيل حلقله هاي روبرو تقريباً3/1ثانيه تأخير ايجادنموديم.

البته توجه نماييدماازمقدارتأخير مربوط به خودdjnzدرحلقه دوم وسوم صرف نظر كرديم زيرا درمقابل عددبدست آمده مقدارناچيزي است.وماازآن چشم پوشي مي كنيم.

 

نمونه برنامه (3):

برنامه اي بنويسيدكه ledهاي متصل به پورت  يك ،دربردآموزشي راباسرعت حدودي يك تادوثانيه خاموش وروشن كند.

count1   equ   20h

count2  equ   21h

count3  equ  22h

main:

mov    p1,#0ffh

اين دستور باعث مي شود تمام ledهاي متصل به روي پورت p1خاموش شوند

(چون اين ledهابه صورت آند مشترك بسته شده اند.)

call    delay

حدوديك ثانيه تأخير

mov     p1,#oh

روشن كردن ledها

call     delay

يك ثانيه تأخير

jmp    main

پرش به ابتداي main

delay:

mov   count2,#255

mov   count3,#10

loop3:

mov   count2,#255

 

loop2:

mov   count1,#255

loop1:djnz    count1,loop1

djnz   count2,loop2

djnz   count3,loop3

ret

end

دستور call:

در برنامه فوق چون زيرروال delay تكرارشده بودماازتكرارآن خودداري كرديم واز دستورcall استفاده كرديم ودرهنگام انجام اين دستور براي زيربرنامه cpu,delay به ابتداي برنامه delayرفته وآن رااجرامي كند تابه دستور ret برسد.پس از انجام كامل اين مرحله ورسيدن به دستور retاززير برنامه  delay, برگشته وقفه كارخود را بعد از دستور callادامه مي دهد.شما با روش هاي مشابه مي توانيد به صورت تقريبي تأخيرمورد نظرخودرا دركنترلرها اعمال نماييد، ولي براي ايجاد تأخيرهاي دقيق تر در اجراي برنامه مي توانيد از timerها (كه درادامه به بحث درمورد آنها مي پردازيم) استفاده كنيد.

 

استفاده دستورات بيتي در ميكروكنترلر :

همان طور كه ملاحظه نموديد8051 دستوراتي جهت كارروي بايت هاي حافظه دارد. توجه داشته باشيد شماتوسط دستورات بايتي نمي توانيدروي يك خانه ازبيت حافظه كار كنيد.جهت كاربابيت هامي توانيد از دستورات بيتي زير استفاده نماييد.

setb

يك بيت را يك كرده

setb  p1.0

بيت صفر از بايت p1 رايك كرده وتأثيري روي بقيه بيت ها ندارد.

P1

X

X

X

X

X

X

X

1

D7

D6

D5

D4

D3

D2

D1

D0

 

clr

يك بيت راصفر كرده

clr p0,5

بيت پنجم ازبايت p0راصفركرده وتأثيري روي بقيه بيت هاندارد.

P0

X

X

X

0

X

X

X

X

D7

D6

D5

D4

D3

D2

D1

D0

 

jnb

پرش درصورت يك نبودن

jnb P1.2,loop

اين دستور بيت دوم بايت p1رابررسي مي كند،اگراين پايه ازبيرون gndشده بود به loop پرش كرده ودرغيراينصورت برنامه از خط بعدي ادامه خواهديافت.بيشترين كاربرد اين دو دستور براي چك كردن كليد است كه درادامه يك مثال براي روشن شدن موضوع آورده شده است.

jb

پرش درصورت يك بودن

jb P1.2,loop

اين دستور بيت دوم بايت p1رابررسي مي كند،اگراين بیت یک باشد  به loop پرش كرده ودرغيراينصورت برنامه از خط بعدي ادامه خواهديافت .

 

دستور :JBC

Jbc BIT ,  آدرس مقصد یا برچسب دستور

یعنی اگر بیت  (     (BITمورد نظر برابر 1 است آن را 0 کن و به آدرس مقصد یا  برچسب دستور پرش کن در غیر این صورت  دستور بعدی را اجرا کن.

دستور :JC

Jc  آدرس مقصد یا برچسب دستور

یعنی اگر بیت نقلی   (     (Cمورد نظر برابر 1 است  به آدرس مقصد یا  برچسب دستور پرش کن در غیر این صورت  دستور بعدی را اجرا کن.

 

دستور :JNC

Jnc  آدرس مقصد یا برچسب دستور

یعنی اگر بیت نقلی   (     (Cمورد نظر برابر 1 نیست  به آدرس مقصد یا  برچسب دستور پرش کن در غیر این صورت  دستور بعدی را اجرا کن.

 

 

نمونه برنامه (4):

برنامه اي بنويسيد كه بازدن كليدp3.3 عدد 55h روي p1 قراربگيردوبازدن كليدp3.5 عدد aah روي p1 قراربگيرد.

org  00h

scan:

jnb   p3.3,num1

jnb   p3.5,num2

jmp   scan

 

num1:

mov   p1,#55h

jmp   scan

num2:

mov   p1,#0aah

jmp   scan

end

 

 

 

 

 

 

 

 

 

 
   لينک ثابت

   توسط منیره بشارتی و سمیه اکبری راد  | 


 

نوشته شده در  چهارشنبه پنجم اردیبهشت 1386ساعت 20:9

فصل دو :ساختمان داخلی میکرو

سلام دوباره . به دلیل درخواستهای مکرر دوستای گلمون مبنی بر ادامه ارائه مطالب تصمیم بر این گرفتیم ادامه بدیم...

معماری خانواده 8051

 

8051  يک ميکرو کنترلر 8 بيتی با مصرف کم و قابليت زياد است. تعداد زيادی از اعضای ديگر خانواده 8051 داری معماری مشابهی هستند ، هر يک از اعضا با اعضای ديگر سازگار می باشند. قابليت های ميکرو کنترلر 8051 استاندارد به شرح زير ميباشد:

 4-کيلو بايت حافظه برنامه

 256-بايت حافظه داده RAM

 32-خط I/O قابل برنامه ريزی

-دو عدد تايمر / شمارنده 16 بيتی

 6 -منبع وقفه

 -درگاه UART

 -قابليت اتصال به حافظه بيرونی

 -بسته بندی 40 پايه استاندارد

 

آی سی AT89c51 يکی از اعضای خانواده می باشد. اين آی سی دارای 4 کيلو بايت حافظه فلش قابل برنامه ريزی می باشدکه با استفاده از دستگاه برنامه ريزی کننده مناسب می توان اين حافظه را پاک کرده و مجددا برنامه ريزی کرد....

 AT89C51 دارای 256 بايت RAM و 32 خط I/O قابل برنامه ريزی است.

 

 

 

معرفی پایه های 8051:

پورت 0:

پورت 0 در پایه های 32 تا 39 میکروکنترلر برای دو منظور استفاده می شود . در طرح های کوچک که به حافظه خارجی نیاز نداریم این پایه ها برای عملیات  ورودی خروجی بکار برده می شود . برای طرح های بزرگتر این پورت به عنوان آدرس باس یا باس داده استفاده می شود .

 

پورت 1 :

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

 

پورت 2 :

پورت 2 در پایه های 21 تا 28 برای دو منظور یکی به عنوان ورودی و خروجی و یا به عنوان بایت بزرگتر باس آدرس برای طرح هایی که دارای حافظه کد یا حافظه داده خارجی بیشتر از 256 بایت باشند استفاده می شود.

 

پورت 3: 

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

 

 

 

سیگنال های ورودی خروجی:

عملکرد سیگنال خروجی PSEN(فعال ساز حافظه برنامه)

پایه فعال ساز برنامه یک سیگنال خروجی در پایه 29 می باشد که حافظه برنامه خارجی را فعال می سازد . این سیگنال برای خواندن یک بایت برنامه از حافظه EPROM به فعال ساز خروجی حافظه مذکور متصل می شود . سیگنال PSEN در زمان واکشی یا خواندن یک دستور از حافظه برنامه خارجی برابر 0 یعنی فعال می شود که در این صورت دستور از حافظه EPROM خوانده شده و بر روی باس داده قرار می گیرد و بالاخره وارد ثبات دستورالعمل میکروکنترولر می شود . زمانی که برنامه از ROM داخلی اجرا می شود سیگنال کنترل PSEN برابر 1 یعنی غیر فعال می گردد .

 

سیگنال خروجی ALE))

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

فرکانس سیگنال ALE برابر 1.6 فرکانس اسیلاتور تراشه میکروکنترلر است . به این ترتیب اگر سیگنال اسیلاتور 12 مگاهرتز باشد فرکانس ALE برابر2 مگاهرتز می باشد .این پایه همچنین برای پالس ورودی در برنامه ریزی میکروکنترلر هایی که EPROM دارند استفاده می شود .

 

سیگنال ورودی دسترسی خارجی EA))

ورودی EA در پایه 31 میکروکنترلر معمولا به 5 ولت یا زمین متصل می شود . اگر EA به 5 ولت وصل شود میکروکنترلر برنامه را از داخل ROM . در صورتی که EA به 0(زمین) متصل شود ROM داخلی میکروکنترلر غیر فعال می شود و میکروکنترلر برنامه را فقط از حافظه برنامه EPROM خارجی اجرا می نماید (در اینصورت PSEN برابر 0 و فعال است) .  اجرا می کند

 

سیگنال ورودی RESET(RST)

سیگنال ورودی RST در پایه 9 میکروکنترلر را به حالت RESET میبرد. موقعی که این ورودی حداقل برای دو سیکل ماشین فعال و برابر 1 باشد تمام ثبات های میکروکنترلر  با مقدار های مناسب بار می شود . در حالت عادی RST باید 0(یا غیر فعال) باشد .

 

ورودی اسیلاتور تراشه

کریستال و خازن های اسیلاتور میکروکنترلر 8051 به پایه های 18 و 19 متصل می شود . گرچه میکروکنترلر 80C31BH-1  می تواند تا 16 مگاهرتز کار کند ولی فرکانس معمول اکثر آی سی های خوانواده میکروکنترلر MCS-51 برابر 12 مگاهرتز است. در این میکروکنترولر ها میتوان از منبع پالس خارجی TTL نیز که به XTAL1, XTAL2متصل شده اند استفاده نمود.

 

اتصالات منبع تغذیه

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

 

 

 

 

 

 

 

 

 
   لينک ثابت

   توسط منیره بشارتی و سمیه اکبری راد  | 


 

نوشته شده در  جمعه هجدهم اسفند 1385ساعت 19:11

سلام

ما فقط قصدمون کمک به بچه های دیگه ایه که مثل خودمون تو این زمینه فعالیت می کنن .

هیچ ادعایی هم در مورد هیچ چی نداریم

اگه به درد کسی نمی خوره مطالب یا ... بگید که دیگه ادامش ندیم وقت خودمونم تلف نکنیم چون داریم برا کنکور می خونیم وقت چندانی نداریم که بخواهیم بیاییم اینجا بهمون تیکه بندازن

 
   لينک ثابت

   توسط منیره بشارتی و سمیه اکبری راد  | 


 

نوشته شده در  جمعه بیست و هفتم بهمن 1385ساعت 21:8

فصل اول آشنایی با میکرو (قسمت اول)

واحد پردازشگر مرکزی (CPU)

همان مغز کامپیوتر است و فعالیت های سیستم را کنترل می کند و عملیات هایی را بر روی داده انجام می دهد . CPU مجموعه ای از مدارات منطقی است که به طور متناوب دستورات را واکشی و اجرا می کند . CPU خود دارای چند قسمت می باشد :

الف . ALU یا واحد محاسبه و منطق (ثباتی برای ذخیره اطلاعات موقت) که مسئول انجام اعمال محاسباتی نظیر جمع و تفریق و ... ، اعمال منطقی مانند     AND , OR، ...   می باشد .

ب . واحد کنترل (دیکدر دستور )که مسئول رمزگشایی و تعیین نوع عملیاتی است که ALU باید انجام دهد . واحد کنترل فرمان های لازم را برای اجرای عملیات به قسمتهای مختلف می دهد .

ج . ثبات ها جهت ذخیره موقت داده ها قبل از رفتن به ALU همچنین نگهداری نتایج پردازش بکار می روند .

د. PC یا شمارنده برنامه که آدرس دستورالعمل بعدی که CPU  باید از حافظه بخواند را در خود نگه می دارد .

ه . [1]IR یا ثبات دستورالعمل که مسئول ذخیره قسمت عملیاتی دستور بعدی می باشد .

 

حافظه:

حافظه بخش خيلی مهمی از يک سيستم ميکرو کامپيوتری است .ما می توانيم بر اساس بکارگيری حافظه ، آن را به دو گروه دسته بندی کنيم: حافظه داده و حافظه برنامه .حافظه برنامه تمام کد برنامه را ذخيره ميکند .اين نوع حافظه معمولا از نوع حافظه فقط خواندنی (ROM)ميباشد.انواع ديگری از حافظه ها نظير EPROM و حافظه های فلش  EEPROM برای کاربردهايی که حجم توليد پايينی دارند ... و همچنين هنگام پياده سازی برنامه بکار ميروند .

حافظه داده از نوع حافظه خواندن و نوشتن (RAM)ميباشد در کاربردهای پيچيده که به حجم بالايی از حافظه RAM نياز داريم ، امکان اضافه کردن ترشه های حافظه بيرونی به اغلب ميکرکنترلر ها وجود دارد  .

برای برنامه ها از حافظه ROM جهت قرار گرفتن کد برنامه و از رجیستر های SFR که نقش رجیستر های داخلی میکروپروسسور ها را به عهده دارند علاوه بر انجام دستور به عنوان ذخیره موقت اطلاعات در حین اجرای برنامه استفاده می شود . اما در حالت کلی به علت کم بودن تعداد این رجیستر ها برای ذخیره موقت اطلاعات و استفاده مجدد آن ها و فضای پشته ( که برای دستورات CALL,PUSH,POP و برنامه وقفه لازم است) از حافظه RAM استفاده می کنیم . تعداد 128 بایت RAM از شماره 0-127 00H-7FH)) موجود می باشد که در برنامه ها با ذکر شماره بایت مورد نظر می توان عمل خواندن یا نوشتن را انجام داد .

بایت های 0-7 به عنوان بانک ثبات 0 معروف است که در برنامه علاوه بر ذکر شماره در دستور می توان از بیان R0,R1,…,R7 نیز استفاده کرد . مثلا دو دستور :

MOV    R0,#8                            MOV    00H,#8

هر دو به معنای قرار دادن عدد 8 در بایت صفرم RAM داخلی می باشد . لازم به ذکر است که پیش فرض میکروکنترلر برای R0-R7 بانک ثبات صفرم می باشد که به وسیله دو بیت از رجیستر PSW می توان این پیش فرض را عوض کرد.

                                  

باس یا گذرگاه:

مجموعه ای از سیم ها که اطلاعات را با یک هدف مشترک حمل می کند . بای دسترسی به قسمت های مختلف کامپیوتر در اطراف CPU باس آدرس ، باس داده و باس کنترل قرار دارد .

الف . باس آدرس: برای خواندن یا نوشتن در حافظه ، CPU آدرس محل اطلاعات را روی باس آدرس قرار می دهد و سپس سیگنالی را روی باس کنترل فعال می کند که عمل خواندن یا نوشتن مشخص شود .

ب . باس داده : باس داده یک باس دوطرفه است یعنی بسته به این که داده از حافظه خوانده یا در آن نوشته شود داده در دو جهت می تواند انتقال یابد . ولی آدرس همیشه توسط CPU ارسال می شود بنابراین باس آدرس یک طرفه است .

داده در اصطلاح کلی شامل اطلاعاتی ست که بر روی باس حرکت می کند این اطلاعات ممکن است یک دستور برنامه یا داده ای باشد که در برنامه به کار می رود .

ج . باس کنترل : این باس شامل تعدادی سیگنال است که هر کدام نقش مشخصی در کنترل سیستم کامپیوتر دارد . به طور کلی سیگنال های کنترل ، سیگنال هایی هستند که برای هماهنگی انتقال اطلاعات در باس آدرس و باس داده ، توسط CPU در باس کنترل ارسال می شوند .

 

وسایل ورودی خروجی :

وسایل جانبی کامپیوتر ، ارتباط بین یک سیستم کامپیوتری را با دنیای خارج برقرار می کند به طور کلی سه نوع دستگاه ورودی خروجی در کامپیوتر وجود دارد که عبارتند از دستگاه های ذخیره اطلاعات ، وسایل ارتباط با کاربر و وسایل کنترل و نظارت .

الف . دستگاه های ذخیره اطلاعات : برای ذخیره حجم زیادی از برنامه ها و اطلاعات به کار می رود . و روز به روز این دستگاه ها رشد و توسعه می یابد .

ب . وسایل ارتباط با کاربر : ارتباط کاربربا ماشین از طریق دستگاه های ورودی خروجی انجام می شود .

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

 

ترتیب اجرای برنامه :

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

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

 

1.     مقدار PC( شمارنده برنامه ) بر روی گذرگاه آدرس قرار می گیرد.

2.     سیگنال کنترلی READ بر روی گذرگاه کنترل قرار می گیرد.

3.     داده ( کد عملیاتی دستورالعمل ) ار حافظه خوانده می شود و روی گذرگاه داده قرار می گیرد .

4.     کد عملیاتی در ثبات IR قرار می گیرد .

5.     شمارنده برنامه به ابتدای دستور بعدی اشاره می کند .

مرحله اجرا شامل کد گشایی و ایجاد سیگنال های کنترلی برای بار کردن ثبات های CPU و قرار دادن محتویات آنها در ALU و مجدداً قرار دادن نتیجه عملیات در ثبات ها است .



[1] -INSTRUCTION REGISTER

 
   لينک ثابت

   توسط منیره بشارتی و سمیه اکبری راد  | 


 

نوشته شده در  پنجشنبه هفتم دی 1385ساعت 14:28

ما اومدیم

سلام بچه ها باز ما اومدیم ولی با یه عضو دیگه و با یه سری دلایل جدید برا اومدنمون

دلیل اومدنمون دیگه برا ارائه گذارش کار سخت افزار یا الکترونیک نیست برا گذاشتن تجربیات و اطلاعات و مدارات در ارائه پروژمونه . راستش پروژمون کار روی ۸۰۵۱ و مدارات و سخت افزارات اونه

تو این راه اطلاعاتی کسب کردیم مداراتی بستیم که مایلیم برا استفاده بقیه دوستامون هم اینجا قرارشون بدیم.

رقص نور با تایمر . کار با lcd . seven segment,توضیحات کامل 8051و...... از جمله مداراتیو اطلاعاتیه که روش کار کردیم منتظرمون باشید.

فعلا بای

 
   لينک ثابت

   توسط منیره بشارتی و سمیه اکبری راد  | 


 

نوشته شده در  یکشنبه چهاردهم خرداد 1385ساعت 1:20

bye

سلام

این ترم هم باز به خوبی و خوشی تموم شد

اول از همه تشکر می کنیم از همه ی کسانی که اومدن و به ما سر زدن و در مورد مطالب نظر دادن

اخه می دونید چیه ما دیگه ترم اخر هستیم فقط پروژه داریم

و معلوم نیست که دوباره بیام یا نه... شاید اومدیم باز آپ کردیم

ولی شما ما رو فراموش نکنید

بازم ممنون از همتون

                                                                            با تشکر: منیره بشارتی و سمیه اکبری راد

 
   لينک ثابت

   توسط منیره بشارتی و سمیه اکبری راد  | 


 

نوشته شده در  دوشنبه هجدهم اردیبهشت 1385ساعت 22:7

میکرو کنترلر (اکبری راد )

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

اولين ميكرو كنترلرها در اواسط دهه 1970 ساخته شدند. اين ميكرو كنترلرها در ابتدا پردازنده هاي ماشين حساب بودند كه داراي حافظه برنامه كوچكي از نوع ROM ، حافظه داده از نوع RAM و تعدادي درگاه ورودي/خروجي بودند.

با توسعه فناوري سيليكون ، ميكرو كنترلرهاي 8 بيتي قويتري ساخته شدند. در اين ميكرو كنترلرها علاوه بر بهينه شدن دستورالعمل ها، تايمر/شمارنده روي تراشه، امكانات وقفه و كنترل بهينه شده خطوط  I/O نيز به آنها اضافه شده است. حافظه موجود بر روي تراشه هنوز هم محدود مي باشد و دربسياري موارد كافي نيست.يكي از پيشرفتهاي قابل توجه در آن زمان، قابليت استفاده از حافظة EPROM قابل پاك شدن با اشعه ماورا بنفش، روي تراشه بود. اين قابليت، زمان طراحي و پياده سازي محصول را بطور محسوسي كاهش داد و نيز براي اولين بار امكان استفاده از ميكرو كنترلر ها را در كاربردهايي كه حجم توليد پاييني دارند، فراهم ساخت.

خانواده8051 در اوايل دهه 1980 توسط شركت اينتل معرفي گرديد. از آن زمان تاكنون8051 يكي از

 

 محبوبترين ميكرو كنترلرها بوده و بسياري از شركتها ديگر نيز به توليد آن اقدام كرده اند. در حال حاضر

 

مدل هاي مختلفي از 8051 وجود دارد كه در بسياري از آنها امكاناتي نظير مبدل آنالوگ به ديجيتال حجم

 

 نسبتاً بزرگ از حافظه برنامه و حافظه داده، مدولاتور عرض پالس (PWM) در خروجيها و حافظه فلش

 

Flash)) كه امكان پاك كردن و برنامه ريزي مجدد آن توسط سيگنالهاي الكتريكي وجود دارد، تعبيه شده است.

ميكرو كنترلرها اكنون به سمت 16 بيتي شدن در حركت هستند. ميكرو كنترلر هاي 16 بيتي، پردازنده هايي با كارايي بالا (نظير پردازش سيگنالهاي ديجيتال ) مي باشند كه در كنترل فرايندهاي بلادرنگ و در مواردي كه حجم زيادي از عمليات محاسباتي مورد نياز است، به كار برده مي شوند.

بسياري از ميكرو كنترلرهاي 16 بيتي، امكاناتي نظير حجم زياد حافظه برنامه و حافظه داده، مبدل هاي آنالوگ به ديجيتال چند كانالي، تعداد زيادي درگاه I/O، چندين درگاه سريال، عملكردهاي بسيار سريع رياضي و منطقي و مجموعه دستورالعمل هاي بسيار قدرتمند با قابليت پردازش سيگنال را دارا مي باشند.

 معماري داخلي ميكرو كنترلرها

ساده ترين معماري ميكرو كنترلر، متشكل از يك ريز پردازنده، حافظه و درگاه ورودي/خروجي است. ريز پردازنده نيز متشكل از واحد پردازش مركزي (CPU) و واحد كنترل (CU) است.

CPU درواقع مغز يك ريز پردازنده است و محلي است كه در آنجا تمام عمليات رياضي و منطقي ،انجام مي شود. واحد كنترل ، عمليات داخلي ريز پردازنده را كنترل مي كند و سيگنال هاي كنترلي را به ساير بخشهاي ريز پردازنده ارسال مي كند تا دستورالعمل ها ي مورد  نظر انجام شوند.

حافظه بخش خيلي مهم از يك سيستم ميكرو كامپيوتري است. ما مي توانيم بر اساس به كارگيري حافظه، آن را به دو گروه دسته بندي كنيم: حافظه برنامه و حافظه داده . حافظه برنامه ، تمام كد برنامه را ذخيره مي كند. اين حافظه معمولاً از نوع حافظه فقط خواندني (ROM) مي باشد. انواع ديگري از حافظه ها نظير EPROM و حافظه هاي فلش EEPROM براي كاربردهايي كه حجم توليد پاييني دارند و همچنين هنگام پياده سازي برنامه به كار مي روند . حافظه داده از نوع حافظه خواندن / نوشتن (RAM) مي باشد . در كاربردهاي پيچيده كه به حجم بالايي از حافظه RAM نياز داريم ، امكان اضافه كردن تراشه هاي حافظه بيروني به اغلب ميكرو كنترلر ها وجود دارد.

درگاهها ورودي / خروجي (I/O )به سيگنال هاي ديجيتال بيروني امكان مي دهند كه با ميكرو كنترلر ارتباط پيدا كند. درگاههاي I/O معمولاً به صورت گروههاي 8 بيتي دسته بندي مي شوند و به هر گروه نيز نام خاصي اطلاق مي شود. به عنوان مثال ، ميكروكنترلر 8051 داراي 4 درگاه ورودي / خروجي 8 بيت مي باشد كه P3, P2, P1, P0 ناميده مي شوند. در تعدادي از ميكرو كنترلر ها ، جهت خطوط درگاه I/O قابل برنامه ريزي مي باشد. لذا بيت هاي مختلف يك درگاه را مي توان به صورت ورودي يا خروجي برنامه ريزي نمود. در برخي ديگر از ميكروكنترلرها (از جمله ميكروكنترلرهاي 8051) درگاههاي I/O به صورت دو طرفه مي باشند. هر خط از درگاه I/O اين گونه ميكرو كنترلرها را مي توان به صورت ورودي و يا خروجي مورد استفاده قرار داد . معمولاً ، اين گونه خطوط خروجي ، به همراه مقاومتهاي بالا كش بيروني به كار برده مي شوند.

 خانواده 8051

خانواده 8051 يك خانواده ميكرو كامپيوتر (ميكرو كنترلر ) 8 بيتي تك تراشه اي استاندارد است كه بسيار محبوب و عامه پسند مي باشد و توسط سازندگان مختلف با قابليت هاي متفاوت توليد مي گردد. اين آي سي استاندارد اصلي كه اولين عضو اين خانواده مي باشد، 8051 است كه يك ميكرو كنترلر 40 پايه مي باشد.

 هم اكنون اين آي سي با پيكربندي هاي مختلف موجود مي باشد. 80C51 نوع cmos و كم مصرف اين خانواده است.  8751 داراي حافظه برنامه از نوع EPROM است كه عمدتاً در هنگام پياده سازي به كار برده مي شود.

89c51 نيز داراي حافظه فلش قابل برنامه ريزي و پاك شدن (PEROM) است لذا بدون نياز به پاك كردن با اشعه ماورابنفش ، مي توان حافظه برنامه را برنامه ريزي كرد.8052 عضو بهينه شده اين خانواده مي باشد و حافظه RAM آن بيشتر بوده و تعداد تايمر/شمارنده آن نيز بيشتر است. انواع مختلفي از خانواده 40 پايه وجود دارد كه داراي مبدل هاي آنالوگ به ديجيتال ، مدولاتورهاي عرض پالس و نظاير آن هستند. در بخش پايين خانواده 8051 ، ميكرو كنترلر هاي 20 پايه قرار دارند كه از لحاظ كد ، سازگاري كاملي با انواع 40 پايه دارند و اين ادوات 20 پايه براي كاربردهايي با پيچيدگي كمتر كه نياز به خطوط I/O كمتري دارند و نيز براي كاربردهايي كه بايد مصرف توان كمتري داشته باشند (مثل سيستم هاي قابل حمل)،ساخته شده اند.

آي سي هاي AT89C2051 و AT89C1051 (ساخت شركت Atmel)چنين ميكرو كنترلرهايي هستند كه از لحاظ كد سازگاري كاملي با خانواده 8051 دارند و مصرف توان آنها نيز كمتر است.

 خانواده 8051

8051 يك ميكرو كنترلر 8 بيتي با مصرف كم و قابليت زياد است. تعداد زيادي از اعضاي خانواده 8051 داراي معماري مشابهي هستند و هر يك از اعضا با اعضاي ديگر سازگار مي باشند . قابليت هاي ميكرو كنترلر 8051 استاندارد به شرح زير مي باشد:

       ·           4 كيلو بايت حافظه برنامه

       ·           8*256 حافظه داده RAM

       ·          32 خط I/O قابل برنامه ريزي

       ·           دو عدد تايمر / شمارنده 16 بيتي

       ·           6 منبع وقفه

       ·           درگاه UART سريال  قابل برنامه ريزي

       ·           قابليت اتصال به حافظه بيروني

       ·           بسته بندي 40 پايه استاندارد

 

 
   لينک ثابت

   توسط منیره بشارتی و سمیه اکبری راد  | 


 

نوشته شده در  دوشنبه هجدهم اردیبهشت 1385ساعت 21:18

میکرو کنترلر (بشارتی)

مقدمه:

اولین ریز پردازنده ای که با موفقیت عملی به بازار عرضه شد محصول شرکت اینتل در سال 1971 با نام 8080 بود بعد از آن بازار رقابت میکرو پروسسوری گرم شد و شرکت های دیگری همچون RCA ,ZILOG,MOS technology ریز پردازنده های خود را به بازار عرضه کردند.
کم کم با ورود کامپیوتر به صنعت ،وجود تکنولوژی دیگری نیز احساس شد . تکنولوژیی که از میکرو پروسسور جمع و جور تر و کند تر بود اما هزینه را خیلی پایین می آورد .این تکنولوزی میکرو کنترلر نام گرفت و کار آن نظارت و کنترل یک سری اعمال بود که توسط برنامه نویسی انجام می شد.
امروزه میکرو کنترلر حوزه های وسیعی از زندگی مارا اشغال کرده است بی آنکه بدانیم که سیستم به کار رفته در آنها میکرو کنترلری است و به اشتباه همه ی آنها را کامپیوترمی نامیم.برای مثال ماشین لباسشویی که اتمام کار خود را با نواختن آهنگی اعلام میکند یا اجاق گازی که خاموش شدن شعله را با آهنگ گوشزد می کند و یا خودروی سمندی که باز بودن در خودرو را با جمله ی" در ب خودرو باز است."یاد آوری می کند( البته با فرکانس بالاتر از فرکانس صدای من!!!)همگی نمونه های ملموسی از سیستم های میکرو کنترلری هستند که روزانه بار ها با آنها سر و کار داریم.

ملزومات یک سیستم کامپیوتری:

اما واحد های استاندارد یک سیستم کامپیوتری :

1-واحد پردازش مرکزی
cup :

همان مغز سیستم است و فعالیت های سیستم را کنترل می کند و عملیات هایی را بر روی داده ها انجام می دهد .
Cup مجموعه ای از مدارات منطقی است که به طور متناوب دستورات را واکشی و اجرا می کنند.
Cup خود دارای چند قسمت می باشد:
الف-
ALU یا واحد محاسبه و منطق که مسئول انجام اعمال محاسباتی نظیر جمع و تفریق و ... و اعمال منطقی مانند مقایسه And و OR و ... می باشد

ب – واحد کنترل که مسئول رمز گشایی و تعیین نوع عملیاتی است که
ALU باید انجام دهد.

ج- ثبات ها جهت ذخیره موقت داده ها قبل از رفتن به
ALU و همچنین نگه داری نتایج پردازش به کار میروند.
د –
PC یا شمارنده برنامه که آدرس دستورالعمل بعدی که CPU باید از حافظه بخواند را در خود نگه می دارد.

ه-
IR یا ثبات دستور العمل که مسئول ذخیره قسمت عملیاتی دستورالعمل فعلی می باشد
بعد از معرفی دیگر واحد ها به تفصیل در مورد واکشی دستور بحث می کنیم.

2. حافظه :

حافظه محل ذخیره اطلاعات است . حافظه ها را بر اساس مشخصه های مختلفی می توان طبقه بندی کرد . معمولترین طبقه بندی ، طبقه بندی بر اساس حافظه های اولیه و ثانویه است .
حافظه های اولیه حافظه هایی هستند که در اختیار سیستم هستند و سیستم برای انجام اعمال پردازشی به آنها احتیاج دارد
ROM و RAM از حافظه های اولیه هستند .

ROM (رام) یا حافظه فقط خواندنی توسط کارخانه برنامه نویسی شده و محتویات آن توسط کاربر یا برنامه نویس تغییر نمی یابد. در حقیقت ROM یک بار برنامه نویسی شده و بارها و بارها می توان آن را خواند .محتویات ROM ثابت است و با قطع برق از بین نمی رود.

RAM (رم) حافظه با دستیابی تصادفی است که CPU اطلاعات را در آن ذخیره می کند و محتویات آن توسط برنامه نویس هم می تواند تغییر داده شود محتویات آن با قطع جریان برق هم از بین می رود.


حافظه های ثانویه ، حافظه هایی هستند که ما اطلاعات را بر روی آنها ذخیره می کنیم تا بعدا دوباره آن اطلاعات را مورد استفاده قرار دهیم و با قطع برق هم محتویات آنها از بین نمی رود .در حقیقت حافظه های ثانویه ترکیبی از خصوصیات
Rom و Ram هستند . پایداری خود در مقابل قطع برق را از ROM و توانایی تغییر محتویات توسط کاربر را از RAM به ارث برده اند .برای حافظه های ثانویه می توان از HARD DISK و FLOPPY نام برد


3- گذرگاه یا باس:

مجموعه ای از سیم ها که اطلاعات را با یک هدف مشترک حمل می کنند.در معماری کامپیوتر از سه باس می توان نام برد:

الف – باس آدرس :برای هر عمل خواندن یا نوشتن
CPU آدرس (موقعیت) داده را با قرار دادن یک آدرس روی باس آدرس به حافظه ارسال می کند.

ب - باس کنترل :با قرار دادن آدرس بر روی باس آدرس یک سیگنال کنترلی بر روی گذرگاه کنترل قرار می گیرد که مشخص می کند که عملیات مورد نظر خواندن است یا نوشتن در حافظه.

ج‌- گذرگاه داده : برای عملیات خواندن یک بایت داده بر روی گذرگاه داده توسط حافظه قرار داده می شود و برای عمل نوشتن یک بایت داده توسط
CPU بر روی گذرگاه داده قرار می گیرد .
علاوه بر سیگنالهای کنترلی
READ و WRITE سیگنال کنترلی دیگری هم با نام CLOCK وجود دارد که برای هم زمان کردن واحدها به کار می رود.

4 – واحد های ورودی و خروجی :

این واحد مسئول ارتباط با دنیای خارج است و توانایی اتصال سیستم ها را به کامپیوتر می دهد .

از کامپیوتر با نام ماشین برنامه پذیر نام بردیم . حال ببینیم برنامه چه تعریفی دارد.

برنامه:

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

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

عمل خواندن دستور العمل ها از حافظه توسط
CPU را واکشی گویند.دستور العملها پشت سر هم واکشی شده و توسط CPU اجرا می شوند تا زمانی که برنامه اتمام برسد و آن هدفی را که برنامه نویس مد نظرش بوده است انجام شود.

CPU تنها با داده های باینری کار می کند بنابراین هر دستور العمل نوشته شده توسط برنامه نویس باید به مقدار معادل باینری (همان زبان ماشین) آن تبدیل شود و سپس اجرا شود.
یک سیکل واکشی دستور به صورت زیر می باشد:

1- مقدار
PC یا شمارنده برنامه بر روی گذرگاه آدرس قرار می گیرد .
2- سیگنال کنترلی
READ بر روی گذرگاه کنترل قرار می گیرد
3- داده ( کد عملیاتی دستورالعمل) از حافظه خوانده می شود و روی گذرگاه داده قرار می گیرد
4- کد عملیاتی در ثبات
IR قرار می گیرد
5- شمارنده برنامه به ابتدای دستور بعدی اشاره میکند( اغلب گفته می شود که شمارنده برنامه یک واحد افزایش می یابد اما گاهی اوقات 2 واحد و گاهی 3 واحد افزایش پیدا می کند در حقیقت شمارنده برنامه به اندازه طول دستور فعلی افزایش پیدا می کند.)

مرحله ی اجرا شامل کد گشایی و ایجاد سیگنالهای کنترلی لازم برای باز کردن ثات های
CPU و قرار دادن محتویات آنها در ALU و مجددا قرار دادن نتیجه عملیات در ثبات ها است.

مقایسه ریز پردازنده و میکرو کنترلر :

ریز پردازنده یک
IC است که فقط شامل CPU است اما میکرو کنترلر مدارات اضافی دیگری در داخل همان IC قرار داده شده است که میکرو کنترلر را تبدیل به یک میکرو کامپیوتر کرده است ( البته در مقیاس کمتر) مدارات دیگری همانند ROM,RAM, timer, و رابط سریال و پردازش وقفه و...
اما برای اینکه یک میکروپروسسور به عنوان یک میکرو کامپیوتر عمل کند به مدارات ذکر شده بالا در خارج
IC نیازمندیم که این مدارات هم حجم و هم هزینه را به طور نمایی افزایش می دهند .
اما ریز پردازنده و میکرو کنترلر از نظر معماری داخلی به هیچ وجه قابل مقایسه نیستند ریز پردازنده برای انجام اعمال پردازشی بسیار پیچیده در سرعت بالا طراحی شده است و نتیجتا معماری آن بسیار پیچیده تر از معماری میکرو کنترلر خواهد بود .
تفاوت دیگر میکرو کنترلر و میکرو پروسسور در مصرف توان آنهاست .میکرو کنترلر توان بسیار کمتر از توان مصرفی میکرو پوسسور لازم دارد چون مدارات آن نسبت به میکروپروسسور بسیار کمتر است و این یک مزیت برای طراحی مدارات می باشد.
   

 

 

 
   لينک ثابت

   توسط منیره بشارتی و سمیه اکبری راد  | 


 

نوشته شده در  دوشنبه چهارم اردیبهشت 1385ساعت 15:28

پردازنده پنتیوم(اکبری راد)

بررسی انواع پردازنده پنتیوم :

× . پردازنده های پنتیوم 75،90،100،120،133 مگاهرتزی با تکنولوژی کاهش ولتاژ (VRT) در بسته های 320 پایه ای TCP و 296 پایه ای SPGA  موجود می باشد . بسته های TCP می روند تا با قدرت و عملکرد کامپیوتر های معمولی ، با ملاحظاتی که در ساختار الکتریکی و مکانیکی آنها صورت گرفته است ، به رقابت برخیزند . در پردازنده های 100 تا 133 مکاهرتزی پنتیوم بیش از 3 میلیون ترانزیستور از نوع CMOS  که مصرف انرژی کمی دارند استفاده می شود . مثلا پردازنده پنتیوم 133 مگاهرتزی با سرعت بیش از 30% نسبت به پنتیوم 100 مگاهرتزی توان الکتریکی مصرفی برابر دارد .

× . پنتیوم پرو از نظر کارایی شبیه پنتیوم 100 مگاهرتزی می باشد . منتها این نوع پنتیوم مرحله pipeline  خود را از نظر زمانی 33% نسبت به پنتیوم معمولی کاهش داده است . این امر باعث شد که پنتیوم پرو بتواند 33% با سرعت ساعت بالاتری نسبت به پنتیوم معمولی کار کند .

× . پردازنده پنتیوم  را  II :این پردازنده همان هسته معماری پنتیوم پرو را دارد شرکت اینتل به این پردازنده تکنولوژی MMX  اضافه کرده است . تکنولوژی MMX  یک پدیده جدید است که روی تراشه های پردازنده اعمال شده و عملیات چند رسانه ای را در کامپیوتر های جدید بهتر می کند . پردازنده های پنتیوم که خاصیت MMX  را دارند 57 دستورالعمل چند رسانه ای اضافه دارند ، علاوه بر این شرکت اینتل برای پردازنده پنتیوم II  خاصیت جدید را طراحی کرده که آنها تحت سیستم عامل های 16 بیتی و 32 بیتی به خوبی کار می کند . پردازنده پنتیوم II  از نظر بسته بندی با پنتیوم پرو متفاوت است ، در این نوع به جای آنکه یک حافظه کش ثانویه پر سرعت در یک بسته بندی سرامیکی تراشه پردازنده وجود داشته باشد در پنتیوم II  این حافظه روی یک قطعه برد الکترونیکی و تا 512 کیلوبایت حافظه کش L2  وجود دارد و کل پردازنده و حافظه کش آن روی یک کارتریج به اندازه کف دست با اتصال یک لبه ای قرار دارد . اصل پردازنده در مرکز برد قرار داشته و حافظه کش از L2  آن  را احاطه کرده است . باید توجه داشت که کارایی حافظه کش بیشتر L2 در پنتیوم  II  پنتیوم پرو کمتر است اما سرعت بر حسب ساعت پنتیوم II است . شرکت اینتل دو تغییر مهم را در ساخت پنتیوم II  اعمال کرده است :

اولا نوشتن در ثبات سگمنت را سریعتر کرده و ثانیا مجموعه دستورالعمل های MMX  را نیز اضافه کرده است . L2  هر چند پنتیوم II  کمتر از 6 میلیمتر از پنتیوم پرو بزرگتر است ولی بیش از 2 میلیون ترانزیستور از آن بیشتر دارد. با وجود این حافظه کش مربوط به پنتیوم شده II  از پنتیوم پرو آهسته تر عمل می کند ولی جدا کردن حافظه کش باعث کاهش بسزایی در قیمت و هزینه ساخت پردازنده پنتیوم II  است .

-                           شرکت اینتل برای جبران کمبود سرعت حافظه کش را L2  حافظه نهان L1  را در پنتیوم II  به جای 16 کیلوبایت به 32 کیلوبایت یعنی 2 برابر افزایش داده است که نهایتا تعداد فراخوانی ها از حافظه L2  کمتر کرده است . پنتیوم II  با این تجدید نظر در طراحی و داشتن سرعت بالاتر توانسته است از پنتیوم پرو به اندازه 25% از نظر سرعت جلو بزند .

-                           از آنجاییکه پنتیوم II  با بهره گیری از خصوصیت تکنولوژی گذرگاه دوگانه مستقل DIB (duall independent bus)  که یکی مربوط به حافظه کش L2  و دیگری گذرگاه پردازنده به حافظه اصلی تشکیل شده است ، توانایی بکارگیری هر دو گذرگاه را به صورت همزمان دارا می باشد . این مسئله باعث شده سرعت انتقال اطلاعات در پردازنده پنتیوم II  دو برابر پردازنده های با معماری یک BUS  بیشتر باشد .

-                           گذرگاه دو گانه مستقل در پنتیوم II  باعث شده انتقالات همزمان موازی را مهیا سازد که سریعتر از انتقالات سریع می باشد . این عمل پهنای باندی به اندازه 3 برابر پهنای باند پردازنده های با گذرگاه واحد را مهیا ساخته است .

-                           در پردازنده پنتیوم II  از درگاه گرافیکی شتاب دار AGP  استفاده می شود تا عملیات گرافیکی را با فراهم آوردن پهنای باند حافظه بسیار وسیع را برای زیر سیستم های گرافیکی توسعه خواهد داد .

-                           در خاتمه به عنوان یک خصوصیت جالب دیگر برای پنتیوم با II  باید به این نکته اشاره کرد که نرم افزار ها برای به دست آوردن یک کارایی بهبود یافته روی پردازنده های پنتیوم II  نیازی به ترجمه مجدد ندارد بلکه پنتیوم II  همه برنامه های کاربردی موجود روی PC  سازگار است .

 
   لينک ثابت

   توسط منیره بشارتی و سمیه اکبری راد  | 


 

نوشته شده در  دوشنبه چهارم اردیبهشت 1385ساعت 15:27

پردازنده پنتیوم و 80486(بشارتی)

پردازنده 80486 :

 

این پردازنده دارای انواع  80486DX , 80486DX II , 80486DX 4 , 80486DX 5  می باشد . بیش از دو میلیون ترانزیستور 4 واحد را در داخل این پردازنده تشکیل می دهند . این چهار واحد عبارتند از :

 

× . پردازنده

× . کمک پردازنده ریاضی

× . حافظه پنهان داخلی (cache)

× . کنترل کننده حافظه پنهان (cache )

 

این پردازنده با سرعتهای 25 تا 100 مگاهرتز کار می کند . 80486DX دارای 32 خط آدرس و داده و سرعت 50 مگا هرتز و حافظه نهانی 8 کیلو بایت می باشد . 80486DX II نیز دارای همین مشخصات منتهی با سرعت 66 مگاهرتز می باشد . 80486DX 4 دارای سرعت 100 مگاهرتز می باشد . پردازنده های 80486 دارای امکانات اجرای چند وظیفه ای ، مدیریت حافظه ، و حافظه مجازی می باشند .

 

پردازنده های پنتیوم اینتل :

 

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

 

× . پیشرفت و توسعه واحد عملیات ممیز شناور که باعث بالا رفتن سرعت اجرای نرم افزارهایی که کارهای محاسباتی زیادی را انجام می دهند شده است .

× . طراحی سوپر اسکالر و pipeline دوبله که امکان اجرای بیشتر از یک دستورالعمل در هر سیکل ساعت را فراهم نموده است .

× . وجود دو عدد حافظه cache  داخلی یکی برای داده ها و دیگری برای دستورالعمل ها که به افزایش سرعت پردازنده کمک می کند .

× . مدارات پیش بینی پرشی که محل بعدی دستورالعمل ها را پیش بینی می کند .

× . وجود کنترل داخلی parity  اشتباهات پردازش داخلی را کشف می کند .

× . عملیات مدیریت توان مصرفی به پایین آوردن توان مصرفی و افزایش طول عمر و ایمنی پردازنده کمک می کند .

 

پردازنده پنتیوم یک تراشه 273 پایه است که از نظرداخلی  32 بیتی طراحی شده و رجیستر های عمومی و آدرس آن نیز شبیه 486 است . یکی از ویژگی های مهم پنتیوم کار حدس و پیش بینی دستورالعمل ها است . می دانیم که یکی از موانعی که بر سر راه بالابردن کارایی پردازنده وجود دارد ، حالتهای پرش متعددی است که ممکن است در یک دستور وجود داشته باشد . پیش بینی پرش روی انتخاب بهترین و محتمل ترین حالت است .

انتقال سریع اطلاعات حافظه یکی دیگر از ویژگی های پردازنده های پنتیوم می باشد . در این پردازنده ها واحد که       bus رابط خارجی تراشه را کنترل می کند ، شبیه یک کنترل کننده ترافیک عمل کرده ، و جریان اطلاعات بین دستگاه های خارجی و ساختمان داخلی پنتیوم را از طریق یک گذرگاه 64 بیتی اطلاعات و یک گذرگاه 32 بیتی آدرس کنترل می کند . از نظر ساختار داخلی واحد ، bus (bu)   متصل به حافظه های cache  اطلاعات آدرس و واحد صفحه بندی حافظه (paging unit) بوده که در عین حال توازن (parity) اطلاعات و آدرس را نیز کنترل کرده و امکان انتقال حجمی از حافظه را نیز میسر می سازد . پردازنده پنتیوم قابلیت خواندن یا نوشتن تعداد زیادی از حافظه خارجی را نیز افزایش داده است. حداکثر سرعت این امر در پنتیوم با پالس 66 مگاهرتز برابر 528 مگابایت بر ثانیه بوده که سرعتی بیش از دو برابر سرعت 486DX II  می باشد .

علاوه بر خواص بالا پردازنده پنتیوم دارای خصوصیات جدید و توسعه یافته دیگری نیز می باشد . این خاصیت adress pipelining  است که یک ارتباط با خانواده 487 را ممکن می سازد . این خصوصیت اجازه توسعه دو سیکل گذرگاه در یک لحظه را ممکن ساخته و در سیستم هایی که حافظه کندتر دارند مفید می باشد .

 
   لينک ثابت

   توسط منیره بشارتی و سمیه اکبری راد  |