• بازدید : 61 views
  • بدون نظر

خرید و دانلود
با قیمت 6,000 تومان
این فایل در ۵۸صفحه قابل ویرایش تهیه شده وشامل موارد زیر است:

ميكرولنترلر ۸۰۵۱ پايه و اساسي است براي يادگيري ديگر ميكروكنترلر ها دستورات اسمبلي اين ميكرو نسبت به AVR خيلي كمتر هست و داراي امكانات كمتري نسبت به ديگر ميكرو ها است به همين دليل يادگيري و فهم آن خيلي راحت و آسان مي باشد كه براي شروع ابتدا بايد مفاهيم منطق و ديجيتال را خوب فهميده باشيد و بعد از آن بايد سخت افرار ۸۰۵۱ و RAM و ROM داخلي آن را درك كرده باشيد تا بتوانيد يك برنامه كاربردي بنويسيد تا يك پروسه را كنترل كند. خيلي ها براي يادگيري ميگن كه ما كه مي خواهيم برنامه نويسي ميكرو را ياد بگيرم پس بهتر بالاترين ميكرو يعني AVR يا PIC ياد بگيريم در صورتي كه به نظر من كاملا اشتاه بوده و كار غلطي است كه اگه بخواهيد تا آخر ادامه دهيد كاري طاقت فرسا خواهد بود. مثل اين خواهد بود كه سقف طبقه اول يك ساختمان را درست نكرده باشيم و بخواهيم طبقه دوم را درست كنيم
تشريح پايه هاي ۸۰۵۱ و RAM و ROM داخلي آن
۸۰۵۱ داراي ۴ پورت ورودي يا خروجي مي باشد يعني اينكه هر كدام از اين پورت ها را مي توان در يك لحظه به عنوان ورودي استفاده كرد و همان پورت را دوباره در يك لحظه ديگر به عنوان خروجي از آن استفاده كرد. منظور از پورت چيست؟ پورت در ميكرو يعني ۸ عدد پين يا ۸ خط ديتا يا ذر اصطلاح ۸بيتي، كه ۸۰۵۱ داراي ۴ پورت ۸ بتي يعني ۳۲ پايه مي باشد.
ميكرو كنترلر AT89C51 داراي ۱۲۸ بايت RAM و ۴KB حافظه برنامه ROM مي باشد. و AT89C52 داراي ۲۵۶ بايت RAM و ۸KB حافظه برنامه ROM مي باشد. و AT89C55 داراي ۲۵۶ بايت RAM و ۲۰KB حافظه برنامه ROM مي باشد. كه بستگي به حجم برنامه ما دارد كه از كدام ميكرو استفاده كنيم.
كاربرد RAM چست؟ اصلا به چه دردي مي خوره؟
RAM يعني random access memory حافظه با دستيابي تصادفي. از اين حافظه براي ذخيره اطلاعات موقت استفاده مي شود يعني اينكه تا زماني كه تغذيه ميكرو وصل باشد اين اطلاعات از بين نمي روند و با قطع كردن تغذيه اين اطلاعات از بين مي روند. ما در ميكرو ۸ ثبات ۸ بتي براي ذخيره كردن داده  ها داريم در بعضي از مواقع پيش مي آيد كه اين ۸ ثبات در كل برنامه استفاده شوند و ما به يك ثبات ۸ بيتي براي ذخيره سازي داده ها داريم مثلا يك شمارنده طراحي كرديم و همه ثبات ها هم استفاده شده و ما مثلا به دو ثبات احتياج داريم كه مي توانيم از هر كدام از خانه هاي RAM استفاده كنيم. منظور از اطلاعات همان داده هاي ۸ بيتي مي باشند يعني همون ۰ يا ۱ ها كه به ۸ تا از آنها يك بايت يا يك داده ۸ بيتي مي گويند.
حال به تقسيم بندي RAM توجه كنيد. براي برنامه نويسي خيلي مهم است كه ما از چه خانه هاي RAM مجاز هستيم استفاده كنيم آيا مي توانيم در فلان خانه RAM داده را به صورت بيتي دستكاري كنيم  يا داده را ۸ بيتي دستكاري كنيم. اصلا در چه محدوده اي از RAM قادر هستيم داده ذخيره كنيم  يا بانك هاي ثباتي در كجاي RAM واقع شده اند و ديگر ثبات ها… به جدول زير كه مربوط به RAM خوب توجه كنيد:
در كل ۱۲۸ بايت RAM دارد كه به صورت جدول بالا تقسيم بندي مي شود:
۱)     32 بايت از مكان هاي ۰۰ تا ۱F براي بانك هاي ثباتي و پشته كنار گذاشته شده.
۲)     16 بايت از ۲۰ تا۲F براي خواندن و نوشتن آدرس پذير بيتي كنار گذاشته شده.
۳)     80 بايت از مكان هاي ۳۰ تا۷F براي خواندن و نوشتن بايتي  و يا آنچه كه عموما داده موقت گفته مي شو به كار مي رود.
نكته: جلوي خانه هايي كه نوشته شده قابل آدرس دهي نيست يعني اينكه نمي توان با آدرس هگز آن از اين ثبات استفاده كرده به عنوان مثال براي SBUF در برنامه نويسي حتما بايد خود SBUF را نوشت يعني از آدرس هگز آن نمي توان استفاده كرد. ولي در بقه موارد مجاز هستيم. با يك مثال اين قضيه را روشن مي كنيم:
MOV  A,#60H يعني عدد ۶۰ در مبناي هگز را در انباره كپي كن. حال اين دستور را اين طوري هم مي توان نوشت يعني از آدرس A استفاده كرد.   MOV  E0,#60H 
در RAM /8051 ما چهار بانك ثباتي داريم كه هر بانك داري ۸ بايت(R0تاR7) 8بيتي مي باشد  يعني:
هنگامي كه ۸۰۵۱ روشن مي شود اشارگر پشته به صورت پيش فرض عدد ۰۷ را در خود دارد كه نهايت با عث انتخاب بانك ۱ براي پشته خود مي شود. SP=07H 
براي تغيير پشته به مكان ديگري ازRAM يا بانك ديگري مي توان به كمك دستور زير پشته را تغيير داد:   MOV  SP,#XX كه XX آدرس آن مكان از RAM مي باشد.
حال كاربرد پشته چيست؟ پشته كاربرد زيادي دارد شايد ما زياد با آن سرو كار نداشته باشيم ولي CPU با آن خيلي كار دارد به عنوان مثال براي اجراي يك زير برنامه(برنامه فرعي) مثلا CALL  LABEL پردازنده آدرس اين مكاني را كه در آن به اين دستور برخورد كرده، را در پشته خود ذخيره مي كند و بعد از اجراي پشته به كمك اين آدرس بر مي گردد تا ادامه برنامه اصلي را انجام دهد.
براي درج داده رد پشته از دستور PUSH استفاده مي كنيم و براي بازيافت داده از پشته از دستور POP استفاده مي كنيم. با هر بار درج در پشته اشارگز پشته يك واحد به آن اضافه مي شود. و با هر بار بازيافت از پشته اشارگر پشته يك واحد از آن كم مي شود.

خرید و دانلود

با قیمت 6,000 تومان

عتیقه زیرخاکی گنج