সুচিপত্র:
- ধাপ 1: প্রয়োজনীয়তা
- ধাপ 2: প্রোগ্রামার তৈরি করা
- ধাপ 3: প্রোগ্রামার সফটওয়্যার ইনস্টল করা
- ধাপ 4: চিপ প্রোগ্রামিং
- ধাপ 5: সমাবেশ
- ধাপ 6: কোড ব্যাখ্যা
- ধাপ 7: অতিরিক্ত সম্পদ
ভিডিও: AT89C2051 এর সাথে 8051 প্রোগ্রামিং এর ভূমিকা (অতিথি অভিনীত: Arduino): 7 টি ধাপ (ছবি সহ)
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:02
8051 (MCS-51 নামেও পরিচিত) 80 এর দশকের একটি MCU ডিজাইন যা আজও জনপ্রিয়। আধুনিক 8051- সামঞ্জস্যপূর্ণ মাইক্রোকন্ট্রোলারগুলি একাধিক বিক্রেতাদের কাছ থেকে, সমস্ত আকার এবং আকারে এবং বিস্তৃত পেরিফেরাল সহ উপলব্ধ। এই নির্দেশে আমরা Atmel থেকে AT89C2051 MCU দেখব।
AT89C2051 একটি ছোট (2Kbyte Flash, 128byte RAM), সস্তা (ch $ 1.40 প্রতি চিপ) মাইক্রোকন্ট্রোলার।
- 2.7-6V অপারেশন
- 15 I/O লাইন
- 2 টাইমার (16 বিট)
- অভ্যন্তরীণ এবং বাহ্যিক বাধা
- UART
- অন-চিপ এনালগ তুলনাকারী
- 24MHz ঘড়ি সহ 2MIPS পর্যন্ত
ধাপ 1: প্রয়োজনীয়তা
প্রয়োজনীয়তা:
- লিনাক্স পিসি (প্রয়োজনীয় সফ্টওয়্যার: Arduino IDE, git, make, sdcc)
- আরডুইনো ইউএনও
- AT89C2051 চিপ (DIP20 প্যাকেজ)
- 20-পিন ZIF সকেট
- Optocoupler (বিশেষত MOSFET- আউটপুট)
- Arduino প্রোটোটাইপিং ieldাল
- 12V পাওয়ার সাপ্লাই
- 5V পাওয়ার সাপ্লাই
- 16MHz স্ফটিক অসিলেটর
- 2x 30pF ক্যাপাসিটর
- 100nF ক্যাপাসিটর
- ডায়োড (যেমন: 1N400X)
- প্রতিরোধক (1 কে, 3 কে 3)
- প্রোটোবোর্ড
- জাম্পার
- তামার তার
প্রয়োজনীয় সফ্টওয়্যার চেক করুন:
কোন পাইথন 3
কোনটি sdcc কোন git তৈরি করে
ধাপ 2: প্রোগ্রামার তৈরি করা
এই বিভাগটি সংক্ষিপ্ত হবে, কারণ আমি কিছুদিন আগে আমার প্রোগ্রামিং শিল্ড তৈরি করেছি। আমি একত্রিত বোর্ডের পরিকল্পিত এবং ছবি সংযুক্ত করেছি। পরিকল্পনার পিডিএফ সংগ্রহস্থলে পাওয়া যাবে।
আপনাকে প্রোগ্রামার বোর্ড প্রোগ্রাম করতে হবে:
1. সংগ্রহস্থল ক্লোন করুন।
গিট ক্লোন
2. Arduino IDE তে AT89C2051_programmer/AT89_prog/AT89_prog.ino ফাইলটি খুলুন।
3. Arduino IDE থেকে স্কেচ তৈরি এবং আপলোড করুন।
ধাপ 3: প্রোগ্রামার সফটওয়্যার ইনস্টল করা
1. একটি পাইথন ভার্চুয়াল পরিবেশ তৈরি করুন।
python3 -m venv venv
। venv/bin/সক্রিয় করুন
2. at89overlord ইনস্টল করুন। at89overlord আমার লেখা AT89C2051 চিপের জন্য একটি ওপেন সোর্স প্রোগ্রামার। এর সোর্স কোড এখানে পাওয়া যাবে।
পিপ ইনস্টল at89overlord
3. ইনস্টলেশন যাচাই করুন।
at89overlord -h
ধাপ 4: চিপ প্রোগ্রামিং
1. একটি সহজ পলক প্রকল্প ক্লোন।
সিডি
git clone https://github.com/piotrb5e3/hello-8051.git cd hello-8051/
2. অ্যাপ্লিকেশন তৈরি করুন।
তৈরি করা
3. পিসিতে Arduino সংযুক্ত করুন, 12V সরবরাহ সংযোগ করুন, AT89C2051 চিপটি ZIF সকেটে রাখুন।
4. Arduino এর সিরিয়াল পোর্ট খুঁজুন।
ls /dev /tty*
5. চিপে নির্মিত IntelHex ফাইল আপলোড করুন। যদি আপনার Arduino এর পোর্ট /dev /ttyACM0 থেকে আলাদা হয় তাহলে আপনাকে -p কমান্ড লাইন প্যারামিটার দিয়ে সঠিক মান পাস করতে হবে।
at89overlord -f./hello.ihx
ধাপ 5: সমাবেশ
পরিকল্পিত অনুযায়ী সার্কিট একত্রিত করুন। একটি পিডিএফ সংস্করণ সংগ্রহস্থলে পাওয়া যাবে।
আপনার প্রায় 0.5Hz ফ্রিকোয়েন্সি সহ সবুজ LED ফ্ল্যাশ দেখতে হবে।
ধাপ 6: কোড ব্যাখ্যা
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
আমরা sdcc থেকে AT89X051 হেডার অন্তর্ভুক্ত করে শুরু করি। এতে রেজিস্টারের সাথে যোগাযোগের জন্য ম্যাক্রো রয়েছে যেন তারা ভেরিয়েবল। আমরা stdint.h অন্তর্ভুক্ত করি যার মধ্যে uint8_t এবং uint16_t পূর্ণসংখ্যার সংজ্ঞা রয়েছে।
// অনুমান করা হচ্ছে অসিলেটর 16MHz
#সংজ্ঞা INTERRUPTS_PER_SECOND 5208
টাইমার 0 উপচে পড়লে একটি বাধা ঘটে। এটি একটি একক 8 বিট টাইমার হিসাবে কনফিগার করা হয়েছে, তাই এটি প্রতি 2^8 প্রসেসর চক্রের মধ্যে ঘটে। একটি প্রসেসর চক্র 12 ঘড়ি চক্র নেয়, এবং এইভাবে আমরা 16000000/12/2^8 = 5208.33333 এ পৌঁছাই।
উদ্বায়ী uint8_t led_state = 0;
volatile uint16_t timer_counter = INTERRUPTS_PER_SECOND;
আমরা নেতৃত্বাধীন রাষ্ট্রীয় নিয়ন্ত্রণ ঘোষণা করি এবং পাল্টা ভেরিয়েবলকে বাধাগ্রস্ত করি।
void Timer0_ISR (void) _interrupt (1) {
timer_counter--; if (timer_counter == 0) {led_state =! led_state; timer_counter = INTERRUPTS_PER_SECOND; }}
প্রতিবার টাইমার 0 উপচে পড়লে কাউন্টার হ্রাস পায়। যদি এটি শূন্যের সমান হয় তবে এটি পুনরায় সেট করা হয় এবং নেতৃত্বাধীন অবস্থা পরিবর্তন করা হয়। এটি প্রতি সেকেন্ডে প্রায় একবার ঘটে, যার ফলে Hz 0.5Hz LED ঝলকানি ফ্রিকোয়েন্সি হয়।
int main () {
TMOD = 0x3; // টাইমার মোড - 8 বিট, কোন প্রেসকলার নেই। freq = OSCFREQ/12/2^8 TL0 = 0; // সাফ কাউন্টার TH0 = 0; // পরিষ্কার নিবন্ধন TR0 = 1; // চালানোর জন্য টাইমার সেট করুন। ET0 = 1; // সেট ইন্টারাপ্ট। ইএ = 1; // বিশ্বব্যাপী বাধা সেট করুন যখন (1) {যদি (led_state) {P1 = 0xFF; } অন্যথায় {P1 = 0x00; }}}
আমরা টাইমার মডিউল কনফিগার করি এবং নেতৃত্বাধীন রাজ্য নিয়ন্ত্রণ ভেরিয়েবলের পরিবর্তনের জন্য অপেক্ষা করি। TMOD হল টাইমার মোড নিয়ন্ত্রণ রেজিস্টার। TL0 এবং TH0 হল Timer0 কন্ট্রোল রেজিস্টার। ET0 হল টাইমার কন্ট্রোল রেজিস্টারে (TCON) Enable-timer0 বিট। TR0 এবং EA ইন্টারাপ্ট এনাবল রেজিস্টারে (IE) বিট।
ধাপ 7: অতিরিক্ত সম্পদ
- AT89C2051 ডেটশীট:
- ছোট ডিভাইস সি কম্পাইলার (sdcc):
- 8051 সম্পদ:
- AT89C2051 প্রোগ্রামার সংগ্রহস্থল:
- হ্যালো -8051 সংগ্রহস্থল:
প্রস্তাবিত:
ATtiny85 পরিধানযোগ্য কম্পন কার্যকলাপ ট্র্যাকিং ওয়াচ এবং প্রোগ্রামিং ATtiny85 Arduino Uno এর সাথে: 4 টি ধাপ (ছবি সহ)
ATtiny85 Warable Vibrating Activity Tracking Watch & Programming ATtiny85 Arduino Uno দিয়ে: কিভাবে পরিধানযোগ্য কার্যকলাপ ট্র্যাকিং ঘড়ি তৈরি করবেন? এটি একটি পরিধানযোগ্য গ্যাজেট যা স্পন্দনের জন্য ডিজাইন করা হয়েছে যখন এটি স্থিরতা সনাক্ত করে। আপনি কি আমার মতো বেশিরভাগ সময় কম্পিউটারে কাটান? আপনি কি না বুঝে ঘন্টার পর ঘন্টা বসে আছেন? তারপর এই ডিভাইসটি f
অতিথি বুক ক্যামেরা: 4 টি ধাপ
অতিথি বই ক্যামেরা: আপনারা অনেকেই জানেন, বিয়েতে অনেক পরিশ্রম লাগে। বর ভালভাবে জানে যে তার বাগদত্তা এবং তিনি অত্যন্ত ব্যস্ত থাকবেন, বিশেষ দিনে তাদের অতিথিদের সাথে থাকার জন্য তিনি এমনকি ধন্যবাদ দিতে পারবেন না। এই দিনে প্রচুর বিবাহ অনুষ্ঠিত হয়, কনে
আপনার Arduino এর সাথে প্রোগ্রামিং চিপস - AVR ISP কভারিং ATTiny85, ATTiny2313 এবং ATMega328: 3 ধাপ
আপনার Arduino এর সাথে প্রোগ্রামিং চিপস - AVR ISP কভারিং ATTiny85, ATTiny2313 এবং ATMega328: আমি এটি অনেক বছর আগে একটি খসড়া হিসাবে খুঁজে পেয়েছি। এটি এখনও আমার জন্য কমপক্ষে দরকারী তাই আমি এটি প্রকাশ করতে যাচ্ছি! এটি AVR মাইক্রোকোর প্রোগ্রামিং কভার করে
Elechouse V3 এবং Arduino এর সাথে ভয়েস রিকগনিশন এর ভূমিকা: 4 টি ধাপ (ছবি সহ)
Elechouse V3 এবং Arduino- এর সাথে ভয়েস রিকগনিশনের ভূমিকা: হাই! … গত কয়েক বছর ধরে ভয়েস রিকগনিশন প্রযুক্তি এখানে রয়েছে। প্রথম সিরি সক্ষম আইফোনের সাথে কথা বলার সময় আমাদের যে দারুণ উত্তেজনা ছিল তা এখনও মনে আছে। তারপর থেকে, ভয়েস কমান্ড ডিভাইসগুলি খুব উন্নত স্তরে পরিণত হয়েছে
VB স্ক্রিপ্টের ভূমিকা: একটি শিক্ষানবিশ গাইড: পার্ট 2: ফাইলগুলির সাথে কাজ করা: 13 টি ধাপ
VB স্ক্রিপ্টের ভূমিকা: একটি প্রারম্ভিক গাইড: পার্ট 2: ফাইলগুলির সাথে কাজ করা: ভাল আমার শেষ VBScript নির্দেশের মধ্যে, আমি Xbox360 চালানোর জন্য আপনার ইন্টারনেট বন্ধ করার জন্য একটি স্ক্রিপ্ট তৈরি করতে গিয়েছিলাম। আজ আমার একটা ভিন্ন সমস্যা আছে। আমার কম্পিউটার এলোমেলো সময়ে বন্ধ হয়ে যাচ্ছে এবং আমি প্রতিবার কম্পিউটার লগ ইন করতে চাই