• مهشید کاظمی
  • 1396/4/23
  • 0
  • 176

ميكرو كنترلر8051 
امروزه کمتر پروژه علمی و صنعتی را می توان یافت که در آن از میکروکنترلر ها استفاده نشده باشد. در این میان ، بخش عمده ای از پروژه سیگنال ژنراتور مربعی – سینوسی نیز توسط  میکرو کنترلر انجام می گردد به طوری که اپراتور توسط کی بورد ، فرکانس مورد نظر را به        میکرو کنترلر فرمان می دهد و در خروجی سیگنال مورد نظر حاصل می گردد و از آنجایی که میکرو کنترلر 89C52 نقش اساسی را در این پروژه داراست و میکرو کنترلر فوق از خانواده 8051 است لذا ضرورت دیدیم تا این فصل را به طور کلی به میکرو کنترلر 8051 و جزئیات مربوط به آن بپردازیم .

تفاوت بين يك ميكروپروسسور و يك ميكروكنترلر 
منظور از يك ميكروپروسسور (ريز پردازنده) ميكروپروسسورهايي از خانواده X86 اينتل مثل 8086، 80286، 80386 و يا خانواده هايي از اين قبيل است. اين ميكروپروسسورها فاقد  RAM ، ROM و پورت هايI/O در درون خود تراشه هستند به اين دليل به آنها ”ميكروپروسسورهاي همه منظوره“ مي گويند. لذا طراحي كه از اين ميكروپروسسورها استفاده مي كند بايد در خارج از آن RAM، ROM پورت هاي I/O و تايمرها استفاده كند تا سيستمي قابل كار ساخته شود گرچه افزايش RAM، ROM و پورت هاي I/O موجب حجيم شدن و گرانتر شدن سيستم ها مي گردد ولی به قابليت انعطاف آن مي افزايد از جمله آنكه طراح ميتواند روي مقدار RAM، ROM پورت هاي I/O بر حسب نوع كاربرد تصميم گيري و اعمال نظر كند. اين توانمندي در ميكروكنترلر امكان پذير نيست. يك ميكروكنترلر داراي يك cpu به همراه مقدار ثابتي از RAM، ROM پورت هاي I/O و تايمر در درون خود ميباشد. به بيان ديگر RAM، ROM پورت هاي I/O و تايمر همگي در يك تراشه جاي دارند لذا طراح نمي تواند يك حافظه I/O يا تايمري را بدون گسترش لازم آن از بيرون اضافه كند.
ميكروپروسسورها و ميكروكنترلرها بطور گسترده اي در توليد سيستمهاي تك منظوره نظير چاپگر، صفحه كليد، مودم، ماوس و غيره بكار مي روند كه اين محصولات تك منظوره فقط و فقط براي انجام يك كار استفاده مي شوند.گرچه ميكروكنترلرها انتخاب ارجحي براي بسياري از سيستمهاي تك منظوره اند اما مواردي وجود دارد كه در آن استفاده از ميكروكنترلر مناسب نيست لذا بحث انتخاب ميكروكنترلر پيش مي آيد.در انتخاب يك ميكروكنترلر قبل از هر چيز بايد نيازهاي سيستم دقيقاً مشخص و هزينه آن هم مقرون به صرفه باشد و نوع ميكروكنترلر به لحاظ 8، 16 يا 32 بيتي و آنكه كداميك قادر است نيازهاي كار را بطور موثر برآورده سازد نيز تعيين و مشخص شود و پس از آن بايد فاكتورهاي زير را نيز در نظر گرفت از قبيل : سرعت ميكروكنترلر، مقدار RAM و ROM آن، تعداد پايه هاي I/O و تايمر در تراشه، توان مصرفي، قابليت انعطاف بدان معني كه چگونه به ويرايش بعدي از نظر كارايي و توان مصرفي تبديل مي شود، قيمت هر عدد، در دسترس بودن آن به تعداد لازم.

ميكروكنترلر 8051
شركت Intel در سال 1981 اين ميكروكنترلر را معرفي كرد. اين ميكرو داراي 128 بايت RAM، 4کیلوبايت ROM، دو تايمر، يك پورت سريال و چهار پورت موازي (هر يك 8 بيت) است كه همگي در يك تراشه تعبيه شده اند. 8051 يك تراشه 8 بيت است يعني CPU هر بار مي تواند فقط روي 8 بيت داده كار كند، داده هاي بزرگتر از 8 بيت بايد به قطعات 8 بيت بشكنند و سپس بوسيله CPU پردازش شوند ميكروكنترلر 8051 كلاً داراي چهار پورت I/O با عرض 8 بيت است.

(شکل 1-2)

  • گرچه اين ميكروپروسسور مي تواند حداكثر 64K حافظه ROM درتراشه داشته باشد بسياري از سازندگان فقط 4کیلو بايت را در تراشه كار گذاشته اند.
  • 8052 عضو ديگر از خانوده 8051 است اين كنترلر همه امكانات 8051 بعلاوه 128 بايت RAM و يك تايمر اضافي دارد.
  • به بيان ديگر 8052 داراي 256 بايت RAM و سه تايمر است. اين كنترلر بجاي 4K، 8K حافظه ROM را در تراشه داراست.

نكته مهم
ميكروكنترلر بكار رفته در پروژه از نوع 8052 مي باشد.8031 نيز عضو ديگر اين خانواده است كه داراي ROM نمي باشد و براي استفاده از آن بايد يك ROM خارجي به آن اضافه كرد.جدول زیر میکرو کنترلرهای مختلف را با هم مقایسه می کند:

8031

8052

8051

Feature

0K

8K

4K

ROM

128

256

128

RAM

2

3

2

Timer

32

32

32

I/O pins

1

1

1

Serial port

6

8

6

Interrupt sources

 

 

(جدول 1-2)

ROM متصل به 8031 مي تواند تا 64کیلوبايت باشد و حاوي برنامه اي است كه بايد برداشته شده و اجرا شود. در روند افزايش ROM خارجي به 8031 دو پورت از دست مي رود و تنها دو پورت براي كاربر باقي مي ماند. براي حل اين مشكل مي توان دو I/O خارجي به 8031 اضافه كرد.گرچه 8051 رايج ترين عضو خانواده 8051‌است ولي اين ميكروكنترلر داراي انواع مختلفي است كه به لحاظ سرعت، حافظه و قابليتهاي مختلف با يكديگر متفاوتند كه توسط سازندگان مختلفي چون Intel، Atmel،  Dallas و غيره ساخته شده اند.

تخصيص فضاي حافظه RAM در 8051
همانطور كه گفته شد در 8051، 128 بايت RAM وجود دارد. (بعضي از اعضاي اين خانواده مثل 8052 داراي 256 بايت RAM هستند) به 128 بايت RAM در 8051 آدرس هاي 00 تا 7F اختصاص يافته است كه در شكل 3-2 ملاحظه ميشود. اين 128 بايت به سه گروه مختلف تقسيم شده اند.

(شکل 2-2)

  1. 32 بايت از مكان 00 تا 1F براي بانك ثبات و پشته كنار گذاشته شده است كه خود به 4 بانك تقسيم شده اند.
  2. جمعاً 16 بايت از 20H تا 2F H براي حافظه نوشتن/ خواندن آدرس پذير بيتي كنار گذاشته شده اند.
  3. جمعاً 80 بايت از مكانهاي 30H تا 7F H براي خواندن يا نوشتن يا آنچه عموماً ذخيره موقت گفته مي شود بكار مي رود.

سؤال
 اگر مكانهاي 00-1F از RAM براي چهار بانك ثبات كنار گذاشته شود كدام بانك ثبات R7   -  R0 را هنگام روشن شدن 8051 دستيابي خواهيم كرد؟
جواب
پاسخ بانك 0 است كه شامل مكانهاي 6, 5, 4, 3, 2, 1, 0 و 7 از RAM است كه به نامهاي R0، R1، R2، R3، R4، R5، R6 و R7 در برنامه نويسی 8051 خوانده مي شود. گرچه بطور پيش فرض بانك صفرانتخاب مي شود ولي با استفاده از ثبات كلمه وضعيت PSW ديگر بانكها را مي توان انتخاب كرد. بيتهاي D4، D3 از PSW (PSW.3 , PSW.4) براي انتخاب بانك ثبات مورد نظر بكار مي روند.

PSW.3

PSW.4

 

0

0

Bank0

1

0

Bank1

0

1

Bank2

1

1

Bank3

(جدول 2-2)

توصيف پايه هاي 8051
گرچه اعضاي خانواده 8051 (مثل 89C51 و DS5000) در بسته هاي متفاوتي مثل DIP، QFP، LCC عرضه شده اند همه آنها براي انواع توابع مانند I/O، RD، WR، آدرس، داده و وقفه تدارك ديده شده اند. بايد متذكر شد كه بعضي از كمپاني ها نوع 20 پايه 8051 را با كاهش پورتهاي I/O در رابطه با كاربردهاي كم تقاضا توليد كرده اند، با اين وجود عمده توليد كنندگان از تراشه هاي DIP با 40 پايه استفاده مي كنند.
همانطور كه در شكل زير ملاحظه ميگردد از 40 پايه جمعاً 32 پايه براي چهار پورت P0، P1، P2 و P3 كنار گذاشته شده اند بقيه پايه ها به Vcc، GND، XTAL1، XTAL2، RST، EA و PSEN اختصاص يافته اند. Vcc و GND به ترتيب پايه هاي 40 و 20 تراشه بوده و منبع تغذيه و زمين آنرا فراهم مي نمايند.

(شکل 3-2)

XTAL1 و XTAL2 
از آنجا كه 8051 داراي يك اسيلاتور (نوسان ساز) درون تراشه اي است پس براي راندن آن به يك ساعت كريستال نياز است و اغلب يك اسيلاتور كريستال كوارتز به وروديهاي XTAL1 (پايه 19) و XTAL2 (پايه 18) وصل است. مطابق شكل6-2، اسيلاتور كريستال كوارتز متصل به XTAL1 و XTAL2 به دو خازن 30PF وصل است كه يك طرف اين خازنها به زمين متصل است.در خانواده 8051 سرعتهاي مختلف وجود دارد كه هدف از سرعت حداكثر، فركانس متصل به XTAL است.

 
  

(شکل4-2)

RST 
پايه 4، پايه Reset (بازنشاني) است. بعد از اعمال يك پالس بالا اين پايه به ميكروكنترلر باز نشانده شده و همه فعاليتها را رها مي كند كه اين عمل سبب از دست رفتن همه مقادير در ثبات مي شود.

مقدار باز نشان

ثبات

0000

PC

0000

ACC

0000

B

0000

PSW

0007

SP

0000

DPTR

(جدول 3-2)

EA : بمعني «دستيابي بيروني» است و پايه شماره 31 در بسته DIP مي باشد. در اعضاي خانواده 8051 كه داراي ROM در تراشه هستند اين پايه به  Vcc وصل مي شود و در صورتي كه مانند 8031 داراي ROM در داخل نباشند آنرا بايد به GND وصل نمود يعني به بيان ديگر نمي توان آنرا آزاد رها كرد.
PSEN : اين يك پايه خروجي است. PSEN بمعني ”فعال كردن برنامه ذخيره“ است. در يك سيستم مبتني بر 8031 كه در آن ROM بيروني كه برنامه را نگه می دارد اين پايه متصل به پايه OE از ROM است.

پايه هاي پورت I/O و عملكرد آنها 
چهار پورت P0، P1، P2، P3 هر كدام8 پايه را بكار ميبرند تا پورتها را 8 بيتي سازند همه پورتها پس از RESET بصورت خروجي در مي آیند و آماده استفاده به عنوان خروجي هستند. براي استفاده از هر كدام از اين پورتها بعنوان ورودي بايد آنها را برنامه ريزي كرد.

پورت 0 
پورت صفر جمعاً 8 پايه (32-39) را اشغال مي كند. و مي توان از آن بعنوان ورودي يا خروجي استفاده كرد. براي استفاده از پايه هاي پورت صفر بعنوان ورودي يا خروجي هر پایه بايد از بيرون به يك مقاومت بالاكش 10 کیلو اهم وصل شود دليل آن اينست كه پورت 0 بر خلاف P1، P2، P3 يك درين باز است. پورت صفر بصورت AD0-AD7 نشان داده مي شود به اين معني كه قابل استفاده بعنوان ورودي و خروجي است.

  • پورت 1
    پورت 1 جمعاً 8 پايه را اشغال مي كند و مي توان از آن بعنوان ورودي يا خروجي استفاده كرد. بر خلاف پورت 0 اين پورت نيازي به مقاومت بالاكش ندارد.
  • پورت 2
    پورت 2 جمعاً 8 پايه (از پايه 21 تا 28) را اشغال كرده است و مي توان از آن بعنوان ورودي يا خروجي استفاده كرد همچون P1، P2 نيز به مقاومت هاي بالاكش نيازي ندارد زيرا داراي مقاومت هاي بالاكش دروني اند. در سيستم هاي مبتني بر 8051، 89C51، DS5000،  P2 بعنوان يك I/O ساده بكار رفته است ولي در سيستم هاي مبتني بر 8031 پورت 2 بهمراه پورت صفر بكار مي رود تا آدرسهاي 16 بيتي را براي حافظه بيروني فراهم سازند.
  • پورت 3
    پورت 3 هم 8 پايه از پايه 10 الي 17 را اشغال مي كند که مي توان آنرا بعنوان ورودي يا خروجي بكار برد. 3 P،همچون P1، P2 نيازي به مقاومت بالاكش ندارد. پورت 3 داراي توانمنديهاي اضافي ديگريست كه در تهيه بعضي از سيگنالهاي مهم خارجي مانند وقفه ها بكار مي رود. در جدول زير اين توانمندي اضافي  3 P آمده است.

پايه .03 P و  .13 P براي تبادل سيگنال اطلاعات ارسالي و دريافتي بصورت سريال بكار مي رود.

Pin

Function

P3 Bit

10

RxD

P3.0

11

TxD

P3.1

12

INT0

P3.2

13

INT1

P3.3

14

T0

P3.4

15

T1

P3.5

16

WR

P3.6

17

RD

P3.7

(جدول 4-2)

P3.2 و P3.3 براي وقفه هاي خارجي كنار گذاشته شده اند.
P3.4 و P3.5 هم براي تايمرهاي 0 و 1 در نظر گرفته شده اند كه 16 بيتي مي باشند و از آنجا كه ميكروكنترلر 8051، 8 بيتي است لذا هر كدام از تايمرهاي فوق داراي 8 بيت بالا (TH1,TH0) و 8 بيت پايين (TL1, TL0) مي باشند و بسته به مد انتخابي تايمر مي توانند 13 بيتي (مد 0) 16 بيتي (مد 1) و 8 بيتي (مد 2) باشند.P3.6 و P3.7 براي سيگنالهاي RD وWR از حافظه خارجي در سيستمهاي مبتني بر 8031 كنار گذاشته شده اند.

 

 

نظرات0
برای ارسال دیدگاه وارد حساب کاربری خود شوید.

ورود به حساب کاربریایجاد حساب کاربری