NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2941 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 5 از 5

موضوع: آموزش Micro controller 8051 از صفر تا صد

  1. #1
    عضو جدید
    تاریخ عضویت
    Apr 2016
    نوشته ها
    6
    تشکر
    2
    تشکر شده 4 بار در 3 پست

    پیش فرض آموزش Micro controller 8051 از صفر تا صد

    مقدمه : در اين بحث با ميكرو كنترلر 8051 آشنا مي شويد. ميكرو كنترلرها و ميكرو پرسسورها با هم تفاوتهايي دارند. ميكروكنترلرها علاوه بر دارا بودن پردازشگر مركزي مدارات جانبي آن را نيز دارند اين مدارات شاملROM ، RAM ، ارتباط سري، ارتباط موازي، زمان سنج و كنترل كننده وقفه مي شود. البته امكانات فوق در مقايسه با امكانات يك كامپيوتر كامل ناقص به نظر مي رسد ولي در كاربردهايي كه تنها بعضي ازامكانات مورد نياز باشد استفاده از ميكروكنترلرها ساده‌تر و مقرون به صرفه‌تر است ميكروكنترلرها بيشتر كاربرد كنترلي دارند. يعني با دريافت يك ورودي، كنترل چند فرايند را بدست مي‌گيرند كه عمدتاً اين كارها ساده است ولي در كار بردهايي كه احتياج به تحليل و پردازش پيچيده و عميق دارد به ميكرو پرسورها نياز است.
    7-1) MCS-51 دسته اي از ميكروكنترلرها است كه ابتدا توسط شركت Intel ساخته وبه بازار جهاني عرضه شده اند. هر يك از ميكروكنترلرهاي اين خانواده امكانات ويژه‌اي دارند. در اين بخش مشخصات سخت افزاري 8051 معرفي مي شود.
    مشخصات اين تراشه به شرح زير است:
    1) 4كيلوبايت ROMداخلي
    2) 128 بايت RAM داخلي
    3) چهار درگاه I/O 8 بيتي
    4) درگاه ارتباط سري
    5) دو زمان سنج و شمارشگر 16 بيتي
    6) حداكثر64kبايت حافظه خارجي براي برنامه‌هاي بزرگتر
    7) حداكثر64k بايت حافظه خارجي براي داده‌هاي بزرگتر
    8) توانايي پردازش عمليات بولي
    9) 210 بيت با امكان دسترسي بيتي
    10) وجود دستورات اضافي نظير ضرب و تقسيم
    11) قبول وقفه از اجزاي داخلي و سخت افزار خارجي
    7-2) وضعيت پايه‌ها: 32 پايه از 40 پايه تراشه مي‌توانند بصورت خطهاي درگاه I/O بكار روند.براي صرفه جويي 24 تا از آنها داراي عملكرد ديگري نيز هستند و در صورت لزوم از عملكرد دوم هر پايه استفاده مي شود كه به همين دليل پايه هاي دو منظوره نام گرفته اند
    7-2-1) درگاه 0: پايه هاي 39-32را شامل مي شود. در سيستمي كه حافظه خارجي نداشته باشد اين پايه ها به عنوان درگاه I/O بكار مي روند. ولي در سيستمهاي با حافظه خارجي اين پايه ها به عنوان گذرگاه( آدرس و داده) multiplexed بكار مي روند.
    7-2-2) درگاه 1: پايه هاي 1 تا 8 IC را شامل مي شود كه فقط به عنوان درگاه I/O بكار مي رود.
    7-2-3) درگاه 2: پايه هاي 21 تا 28 را شامل مي شود اين پايه ها دو منظوره طبق برنامه مي‌توانند به عنوان درگاه I/O يا در صورت بهره گيري از حافظه كد خارجي يا داده خارجي با حجم 64k ,بايت به عنوان MSB گذرگاه آدرس استفاده شوند.
    7-2-4) درگاه 3: پايه هاي 10 تا 17 تراشه را شامل مي شود كه به ترتيب دريافت و ارسال اطلاعات به صورت سري، وقفه خارجي 0 , وقفه خارجي ,1 ورودي زمان سنج 0 , ورودي زمان سنج 1 و پايه هايي كه همزماني و فرمان نوشتن براي حافظه داده خارجي را فراهم مي آورند.
    7-2-5) ورودي نوسان ساز داخلي: براي راه اندازي بين پايه هاي شماره 19 , 18 مطابق شكل
    (7-1) يك كريستال و دو خازن قرار مي دهيم.
    7-2-6) اتصال منابع تغذيه : ولتاژ +5 به پايه 40 متصل مي شود و پايه 20 زمين مي شود.
    7-2-7) PSEN، فعال كننده پايه 29: يك سيگنال خروجي كنترلي است كه براي همزماني و فعال ساختن حافظه كد خارجي در هنگام خواندن استفاده مي شود. كه غالباً به پايه OE يك EPROM وصل مي شود. هنگامي كه برنامه از ROM داخلي 8051 اجرا مي شود PSEN در حالت high باقي مي‌ماند.
    تصاوير پيوست شده تصاوير پيوست شده

  2. کاربران : 2 تشکر کرده اند از شما amirgali برای ارسال این پست سودمند:


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  4. #2
    عضو جدید
    تاریخ عضویت
    Apr 2016
    نوشته ها
    6
    تشکر
    2
    تشکر شده 4 بار در 3 پست

    پیش فرض آموزش Micro controller 8051 از صفر تا صد بخش دوم

    7-2-8) باز نشاندن پايه9: ورودي باز نشاندن IC است . اگر حداقل دو سيكل ماشين high نگه داشته شود IC بازنشانده مي شود. بعد از باز نشاندن IC وضعيت ثباتها مطابق جدول (7-1) خواهد شد.
    براي باز نشاندن IC از دو مدار رايج شكل (2-7) استفاده مي شود كه خروجي RST آنها به پايه IC 9 متصل مي شود.
    جدول (7-1): مقادير ثبات پس از باز‌نشاندن شكل (7-2):مدارات باز‌نشاندن

    مقدار ثباتها بعداز بازنشاندن ثبات
    0000 H شمارنده برنامه PC
    00 H انباره AC
    00 H ثبات B
    00 H كل وضعيت برنامه PSW
    07 H اشاره گر پشته SP
    0000 H اشاره گر داده DPTR
    FF H Port 0-3
    XXX0000B اولويت وقفه IP
    0XX00000B فعال ساز وقفه IE
    00 H ثبات زمان سنج Timer
    00 H ثبات كنترل درگاه سري SCON
    00 H بافر داده سري S BUF
    0XXXXXXXB ثبات كنترل توان PCON(HMOS)
    0XXX0000B ثبات كنترل توان PCON(CMOS)

    7-2-9) ALE فعال كنندهقفل آدرس (پايه30 هنگامي كه اين پايه high باشد خطوط خروجي درگاه صفر به عنوان 8 بيت LSB آدرس در ثبات خارجي قفل(لچ) مي شوند و وقتي كه ALE، low باشد درگاه به خطوط داده تبديل مي شود. هنگام استفاده از حافظه خارجي در هر سيكل خواندن يا نوشتن حافظه ابتدا ALE، high و سپس low مي شود.
    7-2-10(EA) پايه 31معمولا بطوردائمي به منبع 5Vيا زمين متصل مي شود اگر اين پايه high باشد برنامه از ROM داخلي اجرا مي شود در غير اين صورت از EPROM خوانده مي شود. .
    درگاه:I/Oنمودار بلوكي 8051 درشكل(7-2) نشان داده شده است كه نحوه ارتباط اجزاي مختلف ميكروكنترلر را نشان ميدهد0هر بيت درگاه I/O را مي تواندبصورت مجزا براي خواندن ,نوشتن, تغيير يا تست كردن آدرس دهي كرد پايه هاي I/O نقش ورودي و خروجي را به عهده دارد.





    شكل (7-2): نمودار بلوكي 8051

    - - - Updated - - -

    -3) سازمان حافظه : معمولاً در پرسسورها كد برنامه داده روي حافظه RAM جانبي قرار دارد كه در ابتدا يك بار از روي ديسك فراخواني مي شود ولي در ميكرو كنترلر برنامه كنترل روي ROM و يا EPROM جاي مي گيرد و ميكرو كنترلرها حافظه جداگانه‌اي به داده اختصاص مي دهند.

    شكل (7-3): حافظه داده روي تراشه در 8051
    دو ويژگي حافظه داخلي اينست كه : الف) ثباتها و درگاههاي I/O ،memory mapped شده‌اند يعني مانند ديگر مكانهاي حافظه قابل آدرس دهي هستند. ب) براي اختصاص حافظه به پشته فقط از RAM داخلي استفاده مي شود. در شكل (7-3) سازمان RAM داخلي نشان داده شده است كه از چهار قسمت: الف) بانكهاي ثبات. ب) فضاي انباشت عمومي. ج) فضاي قابليت آدرس دهي بيتي. د) ثباتهاي ويژه SFR. تشكيل شده است
    7-3-1) بانكهاي ثبات: اين بانكهاي آدرس 00‌ تا1F پايين RAM هستند. در هر بانك 8 ثبات
    R0 تا R7 وجود دارند اين ثباتها بويژه در دستوراتي كه نوع آدرس دهي آنها رجيستري است، بكار مي روند.
    با تغيير سيستمهاي وضعيت، بانك ثبات فعال عوض مي شود. مثلاً آدرس RAM , 16 H داخلي، ثبات R6 از بانك شماره 2 مي باشد. با نوشتن دستور MOV R6, A، محتويات A داخل R6 نوشته مي شود.
    7-3-2) فضاي عمومي نگهداري اطلاعات: از آدرس 30H تا 7FH فضاي عمومي نگهداري اطلاعات است. كه قابليت آدرس دهي مستقيم و غيرمستقيم را دارد. كه در بحث آدرس دهي به نحوه استفاده از اين دستورات مي پردازيم.
    7-3-3) فضاي RAM با قابليت آدرس دهي بيتي: 210 بايت از RAM قابليت آدرس دهي بيتي دارند. كه 128 تا از آنها در فاصله 20H تا 2FH هستند با كمك اين قابليت مي توان يك تك بيت را بصورت مجزا آدرس دهي كرد. علاوه بر اين هر بيت براي خود آدرس جداگانه دارد. مثلاً براي روشن كردن بيت دوم ثبات 2A از دستور مقابل استفاده مي كنيم: SETB 51 H ; Set bit 51 H
    در ميكرو پرسسورها براي يك كردن يا صفر كردن يك بيت خاص 8 بيت فوق را با يك عدد 8 بيتي ديگر AND يا OR مي كنند .(MASK كردن )
    7-3-4) ثباتهاي ويژه (SFR): تمام ثباتهاي داخلي بجز IR و PC در RAM ، memory maped شده اند كه در محدوده آدرس FFH – 80H قرار دارند. و بعضي ازآنها قابليت آدرس دهي بيتي دارند. تفاوت بين ميكروپرسسور و ميكرو كنترلر در شكل (3-7) مشاهده مي شود در ميكرو پرسور ثباتها در انباره در RAM نيستند ولي در ميكرو كنترلر مثلاً وقتي به محتواي ثبات B يك واحد اضافه كنيد به بايت F0 حافظه يك واحد اضافه خواهد شد. قابليت ديگر ميكرو كنترلر اين است كه درگاههاي خروجي بصورت تك بيتي يعني بصورت بيت آدرس پذير قابل دسترسي هستند و در برنامه با قرار دادن يك دستور مي توان مثلاً پايه شماره 2 درگاه 1 را روشن كرد.دستور مقابل اين كار را انجام مي دهد.
    SETB 91 H
    در اين قسمت عملكرد هر ثبات را به صورت مختصر شرح مي دهيم.
    7-3-4-1) كلمه وضعيت برنامه (PSW): اين كلمه در آدرس D0H قرار دارد و تشكيل شده از: پرچمهاي نشانه دو بر يك CY ، نشانه دو بر يك كمكي AC (يك پرچم همه منظوره) OV نشانه سرريز شدن ،P نشان توان زوج و دو پرچم ديگر براي كنترل بانك ثبات فعال.در شكل (4-7) محل هر پرچم را مشاهده مي كنيد.

  5. تشکرها از این نوشته :


  6. #3
    عضو جدید
    تاریخ عضویت
    Apr 2016
    نوشته ها
    6
    تشکر
    2
    تشکر شده 4 بار در 3 پست

    پیش فرض

    -------------
    نقل قول نوشته اصلی توسط amirgali نمایش پست ها
    7-2-8) باز نشاندن پادول (7-1) خواهد شد.
    بده از: پرچمهايحل هر پرچم را مشاهده مي كنيد.

  7. #4
    عضو جدید
    تاریخ عضویت
    Apr 2016
    نوشته ها
    6
    تشکر
    2
    تشکر شده 4 بار در 3 پست

    Red face آموزش Micro controller 8051 از صفر تا صد بخش چهارم

    -3) سازمان حافظه : معمولاً در پرسسورها كد برنامه داده روي حافظه RAM جانبي قرار دارد كه در ابتدا يك بار از روي ديسك فراخواني مي شود ولي در ميكرو كنترلر برنامه كنترل روي ROM و يا EPROM جاي مي گيرد و ميكرو كنترلرها حافظه جداگانه‌اي به داده اختصاص مي دهند.



    شكل (7-3): حافظه داده روي تراشه در 8051
    دو ويژگي حافظه داخلي اينست كه : الف) ثباتها و درگاههاي I/O ،memory mapped شده‌اند يعني مانند ديگر مكانهاي حافظه قابل آدرس دهي هستند. ب) براي اختصاص حافظه به پشته فقط از RAM داخلي استفاده مي شود. در شكل (7-3) سازمان RAM داخلي نشان داده شده است كه از چهار قسمت: الف) بانكهاي ثبات. ب) فضاي انباشت عمومي. ج) فضاي قابليت آدرس دهي بيتي. د) ثباتهاي ويژه SFR. تشكيل شده است
    7-3-1) بانكهاي ثبات: اين بانكهاي آدرس 00‌ تا1F پايين RAM هستند. در هر بانك 8 ثبات
    R0 تا R7 وجود دارند اين ثباتها بويژه در دستوراتي كه نوع آدرس دهي آنها رجيستري است، بكار مي روند.
    با تغيير سيستمهاي وضعيت، بانك ثبات فعال عوض مي شود. مثلاً آدرس RAM , 16 H داخلي، ثبات R6 از بانك شماره 2 مي باشد. با نوشتن دستور MOV R6, A، محتويات A داخل R6 نوشته مي شود.
    7-3-2) فضاي عمومي نگهداري اطلاعات: از آدرس 30H تا 7FH فضاي عمومي نگهداري اطلاعات است. كه قابليت آدرس دهي مستقيم و غيرمستقيم را دارد. كه در بحث آدرس دهي به نحوه استفاده از اين دستورات مي پردازيم.
    7-3-3) فضاي RAM با قابليت آدرس دهي بيتي: 210 بايت از RAM قابليت آدرس دهي بيتي دارند. كه 128 تا از آنها در فاصله 20H تا 2FH هستند با كمك اين قابليت مي توان يك تك بيت را بصورت مجزا آدرس دهي كرد. علاوه بر اين هر بيت براي خود آدرس جداگانه دارد. مثلاً براي روشن كردن بيت دوم ثبات 2A از دستور مقابل استفاده مي كنيم:
    SETB 51 H ; Set bit 51 H
    در ميكرو پرسسورها براي يك كردن يا صفر كردن يك بيت خاص 8 بيت فوق را با يك عدد 8 بيتي ديگر AND يا OR مي كنند .(MASK كردن )
    7-3-4) ثباتهاي ويژه (SFR): تمام ثباتهاي داخلي بجز IR و PC در RAM ، memory maped شده اند كه در محدوده آدرس FFH – 80H قرار دارند. و بعضي ازآنها قابليت آدرس دهي بيتي دارند. تفاوت بين ميكروپرسسور و ميكرو كنترلر در شكل (3-7) مشاهده مي شود در ميكرو پرسور ثباتها در انباره در RAM نيستند ولي در ميكرو كنترلر مثلاً وقتي به محتواي ثبات B يك واحد اضافه كنيد به بايت F0 حافظه يك واحد اضافه خواهد شد. قابليت ديگر ميكرو كنترلر اين است كه درگاههاي خروجي بصورت تك بيتي يعني بصورت بيت آدرس پذير قابل دسترسي هستند و در برنامه با قرار دادن يك دستور مي توان مثلاً پايه شماره 2 درگاه 1 را روشن كرد.دستور مقابل اين كار را انجام مي دهد.
    SETB 91 H
    در اين قسمت عملكرد هر ثبات را به صورت مختصر شرح مي دهيم.
    7-3-4-1) كلمه وضعيت برنامه (PSW): اين كلمه در آدرس D0H قرار دارد و تشكيل شده از: پرچمهاي نشانه دو بر يك CY ، نشانه دو بر يك كمكي AC (يك پرچم همه منظوره) OV نشانه سرريز شدن ،P نشان توان زوج و دو پرچم ديگر براي كنترل بانك ثبات فعال.در شكل (4-7) محل هر پرچم را مشاهده مي كنيد.
    P - OV RS2 RS1 F0 AC CY

    شكل (7-4): محل قرار گرفتن پرچمها
    در جدول (7-2) نحوه كنترل بانك ثبات با دو پرچم RS1 , RS0 بيان شده است.
    مثلاً براي ذخيره اطلاعات انباره در رجيستر R5 از بانك 3 مجموعاً دستور العملهاي زير انجام مي‌‌دهيم:
    SETB RS1
    SETB RS0
    MOV R5 , A
    جدول (7-2): فعال كردن بانك ثبات
    RS1-RS0 شماره بانك ثبات
    0 0 0
    0 1 1
    1 0 2
    1 1 3



    7-3-4-2) اشاره‌گر پشته (SP): اشاره گر پشته يك ثبات 8 بيتي واقع در 81H است. شبيه ميكروپرسسورها با دستور POP , PUSH مي توان در پشته داده اي را ذخيره كرد و يا آن را بازخواني نمود. البته در ميكروكنترلرهاي خانواده 8051 دستور PUSH ابتدا يك واحد به SP اضافه مي كند و بعد داده را ذخيره مي كند همچنين در دستور POP داده را بازخواني و سپس يك واحد ازSP كم مي كند. بعداز باز نشاندن، بصورت پيش فرض SP، 07H است و اولين داده در 08H ذخيره مي‌شود. براي شروع پشته از مكان دلخواه،كافي است با دستور MOV محتواي SP را برابر آدرس آن مكان حافظه قرار دهيد.
    7-3-4-3) ثبات B: ثبات B براي انجام عمل ضرب و تقسيم استفاده مي شود. دستور
    MUL A,B حاصلضرب دو عدد 8 بيتي B ,A را محاسبه كرده 8 بيتLSB را در Aو 8بيت MSB را در B ذخيره مي كند. دستورDIV A,B ، A را بر B تقسيم كرده خارج قسمت رادر A و باقيمانده رادر B ذخيره مي كند.چهار ثبات 8 بيتي به نامهاي TH1,TL1,TH0,TL0وظيفه نگهداري محتواي 16 بيتي هر يك از دو زمان سنج را بر عهده دارند0
    7-3-4-4) ثباتهاي زمان سنج: ثباتهاي TCON و TMOD براي تنظيم عملكرد اين دو زمان سنج استفاده مي شود. نحوه استفاده و كاربرد آن دو را در بخش (7-7) بررسي خواهيم كرد.
    7-3-4-5) اشاره گر داده (Data Pointer) : اين اشاره گر موقع استفاده از RAM يا EPROM خارجي در آدرس دهي غير مستقيم كاربرد پيدا مي كند.دو ثبات (DPL)82Hو(DPH)83H در RAMداخلي آدرس 16, بيتي را براي اين منظور در بر مي گيرند0
    . مثلاً براي ارسال محتواي A به آدرس 1F00 به حافظه خارجي از دو دستور زير استفاده مي كنيم:


    MOV DPTR,#1F0H
    MOV @DPTR ,A
    7-3-4-6) ثباتهاي انتقال سري:شامل دو ثبات SBUF (بافر انتقال سري) و SCON(ثبات كنترل انتقال سري) هستند كه به ترتيب با آدرس 98Hو99H مشخص مي شوند SBUF در واقع در بردارنده بايت ارسالي يا دريافتي در يك عمل ارسال يا دريافت است. SCON براي برنامه ريزي ارتباط سري بكار مي‌رود.
    7-3-7) ثباتهاي درگاههاي I/O: بايتهاي مربوط به P3 , P2 , P1 , P0 در مكانهاي B0H,A0H,90H,80H آدرس دهي شده اند. و تمام بيتهاي آنها قابليت آدرس دهي دارند مثلاً مي‌توانيم پايه P1.6 را به يك LED متصل كنيم و وقتي كه ميكروكنترلر در حال ارسال سري داده است بيت مربوط به اين درگاه را يك كنيم تا LED روشن شود يا مثلاً براي راه اندازي يك رله و يا بوق هشدار و غيره به كمك مدارهاي الكترنيكي مناسب از اين روش مي توان استفاده كرد.
    7-3-4-8) ثبات كنترل توان مصرفي (PCON): اين ثبات در مكان 87H آدرس دهي شده. كه در جدول (3-7) بصورت مختصر بيان گرديده است.
    جدول (3-7): خلاصه ثبات ‍PCON
    شرح عملكرد نماد بيت
    دوبرابر كننده نرخ ارسال SMOD 7
    تعريف نشده - 6
    تعريف نشده - 5
    تعريف نشده - 4
    بيت 1 پرچم همه منظوره GF1 3
    بيت 0 پرچم همه منظوره GF0 2
    دست تغذيه PD 1
    حالت معلق IDL 0

    اگر SMOD يك باشد در حالات 3 , 2 , 1 انتقال سري boud rate دو برابر مي شود با يك شدن IC , IDL وارد وضعيت معلق مي شود ومحتويات تمام ثباتها و وضعيت CPU حفظ مي گردد. پايه هاي درگاههاي I/O همگي يك مي شوندو نيز PSEN , ALE high نگه داشته مي شوند. در اين وضعيت پالس ساعتي كه براي كار وقفه زمان سنج ها و انتقال سري لازم است قطع مي شود خارج شدن از اين وضعيت تنها با دريافت وقفه يا بازنشاندن مسير مي‌شود در هر دو حالت بيت IDL صفر مي گردد. با يك شدن بيت PD، IC را در وضعيت كم‌مصرف قرار مي‌گيرد اين وضعيت به IDL شبيه است با اين تفاوت كه، پالس ساعتي كه براي كاركرد وقفه زمان سنج لازم است قطع مي شود. پايه هاي PSEN , ALE ، low نگه داشته مي‌شوند تنها راه خروج از اين وضعيت باز نشاندن IC است.
    7-3-4-9) ثبات هاي وقفه: 8051 مي تواند به 5 منبع وقفه در دو سطح اولويت پاسخ دهد. ميكروكنترلر در صورت نوشتن داده مناسب در ,IE به به وقفه هاي دريافتي پاسخ مي‌دهد. آدرس ثبات فوق A8H است. براي تعيين سطح اولويت از ثبات IPبه آدرس B8H استفاده مي شود براي آشنايي به نحوه كار اين ثباتها به فصل (9-7) مراجعه كنيد.
    7-4) دسترسي به حافظه خارجي:
    براي ذخيره كد برنامه در EPROM ، ابتدا خروجي PSEN، 8051را به ورودي EPROM,OE متصل مي‌كنيم سپس طبق زمان بندي كه در شكل (5-7 )نشان داده شده است، داده‌ها را به آدرس مورد نظر در EPROM مي فرستيم. پايه ALE، عملكرد نگهدارنده 373 را كنترل مي كند. 373 داده اول را كه 8 بيت LSB آدرس است در خود نگه مي دارد سپس داده ها از مسير بعدي به دو آدرس(A15 . . . A0) حافظه خارجي ارسال مي شود.
    در موقع نوشتن در حافظه خارجي سيگنال WR فعال است. موقع خواندن حافظه، سيگنال RD فعال مي‌گردد پايه WR حافظه خارجي بايد به پايه WR ، 8051 متصل گردد شكل (5-7) شكل موج مربوط به دستور MOVX A,@DPTR را نشان مي دهد.
    البته بعلت اينكه برنامه ريزي كردن EPROM و خط زدايي آن كار مشكلي است مي توانيم از RAM خارجي استفاده كنيم براي اين منظور كافي است سيگنالهاي RD , PSEN از نظرعملكرد OR و به تعبيرسخت افزاري AND, كرده وبه پايه OE يك RAM متصل كنيد.

    شكل (7-5): اتصال به حافظه خارجي


  8. تشکرها از این نوشته :


  9. #5
    عضو جدید
    تاریخ عضویت
    Apr 2016
    نوشته ها
    6
    تشکر
    2
    تشکر شده 4 بار در 3 پست

    نرم افزار پرتابل(بدون نیاز به نصب و کرک) آموزش Micro controller 8051 از صفر تا صد بخش چهارم

    7-5) مجموعه دستورات 8051،
    در ميكرو كنترلر انواع آدرس دهي وجود دارد كه نسبت به ميكروپرسورها متنوعتر به نظر مي‌رسد. در اين بخش به انواع مختلف آدرس دهي مي پردازيم.


    1-5-7) آدرس دهي ثبات: اين نوع آدرس دهي يك بايتي است. 5 بيت اول opcade دستور وسه بيت LSB مربوط به شماره ثبات است. بعضي از اين دستورات ويژه ثباتي خاص مانند
    DPTR و ACهستند اين گونه دستورات به بيتهاي آدرس نيازي ندارند و opcade ثبات را نيزمشخص مي كند.
    مثال: ADD A,R 7
    مثال: INC DPTR
    7-5-2) آدرس دهي مستقيم: آدرس دهي 2 بايتي است. كه بايت اول آن opcade مربوط به دستور العمل و بايت بعدي آدرس مورد نظر است.
    مثال : MOV A,01
    7-5-3) آدرس دهي غير مستقيم: براي غير مستقيم كردن آدرس دهي يك مكان در RAM داخلي از ثبات R0 يا R1 استفاده مي كنند. اين نوع دستورات يك بايتي است. بيت آخر مشخص مي كند كه آدرس دهي غير مستقيم مربوط به R0 يا R1 است.
    مثال:#FFH MOV @ R0,
    7-5-4) آدرس دهي فوري (immidiate): زماني كه عملوند يك مقدار ثابت است مثلاً قرار است يك مقدار ثابت با محتواي مكان از حافظه شود از اين نوع آدرس دهي استفاده مي كنند. مثال: MOV DPTR,#8000
    7-5-5) آدرس دهي نسبي: اين نوع آدرس دهي در دستورات پرش استفاده مي شود. و دستورات دوبايتي هستند كه بايت اول opcade دستورالعمل، بايت دوم آدرس نسبي است پس از اجراي دستور به PC دو واحد اضافه مي شود و مقدار آدرس نسبي هم به آن اضافه شده و برنامه به آدرس جديد PC جهش مي كند.
    7-5-6) آدرس دهي مطلق: اين نوع آدرس دهي فقط در دستورات AJMP , ACALL استفاده مي‌شود. كه دستور 2 بايتي است، و آدرس دهي در يك صفحه 2 به توان 10 مكان را ممكن مي سازند.



    Opcade A8 A9 A10


    A0 ... A6 A7

    شكل (6-7): آدرس دهي 2 بايتي

    زيرا در اين نوع آدرس A11 تا A15 تغيير نمي‌كند و مي توانيم دستور فوق را روي يك مكان حافظه كه در آن صفحه است انجام دهيم
    AJMP 021BH
    با انجام اين دستور بدون اينكه 5 بيت سمت چپ PC تغيير كند 11 بيت سمت راست آن مساوي عدد 021BH مي شود.
    7-5-7) آدرس دهي بلند: در اين نوع آدرس دهي كه فقط براي دستورات LJMP , LCALL است, دستور 3 بايتي است. بايت اول براي opcade است و 2 بايت ديگر آدرس، هستند.
    مثال: MOVC A,A+DPTR
    MOVC A,A+PC
    7-5-8) آدرس دهي شاخص دار: در آدرس دهي فوق، مقدار يك ثبات پايه 1 با افزوده شدن به مقدار انباره يك آدرس موثر بوجود مي آورد.

    7-6) انواع دستورالعملها:
    8051، پنج گروه دستورالعمل دارد كه در اين بخش به هر يك از آنها مي پردازيم.
    7-6-1) دستورالعملهاي حسابي:

    اين گروه دستورالعملها شامل جمع و تفريق و ضرب و تقسيم است درباره دستورات
    INC R , DIV AB , MUL AB قبلاً توضيح داديم. از دستور SUB , ADD مي توان در انواع آدرس دهي استفاده كردكه در چند مثال انواع آن نشان داده شده است.
    آدرس دهي مستقيم: ADD A,7FH
    آدرس دهي غير مستقيم: ADD A, @ RO
    آدرس دهي رجيستري : ADD A,R7
    آدرس دهي فوري : ADD A,#35H
    7-6-2) دستورالعملهاي منطقي و چرخشي:

    دستورالعملهاي منطقي شامل NOT , XOR , OR , AND است كه بيت به بيت روي بايتهاي داده انجام مي شود و حاصل در انباره ذخيره مي شود.
    در اين دستورالعملها هم انواع آدرس دهي وجود دارد كه همانند قسمت قبلي است.
    دستورالعمل چرخشي شامل RLC A , RRC A , RLA , RRA است كه مانند پروسسورها براي چرخش به راست و چپ بدون رقم نقلي يا همراه رقم نقلي بكار مي روند.
    دستور SWAP A چهار بيت بالا و پايين انباره را جابجا مي كند
    7-6-3) دستورالعملهاي انتقال داده:

    اين دستور العملها براي جابجا كردن داده ها در حافظه بكار مي روند انواع اين دستورات را همراه مثال در بخش (5-7) توضيح داديم. اين گروه دستورالعملها را به ديدگاه ديگر سه گروه تقسيم بندي مي‌كنند. كه بطور مختصر در ذيل آمده است.
    7-6-3-1) RAM داخلي:

    دستورالعملهاي اين گروه در يك يا دو سيكل ماشين اجرا مي شوند. و شامل انواع آدرس دهيها است.
    7-6-3-2) RAM خارجي:

    همانطور كه قبلاً بيان شد براي دستيابي به حافظه خارجي از آدرس دهي غير مستقيم يك بايتي (@Ri) يا دو بايتي (@DPTR) ازدستور MOVX استفاده مي كنيم البته موقع استفاده از RAM خارجي و آدرس دهي 16 بيتي درگاه 2 براي آدرس دهي استفاده مي كنيم در صورتي كه هر پايه اين درگاه براي كنترل يك وسيله خارجي استفاده شود اين كار در يك سيستم كه با 8051 طراحي شده كار مناسبي نيست.خروجيها به RAM خارجي متصل مي شوند تنها موقع استفاده از دستور MOVX فعال مي شوند. وعمدتاً غير فعال (وضعيت بالا) هستند.
    7-6-3-3) جدولهاي جستجو:

    دو دستورالعمل انتقال داده MOVC A,A+PCو MOVC A,A+DPTRبراي خواندن جداول جستجو واقع در حافظه ROM وجود دارد .
    مثال: LOOK – UP : INC A
    MOVE A , @ A+PC
    RET
    23H DB
    B2H DB
    با قرار دادن مقدار 0 در A فراخواني اين زير برنامه عدد23H درAقرار گيرد.همچنين بازاي عدد مقدارB2H باز مي گرددو ..INC A.. در ابتدا براي رد كردن محل دستور RET در حافظه نوشته شده است.

    7-6-4) دستورالعملهاي بولي:

    8051 يك پردازنده بولي كامل براي عمليات تك بيتي 210 مكان بيت آدرس پذير دارد اين دستورالعملها شامل جابجايي، 1 كردن، 0 كردن، متمم كردن، AND , OR و دستورالعملهاي انشعاب است. براي مثال به دستور العملهاي زير نگاه كنيد.
    FLAG1 BIT 05
    FLAG1 BIT 05
    MOV C,FLAG1
    JNB FLAG2,SKIP
    CPL C
    SKIP: MOV A,#2BH
    فرمانهاي اسمبلر هستند و دو دستور اول FLAG1وFLAG2را به عنوان بيتهاي موجود در محلهاي 05و 06معرفي ميكند.
    دستورالعمل خط 3 FLAG1 را به رقم نقلي منتقل مي كند. دستورالعمل خط 4 در صورت 1 نبودن FLAG2 به SKIP پرش مي كند. دستورالعمل خط 5پر نقلي را NOT مي كند.
    7-6-5) دستورالعمل انشعاب:

    سه نوع دستورالعمل پرش (نسبي، طولاني، مطلق) وجود دارد.
    كه با نماد AJMP , LJMP , SJMP نشان داده مي شود. انواع مختلفي از پرش در 8051 وجود دارد كه در ذيل به آن مي پردازيم.
    7-6-5-1) جدول هاي پرش:

    دستورالعمل JMP @ A+DPTR امكان پرش موردي را براي جدولهاي پرش فراهم مي كند آدرس مقصد اين نوع پرش بصورت جمع A و DPTR محاسبه مي شود.
    مثال:
    MOVE DPTR , # JUMP-TABLE
    RL A
    JMP @ A+DPTR
    JUMP-TABLE: AJMP CASE0
    AJMP CASE1
    AJMP CASE2
    AJMP CASE3
    از آنجا كه هر دستور AJMP CASE دو بايت است لازم است. براي دستيابي به مكانهاي فوق از حافظه DPTR بايد با اعداد زوج 6 , 4 , 2 , 0 جمع شود. براي اين منظور از دستور RL A استفاده كرده ايم تا با دادن مقدار مناسب به A پرش انجام شود.
    7-6-5-2) زير روالها و وقفه ها و پرشهاي شرطي دستورات مشابه ميكروپرسسورها دارند:

    در ضميمه تمام دستورات 8051 همراه با opcode و زمان اجراء آمده است.
    7-7) تايمرها:

    تايمرهاي روي تراشهمیکروکنترلر8051 تايمر 16 بيتي هستند. تايمرها با يك سري فيليپ فلاپ تقسيم كننده بر دو ساخته مي شوند. شكل (5-7) مدار ساخته شده با سه فيليپ فلاپ را نشان مي دهد در تايمرها هر بيت خروجي يكي از فيليپ فلاپهاست. در 8051، تايمر از عدد 0000H تا FFFFH را مي شمارد بعد دوباره از 0000 شروع به شمارش مي كند و پرچم سرريز 1 مي شود. كه مجموعاً اعداد 0 تا 65536 را شامل مي شود.

    شكل (6-7):شكل موجهاي تايمر
    يك تايمر16 بيتي سه نوع عملكرد در 8051 دارد:
    الف) زمان بندي فاصله هاي زماني. ب) شمارش اتفاقات. ج) توليد نرخ ارسال بيت براي درگاه سريال داخلي در جدول (4-7) ثباتهاي مربوط به تايمرهاي نشان داده شده است.
    جدول (7-4): ثبات هاي خاص تايمر
    كاربرد آدرس SFR تايمر
    كنترل 88 H T C0N
    حالت 89 H TMOD
    LSB تايمر 0 8 AH TL0
    LSB تايمر 1 8 BH TL1
    HSB تايمر 0 8 CH TH0
    HSB تايمر 1 8 DH TH1

    -7-7) ثبات TCON:

    اين ثبات شامل بيتهاي كنترل ومعمولا وضعيت تايمر 1 , 0 مي باشد 4 بيت بالاي TCON براي روشن و خاموش كردن تايمرها وبراي پيام سرريز كردن تايمر به كار مي رود. نحوه كنترل TCON در جدول (7-5) بصورت خلاصه بيان شده است.
    جدول (7-5): ثبات كنترل تايمر TCON
    عملكرد آدرس بيت نهاد بيت
    پرچم سريز تايمر 1، بصورت نرم افزاي مي‌تواند پاك شود 8FH TF1 TCON.7
    بيت كنترل روند شمارش تايمر 1 بصورت نرم افزاري روشن و خاموش كردن تايمر است BEH TR1 TCON.6
    پرچم سريز تايمر 0 8DH TF0 TCON.5
    بيت كنترل روند تايمر 0 8CH TR0 TCON.4
    پرچم لبه وقفه خارجي 1: با لبه پايين رونده INT1، 1 مي گردد 8BH IE1 TCON.3
    پرچم نوع وقفه خارجي 1: بصورت نرم افزاري 1 مي گردد 8AH IT1 TCON.2
    پرچم لبه وقفه خارجي 0 89H IE0 TCON.1
    پرچم نوع وقفه خارجي 0 88H IE0 TCON.0

    7-7-2) ثبات TMOD:اين ثبات آدرس پذير نيست و يك بار در اول برنامه با مقداردهي، حالت كار تايمر را مشخص مي‌كند خلاصه نحوه عملكرد اين ثبات در جداول (7-6) و (7-7) بيان شده است

    . جدول (7-6): ثبات حالت تايمر TMOD

    عملكرد تايمر نام بيت
    وقتي 1 باشد تايمر فقط وقتي به راه مي‌افتد كه INT1 باشد 1 GATE 7
    وقتي 1 باشد بصورت شمارنده عمل مي كند و اگر 0 باشد بصورت تايمر عمل مي كند 1 [IMG]file:///C:/Users/jigar1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.gif[/IMG] 6
    بيت حالت تايمر 1 1 M1 5
    بيت حالت تايمر 1 1 M0 4
    بيت گيت تايمر 0 0 GATE 3
    بيت انتخاب تايمر/ شمارنده0 0 [IMG]file:///C:/Users/jigar1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.gif[/IMG] 2
    بيت حالت تايمر 0 0 M1 1
    بيت حالت تايمر 0 0 M0 0

    جدول (7-7): حالتهاي تايمر

    عملكرد حالت M0 M1
    حالت تايمر 13 بيتي 0 0 0
    حالت تايمر 16 بيتي 1 1 0
    حالت باز شدن خودكار 8 بيتي 2 0 1
    حالت تايمر دو قسمتي: TL0 يك تايمر 8 بيتي است كه با بيتهاي حالت تايمر 0 كنترل مي شود. THO با بيتهاي حالت تايمر 1 كنترل مي شود. و تايمر 1 متوقف است 3 1 1

    7-7-2-1) حالت تايمر 13 بيتي (حالت 0):

    اين تايمر از پيوستن 8 بيت THX و پنج بيت TLX ايجاد مي شود (X علامت تايمر 0 يا 1 است) و پس از سريز ؛ پرچم سريز TFX 1 مي شود.
    7-7-2-2) حالت 16 بيتي(حالت 1):

    با هرپالس ساعت كه تايمر دريافت مي كند بيت LSB با فركانس ½ فركانس ساعت ورودي معكوس مي شود. به همين ترتيب بيت MSB با فركانس معكوس مي شود و پس از سريز پرچم سريز TFX تغيير مي كند.
    7-7-2-3) حالت بار شدن خودكار 8 بيتي (حالت 2):

    اين حالت TLX يك تايمر 8 بيتي است. بعد از اينكه تايمر از FF به 00 سرريز مي كند. پرچم تايمر 1 شده و THX كه قبلا در برنامه مقدار دهي شده به طور خودكار به TLX بار مي شود با اين روش تايمر در فاصله زماني مشخص سريز مي كند.
    7-7-2-4) حالت تايمر تفكيك شده (حالت 3):

    در اين حالت TH0 , TL0 بصورت دو تايمر 8 بيتي مجزا عمل مي كنند كه TF1 , TF0 پرچمهاي سريز مربوط به اين دو تايمر است در حالت 3، تايمر 1 متوقف است و اگر اين تايمر 1 را در حالت ديگري قرار دهيد شروع به كار مي كند با اين تفاوت كه اگر T0 در حالت 1 باشد T1 نمي تواندپرچم سريز TF1 را تغيير دهد در مواردي كه عملكرد T1در 8051 بدون نياز به وقفه است از اين حالت تايمر،مي توان استفاده كرد.
    ویرایش توسط amirgali : 09-04-2016 در ساعت 15:25

موضوعات مشابه

  1. آموزش ميكروكنترلرAVR.PIC.8051
    توسط kavir در انجمن مقالات،آموزش هاوپایان نامه ها
    پاسخ: 6
    آخرين نوشته: 06-02-2012, 19:09
  2. پاسخ: 2
    آخرين نوشته: 08-02-2010, 21:12
  3. آموزش تخصصي AVRو 8051
    توسط ali4592 در انجمن پست های قدیمی و بی محتوا
    پاسخ: 1
    آخرين نوشته: 09-03-2009, 22:20
  4. كتاب آموزش 8051 به زبان بيسيك
    توسط mmehdi در انجمن 8051
    پاسخ: 0
    آخرين نوشته: 18-10-2008, 10:39

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •