8051 মাইক্রোকন্ট্রোলারে ইন্টারাপ্ট 

ইন্টারাপ্ট হলো মাইক্রোপ্রসেসরের প্রতি অনুরোধ। কোন নির্দিষ্ট সার্ভিস রূটিন সম্পন্ন করার জন্য ইন্টারান্টের মাধ্যমে মাইক্রোপ্রসেসরকে অনুরোধ করা হয়। এই ধরনের সার্ভিস রূটিনকে ইন্টারান্ট সার্ভিস রূটিন বলা হয়। ইন্টারান্ট কার্যকরী হলে মাইক্রোপ্রসেসর চলমান কাজকে সাময়িকভাবে বন্ধ রেখে ইন্টারান্টের জন্য সার্ভিস রূটিন সম্পন্ন করে। বিভিন্ন মাইক্রোপ্রসেসরে বিভিন্নভাবে বিভিন্ন ধরনের ইন্টারান্টের সুযোগ থাকে। সাধারণত মাইক্রোপ্রসেসরে ৩ ধরনের ইন্টারান্ট থাকে। যথা-

(ক) হার্ডওয়‍্যার ইন্টারাপ্ট (Hardware Interrupt) 

(খ) সফটওয়‍্যার ইন্টারাপ্ট (Software Interrupt) এবং

(গ) ইন্টার্নাল ইন্টারাপ্ট (Internal Interrupt)



(ক) হার্ডওয়্যার ইন্টারাপ্ট (Hardware Interrupt): মাইক্রোপ্রসেসরের পিনের মাধ্যমে বা সিগন্যালের মাধ্যমে যেসকল ইন্টারান্ট সংঘটিত হয়, তাদেরকে হার্ডওয়্যার ইন্টারাপ্ট বলা হয়। যেমন- NMI এবং INTR পিনের মাধ্যমে হার্ডওয়্যার ইন্টারান্ট সম্পাদিত হতে পারে।

(খ) সফটওয়্যার ইন্টারাপ্ট (Software Interrupt): ইন্সট্রাকশনের মাধ্যমে যেসকল ইন্টারান্ট সংঘটিত হয়, তাদেরকে সফটওয়্যার ইন্টারান্ট বলা হয়। INT এবং INTO ইন্সট্রাকশনের মাধ্যমে সফটওয়্যার ইন্টারান্ট হতে পারে।

(গ) ইস্টার্নাল ইন্টারাপ্ট (Internal Interrupt): মাইক্রোপ্রসেসরের আভ্যন্তরীন কোন অপারেশনের ফলে সৃষ্ট ইন্টারান্টকে ইন্টার্নাল ইন্টারাপ্ট বলা হয়।


৪051 এর ইন্টারাপ্ট এর উৎসের তালিকা
(List the Source of Interrupt of the 8051)

বর্তমান অপারেটিং প্রোগ্রামের বাইরের কোন ইভেন্ট দ্বারা একটি ইন্টারান্টের সূত্রপাত হয়।ইন্টারাপ্ট ইভেন্ট বর্তমান প্রোগ্রামে অসময়ে (asynchronously) সংঘটিত হয়, কারণ এটি কখন সংঘটিত হবে তা আগে জানার কোন উপায় নেই। ইন্টারাপ্ট হার্ডওয়্যার ও সফটওয়্যার উভয় ধরনের হতে পারে। একটি প্রোগ্রাম সাবরুটিন ডাকার মতো (Program subroutine call) ইন্টারাপ্ট মূল প্রোগ্রাম নির্বাহে একটি সাময়িক গতি পরিবর্তন করে। 8051 মাইক্রোকন্ট্রোলারে পাঁচটি ইন্টারাপ্ট উৎস আছে। যেহেতু প্রধান RESET কেও একটি ইন্টারান্ট উৎস হিসেবে বিবেচনা করা হয়, তাই 8051 এর জন্য ছয়টি ইন্টারাপ্ট উৎসের তালিকা নিচে দেওয়া হলো।

No.            Interrupt                              Flag

1.              Timer/Counter 1                     TF1

2.              External interrupt                   TF1

3.              Serial port                               RI বা TI

4.              Timer/Counter 0                     TF0

5.              System RESET                       RST

6.              External interrupt 0                IE0


ইন্টারাপ্ট সার্ভিস রুটিন

(Define Interrupt Service Routine (ISR)

ইন্টারাপ্ট সার্ভিস রুটিন (Interrupt Service Routing) এর সংক্ষিপ্ত নাম হলো ISR। প্রতিটি ইন্টারাপ্ট জন্য একটি করে Interrupt Service Routine (ISR) থাকা আবশ্যক। প্রতিটি ইন্টারাপ্ট এর জন্য মেমোরিতে নির্দিষ্ট লোকেশন থাকে, যা ISR এর অ্যাড্রেস ধারণ করে একে ভেক্টর ঠিকানা বলে। ISR এর অ্যাড্রেসকে ধারণ করার জন্য মেমোরি লোকেশনের গ্রুপকে ইন্টারান্ট ভেক্টর টেবিল বলে। চলমান প্রোগ্রামে কোন ইন্টারাপ্ট সংঘটিত হলে যে ছোট প্রোগ্রাম প্রসেসর বা কন্ট্রোলারকে কী করতে হবে তা অবগত করে, তাকে Interrupt Service Routine (ISR) বলে। এটিকে Interrupt handler-ও বলে। ISR ইন্টারাপ্ট প্রত্যুত্তরে সম্পাদিত হয় এবং সাধারণত একটি ডিভাইসের ইনপুট/আউটপুট কাজ সমাধা করে। যখন কোন ইন্টারাপ্ট সংঘটিত হয়, তখন মূল প্রোগ্রাম সম্পাদন সাময়িক স্থগিত হয় এবং প্রোগ্রামকে ISR এ branching করে। ISR সম্পাদিত হয় এবং RETI নির্দেশনার মাধ্যমে সমাপ্ত হয়। ইন্টারাপ্ট সম্পাদন শেষে মূল প্রোগ্রাম (যেখান থেকে ইন্টারাপ্ট শুরু) পুনরায় চলতে থাকে। যখন কোন ইন্টারাপ্ট গৃহীত হয়, তখন PC (Program counter) তে যে মান জমা হয়, তাকে Interrupt vector বলে। এটি ইন্টারাপ্ট উৎসের জন্য ISR এর শুরুর ঠিকানা।