তৃতীয় অধ্যায়
3.1 Draw the simplified Block diagram of the Intel 8051 microcontroller.
3.2 Explain the programming model of the 8051 microcontroller.
assembly language 8051 মাইক্রোকন্ট্রোলার প্রোগ্রাম:
assembly language উপাদানগুলি দিয়ে তৈরি যা প্রত্যেকে ক্রমানুসারে প্রোগ্রামটি লিখতে ব্যবহৃত হয়। assembly language প্রোগ্রামিং লেখার জন্য প্রদত্ত বিধিগুলি অনুসরণ করুন।
Rules of Assembly Language
- অ্যাসেম্বলি ল্যাঙ্গুয়েজ অবশ্যই বড় হাতের অক্ষরে লিখতে হবে
- লেবেলগুলি অবশ্যই কোলন অনুসরণ করবে (লেবেল :)
- সমস্ত চিহ্ন এবং লেবেল একটি LETTER দিয়ে শুরু করা
- সমস্ত মন্তব্য ছোট ক্ষেত্রে টাইপ করা হয়
- প্রোগ্রামের শেষ লাইনটি অবশ্যই শেষের দিকনির্দেশক হতে হবে
{
The assembly code must be written in upper case letters
The labels must be followed by a colon (label:)
All symbols and labels must begin with a letter
All comments are typed in lower case
The last line of the program must be the END directive
}
অ্যাসেম্বলি ল্যাঙ্গুয়েজ এর সাংকেতিক এগুলো হলো
op-code, such as MOV, ADD, JMP, and so on
অপ-কোড(OP CODE): অপ-কোডটি একটি একক নির্দেশ যা সিপিইউ দ্বারা সম্পাদন করা করা যায়। এখানে অপ-কোডটি একটি MOV নির্দেশ।
অপারেন্ডস(Operands): অপারেন্ডগুলি এমন একক উপাত্ত যা অপ-কোড দ্বারা পরিচালিত হতে পারে। উদাহরণস্বরূপ, অপারেন্ড দ্বারা গুণিত অপারেশনগুলি দ্বারা গুণিত অপারেশন সঞ্চালিত হয়।
The Elements of an Assembly Language Programming:
- Assembler Directives
- Instruction Set
- Addressing Modes
ASSEMBLER DIRECTIVES:
ASSEMBLER DIRECTIVES সিপিইউকে দিকনির্দেশ দেয়। 8051 মাইক্রোকন্ট্রোলার নিয়ন্ত্রণ ইউনিটকে নির্দেশ দেওয়ার জন্য বিভিন্ন ধরণের assembly নির্দেশনা নিয়ে গঠিত | সর্বাধিক দরকারী নির্দেশিকা হ'ল 8051 প্রোগ্রামিং, যেমন:
- ORG
- DB
- EQU
- END
ডেটা অ্যাক্সেসের উপায়কে অ্যাড্রেসিং মোড বলে। সিপিইউ অ্যাড্রেসিং মোডগুলি ব্যবহার করে বিভিন্ন উপায়ে ডেটা অ্যাক্সেস করতে পারে। 8051 মাইক্রোকন্ট্রোলারের মধ্যে পাঁচটি অ্যাড্রেসিং মোড থাকে
- Immediate Addressing Mode
- Register Addressing Mode
- Direct Addressing Mode
- Indirect Addressing Mode
- Base Index Addressing Mode
নির্দেশিকা সেটটি নিয়ামক বা প্রসেসরের কাঠামো যা ডেটা প্রসেসিংয়ের জন্য নিয়ামককে নির্দেশ দেওয়ার জন্য নিয়ামককে আদেশ দেয়। নির্দেশিকা সেট নির্দেশাবলী, নেটিভ তথ্য প্রকার, ঠিকানা ঠিকানা, বিঘ্নিত রেজিস্টার, ব্যতিক্রমী হ্যান্ডলিং এবং মেমরি আর্কিটেকচার নিয়ে গঠিত। 8051 মাইক্রোকন্ট্রোলার হার্ভার্ড আর্কিটেকচারের সাথে সিআইএসসি নির্দেশাবলী অনুসরণ করতে পারে। 8051 প্রোগ্রামিংয়ের ক্ষেত্রে বিভিন্ন ধরণের সিআইএসসি নির্দেশাবলীর মধ্যে রয়েছে:
- Data Transfer Instruction set
- Sequential Instruction Set
- Arithmetic Instruction set
- Branching Instruction set
- Loop Instrcution Set
- Conditional Instruction set
- Unconditional Instruction set
- Logical Instruction set
- Boolean Instruction set
3.3 Mention the memory organization of the 8051 microcontroller mentioning the function of SFR, Register bank, bit addressable & general purpose RAM.
8051 Memory Organization
8051 মাইক্রোকন্ট্রোলারের স্মৃতি প্রোগ্রাম মেমরি এবং ডেটা মেমোরিতে বিভক্ত। প্রোগ্রাম মেমোরি (রম) স্থায়ী সংরক্ষণের প্রোগ্রাম কার্যকর করার জন্য ব্যবহৃত হয়, যখন ডেটা মেমোরি (র্যাম) অস্থায়ীভাবে সংরক্ষণ এবং মধ্যবর্তী ফলাফল এবং ভেরিয়েবলগুলি রাখার জন্য ব্যবহৃত হয়।
প্রোগ্রাম মেমোরি (রম):
প্রোগ্রাম মেমোরি (ROM) স্থায়ী saving program জন্য ব্যবহার করা হয় (CODE) কার্যকর করা হচ্ছে।
ই মেমোরি কেবল পড়া যায়| 8051 কেবল প্রোগ্রাম মেমোরিতে সংরক্ষিত প্রোগ্রামগুলি কার্যকর করে। কোড মেমরি টাইপ স্পেসিফায়ার প্রোগ্রাম মেমোরি উল্লেখ করতে ব্যবহৃত হয়।
8051 মেমরি সংগঠন বহিরাগত প্রোগ্রামের মেমোরি যুক্ত হতে দেয়।
Internal Data Memory
অভ্যন্তরীণ ডেটা মেমরির 256 বাইট অবধি 8051 ডেরাইভেটিভের উপর নির্ভর করে ।
বাহ্যিক স্মৃতিতে প্রবেশাধিকারটি অভ্যন্তরীণ ডেটা মেমরির অ্যাক্সেসের চেয়ে ধীর। বাহ্যিক ডেটা মেমরির 64৪ কেট বাইট থাকতে পারে। বেশ কয়েকটি 8051 ডিভাইস অন-চিপ এক্সআরএএম স্থান সরবরাহ করে যা প্রচলিত বাহ্যিক ডেটা স্পেসের মতো একই নির্দেশাবলী সহ অ্যাক্সেস করা হয়।
SFR Memory
8051 স্পেশাল ফাংশন রেজিস্টার (এসএফআর) এর জন্য 128 বাইট মেমরি সরবরাহ করে। এসএফআরগুলি হ'ল বিট, বাইট বা শব্দের আকারের নিবন্ধ যা টাইমার, কাউন্টার, সিরিয়াল আই / ও, পোর্ট আই / ও, এবং পেরিফেরিয়াল নিয়ন্ত্রণ করতে ব্যবহৃত হয়।
3.4 State the function of each flag of the PSW register.
প্রোগ্রামের স্ট্যাটাস ওয়ার্ড (পিএসডাব্লু) এর মধ্যে স্ট্যাটাস বিট রয়েছে যা বর্তমান সিপিইউ রাজ্যের প্রতিফলন করে। 8051 ভেরিয়েন্টগুলি এই স্থিতির তথ্য সহ পিএসডাব্লু নামে একটি বিশেষ ফাংশন রেজিস্টার সরবরাহ করে। 251 দুটি অতিরিক্ত স্থিতি পতাকা সরবরাহ করে, জেড এবং এন, যা পিএসডাব্লু 1 নামে একটি দ্বিতীয় বিশেষ ফাংশন রেজিস্টারে উপলব্ধ।
PSW Register (all 8051 and 251 variants)
Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|
CY | AC | FO | RS1 | RS0 | OV | UD | P |
Additional PSW1 Register (on 251 Architecture only)
Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|
CY | AC | N | RS1 | RS0 | OV | Z | — |
RS1 RS0 Working Register Bank and Address
0 0 Bank0 (D:0x00 - D:0x07)
0 1 Bank1 (D:0x08 - D:0x0F)
1 0 Bank2 (D:0x10 - D:0x17)
1 1 Bank3 (D:0x18H - D:0x1F)
0 0 Bank0 (D:0x00 - D:0x07)
0 1 Bank1 (D:0x08 - D:0x0F)
1 0 Bank2 (D:0x10 - D:0x17)
1 1 Bank3 (D:0x18H - D:0x1F)
Symbol | Function |
---|---|
CY | Carry flag |
AC | Auxiliary Carry flag (For BCD Operations) |
F0 | Flag 0 (Available to the user for General Purpose) |
RS1, RS0 | Register bank select: RS1 RS0 Working Register Bank and Address 0 0 Bank0 (D:0x00 - D:0x07) 0 1 Bank1 (D:0x08 - D:0x0F) 1 0 Bank2 (D:0x10 - D:0x17) 1 1 Bank3 (D:0x18H - D:0x1F) |
0V | Overflow flag |
UD | User definable flag |
P | Parity flag |
— | Reserved for future use (251 Only) |
Z | Zero flag (251 Only) |
N | Negative flag (251 Only) |
3.5 Explain the pin and signal of the 8051 microcontroller.
নিচে AT89C2051 মাইক্রোকন্ট্রোলারের ৪০ পিন ভার্সনের, পিন ডায়াগ্রাম দেয়া হলো।
নিচে AT89C2051 মাইক্রোকন্ট্রোলারের ৪০ পিন ভার্সনের, পিন ডায়াগ্রাম দেয়া হলো।
AT89C2051 মাইক্রোকন্ট্রোলারের বিভিন্ন পিনের কাজ
এখন আমরা AT89C2051 মাইক্রোকন্ট্রোলারের কিছু পিনের কার্যক্রম সর্ম্পকে জানবো।রিসেট পিনঃ
আমরা কম্পিউটরের সি.পি.ইউ তে একটি বাটন দেখি যেটাকে রিসেট বাটন বলা হয়। এই বাটনে ক্লিক করলে পুরো কম্পিউটর রিসেট হয়ে যায়। AT89C2051 মাইক্রোকন্ট্রোলারেও এরকম একটি পিন আছে যে পিনে ইনপুট দিলে মাইক্রোকন্ট্রোলারের অভ্যন্তরের প্রোগাম রিসেট হয়ে যায়। সাধারনত এই পিনের লজিক ০ থাকে। মাইক্রোকন্ট্রোলারকে রিসেট করার জন্য এই রিসেট পিনে অন্তত দুই মেশিন সাইকেলের জন্য ইনপুট লজিক হাই রাখতে হয়। রিসেট করার জন্য সাধারনত রিসেট পিনের সাথে একটি ক্যাপাসিটর এবং রেজিষ্টর সংযুক্ত করা হয়। নিচে রিসেট পিনের সার্কিট দেয়া হলো।
P 3.0
এই পিনটি উভয়মুখী ইনপুট/আউটপুট পিন, যে পিনের সাথে আভ্যন্তরীন একটি রেজিষ্টর সংযুক্ত আছে। সাথে সাথে এই পিনটি বাইরের থেকে ডাটা ইনপুটের কাজেও ব্যবহার করা হয়, যখন মাইক্রোকন্ট্রোলার UART ব্যবহার করে সিরিয়াল ডাটা ইনপুট করে।
P 3.1
এই পিনটি উভয়মুখী ইনপুট/আউটপুট পিন, যে পিনের সাথে আভ্যন্তরীন একটি রেজিষ্টর সংযুক্ত আছে। সাথে সাথে এই পিন ডাটা আউটপুটের কাজে ব্যবহার করা হয় যখন মাইক্রোকন্ট্রোলার UART ব্যবহার করে সিরিয়াল ডাটা আউটপুট দেয়।
XTAL 1 & XTAL 2
এই দুই পিনে ক্রিষ্টাল সংযুক্ত করা হয়। সাধারনত সাধারনত দুটি ৩৩ পিকো ফ্যারাডের ক্যাপাসিটর ক্রিষ্টালের সাথে সংযুক্ত অবস্থায় থাকে। মেশিন সাইকেল পাবার জন্য ক্রিষ্টাল ফিকোয়েন্সীকে ১২ দিয়ে ভাগ করতে হবে। তাই ১২ মেগাহার্জ ক্রিষ্টাল ব্যবহার করলে আমাদের মেশিন সাইকেল হবে ১ মিলি সেকেন্ড। অধিকাংশ ইন্সট্রাকশন সম্পন্ন হতে ১ মেশিন সাইকেল সময় নেয়।
P 3.2
এই পিনটি উভয়মুখী ইনপুট/আউটপুট পিন, যে পিনের সাথে আভ্যন্তরীন একটি রেজিষ্টর সংযুক্ত আছে। এই পিনের সাথে একটি ইন্টারাপ্ট সংযুক্ত থাকে, যেটিকে ইন্টারাপ্ট ০ বলা হয়।
P 3.3
এই পিনটি উভয়মুখী ইনপুট/আউটপুট পিন, যে পিনের সাথে আভ্যন্তরীন একটি রেজিষ্টর সংযুক্ত আছে। এই পিনের সাথে একটি ইন্টারাপ্ট সংযুক্ত থাকে, যেটিকে ইন্টারাপ্ট ১ বলা হয়।
P 3.4
এই পিনটি উভয়মুখী ইনপুট/আউটপুট পিন, যে পিনের সাথে আভ্যন্তরীন একটি রেজিষ্টর সংযুক্ত আছে। এই পিনের সাথে একটি কাউন্টার সংযুক্ত থাকে, যেটিকে কাউন্টার ০ বলা হয়।
P 3.5
এই পিনটি উভয়মুখী ইনপুট/আউটপুট পিন, যে পিনের সাথে আভ্যন্তরীন একটি রেজিষ্টর সংযুক্ত আছে। এই পিনের সাথে একটি কাউন্টার সংযুক্ত থাকে, যেটিকে কাউন্টার ১ বলা হয়।
GND
এই পিনে ব্যাটারীর নেগেটিভ ইনপুট দেয়া হয়।
P 3.6
এই পিনটি উভয়মুখী ইনপুট/আউটপুট পিন। AT89C2051 মাইক্রোকন্ট্রোলারে এই পিন নেই। মাইক্রোকন্ট্রোলারের সাথে যদি কোন মেমোরী সংযুক্ত করা হয় তবে এই পিন মেমোরীতে লেখার কাজে ব্যবহার করা হয়।
P 3.7
এই পিনটি উভয়মুখী ইনপুট/আউটপুট পিন। AT89C2051 মাইক্রোকন্ট্রোলারে সাথে যদি কোন মেমোরী সংযুক্ত করা হয় তবে এই পিন মেমোরী থেকে ডাটা পড়ার কাজে ব্যবহার করা হয়।
P 1.0
এই পিনটি পোর্ট ১ এর উভয়মুখী ইনপুট/আউটপুট পিন। এই পিনের ভিতরে কোন ইন্টারনাল রেজিষ্টর নেই। ২০ পিনের ভার্সনের এই পিনে এনালগ কমপেরাটরের ইনপুটের কাজে ব্যবহার করা হয়।
P 1.1
এই পিনটি পোর্ট ১ এর উভয়মুখী ইনপুট/আউটপুট পিন। এই পিনের ভিতরে কোন ইন্টারনাল রেজিষ্টর নেই। ২০ পিনের ভার্সনের এই পিনে এনালগ কমপেরাটরের ইনপুটের কাজে ব্যবহার করা হয়।
P 1.2 – P 1.7
এই পিনগুলো পোর্ট ১ এর উভয়মুখী ইনপুট/আউটপুট পিন। এই পিন সমূহে ইন্টারনাল রেজিষ্টর আছে।
VCC
ভোল্টেজ সাপ্লাই।
P 0.0 – P 0.7
এই পিনগুলো পোর্ট ০ এর উভয়মুখী ইনপুট/আউটপুট পিন। এই পিন সমূহে ইন্টারনাল রেজিষ্টর নেই।
P 2.0 – P 2.7
এই পিনগুলো পোর্ট ২ এর উভয়মুখী ইনপুট/আউটপুট পিন। এই পিন সমূহে ইন্টারনাল রেজিষ্টর আছে।
EA/VPP
এই পিনের কাজ হচ্ছে বাইরে থেকে কোন ডিভাইস চিপে এক্সেস হলে তা এনাবেল করা। এই পিনটি চিপে প্রোগাম করার কাজেও ব্যবহার করা হয়। চিপ প্রোগাম করার সময় এই পিনে ইনপুট ভোল্টেজ যায়।
PSEN
এই পিন কাজ করে যখন ডিভাইসটি বাইরের মেমোরী থেকে কোড রান করে।
ALE/PROG
এটি ৮০৫১ মাইক্রোকন্ট্রোলারের এড্রেস ল্যাচের এনাবেল পিন হিসাবে কাজ করে।
3.6 Describe the Clock and Reset circuits of the 8051.
রিসেট পিনঃ
আমরা কম্পিউটরের সি.পি.ইউ তে একটি বাটন দেখি যেটাকে রিসেট বাটন বলা হয়। এই বাটনে ক্লিক করলে পুরো কম্পিউটর রিসেট হয়ে যায়। AT89C2051 মাইক্রোকন্ট্রোলারেও এরকম একটি পিন আছে যে পিনে ইনপুট দিলে মাইক্রোকন্ট্রোলারের অভ্যন্তরের প্রোগাম রিসেট হয়ে যায়। সাধারনত এই পিনের লজিক ০ থাকে। মাইক্রোকন্ট্রোলারকে রিসেট করার জন্য এই রিসেট পিনে অন্তত দুই মেশিন সাইকেলের জন্য ইনপুট লজিক হাই রাখতে হয়। রিসেট করার জন্য সাধারনত রিসেট পিনের সাথে একটি ক্যাপাসিটর এবং রেজিষ্টর সংযুক্ত করা হয়। নিচে রিসেট পিনের সার্কিট দেয়া হলো।
আমরা কম্পিউটরের সি.পি.ইউ তে একটি বাটন দেখি যেটাকে রিসেট বাটন বলা হয়। এই বাটনে ক্লিক করলে পুরো কম্পিউটর রিসেট হয়ে যায়। AT89C2051 মাইক্রোকন্ট্রোলারেও এরকম একটি পিন আছে যে পিনে ইনপুট দিলে মাইক্রোকন্ট্রোলারের অভ্যন্তরের প্রোগাম রিসেট হয়ে যায়। সাধারনত এই পিনের লজিক ০ থাকে। মাইক্রোকন্ট্রোলারকে রিসেট করার জন্য এই রিসেট পিনে অন্তত দুই মেশিন সাইকেলের জন্য ইনপুট লজিক হাই রাখতে হয়। রিসেট করার জন্য সাধারনত রিসেট পিনের সাথে একটি ক্যাপাসিটর এবং রেজিষ্টর সংযুক্ত করা হয়। নিচে রিসেট পিনের সার্কিট দেয়া হলো।
টাইমার এবং কাউন্টার
AT89C2051 মাইক্রোকন্ট্রোলারে দুটি টাইমার/কাউন্টার আছে, যাদের টাইমার/কাউন্টার ০ এবং টাইমার/কাউন্টার ১ নামে অভিহিত করা হয়। এই টাইমার/কাউন্টার সমূহ বিভিন্ন মোডে কাজ করতে পারে। এটা নির্ভর করে দুটি রেজিষ্টর TCON এবং TMOD কে আমরা কিভাবে প্রোগাম করবো। নিচের টেবিলে বিভিন্ন প্রোগামিং মোড দেখানো হলো। মাইক্রোকন্ট্রোলারের টাইমার এবং কাউন্টার সমূহকে ব্যবহারের পূর্বে এই রেজিষ্টর গুলোকে প্রোগাম করতে হবে। যেমন
বিটের নাম
|
বিটের অবস্থান
|
বিবরন
|
TF1
|
7
|
টাইমার ১ যদি ওভার ফ্লো হয় সেজন্য ফ্লাগ। ডাটা সেট এবং ক্লিয়ার হার্ডওয়ারের মাধ্যমে করা হয়।
|
TR1
|
6
|
টাইমার ১ এর কন্ট্রোল বিট চালনা করে। টাইমার ১ অন হবে যখন TR1 = 1 এবং বন্ধ হবে যখন TR1=0
|
TF0
|
5
|
টাইমার 0 যদি ওভার ফ্লো হয় সেজন্য ফ্লাগ। ডাটা সেট এবং ক্লিয়ার হার্ডওয়ারের মাধ্যমে করা হয়।
|
TR0
|
4
|
টাইমার ০ এর কন্ট্রোল বিট চালনা করে। টাইমার ০ অন হবে যখন TR0 = 1 এবং বন্ধ হবে যখন TR0=0
|
IE1
|
3
|
ইন্টারাপ্ট নং ১ এর এডজ নির্ধারনের ফ্লাগ। ডাটা সেট এবং ক্লিয়ার হার্ডওয়ারের মাধ্যমে করা হয়।
|
IT1
|
2
|
ইন্টারাপ্ট নং ১ এর জন্য IT1 = 1 প্রর্দশন করে ইন্টারাপ্টটি নিচের এডজ এ আছে এবং IT1 = 0 প্রর্দশন করে ইন্টারাপ্টটি লো লেভেলে আছে।
|
IE0
|
1
|
ইন্টারাপ্ট নং ০ এর এডজ নির্ধারনের ফ্লাগ। ডাটা সেট এবং ক্লিয়ার হার্ডওয়ারের মাধ্যমে করা হয়।
|
IT0
|
0
|
ইন্টারাপ্ট নং ০ এর জন্য IT0 = 1 প্রর্দশন করে ইন্টারাপ্টটি নিচের এডজ এ আছে এবং IT0 = 0 প্রর্দশন করে ইন্টারাপ্টটি লো লেভেলে আছে।
|
No comments