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


6.2 8051 মাইক্রোকন্ট্রোলারের নমুনা প্রকল্প – আপ এন্ড ডাউন কাউন্টার (Sample 8051 Project – Up Down Counter 8051)ঃ

6.2.1 সংক্ষেপঃ

বর্তমান প্রকল্পে আমরা একটি 8051 মাইক্রোকন্ট্রোলারের সাহায্যে একটি কাউন্টার তৈরি করব। কাউন্টারটি প্রতিটি SW1 পুশ বাটন প্রেসে এক এক করে ক্রমবর্ধমান নাম্বার ডিসপ্লে করবে।অনুরূপে প্রতিটি SW2 পুশ বাটন প্রেসে এক এক করে ক্রমহ্রাসমান নাম্বার ডিসপ্লে করবে।

6.2.2 প্রয়োজনীয় উপকরণঃ

১। AT89S51
২। 11.0592 MHz
৩। 10uF Electrolyte Capacitor
৪। 33pF Capacitor(2)
৫। 7 Segment Display-CA (2)
৬। 10K Ohms resistor
৭। 330 Ohms Resistor
৮। Push Button switch(2)
৯। Power supply

১০। Connecting wire

১১। Bread Board

নোটঃ 7 সিগমেন্ট ডিসপ্লে দুই প্রকারের হয়। 7 সিগমেন্ট ডিসপ্লে সম্বন্ধে বিশদ জানতে 9.1 অনুচ্ছেদ দ্রষ্টব্য।পুনশ্চ, যেহেতু P0 পোর্টটি হল ওপেন ড্রেন সেহেতু P0 পোর্ট পিনগুলি ব্যবহার করতে গেলে P0 প্রতিটি পিনকে এক একটি 10K রেজিষ্টরের মাধ্যমে +5 ভোল্টের সঙ্গে যুক্ত করতে হবে (সার্কিটে দেখানো নেই)। অন্যথায় P0 এর পরিবর্তে আমরা P3 পোর্ট ব্যবহার করতে পারি।

6.2.3 প্রয়োজনীয় সার্কিট ডায়াগ্রামঃ

Figure 49

6.2.4 প্রয়োজনীয় কোডঃ

8051 mcu তে কোড আপলোড

Figure 49a

6.3 Up Down Counter 80518051 টাইমার কাউণ্টারঃ

আগেই আমরা জেনেছি যে ৮০৫১ টাইমারকে সহজেই নির্দিষ্ট টাইম ডিলে তৈরির জন্য ব্যবহার করা যেতে পারে। এক্ষেত্রে টাইমারের উৎস রূপে ৮০৫১ তার অন্তর্নিহিত ক্লককেই ব্যবহার করে।  পূর্বোক্ত TMOD রেজিস্টারের C/T বিটকে 1 এ সেট করলে 8051 টাইমার তার ক্লকের উৎস রূপে কোন বহিরাগত ক্লকের সাহায্য নেয়। এইভাবে আমরা 8051 টাইমারকে কোন ইভেন্ট কাউন্টার রূপে ব্যবহার করতে পারি।  এক্ষেত্রে TMOD রেজিস্টারের নীচের চারিটি বিটের ব্যবহারে কাউন্টার 0 সক্ষম হয় এবং উপরের চারিটি বিটের ব্যবহারে কাউন্টার 1 সক্ষম হয়। টাইমার 1/0 কে বহিরাগত হার্ডওয়ার দ্বারা চালু ও বন্ধ করতে গেলে TMOD রেজিস্টারের শেষ চারিটি বিটের(MSB, টাইমার 1 এর ক্ষেত্রে) সবচেয়ে বাম দিকের বিটটি (GATE বিট) বা প্রথম চারিটি বিটের (LSB, টাইমার 0 এর ক্ষেত্রে) সবচেয়ে বাম দিকের বিটটি (GATE বিট) 1 এ সেট করতে হবে।

বর্তমান প্রকল্পে যেহেতু কাউন্টারটি আমরা সফট্‌ওয়ার শুরু(start) করব সেহেতু এক্ষেত্রে GATE বিটটি আমরা 0 তে সেট করব। অর্থাৎ TMOD = 0x50 করব। তাই, GATE->0, C/T->1, M->1.

আমরা ইতিপূর্বে আপ ও ডাউন কাউন্টার তৈরি করেছি (Up & Down Counter 8051)। ঐ কাউন্টারে আমরা কোনরূপ টাইমারের ব্যবহার করিনি। বর্তমান কাউন্টার প্রকল্পে আমরা ৮০৫১ টাইমারকে কাউন্টার রূপে ব্যবহার করব।  এর মাধ্যমে আমরা একটি মাইক্রোকন্ট্রোলারকে একাধিক কাজে লাগাতে পারি।

6.3.1 Up Down Counter 80518051 কাউন্টার, একটি পরীক্ষা ( Testing 8051 Counter):

6.3.1.1 প্রয়োজনীয় উপকরণঃ
১। AT89S51
২। 11.0592 MHz
৩। 10uF Electrolyte Capacitor
৪। 33pF Capacitor(2)
৫। 470uF Electrolyte Capacitor
৬। 7 Segment Display-CA
৭। 555 Timer
৮। 10K Ohms resistor
৯। 4.6 K Ohms resistor
১০। 330 Ohms Resistor
১১। Push Button switch
১২। Power supply
১৩। Connecting wire

6.3.1.2 সার্কিট ডায়াগ্রামঃ

Figure 50

6.3.1.3 প্রয়োজনীয় কোডঃ

8051 mcu তে কোড আপলোড

Figure 50a

এখানে আমরা দেখতে পাচ্ছি 555 IC থেকে 3 নম্বর পিনটি ৮০৫১ এর 15 নং পিনের সাথে অর্থাৎ P3.5 পিনের সাথে যুক্ত। IC 555 এর 3 নং পিনটি হল আউটপুট। এই আউটপুট পিন থেকে পালস 8051 এর টাইমার/কাউণ্টার 1 ইনপুট T1 (P3.5) এর সাথে যুক্ত হয়েছে। যেহেতু C/T বিটকে ১ এ সেট করা হয়েছে (TMOD = 0x50 বা TMOD = 0b01010000) সেহেতু 15 নং পিনে (T1) প্রতিটি পালস কাউন্টারের মান 1 করে বৃদ্ধি করবে।

6.3.1.4 555 Timer IC

555 টাইমার IC হল এক প্রকার ক্লক পালস জেনারেটর। মোনোস্টেবল মোডে কোন ক্ষুদ্র সময়ের ইনপুট পালস, 3 নং আউটপুট পিনে কাঙ্খিত সময়ের আউটপুট পালস তৈরি করতে পারে। আউটপুট হাই পালসের সময় নির্ভর করে R1 রোধ এবং C4 কাপাসিটরের উপর।[Figure 50]

555 এর পিন 1 এবং 8 যথাক্রমে GND ও VCC এর সাথে যুক্ত করা হয়। মোনো স্টেবল মোডে 4 নং পিনটিও VCC এর সাথে যুক্ত করা হয়। 6 ও 7 নং পিন পরস্পর যুক্ত করে সেটি R1 রোধের মাধ্যমে VCC এবং C4 ক্যাপাসিটরের মাধ্যমে GND এর সাথে যুক্ত করা হয়। 5 নং পিনটি 0.01uF ক্যাপাসিটরের মাধ্যমে গ্রাউন্ডের সাথে যুক্ত করা হয়। 2 নং পিনে ইনপুট ট্রিগার পালস প্রয়োগ করা হয়। 3 নং পিন থেকে আউটপুট পালস পাওয়া যায়।

দ্রষ্টব্যঃ প্রদত্ত সার্কিট অনুযায়ী 8051 এর T1 পিনে অর্থাৎ P3.5 পিনে আমরা সরাসরি পুশ বাটন সুইচের সাহায্যে ইনপুট প্রদান করতে পারি। কিন্তু সেক্ষেত্রে পুশ বাটন সুইচ কর্তৃক সৃষ্ট বাউন্স ভোল্টেজ(ভোল্টেজের দ্রুত হ্রাস বৃদ্ধি) একাধিক ইনপুট পালস তৈরি করতে পারে এবং কাউন্টারটি একাধিক সংখ্যায় বৃদ্ধি পেতে পারে।

6.4 মাল্টিপ্লেক্সিং 8051
যখন একাধিক ডিসপ্লে ইউনিটকে সময়ের বিভাজন দ্বারা একই সাথে দৃশ্যমান করা হয় তখন তাকে মাইক্রোকন্ট্রোলার প্রোগ্রামিঙে মাল্টিপ্লেক্সিং(Multiplexing) বলা হয়। মাইক্রোকন্ট্রোলার ক্রমান্বয়ে নির্দেশাবলী পালন করে এবং ডিসপ্লে ইউনিট গুলি ক্রমান্বয়ে খুব কম সময়ের ব্যবধানে অল্প সময় ব্যপী দৃশ্যমান  হয়।  খুব কম সময়ের ব্যবধানে ডিসপ্লে ইউনিট গুলি দৃশ্যমান হওয়ায় আমাদের চোখ সেই ব্যবধানকে চিহ্নিত করতে পারে না। আমাদের কাছে সবকটি ডিসপ্লে ইউনিটই একই সাথে দৃশ্যমান বলে মনে হয়।

6.4.1 আমরা বর্তমান অনুচ্ছেদে 8051 এর Multiplexing প্রোগ্রামিঙ করব::

6.4.1.1 প্রয়োজনীয় সার্কিট ডায়াগ্রাম

Figure 51

6.4.1.2 প্রয়োজনীয় C কোডঃ

8051 mcu তে কোড আপলোড

Figure 51a

6.4.1.3 বিবৃতি::

দ্রষ্টব্যঃ 8051 টাইমার
এখানে যে ডিলে ফাংশনটি লেখা হয়েছে সেটি 1ms ডিলে তৈরি করতে সক্ষম। সুতরাং 1ms অন্তর 7 সিগমেন্ট ডিসপ্লের প্রতিটি ডিজিট এক বার করে দৃশ্যমান হয়। আমাদের স্বাভাবিক দৃষ্টি নির্বন্ধ 100ms (1/10 Second) অর্থাৎ 100ms এর কম সময়ের ব্যবধানে কোন দৃশ্য একাধিক বার প্রদর্শিত হলে আমাদের চোখ সেগুলি আলাদা করে দেখতে পাবে না। একারণে আমরা চারিটি ডিজিটকেই একই সাথে দৃশ্যমান দেখব।