সুচিপত্র:

AT89C2051 এর সাথে 8051 প্রোগ্রামিং এর ভূমিকা (অতিথি অভিনীত: Arduino): 7 টি ধাপ (ছবি সহ)
AT89C2051 এর সাথে 8051 প্রোগ্রামিং এর ভূমিকা (অতিথি অভিনীত: Arduino): 7 টি ধাপ (ছবি সহ)

ভিডিও: AT89C2051 এর সাথে 8051 প্রোগ্রামিং এর ভূমিকা (অতিথি অভিনীত: Arduino): 7 টি ধাপ (ছবি সহ)

ভিডিও: AT89C2051 এর সাথে 8051 প্রোগ্রামিং এর ভূমিকা (অতিথি অভিনীত: Arduino): 7 টি ধাপ (ছবি সহ)
ভিডিও: Interfacing DAC with 8051 Microcontroller 2024, নভেম্বর
Anonim
AT89C2051 এর সাথে 8051 প্রোগ্রামিং এর ভূমিকা (অতিথি অভিনীত: Arduino)
AT89C2051 এর সাথে 8051 প্রোগ্রামিং এর ভূমিকা (অতিথি অভিনীত: Arduino)

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 সংগ্রহস্থল:

প্রস্তাবিত: