دانلود مقاله وقفه ها و سازمان وقفه در 8051

Word 220 KB 17915 36
مشخص نشده مشخص نشده کامپیوتر - IT
قیمت قدیم:۱۲,۰۰۰ تومان
قیمت: ۷,۶۰۰ تومان
دانلود فایل
  • بخشی از محتوا
  • وضعیت فهرست و منابع
  • وقفه ، حالتی است که باعث متوقف شدن یک برنامه به صورت موقت می شود ، که خود توسط یک برنامه دیگر فعال می گردد .

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

    نباید تصور کنیم که سیستم دارای وقفه ، می تواند بسیاری از کارها را همزمان انجام دهد .

    البته ، CPU نمی تواند در هر لحظه بیش از یک دستور العمل را اجرا کند ; دستور العمل دیگر را اجرا کند و مجدداٌ به دستور اول باز گردد .در هر صورت ، این عمل شبیه یک زیروال است .

    CPU برنامه دیگر – زیروال – را اجرا کند و مجدداٌ به دستور اول باز گردد .

    در هر صورت ،‌این عمل شبیه یک زیروال است .

    CPU برنامه دیگر – زیروال – را اجرا کرده و سپس به برنامه اصلی بر می گردد .

    شبیه یک زیروال است .تفاوتی که در یک سیستم راه اندازی شده با وقفه وجود دارد ، این است که وقفه پاسخی به یک [اتفاق] است که به طور غیر همزمان با برنامه اصلی به وقوع می پیوندد و حالتی نیست ه برنامه اصلی مورد وقفه قرار میگیرد .


    برنامه ای که مربوط به وقفه می شود یک روال سرویس وقفه (ISR) یا گرداننده وقفه نامیده می شود ISR در پاسخ به یکوقفه عمل کرده و معمولاٌ عملیات ورودی یا خروجی را برای یک دستگاه انجام می دهد .

    هنگام وقوع وقفه، اجرای برنامه اصلی متوقف شده و به ISR انشعاب صورت می گیرد ; ISR اجرامی شود و با دستورالعمل [برگشت از وقفه] پایان می پذیرد و برنامه اصلی ادامه می یابد .

    معمولاٌ برنامه اصلی سطح پایه و ISR سطح وقفه نامیده می شود .

    اصطلاحات اصلی (سطح پایه ) و فرعی (سطح وقفه) نیزمورد استفاده قرار می گیند .

    در شکل 1-6 قسمت (الف) ، اجرای برنامه بدون وقفه ، و در قسمت (ب) اجرای سطح پای ، در صورت وقوع وقفه اجرای ISR ها در سطح وقفه ، به نمایش در آمده است .


    ورود اطلاعات توسط صفحه کلید ، نمونه ای از یک اجاق مایکروویو را در نظر بگیرید .

    برنامه اولیه(اصلی) ممکن است عنصر تغذیه مایکروویو را برای پخت ، و کاهش یا افزایش زمان پخت راکنترل کند .

    هنگامی که کاربر کلیدی فشار دهد یک وقفه تولید می شود ، (سیگنالی که می تواند از سطح پائین به بالا رود ) و برنامه اصلی مورد وقفه قرار می گیرد ، ISR کدهای صفحه کلید را می خواند و شرایط پخت را مطابق با آن تغییر می دهد و با برگشت به برنامه اصلی خاتمه می یابد و اجرای برنامه اصلی ادامه پیدا می کند .

    نکته مهم در این مثال این است که ورودی توسط شخص بطور [ غیر همزمان ] صورت می گیرد ، یعنی زمان وقوع آنتوسط نرم افزار راه انداز سیستم قابل کنترل و پیش بینی نیست .

    این یک وقفه است .


    2- سازمان وقفه 8051
    در 8051 ، پنج منبع وقفه وجود دارد : دو وقفه خارجی ، دو وقفه تابمر و یک وقفه درگاه سریال .

    در 8052 ، وقفه دیگیر نیز برای تایمری دیگر ، پیش بینی شده است .

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


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

    توالی اجرا ثابت ، اما تقدم وقفه ها قابل برنامه ریزی ی باشد.

    اکنون چگونگی فعال و غیر فعال کردن وقفه ها را بررسی می کنیم .




    1-2- فعال و غیر فعال کردن وقفه
    هر یک از منابع مقفه به طور مجزا ، از طریق بیت آدرس پذیر مخصوص ، توسط ثبات IE (فعال کننده وقفه ) و آدرس 0A8H فعال یا غیر فعال می شوند .

    علاوه بر بیتهای فعال کننده خاص برای هر منبع وقفه ، یک بیت فعال کننده / غیر فعال کننده کلی نیز وجود دارد که پاک شدن آن کلیه وقفه ها غیر فعال شده و می توانند با 1 شدن آن ، مجدداٌ فعال شوند .

    (جدول 1) را ببینید )
    برای فعال کردن هر وقفه ، دو بیت باید 1 شوند : بیت فعال کنندهخاص و بیت کلی .

    بطور مثال تایمر 1 وقفه ها ، به صورت زیر فعال می شود :
    SETB ET 1 ;ENABLE Timer 1 INTERRUPT
    SETB EA ; SET GLOBAL ENABLE BIT
    این عمل را می توان با دستور زیر نیز انجام داد :
    MOV IE,#10001000B
    MOV IE,#10001000B جدول 1 خلاص ثبات IE (فعال کننده وقفه) اگر چه این دو روش ، دقیقاٌ همان اثر راه اندازی مجدد سیستم را دارند ، اگر IE را در وسط برنامه ، به صورت متعلق [معلق] برنامه ریزی کنیم ، اثر متفاوتی در برخواهد داشت .

    روش اول تأثیری بر پنج بیت دیگر ثبات IE ندارد ، در حالی که روش دوم بوضوح بیتهای دیگر را پاک می کند .

    بهتر است که در شروع برنامه IE را با دستور "MOVE BYTE" مقدار دهی کنیم ، ( یعنی به دنیال تغذیه یا reset( کردن سیستم ) اما برای فعال و غیر فعال کردن وقفه های به ثورت معلق داخل برنامه ، باید از دستورهای Set bit و Clear bit استفاده کرد تا روی بیتهای دیگر ثبات IE تأثیری نداشته باشد .

    2-2- تقدیم وقفه هر منبع وقفه در یکی از دو طریق بیت آدرس پذیر مخصوصی در ثبات IP (تقدیم وقفه) در آدرس 0b8h برنامه ریزی می شود ( جدول 2 را ببینید ) پس از راه اندازی مجدد سیستم IP پاک شده و همه وقفه ها در سطح تقدم پایین به صورت پیش فرض قرار می یگرند .

    نظریه تقدیم این امکان را می دهد که وقفه ها بر اساس تقدم بالاتر ، توسط ISR سرویس شوند .

    در 8051 این امر به آسانی انجام می شود ، چون تنها دو سطح تقدیم وجود دارد .

    چنانچه هنگام سرویس دهی به یک وقفه یا تقدم پائین ، وقفه ای با تقدم بالاترروی دهد ، توسط ISR مورد پذیرش قرار می یگرد ، ولی یک وقفه با تقدم بالاتر مورد وقفه قرار نمی گیرد .

    برنامه اصلی ، در سطح پایه اجرا شده و با هیچ وقفه ای همراه نیست ، و همواره می تواند بدون توجه به تقدم وقفه ها مرد وقفه واقه شود .

    در صورت روی دادن همزمان دووقفه با تقدمهای متفاوت ، ابتدا وقفه با تقدم بالاتر سرویس دهی می شود .

    جدول 2 خلاصه ثبات IP (تقدم وقفه ) 3-2 ترتیب اجرا اگر دو وقفه با یک تقدم ، هممان اتفاق بیفتند ، یک ترتیب اجرای ثابت نوبت سرویس دهی هرکدام از آنها تعیین می کد .

    ترتیب اجرا : 0 خارجی ، تایمر 0;1 خارجی ، تایمر1; درگاه سریال ، و تایمر 2 می باشد .

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

    حالت همه منابعوقفه از طریق بیتهای پرچم در SFR ها قابل دستیابی است .

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

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

    یک وقفه درگا سریال ناشی از OR منطقی دریافت وقفه (RI) یا ارسل وقفه (TI) می باشد همچنین وقفه های تایمر2 با سرریز تایمر (TF2) یا پرچم ورودی خارجی (EXF2) توید می شوند .

    بیتهای پرچم که مقفه ها را تولید می کنند ، در جدول 3-6 خلاصه شده اند .

    3-6 وقفه های پردازنده هنگام وقوع یک وقفه و پذیرش آن توسط CPU ، برنامه اصلی مورد وقفه قرار می یگرد واعمال زیر انجام می شوند : اجرای دستورالعمل فعالی کامل می شود .

    PC در پشته ذخیره می شود .

    وضعیت وقفه جاری بطور داخلی ذخیره می شود .

    وقفه های.

    مسطح با این وقفه متوقف میشوند .

    PCبا آدرس برداری ISR بار می شود .

    ISR اجرا می شود .

    جدول 3 بیتهای پرچم وقفه اجرای ISR ، پاسخگویی به وقفه است ، و با دستورالعمل RETI (برگشت از وقفه) خاتمه می یابد.

    با انجام این عمل مقدار قبلی PC از پشته بازیابی شده و وضعیت قبلی نیز ذخیره می گردد .

    اجرای برنامه اصلی پس از وقفه ادامه می‌یابد .

    بردارهای وقفه هنگامی که یک وقفه مورد پذیرش قرار می گیرد ، عدد بار شده در PC بردار وقفه نامیده می شود ; که در واقع آدرس شروع ISR برای منبع وقفه است .

    بردارهای وقفه در جدول 4-6 ارائه شده اند .

    بردار reset سیستم (RST در آدرس 0000H ) نیر در جدول آمده است .

    از آن جا که این حالت مانند یک وقفه است ، برنامه اصلی رامورد وقفه قرار داده و PC را با مقدار بار می کند .

    هنگام " بردار کردن یک وقفه " پرچمیکه باعث وقه می شود ، بطور خودکار توسط سخت افزار پرک می گردد .

    RI و TI برای وقفه های درگاه سریال و TF2 و EXF2 برای وقفه های تایمر2 ، از این امر مستثنا هستند .

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

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

    معمولاٌ با توجه به مبنع وقفه انشعابی به عملیاتی مناسب صورت می گیرد .

    چون بردارهای وقفه در انتهای حافظه کد هستند ، اولین دستورالعمل بر نامه اصلی غالباٌ یک پرش از رویناحیه حافظه ، مانند LJMP 0030H می باشد .

    جدول 4 بردارهای وقفه 4- طراحی برنامه با استفاده از وقفه ها در مثالهای فصل 3و 4 از وقفه ها استفاده نشد ، حلقه های انتظاربرای تست پرچمهای سرریژ تایمر (TF0 ، TF1 یا TF2 ) یا پرچمهای دریافت و ارسال درگاه سریال (T1 یا RI ) ، به طور گسترده ای بکار رفتند .

    مشکل این روش اسن است که تمامی وقت CPU صرف تست پرچمهایی که باید 1 شوند ، می گردد .

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

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

    نکته اصلی ، وقفه است .

    اگرچه مثالها لزوماٌ بزرگ نیستند ، اما پیچیده می باشند و برای شرح انها قدم به قدم حرکت خواهیم کرد .

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

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

    چون ما از وقفه ها استفاده می کنیم ، مثالها کامل و خود کفا خواهند بود .

    هر برنامه ، با این فرض که پس از reset شدن سیستم اجرای آن شروع می شود ، از آدرس 0000H آغاز می شود .

    این برنامه ها برای مقاصد کاملاٌ جدید و تاز در ROM یا EPROM ذخیره می شوند .

    قالب پیشنهادی برای یک برنامه خد کفا با استفاده از وقفه ها ، در زیر نشان داده شده است : ORG 0000ا ;RESET ENTRY POINT LJMP .

    ;ISR ENTRY POINTS .

    ORG 0030H ; PROGRAM ENTY POINT : .

    ; MAIN PROGRAM BEGINS .

    .

    اولیت دستور ، مطابق جدول 4-6 به آدرس 0030H ، درست بالای محل برداری که ISR ها می شوند ، پرش می کند .

    چنانچه در شکل 3-6 نشان داده شده است ، برنامه اصلی از آدرس 0030H شروع می شود .

    1-4- رولهای سرویس وقفه کوچک روالهای سرویس وقفه باید از انتهای حافظه در آدرسهای نشان داده شده در جدول 4-6 شروع شوند اگرچه بین نقطه ورود هر یک از وقفه ها ، فقط هشت یاب وجوددارد ، این مقدار حافظه غالباٌ برای انجام عملیات مناسب و بازگشت از از ISR به برنامه اصلی ، کافی است .

    اگر تنهااز یک منبع وقفه استفاده شود ، مثلاٌ تایمر 0 ، بایدقالب زیر را به کار برد : ORG 0000H ;RESET LJMP ORG 000BH ;Timer 0 ENTRY POINT TOTSR .

    ;Timer 0 ISR BEGINS .

    RETI ;RETURN TO MAIN PROGRAM .

    اگر وقفه ها بیشتر باشند ، باید از شروع شدن آنها از محل صحیح ( جدول 4-6را ملاحظه کنید ) که باعث راه اندازی مجدد ISR بعدی نشود ، اطمینان حصل کرد، چون در مثال بالا از یک وقفه استفاده شد است ، پس از دستورالعمل RETI برنامه اصلی فوراٌ شروع می


تحقیق دانش آموزی در مورد دانلود مقاله وقفه ها و سازمان وقفه در 8051, مقاله دانشجویی با موضوع دانلود مقاله وقفه ها و سازمان وقفه در 8051, پروژه دانشجویی درباره دانلود مقاله وقفه ها و سازمان وقفه در 8051

در این پروژه سعی بر این است که علاوه بر آشنایی با میکروکنترلر AVRو محیط نرم افزاری (labview) سخت افزار،به گونه ای طراحی شود که با دریافت سیگنال آنالوگ ورودی (صوت) از میکروفن ، از طریق واحدADC میکرو این سیگنال به دیجیتال تبدیل شود و با توجه به برنامه‎ای که در داخل میکرو تعبیه شده است،این اطلاعات به داخل MMC ریخته شده ومیکرو با دریافت فرمان از کامپیوتر به صورت ارتباط سریال دستور ...

مقدمه‌ای بر میکروکنترلر 8051  باوجود اینکه بیش از بیست سال از تولد ریز پردازنده نمی‌گذرد، تصور وسیال الکترونیکی و ... بدون آنکه کار مشکی است در سال 1971 شرکت اینتل: 8080 را به عنوان اولین ریز پردازنده موفق عرضه کرد مدت کوتاهی پس از آن، موتورولا، RCA و سپس Mostechnoloy و zilog انواع مشابهی را به ترتیب به نامهای Z80 , 6502 , 6800 عرضه کردند. گرچه این مدارهای مجتمع به خودی خود ...

مقدمه» با وجود اینکه بیش از بست سال از تولد ریز پردازنده نمی گذرد،تصور وسایل الکترونیکی و اسباب بازیهای امروزی بدون آن کار مشکلی است.در 1971 شریک انیتل،8080 را به عنوان اولین ریز پردازنده موفق عرضه کرد.مدت کوتاهی پس از آن،موتور ولا،RCA و سپس Mostechnology‌و Zilog انواع مشابهی را به ترتیب به نامهای 6800،1801،6502،Z80 عرضه کردند.گرچه این مدارهای مجتمع (IC) به خودی خود فایده ...

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

از نظر مجازی . تمام کامپیوتر ها راهکاری را فراهم می کنند تا قطعات دیگر (‌مثل I/O و حافظه ) ،‌در کار عادی پردازنده وقفه ایجاد کنند .جدول زیر متداول ترین وقفه ها را نشان می دهد . جدول : دسته بندی وقفه ها برنامه وقفه هایی که در اثر بعضی از شرایط حاصل از اجرایی یک دستور العمل ،‌مثل سرریز ، تقسیم بر صفر ، سعی در اجرای دستور العمل نامعتبر ماشین ، و خروج از فضای حافظه مجازی رخ می دهند ...

مقدمه: گرچه کامپیوترهای تنها چند دهه‎ای است که با ما همراهند با این حال تأثیر عمیق آنها بر زندگی ما به تأثیر تلفن، اتومبیل و تلویزیون رقابت می‎کند. همگی ما حضور آنها را احساس می‎‏کنیم چه برنامه‎نویسان کامپیوتر و چه دریافت کنندگان صورت حسابهای ماهیانه که توسط سیستمهای کامپیوتری بزرگ چاپ شده و توسط پست تحویل داده می‎شود. تصور ما از کامپیوتر معمولاً «داده‎پردازی» است که محاسبات ...

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

مشخصات مدار مشخصات این دماسنج کنترلی بصورت زیر است 1- قابلیت اندازه گیری دما تا 100 درجه سانتی گراد 2- قابلیت تنظیم هشدار دهنده ، دمای بیش از حد 3- قابل استفاده در دو حالت winner , summer 4-دارای نمایشگر LCD این مدار شامل یک آی سی از خانواده میکروکنترلر (8051 ) که این آی سی AT89C51 می باشد و با برنامه میکروکنترلر 8051 پروگرم می شود و داری یک مبدل آنالوگ به دیجتال (ADC0804) که ...

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

پنبه, گیاهی که از غوزه آن در ریسندگی و بافندگی استفاده می شود بویژه انواع رشته کوتاه آن موسوم به گوسوپیوم هرباکیوم . این مقاله شامل این بخشهاست : 1) ایران 2) افغانستان 3) سرزمینهای عرب زبان 4) قلمرو عثمانی 5) آسیای مرکزی 6) پاکستان 1) ایران . الف ) تاریخچه پنبه در ایران احتمالا به دوران هخامنشیان بازمی گردد اما درباره کاشت پنبه پیش از دوره اسلامی ایران اطلاعات معتبر اندکی در دست ...

ثبت سفارش