4. প্রোগ্রামিং 8051/8052 mcu


4.1 Programming 8051 – আমাদের প্রথম 8051/8052 প্রোগ্রাম:

এখন আমরা আমাদের প্রথম 8051/8052 প্রোগ্রামটি লিখব।

programming 8051/52

  • পূর্ব নির্ধারিত পদ্ধতিতে Keil uVision এ আমরা FirstProj প্রোজেক্টটি তৈরি করে তার মধ্যে Test.c ফাইলটি তৈরি/ওপেন করি।
  • Keil uVision এ কোডটি লিখে Project –> Build Target মেনু অপসনের সাহায্যে প্রোগ্রামটি কম্পাইল করা হল।
  • কোন প্রোগ্রাম এরর(Error) না থাকলে FirstProj.hex ফাইলটি নির্দিষ্ট আউটপুট ফোল্ডারে তৈরি হবে।
  • এই hex ফাইলটি আমরা আমাদের MCU তে আপলোড করব।

4.2 Programming 8051 – 8051/52 MCU কে কার্যকরী করার জন্য প্রয়োজনীয় সার্কিটঃ

Sample 8051 Circuit

Figure 29

4.3 Programming 8051 – 8051/52 মাইক্রোকন্ট্রোলারে .hex ফাইল আপলোড

Keil uVision এ আমরা যে .hex ফাইলটি তৈরি করেছি সেটি আমরা এখন আমাদের মাইক্রোকন্ট্রোলারে আপলোড করব। Keil uVision এ প্রোগ্রাম কোডটি লেখার পর প্রোগ্রামটি কম্পাইল করা হল এবং .hex ফাইল তৈরি করা হল। এই .hex ফাইলটি মাইক্রোকন্ট্রোলারে আপলোড করতে হবে। এই .hex ফাইলটি মাইক্রোকন্ট্রোলারে আপলোড করার জন্য অর্থাৎ মাইক্রোকন্ট্রোলারটি বার্ণিং করার জন্য আমাদের একটি বহিরাগত হার্ড ওয়ার ডিভাইসের সাহায্য নিতে হবে। এর সাথে আমরা আমাদের পার্সোনাল কম্পিউটরে MS Windows অপারেটিং সিস্টেম ব্যবহার করতে পারি। MS Windows সিস্টেমে 8051/52 মাইক্রোকন্ট্রোলারে রাইট করার জন্য আমরা যে হার্ডওয়ার ডিভাইসটি ব্যবহার করেছি সেটি হল  Vegarobokits হতে প্রাপ্ত 8051/52 বার্ণার ডিভাইস SP200S চিপ প্রোগ্রামার। আমাদের পার্সোনাল কম্পিউটার যাতে এই SP200S বার্ণার ডিভাইসটিকে শনাক্ত করতে পারে তার জন্য SP200S USB driver আমাদের কম্পিউটরে ইনস্টল করতে হবে। ড্রাইভারটি এবং ড্রাইভার ইন্টারফেস WLPRO সফটওয়ারটি Vegarobokits বার্ণার ডিভাইসের সাথে প্রাপ্ত CD হতে প্রাপ্ত। এই ড্রাইভার ইন্টারফেস সফটওয়ারটি এবং sp200s ড্রাইভার সফটওয়ারটি Windows কম্পিউটরের জন্য এই www.vegarobokit.comওয়েবসাইট থেকে download যোগ্য।
Vegarobokits এর USB বর্নার ডিভাইস ছাড়াও 8051/52 বার্ণিং এর জন্য আমরা অপর যেকোনো গ্রহণ যোগ্য ফ্লাশ প্রোগ্রামার ডিভাইস ব্যবহার করতে পারি। এবং সেটিকে পরিচালনা করার জন্য যেকোনো গ্রহণ যোগ্য ফ্লাস প্রোগ্রামার সফ্টওয়ারও ব্যবহার করা যেতে পারে। Google সার্চ ইঞ্জিনের মাধ্যমে এগুলি আমরা ডাউনলোড করতে পারি।
Willar সফ্টওয়ারটি ইনস্টল করার পর Vegarobokits বার্ণার ডিভাইসটিকে USB কেবল এর মাধ্যমে পার্সোনাল কম্পিউটরের সাথে যুক্ত করতে হবে। বার্ণার ডিভাইসটির সাথে কম্পিউটরের সঠিক সংযোগ স্থাপিত হলে  Vegarobokits এর ইনডিকেটর লেডটি জ্বলে উঠবে। এবার 8051/52 মাইক্রোকন্ট্রোলারটিকে Vegarobokits বার্ণারের সাথে যুক্ত করতে হবে। 8051/52 মাইক্রোকন্ট্রোলার প্রোগ্রামিং এর ক্ষেত্রে আমরা ISP প্রোগ্রামিং মোড এর সাহায্য নেব। ISP বা In System Programming মোডে মাইক্রোকন্ট্রোলারটিকে সার্কিট বোর্ডে উপবিষ্ট বা মাউন্ট অবস্থায় প্রোগ্রামিং করা যায়। 
8051/52 মাইক্রোকন্ট্রোলারকে ISP প্রোগ্রামিং করার জন্য 8051/52 এর 6 টি পিন নির্দিষ্ট থাকে। পিন গুলি হল Vcc(পাওয়ার  পিন), Gnd( গ্রাউন্ড পিন ), MOSI(Master Out Slave In, 8051/52 এর P1.5 পিন), MISO( Master In Slave Out, 8051/52 এর P1.6 পিন), RST( 8051/52 মাইক্রোকন্ট্রোলারের বাম দিকের 9 নম্বর পিন), SCK( 8051/52 মাইক্রোকন্ট্রোলারের P1.7 পিন).

প্রদত্ত সার্কিটটি প্রথমে আমরা একটি ব্রেড বোর্ডের( Bread Board) উপরে বাস্তবায়িত করব।

4.4  LED ব্লিঙ্কিং প্রোগ্রামটি বাস্তবায়িত করার জন্য প্রয়োজনীয় উপকরণ
১। ব্রেড বোর্ড
২। 7805 IC
৩। 8051/52 মাইক্রোকন্ট্রোলার
৪।  33 pf ক্যাপাসিটর
৫। 10 K ohm রেজিসট্যান্স(রোধ)
৬। 11. 0592 MHz ক্রিস্টাল
৭। 9 V ব্যাটারি
৮। কানেক্টিং ওয়ার
৯। 10 uf ক্যাপাসিটর
১০। led 5 V.

১১। প্রোগ্রামিং হার্ড ওয়ার( such as one from Vegarobokits )
১২। প্রোগ্রামিং সফ্ট ওয়ার(  such as from Willar sp200s)
১৩। পার্সোনাল কম্পিউটর
১৪। কানেক্টিং USB কেবল( প্রোগ্রামিং কিটকে কম্পিউটরের সঙ্গে যুক্ত করার জন্য)

১৫। ISP কেব্‌ল

4.5 SP200S বার্ণার ডিভাইসঃ

sp200s burner

Figure 30

  • সার্কিট অনুযায়ী 8051 মাইক্রোকন্ট্রোলারকে যুক্ত করা হল।
  • 8051 এর  P1.5, P1.6, P1.7, RST পিন(পিন 9), Vcc (পিন 40), GND(পিন 20) কে ISP কেবলের যথাক্রমে MOSI, MISO, SCK, RESET, VDD এবং GND পিনের সাথে যুক্ত করা হল।
  • উপরের চিত্র বা ইমেজটিতে মাইক্রোকন্ট্রোলারটি একটি PCBতে যুক্ত (mount) আছে।  এবং ISP প্রোগ্রামিংয়ের জন্য একটি সকেটের মাধ্যমে VCC, MOSI, MISO, SCK, RST, GND পিন গুলি sp200s বার্ণারের নির্দিষ্ট ISP সকেটের সাথে যুক্ত আছে।
  • আমরা যখন কোন ব্রেড-বোর্ডে আমাদের সার্কিটটি টেস্ট করব তখন 8051/52 এর P1.5(পিন 6), P1.6(পিন 7), P1.7(পিন 8), RST (পিন 9), Vcc (পিন 40), GND(পিন 20) পিনগুলিকে ISP কেবলের সাথে সিঙ্গেল থ্রেড তারের (single thread wire) মাধ্যমে যথাক্রমে MOSI, MISO, SCK, RESET, VDD এবং GND পিনের সঙ্গে যুক্ত করব।

4.6 ISP Programming 8051 – কেবল এর VCC, MOSI, MISO, SCK, RESET, GND পয়েন্ট গুলি চিহ্নিত করার উপায়ঃ

Figure 31
Figure 32
Figure 33
  • উপরের চিত্র গুলি থেকে দেখতে পাচ্ছি যে ISP কেবলের যে প্রান্তে লাল বর্ডার আছে সেই প্রান্তটি ISP সকেটের ১ম পিন নির্দেশ করে।
  • মাইক্রোকন্ট্রোলারটি ব্রেড বোর্ডে মাউন্ট অবস্থায় MOSI, MISO, SCK, RST, VCC, GND পিনগুলি ( এই পিন-গুলি আগেই নির্দেশ করা হয়েছে) সিঙ্গল থ্রেডেড ওয়ারের( single threaded wire) সাহায্যে ISP কেবলের পিন হোলের সাথে সংযুক্ত করব।
  • চিত্রানুযায়ী দেখতে পাচ্ছি যে ১ম পিনটি অর্থাৎ লাল প্রান্তের দিকে প্রথম পিনটি অবশ্যই ৮০৫১/৫২ এর MOSI পিনকে নির্দেশ করছে।

মাইক্রোকন্ট্রোলারটি ব্রেড বোর্ডে মাউন্ট অবস্থায় 6 টি সিঙ্গল থ্রেডেড তারের সাহায্যে SP200S বার্ণারের ISP কেবলের সাথে সংযুক্ত করার সময়ে বিশেষ সতর্কতা অবলম্বন করতে হবে। কানেকশন সঠিক না হলে বার্ণিং প্রক্রিয়া সফল হবে না। সিঙ্গল থ্রেডেড তারের সাহায্যে ISP কেবলের সাথে সংযোগগুলি নীচে দেখানো হলঃ

Figure 34
Figure 35

4.7 Programming 8051 – Willar বার্ণার সফটওয়ারের ব্যবহারঃ

এবার আমরা 8051 কে প্রোগ্রাম করব। এর জন্য প্রথমে 8051 এর ব্যাটারি কানেকশন ছিন্ন করতে হবে। 8051 এর প্রোগ্রামিং পিন গুলি ISP কেবলের মাধ্যমে কম্পিউটরের সাথে যুক্ত থাকায় 8051 এ প্রয়োজনীয় তড়িৎ শক্তি সঞ্চারিত হবে। এবার ডেস্কটপ থেকে willar সফ্ট ওয়ারটিকে ওপেন করতে হবে

Figure 36

এখানে প্রথমেই আমরা দেখব সফটওয়ার উইন্ডোটির নীচে ডানদিকের কোনে Online Mode এর ইনডিকেটরটি গ্লো করছে কিনা। Online Mode এর ইন্ডিকেটরটি গ্লো করলে বুঝব যে বার্ণার ডিভাইসের সাথে কম্পিউটরের সংযোগ সঠিক আছে।এবার নির্দিষ্ট উইন্ডোতে মাইক্রোকন্ট্রোলারটির মডেল নাম্বার সিলেক্ট করতে হবে। এক্ষেত্রে আমাদের 8051 এর মডেল নাম্বার হল AT89S51, ম্যানুফ্যাকচারার Atmel.

Figure 37

মাইক্রোকন্ট্রোলারের নির্দিষ্ট ম্যানুফ্যাকচারার নাম ও মডেল নাম্বার সিলেক্ট করার পর নির্দিষ্ট স্থানে OK করতে হবে।

এবার Keil uVision এ আমরা যে .hex ফাইলটি তৈরি করেছিলাম সেই ফাইলটি willar সফ্ট ওয়ারের নির্দিষ্ট উইন্ডো থেকে সিলেক্ট করব। এর জন্য আমরা প্রথমে Load বাটনে ক্লিক করব।

Figure 38

এবার Open বাটনে ক্লিক করলেই .hex ফাইলটি সিলেক্ট হবে এবং নীচের উইন্ডোটি ওপেন হবেঃ

Figure 39

নির্দিষ্ট স্থানে OK করলে হেক্স ফাইলটি প্রোগ্রাম বাফারে লোড হবে এবং রঙিন Load File Successful প্রম্পট দেখতে পাব। এবার Auto বাটনে ক্লিক করলেই হেক্স ফাইলটি মাইক্রোকন্ট্রোলারে আপলোড হতে শুরু করবে।

Figure 40

আমাদের হেক্স ফাইল মাইক্রোকন্ট্রোলারে আপলোড হয়েছে কিনা আমরা তা নির্দিষ্ট প্রম্পটের মাধ্যমে জানতে পারব।

Figure 41

4.8 Programming 8051 – সংক্ষেপে  .hex ফাইল MCU তে আপলোডঃ
১। ৮০৫১/৫২ বোর্ডের ব্যাটারি কানেকশন ছিন্ন করতে হবে।
২। বোর্ডটিকে প্রোগ্রামিং হার্ড ওয়ার কিটের( এক্ষেত্রে Vegarobokit এর SP200S প্রোগ্রামিং ডিভাইস) ISP কেবলের সাথে যুক্ত করা হল(MOSI, MISO, SCK, RST, VCC, GND)। 
৩। SP200S প্রোগ্রামার ডিভাইসটিকে USB কেবলের সাহায্যে কম্পিউটরের সাথে যুক্ত করা হল। 
৪। প্রোগ্রামার ডিভাইসে রেড লেড জ্বললে বুঝব আমাদের ডিভাইস রেডি।
৫। willar সফ্ট ওয়ারকে ওপেন করলে আমরা ডিভাইস Online সিম্বল দেখতে পাব। willar সফ্ট ওয়ারের নির্দিষ্ট উইন্ডোতে আমরা মাইক্রোকন্ট্রোলারের মডেল নাম্বার ও  .hex ফাইলের নাম ও স্থান সিলেক্ট করলাম এবং যথাস্থানে OK করলাম।
৬। এবার “Auto” বাটন প্রেস করলাম।

আমাদের  .hex কোড মাইক্রোকন্ট্রোলারে আপলোড হয়ে যাবে। Message লাইনে Success দেখা যাবে।  .hex ফাইল আপলোডিং Failure  হলে আমাদের ISP কানেকশন( MOSI,MISO,SCK, RESET, VCC, GND) চেক করতে হবে। ISP কানেকশন সঠিক থাকলে, willar সফ্ট ওয়ার  Online থাকলে এবং সঠিক মডেল নাম্বার ও .hex ফাইল সিলেক্ট করলে আপলোডিং বা বার্ণিং প্রসেস অবশ্যই Successful হবে।