বাংলায় মাইক্রোকন্ট্রোলার প্রোগ্রামিং শিখি [পর্ব ৩: Microcontroller বিট, রেজিস্টার, নাম্বারিং সিস্টেম]

সবাইকে আমার পক্ষ থেকে স্বাগতম, আশা করি সবাই ভালই আছেন।আমি আবরার অন্তর। আজ আমি আপনাদের Microcontroller bit, Register এবং নাম্বার সিস্টেম এর সম্পর্কে কিছু বলবো। আমি ২য় ক্লাসে বলেছিলাম নাম্বার সিস্টেম নিয়ে একটি ক্লাস করব আজ করে ফেললাম কারণ প্রোগ্রামিং এর প্রতিটা পদে পদে আমাদের এইটা প্রয়োজন।

Register কি?
-> PIC এর অনেক register থাকে। যেমন, Timer, ADC, PORT, TRIS ইত্যাদি ইত্যাদি। সাধারণত register 8 bit, 16 bit এর হয়ে থাকে। একটি PIC এর ভেতর কয়টি register আছে এবং register গুলো কত বিট এর তা আমরা সেই PIC এর datasheet দেখে জানতে পারব।

নিচের ছবিটি দেখুন, এইটা 16f72 মডেলের একটি microcontroller এর datasheet এর একটু অংশ। এখান থেকে আমরা জানতে পারছি এই PIC এ তিনটা TIMER আছে যা যথাক্রমে Timer0 = 8 bit, Timer1 = 16 bit, Timer2 = 8 bit ইত্যাদি আরও অনেক কিছু আমরা datasheet থেকেই জানতে পারি। (PIC এর Timer নিয়ে আমি পরে একটা ক্লাস করব)

PIC16f72 datasheet

Bit কি?
-> উপরে আমরা দেখলাম  register 8 bit, 16 bit বা তার বেশিও হয়ে থাকে। register এর প্রতিটি বিটকেই মূলত bit বলে। যেমন, PORTB register এর PORTB.0, PORTB.1, PORTB.2.... ইত্যাদি হল বিট।

PIC tutorials

এখন আমরা উপরের ছবি দেখে বুঝতেই পারছি, PORTA, PORTB, PORTC হল PORT Register এবং RC0 বা PORTC.0, RC1 বা PORTC.1 ইত্যাদি হল উক্ত register এর বিট।

Microcontroller নিয়ে কাজ করতে হলে আমাদের অবশ্যই Register, Bit সম্পর্কে ভালো ধারনা থাকতে হবে। 

Binary কোড কি?
-> 0 এবং 1 ই binary number. মাত্র ২টা অংক।

decimal কোড কি?
-> 0 থেকে ৯ পর্যন্ত decimal number। মোট ১০টা অংক। আমরা সাধারণত যে নাম্বার ব্যবহার করি সেটাই decimal number.

hexadecimal কোড কি?
-> 0 থেকে ৯ এবং A,B,C,D,E,F. মোট ১৬টা অংক।

নাম্বার রুপান্তকরন প্রক্রিয়াঃ 

আমি আপনাদের সুত্র দিয়ে খাতায় সময় নষ্ট করে রূপান্তর করা শিখাতে চাই না। windows এর সাথে দেয়া সাধারণ calculator দিয়েই আমরা রূপান্তর করা শিখব। নিচে প্রক্রিয়া দেখানো হলঃ

১। প্রথমে windows এর calculator ওপেন করুন। নিচের মত একটি window আসবেঃ

২। View> Programmer অথবা কীবোর্ড থেকে alt+3 চাপুন।

৩। নিচের মত window আসবে। তারপর নিচের ছবির মত setting করে নিনঃ

৪। এখন decimal কোড সিলেক্ট করা আছে। উদাহরণস্বরূপ আমি ২৫৫ লিখেছি। ছবিতে দেখুন আমরা সাথে সাথে বাইনারি কোড পেয়ে যাচ্ছি। এখন আপনি dec এর জায়গায় অন্য কোনটা সিলেক্ট করেই রূপান্তর করতে পাবেন। যেমন, এখন যদি আমরা Hex সিলেক্ট করি তাহলে দেখতে পারব "FF" দেখাচ্ছে। তারমানে ২৫৫ এর Hex code "FF".

Hex = hexadecimal, Dec = decimal, Oct = Octal, Bin = Binary.

Register, bit এবং নাম্বারিং সিস্টেম এর একটি উদাহরনঃ 

ধরি, আমরা কোন একটি microcontoller এর PORTB রেজিস্টার এর RB.0, RB.2, RB.5, RB.7 বিট গুলো আউটপুট করব এবং বাকি বিট গুলো ইনপুট করব। আমি আগের ক্লাসে বলেছিলাম PORT আউটপুট/ইনপুট নির্ধারণের রেজিস্টার হল TRIS.  তাহলে দেখে নেই কিভাবে আমরা উক্ত বিট/পিন গুলো আউটপুট/ইনপুট হিসেবে নির্ধারণ করবঃ

আমরা জানি, ইনপুট = ১, আউটপুট = ০। তাহলে,

RB7     RB6      RB5      RB4      RB3      RB2      RB1      RB0

0            1            0           1             1             0           1            0

আমরা বাইনারিতে পেয়ে গেলাম, TRISB = 0b01011010;

// এখানে "0b" হল MikroC compiler এর বাইনারি নির্দেশক। এটা লিখলে compiler বুঝলে পারে আপনি বাইনারি কোড ইনপুট করেছেন। এবং TRIS এর সাথে "B" হওয়ার কারণ আমরা PORTB নিয়ে কাজ করতেছি।

নাম্বার রূপান্তর করে,

TRISB = 0x5A;

// এখানে "0x" হল MikroC compiler এর Hex কোড নির্দেশক। এটা লিখলে compiler বুঝলে পারে আপনি Hex কোড ইনপুট করেছেন।

TRISB = 90;

//এখানে "৯০" হল Decimal কোড। decimal কোড  নির্দেশ করতে কোন compiler এই কোন  নির্দেশক লাগে না।

 

এই ক্লাসে ভালো সাড়া পেলে আমি ৪র্থ ক্লাস টিউন করব। আপনারাই নির্ধারণ করুন আমি পরবর্তী ক্লাস শুরু করব কিনা...!

আশা করি সবাই বুঝতে পেরেছেন। তাও যদি কেও কোন লাইন না বুঝে থাকেন তাহলে নিচে টিউমেন্ট করতে পারেন।

আপনাদের যদি আমার লেখা ভাল লাগে অবশ্যই টিউমেন্ট করবেন এবং আমাকে সাপোর্ট করার জন্য আমার টিউনস প্রিয় টিউনস এ যুক্ত করবেন।

Facebook ID: Abrar Antor

Level New

আমি আবরার অন্তর। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 10 বছর 6 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 13 টি টিউন ও 26 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 1 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

ভাল লাগলো। চালিয়া যাও।

Level New

nice. Continue it please./

Level 0

ধন্যবাদ
চালিয়ে যান । মাঝপথে হারিয়ে যাবেন না।

Continue করেন Boss………. বেশির ভাগ লোকি শুধু দেখেই যাবে বাট একটা কমেন্ট করে উৎসাহিত করবে না।।। তাই ওদের কথা বাদ দিয়ে আমরা যারা আগ্রহ নিয়ে Wait করি তাদের কথা ভাবুন।

    কিভাবে চালিয়ে যাব বলেন??? ভিউ মাত্র ২০০ হইছে ৫দিন এ। আমার লিখা কারোঁ ভালো লাগে না মনে হয়। আর আমি বুঝতে পারলাম এই বিষয়ে কারও তেমন আকর্ষণ নাই।

onek valo laglo…. continue koro ontor vieya….