2.1 8051(AT89S51) মাইক্রোকন্ট্রোলার এর পিন পরিচিতি (pin description 8051)


প্রতিটি 8051 মাইক্রোকন্ট্রোলারের প্রতিটি পার্শ্বে 20 টি করে মোট 40 টি পিন থাকে।

  • এই 40 টি পিনের মধ্যে 4 টি পোর্ট থাকে। P0, P1, P2 এবং P3.
  • প্রতিটি পোর্টে 8 টি করে পিন বর্তমান।
  • মাইক্রোকন্ট্রোলারের বাম পার্শের (Top View) ১ম থেকে ৮ম পিন পর্যন্ত পিন নিয়ে পোর্ট P1 গঠিত।পিন গুলিকে P1.0, P1.1, P1.2….P1.7 এই নামে অভিহিত করা হয়।
  • আবার দশম(10th) পিন থেকে সতের(17th) তম পিন পর্যন্ত এই আটটি পিন দ্বারা পোর্ট P3 গঠিত।এগুলি P3.0, P3.1, P3.2…P3.7 নাম দ্বারা অবহিত।সুতরাং মাইক্রোকন্ট্রোলারের দশম(10th) পিনটি হল P3.0, একাদশ(11th) পিনটি হল P3.1 ইত্যাদি।
  • মাইক্রোকন্ট্রোলারের অপর পার্শে অর্থাৎ ডান পার্শে (Top View) পোর্ট P0 এবং P2 অবস্থিত।
  • মাইক্রোকন্ট্রো্লারের ডান পার্শ্বের নীচের একুশ-তম পিন থেকে 28তম পিন পর্যন্ত আটটি পিন নিয়ে পোর্ট P2 গঠিত। অর্থাৎ 21তম পিনটি হল P2.0, 22তম পিনটি P2.1 ইত্যাদি।
  • আবার মাইক্রোকন্ট্রোলারের 32তম থেকে 39তম পিন গুলি নিয়ে পোর্ট P0 গঠিত।এক্ষেত্রে 32তম পিনটি হল P0.7, 33তমপিনটি হল P0.6 । একই রকম ভাবে 39তম পিনটি হল পিন P0.0 ।
  • 8051 মাইক্রোকন্ট্রোলারের 40তম পিনটি হল মাইক্রোকন্ট্রোলারের পাওয়ার পিন।এই পিনটিতে +5 ডিসি ভোল্ট প্রয়োগ করা হয়।
  • মাইক্রোকন্ট্রোলারের 20 তম পিনটি গ্রাউন্ডে যুক্ত করা হয়।
  • মাইক্রোকন্ট্রোলারের বাম পার্শের প্রথম(উপরে) থেকে নবম পিনটি হল রিসেট পিন।
  • 18তম এবং 19তম পিন দুটি বাইরের ক্রিস্টাল ক্লকের সাথে যুক্ত থাকে।
  • মাইক্রোকন্ট্রোলারের বাকি তিনটি পিনের(29, 30 এবং 31) মধ্যে 31তম পিনটিতে +5 ভোল্ট প্রয়োগ করা হয়।অপর দুটি পিনকে আমরা অব্যবহৃত রাখব।এই পিন দুটি আমরা বর্তমানে আনকানেক্টেড রাখব।
  • 8051 এর কতকগুলি স্পেসাল পিন বর্তমান। এগুলি সাধারন সময়ে I/O পিন রূপে কাজ করে। সফটওয়ার কোডিং এর সাহায্যে এই পিন গুলিকে বিশেষ কাজে লাগানো যায়।
  • I/O পোর্ট 3 এর P3.0 (পিন 10) ও P3.1 (পিন 11) যথাক্রমে সিরিয়াল ইনপুট ও সিরিয়াল আউটপুট পিন রূপে কাজ করতে পারে।
  • I/O পোর্ট 3 এর P3.2 (পিন 12) ও P3.3(পিন 13) যথাক্রমে ইনটারাপ্ট 0 (INT0) ও ইনটারাপ্ট 1 (INT1) পিন রূপে কাজ করতে পারে।
  • I/O পোর্ট 3 এর P3.4 (পিন 14) ও P3.5 (পিন 15) পিন যথাক্রমে টাইমার/কাউন্টার 0 ইনপুট ও টাইমার/কাউন্টার 1 ইনপুট রুপে কাজ করতে পারে।
  • I/O পোর্ট 1 এর P1.5 পিন, P1.6 পিন ও P1.7 পিন অর্থাৎ 6, 7 ও 8 নং পিন যথাক্রমে ISP প্রোগ্রামিং এর জন্য MOSI, MISO ও SCK পিনের সাথে যুক্ত করতে হয়।

2.2 8051 আর্কিটেকচার

  • 8051 এবং 8052 মাইক্রোকন্ট্রোলার উভয়েরই ইন্টারনাল আর্কিটেকচার প্রায় একই হওয়ায় আমরা উভয়কেই পরিপূরক রূপে ব্যবহার করব।
  • 8051/52 মাইক্রোকন্ট্রোলার হল একটি 8 বিট মাইক্রোকন্ট্রোলার যার মধ্যে প্রতিটি মেমরি ইউনিট হল 8 বিটের।
  • 40 টি পিন যুক্ত 8051/52 মাইক্রোকন্ট্রোলার আমাদের আলোচ্য।
  • এতে 4 কে.বি. (কিলো বাইট) ROM স্টোরেজ(8052 এর ক্ষেত্রে 8 কেবি ROM স্টোরেজ),
  • 128 বাইট RAM স্টোরেজ(8052 এর ক্ষেত্রে 256 বাইট) বর্তমান।
  • 2টি 16 বিট টাইমার( 8052 এর ক্ষেত্রে 3 টি, যেহেতু 8051/52 একটি 8 বিট মাইক্রোকন্ট্রোলার সেহেতু প্রতিটি 16 বিট টাইমার 2 টি করে 8 বিট রেজিস্টার নিয়ে গঠিত) বর্তমান।
  • এতে চারিটি সমান্তরাল পোর্ট বর্তমান। এই পোর্ট গুলি সহজেই সফটওয়ারের মাধ্যমে প্রয়োজন মতো নিয়ন্ত্রণ যোগ্য।
  • উপরের চিত্রটিতে আমরা 8051 মাইক্রোকন্ট্রোলারের গঠন শৈলী সম্পর্কে জানতে পারি।
  • তান্ত্রিক সংযোগ ব্যবস্থার ( system bus) মাধ্যমে সিস্টেম বা তন্ত্রের সমস্ত সহযোগী উপাংশগুলি যথা মেমরি ইউনিট(ROM), 4 টি  I/O পোর্ট, ইন্টারাপ্ট কন্ট্রোল ( interrupt control), 2 টি টাইমার প্রভৃতি মাইক্রোকন্ট্রোলারের CPU এর সাথে সংযুক্ত থাকে।

2.3 8051 ও 8052 MCU এর তুলনা

2.4 বাইনারি ও হেক্সাডেসিমাল এক্সপ্রেশন

  • 1, 2, 10, 15, 25, 37 প্রভৃতি যে সংখ্যা গুলি আমরা সাধারণভাবে ব্যবহার করি সেগুলি হল ডেসিমাল নম্বর। 15 টি আম বলতে পনেরটি আম ই বুজব। 1 থেকে 9 এর পর দশ নম্বরে এসে এককের স্থানে 0 হয় এবং দশকের স্থানে 1বৃদ্ধি পায়। এইভাবে ডেসিমাল সিস্টেমে কোন সংখ্যাকে প্রকাশ করা হয়।
  • অপর পক্ষে বাইনারি সিস্টেমে কোন সংখ্যাকে কেবল মাত্র 1 এবং 0 এই দুটি অঙ্ক দ্বারাই প্রকাশ করা যায়। সুতরাং 0 অর্থে শূন্য এবং 1 অর্থে এক। বাইনারি সিস্টেমে এর পরবর্তী সংখ্যাটি অর্থাৎ দুই হল 10 আবার তিন হল 11।

  • আবার যেহেতু হেক্সাডেসিমাল সংখ্যায় ষোলটি ডিজিট সেহেতু 0, 1, 2, 3,……9 এর পর দশ, এগারো প্রভৃতি বোঝাতে 10,11র পরিবর্তে বিভ্রান্তি এড়াবার জন্য A, B , C… ইত্যাদি অক্ষর ব্যবহার করা হয়। অর্থাৎ হেক্সাডেসিমালে A দ্বারা দশ, B দ্বারা এগারো, C দ্বারা বারো ইত্যাদি বোঝানো হয়। একই রকম ভাবে F দ্বারা পনের বোঝানো হয়।হেক্সাডেসিমালে যেহেতু ষোলটি ডিজিট 0,1,2,3,…..9,A,B,….E,F অর্থাৎ শূন্য থেকে পনের এই ষোলটি ডিজিটের পরের সংখ্যাটি বোঝাতে এককের স্থানে 0 এবং দশকের স্থানে 1 বৃদ্ধি করা হয়।সুতরাং হেক্সাডেসিমালে ষোল বোঝাতে 10 ব্যবহার করা হয়।

সুতরাং,

ডেসিমাল                                                        হেক্সাডেসিমাল

1,2,3,4,5,6                                                          1,2,3,4,5,6

7,8,9,10,11,12,13                                               7,8,9,A,B,C,D

14,15,16,17,18,19                                        E,F,10,11,12,13

হেক্সাডেসিমাল থেকে ডেসিমাল

হেক্সাডেসিমাল ও বাইনারি

উপরের টেবিলে আমরা দেখতে পাচ্ছি যে হেক্সাডেসিমাল F কে বোঝানোর জন্য চারিটি বাইনারি ডিজিটের সাহায্য নেওয়া হয়েছে। সুতরাং হেক্সাডেসিমাল F কে প্রকাশ করার জন্য আমরা চারিটি বিটের সাহায্য নিই। অন্যান্য হেক্সাডেসিমাল ডিজিট গুলি প্রকাশ করার জন্যও অনুরূপ চারিটি বিটের সাহায্য নেওয়া হয়।

2.5 বাইনারি কোডেড হেক্সাডেসিমাল

  • যেহেতু মাইক্রোকন্ট্রোলার 0 এবং 1 ছাড়া আর কিছুই বোঝে না এবং অধিকাংশ মেমরি বাইট গুলি হলএইট বিট বা সিক্সটিন বিট সেহেতু বাইনারি কোডেড হেক্সাডেসিমালের সাহায্যে কোন বড় সংখ্যাকে প্রকাশ করা হয়।
  • বাইনারি কোডেড ডেসিমালে চারিটি করে বিট একত্রে এক একটি হেক্সাডেসিমাল ডিজিট প্রকাশ করে।
  • যেহেতু সর্বোচ্চ হেক্স ডিজিট F(পনেরো) কে প্রকাশের জন্য চারিটি বিট(1111) যথেষ্ট সেহেতু ষোল বিটের কোন মেমরি অ্যাড্রেস দ্বারা সর্বোচ্চ প্রকাশ যোগ্য হেক্সাডেসিমাল সংখ্যা হল 0xFFFF.
  • এখানে বাইনারি কোডেড হেক্সাডেসিমাল সংখ্যা বোঝাতে 0র পর x ব্যবহার করা হয়েছে।
  • এখন 0xFFFF সংখ্যাটির ডেসিমাল মান হলঃ

15x(16)3 + 15x(16)2 + 15x(16)1 + 15x(16)0 = 61440 + 3840 + 240 + 15 = 65535

  • প্রতিটি হেক্স ডিজিটের জন্য যে চারিটি বিট প্রয়োজন তাদের একত্রে নিবল(nibble) বলে।
  • উপরের 0xFFFF সংখ্যাটিকে 0b1111 1111 1111 1111 এই ভাবেও প্রকাশ করা যেতে পারে। (এই ভাবে বাইনারি সংখ্যা ব্যবহারের ক্ষেত্রে 0b এর পর ষোলটি বাইনারি ডিজিটকে পর পর কোন স্পেস(space) ছাড়াই ব্যবহার করতে হবে)।