ইলেক্ট্রনিক গ্যাজেটগুলি বিকাশের জন্য সফ্টওয়্যার ক্ষেত্রে এম্বেডেড সি সর্বাধিক জনপ্রিয় প্রোগ্রামিং ভাষা। প্রতিটি প্রসেসর এম্বেড থাকা সফ্টওয়্যারটির সাথে সম্পর্কিত। এম্বেডেড সি প্রোগ্রামিং প্রসেসরের নির্দিষ্ট কার্য সম্পাদনে প্রধান ভূমিকা পালন করে। আমাদের প্রতিদিনের জীবনে আমরা প্রায়শই অনেকগুলি ইলেকট্রনিক ডিভাইস যেমন ওয়াশিং মেশিন, মোবাইল ফোন, ডিজিটাল ক্যামেরা ব্যবহার করি যা এমবেডেড সি দ্বারা প্রোগ্রাম করা মাইক্রোকন্ট্রোলারের উপর ভিত্তি করে কাজ করবে C.
এম্বেড সিস্টেম প্রোগ্রামিং
লিখিত সি কোডটি আরও নির্ভরযোগ্য, পোর্টেবল এবং স্কেলযোগ্য এবং বাস্তবে বোঝার পক্ষে অনেক সহজ। প্রথম এবং সর্বাগ্রে সজ্জিত সরঞ্জাম হ'ল এমবেডড সফ্টওয়্যার যা এম্বেড থাকা সিস্টেমের ক্রিয়াকলাপটি স্থির করে। এম্বেডেড সি প্রোগ্রামিং ভাষাটি প্রায়শই মাইক্রোকন্ট্রোলারদের প্রোগ্রামিংয়ের জন্য ব্যবহৃত হয়।
এম্বেডেড সি প্রোগ্রামিং টিউটোরিয়াল (8051)
প্রোগ্রামটি লেখার জন্য এম্বেডড ডিজাইনারদের অবশ্যই নির্দিষ্ট প্রসেসর বা নিয়ন্ত্রণকারীদের হার্ডওয়্যার সম্পর্কে পর্যাপ্ত জ্ঞান থাকতে হবে কারণ এম্বেড করা সি প্রোগ্রামিং একটি সম্পূর্ণ হার্ডওয়্যার সম্পর্কিত প্রোগ্রামিং কৌশল।
প্রোগ্রামিং টিউটোরিয়াল
এর আগে এসেম্বলি স্তরের প্রোগ্রামিং ব্যবহার করে অনেক এম্বেড অ্যাপ্লিকেশন তৈরি করা হয়েছিল। তবে তারা সি, সিওবিওএল এবং পাসকালের মতো বিভিন্ন উচ্চ-স্তরের ভাষার আবির্ভাবের সাথে এই সমস্যাটি কাটিয়ে উঠতে পোর্টাবিলিটি সরবরাহ করেনি। যাইহোক, এটি সি ভাষাই এর পক্ষে ব্যাপক গ্রহণযোগ্যতা পেয়েছিল এম্বেড থাকা সিস্টেম অ্যাপ্লিকেশন বিকাশ , এবং এটি এখনও অবিরত রয়েছে।
এম্বেড সিস্টেম
এম্বেড থাকা সিস্টেমটি এম্বেডড সি প্রোগ্রামিং সফ্টওয়্যার এবং হার্ডওয়্যার অংশের সংমিশ্রণ হিসাবে সংজ্ঞায়িত করা হয় মূলত মাইক্রোকন্ট্রোলার সমন্বিত থাকে এবং এটি নির্দিষ্ট কাজটি সম্পাদন করার উদ্দেশ্যে তৈরি হয়। এই ধরণের এমবেডেড সিস্টেমগুলি আমাদের প্রতিদিনের জীবনে যেমন ওয়াশিং মেশিন এবং ভিডিও রেকর্ডার, রেফ্রিজারেটর ইত্যাদিতে ব্যবহৃত হচ্ছে। এম্বেড থাকা সিস্টেমটি প্রথমে 8051 মাইক্রোকন্ট্রোলার দ্বারা প্রবর্তিত হয়েছিল।
এম্বেড সিস্টেম
8051 মাইক্রোকন্ট্রোলারের পরিচিতি
8051 মাইক্রোকন্ট্রোলার একটি মৌলিক মাইক্রোকন্ট্রোলার, এটি প্রথম ১৯ Inte০ সাল থেকে ‘ইন্টেল কর্পোরেশন’ প্রবর্তন করে It এটি ৮০8686 প্রসেসরের আর্কিটেকচার দ্বারা বিকাশিত। 8051 হ'ল মাইক্রোকন্ট্রোলারের একটি পরিবার, যা ফিলিপস, অটমেল, ডলস ইত্যাদির মতো বিভিন্ন নির্মাতারা তৈরি করেছেন। 8051 মাইক্রোকন্ট্রোলার ছোট বাচ্চাদের খেলনা থেকে শুরু করে বৃহত স্বয়ংচালিত সিস্টেমে প্রচুর এমবেডড পণ্য ব্যবহৃত হয়েছে।
8051 মাইক্রোকন্ট্রোলার
8051 মাইক্রোকন্ট্রোলারটি 8-বিট ‘সিআইএসসি’ আর্কিটেকচার । এটিতে স্মৃতি, সিরিয়াল যোগাযোগ, বাধা, ইনপুট / আউটপুট পোর্ট এবং টাইমার / কাউন্টারগুলি থাকে যা একটি একক ইন্টিগ্রেটেড চিপে তৈরি করা হয়, যা পেরিফেরাল ডিভাইসগুলি ইন্টারফেস করে এটি নিয়ন্ত্রণ করার জন্য প্রোগ্রাম করা হয়। প্রোগ্রামটি মাইক্রোকন্ট্রোলারের র্যামে সংরক্ষিত থাকে তবে প্রোগ্রামটি লেখার আগে আমাদের অবশ্যই র্যাম সম্পর্কে সচেতন হতে হবে সংগঠন মাইক্রোকন্ট্রোলার এর।
এম্বেডেড সিস্টেম প্রোগ্রামিং: বুনিয়াদি ঘোষণা
প্রতিটি ফাংশন একটি নির্দিষ্ট কাজ সম্পাদন করে এমন স্টেটমেন্টগুলির সংকলন এবং এক বা একাধিক ফাংশন সংগ্রহকে প্রোগ্রামিং ল্যাঙ্গুয়েজ বলে। প্রতিটি ভাষাতে কিছু মৌলিক উপাদান এবং ব্যাকরণগত নিয়ম থাকে। সি ল্যাঙ্গুয়েজ প্রোগ্রামিংটি অক্ষর সেট, ভেরিয়েবল, ডেটা ধরণের, ধ্রুবক, কীওয়ার্ডস, এক্সপ্রেশন এবং আরও একটি সি প্রোগ্রাম লিখতে ব্যবহৃত সঙ্গে কাজ করতে ডিজাইন করা হয়েছে। এই সমস্ত শিরোনাম ফাইল বা লাইব্রেরি ফাইলের অধীনে বিবেচনা করা হয় এবং এটি হিসাবে প্রদর্শিত হয়
# অন্তর্ভুক্ত
এম্বেডেড সি প্রোগ্রামিং ডেভেলপমেন্ট
সি ভাষার সম্প্রসারণকে এম্বেডড সি প্রোগ্রামিং ল্যাঙ্গুয়েজ বলা হয়। উপরের তুলনায়, সি ভাষায় এম্বেড করা প্রোগ্রামিংতে কিছু অতিরিক্ত বৈশিষ্ট্য রয়েছে যেমন ডেটা টাইপ এবং কীওয়ার্ড এবং শিরোনাম ফাইল বা লাইব্রেরি ফাইল হিসাবে উপস্থাপিত হয়
# অন্তর্ভুক্ত
এম্বেড করা সি অতিরিক্ত কীওয়ার্ড
- sbit
- বিট
- এসএফআর
- অস্থির
- ম্যাক্রো সংজ্ঞায়িত
'এসবিট' মাইক্রোকন্ট্রোলারের একক পিন ঘোষণার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, এলইডি P0.1 পিনের সাথে সংযুক্ত, এটি সরাসরি পোর্ট পিনে মান প্রেরণ করার পরামর্শ দেওয়া হয় না, প্রথমে, প্রোগ্রামের যে কোনও জায়গায় ব্যবহার করার পরে আমাদের অন্য পর্বের সাথে পিনটি ঘোষণা করতে হবে।
সিনট্যাক্স: sbit a = P0 ^ 1 // ভেরিয়েবলের সাথে সংশ্লিষ্ট পিনটি ঘোষণা করে //
a = 0x01 // পোর্ট পিনে মান প্রেরণ করুন //
'বিট' ভেরিয়েবলের স্থিতি পরীক্ষা করার জন্য ব্যবহৃত হয়।
সিনট্যাক্স: বিট সি // বিট ভেরিয়েবল ঘোষণা করে //
c = a // সি ভ্যারিয়েবলের জন্য একটি মান নির্ধারিত হয় //
যদি (সি == 1) // শর্তটি সত্য বা মিথ্যা পরীক্ষা করুন //
{
… ..
……
}
'এসএফআর' কীওয়ার্ডটি অন্য নামে এসএফআর নিবন্ধগুলিতে অ্যাক্সেস করতে ব্যবহৃত হয়। এসএফআর নিবন্ধক হিসাবে সংজ্ঞায়িত বিশেষ ফাংশন রেজিস্টার , এতে ঠিকানা নির্দেশ করে সমস্ত পেরিফেরিয়ালি সম্পর্কিত রেজিস্টার রয়েছে। এসএফআর নিবন্ধকে এসএফআর কীওয়ার্ড দ্বারা ঘোষণা করা হয়। এসএফআর কীওয়ার্ড অবশ্যই মূল অক্ষরে থাকতে হবে।
সিনট্যাক্স: এসএফআর পোর্ট = 0x00 // 0x00 একটি পোর্ট0 ঠিকানা যা এটি পোর্ট ভেরিয়েবল দ্বারা ঘোষিত হয় //
পোর্ট = 0x01 // তারপরে পোর্ট0 এ মানটি প্রেরণ করুন //
বিলম্ব ()
পোর্ট = 0x00
বিলম্ব ()
এম্বেড থাকা সিস্টেম বিকাশে 'অস্থির' কীওয়ার্ডটি সবচেয়ে গুরুত্বপূর্ণ। অস্থায়ী কীওয়ার্ড মান সহ যে ভেরিয়েবলটি ঘোষণা করে তা অপ্রত্যাশিতভাবে পরিবর্তন করা যায়নি। এটি মেমরি-ম্যাপযুক্ত পেরিফেরিল রেজিস্টারগুলিতে ব্যবহার করা যেতে পারে, আইএসআর দ্বারা সংশোধিত গ্লোবাল ভেরিয়েবল। ডেটা প্রেরণ ও গ্রহণের জন্য অস্থায়ী কীওয়ার্ড ব্যবহার না করেই কোড ত্রুটি বা একটি অপ্টিমাইজেশন ত্রুটি ঘটবে।
সিনট্যাক্স: অস্থির int কে
ম্যাক্রো এমন একটি নাম যা এটি প্রাক-প্রসেসরের নির্দেশিকা হিসাবে স্টেটমেন্টগুলির ব্লকটিকে ঘোষণা করতে ব্যবহৃত হয়। যখনই নামটি ব্যবহৃত হয়, এটি ম্যাক্রোর সামগ্রীগুলি দ্বারা প্রতিস্থাপিত হয়। ম্যাক্রো # ডিফাইনকে প্রতিনিধিত্ব করে। পুরো পোর্ট পিনগুলি ম্যাক্রো দ্বারা সংজ্ঞায়িত করা হয়।
সিনট্যাক্স: # ডেফাইন ডেটা পো // পুরো পোর্টটি একটি ভেরিয়েবলের মাধ্যমে ঘোষণা করা হয়েছে //
ডেটা = 0x01 // ডেটা পোর্ট0 এ প্রেরণ //
বেসিক এম্বেডেড সি প্রোগ্রাম
মাইক্রোকন্ট্রোলার প্রোগ্রামিং প্রতিটি জন্য পৃথক হবে অপারেটিং সিস্টেমের ধরণ । যদিও অনেকগুলি অপারেটিং সিস্টেম বিদ্যমান রয়েছে যেমন লিনাক্স, উইন্ডোজ, আরটিওএস ইত্যাদি। তবে এম্বেড থাকা সিস্টেম বিকাশের জন্য আরটিওএসের বেশ কয়েকটি সুবিধা রয়েছে। এই নিবন্ধটি একটি 8051 মাইক্রোকন্ট্রোলার ব্যবহার করে এমবেডেড সি প্রোগ্রামিং বিকাশের জন্য বেসিক এম্বেডেড সি প্রোগ্রামিং সম্পর্কিত আলোচনা করেছে।
এম্বেড করা সি প্রোগ্রামিং পদক্ষেপ
- 8051 মাইক্রোকন্ট্রোলার ব্যবহার করে LED জ্বলজ্বলে
- 8051 মাইক্রোকন্ট্রোলার ব্যবহার করে 7-বিভাগের প্রদর্শনগুলিতে নম্বর প্রদর্শন
- 8051 মাইক্রোকন্ট্রোলার ব্যবহার করে টাইমার / কাউন্টার গণনা এবং প্রোগ্রাম
- সিরিয়াল যোগাযোগ গণনা এবং 8051 মাইক্রোকন্ট্রোলার ব্যবহার করে প্রোগ্রাম
- 8051 মাইক্রোকন্ট্রোলার ব্যবহার করে বাধা প্রোগ্রামগুলি
- 8051 মাইক্রোকন্ট্রোলার ব্যবহার করে কীপ্যাড প্রোগ্রামিং
- 8051 মাইক্রোকন্ট্রোলার সহ এলসিডি প্রোগ্রামিং
8051 মাইক্রোকন্ট্রোলার ব্যবহার করে LED জ্বলজ্বলে
এলইডি একটি সেমিকন্ডাক্টর ডিভাইস যা বেশিরভাগ অ্যাপ্লিকেশনে ব্যবহৃত হয়, বেশিরভাগ ইঙ্গিতের উদ্দেশ্যে। পরীক্ষার সময় বিভিন্ন পর্যায়ে ফলাফলের বৈধতা যাচাইয়ের জন্য সূচক হিসাবে এটি বিশাল আকারের অ্যাপ্লিকেশনগুলি সন্ধান করছে। এগুলি খুব সস্তা এবং সহজেই বিভিন্ন আকার, রঙ এবং আকারে পাওয়া যায়। এলইডি ডিজাইন করতে ব্যবহৃত হয় বার্তা প্রদর্শন বোর্ড এবং ট্র্যাফিক নিয়ন্ত্রণ সংকেত লাইট ইত্যাদি। এখানে এলইডিগুলি 8051 মাইক্রোকন্ট্রোলারের PORT0 এর সাথে ইন্টারফেস করা হয়।
8051 মাইক্রোকন্ট্রোলার ব্যবহার করে LED জ্বলজ্বলে
1. 01010101
10101010
# অন্তর্ভুক্ত // শিরোনাম ফাইল //
অকার্যকর মূল () // প্রোগ্রাম কার্যকরকরণের স্ট্যাট পয়েন্ট //
{
স্বাক্ষরবিহীন int // // টাইপ টাইপ //
(1) // অবিচ্ছিন্ন লুপের জন্য //
{
P0 = 0x55 // পোর্ট0 এ হেক্সা মান প্রেরণ করুন //
(i = 0i) এর জন্য<30000i++) //normal delay//
P0 = 0x3AA // পোর্ট0 এ হেক্সা মান প্রেরণ করুন //
(i = 0i) এর জন্য<30000i++) //normal delay//
}
}
2.00000001
00000010
00000100
।
।
10,000,000
# অন্তর্ভুক্ত
অকার্যকর প্রধান ()
{
স্বাক্ষরবিহীন i
স্বাক্ষরবিহীন চর জে, খ
যখন (1)
{
P0 = 0x01
খ = পি 0
(জে -0 জেজে)<3000j++)
(j = 0 জে) জন্য<8j++)
{
খ = খ<<1
পি 0 = খ
(জে -0 জেজে)<3000j++)
}
}
}
3. 00001111
11110000
# অন্তর্ভুক্ত
অকার্যকর প্রধান ()
{
স্বাক্ষরবিহীন i
যখন (1)
{
P0 = 0x0F
(জে -0 জেজে)<3000j++)
P0 = 0xF0
(জে -0 জেজে)<3000j++)
}
}
4.00000001
00000011
00000111
।
।
11111111
# অন্তর্ভুক্ত
অকার্যকর প্রধান ()
{
স্বাক্ষরবিহীন i
স্বাক্ষরবিহীন চর জে, খ
যখন (1)
{
P0 = 0x01
খ = পি 0
(জে -0 জেজে)<3000j++)
(j = 0 জে) জন্য<8j++)
0x01
পি 0 = খ
(জে -0 জেজে)<3000j++)
}
}
8051 মাইক্রোকন্ট্রোলার ব্যবহার করে 7-বিভাগের প্রদর্শনগুলিতে নম্বর প্রদর্শন করা হচ্ছে
দ্য 7-বিভাগের প্রদর্শন মৌলিক বৈদ্যুতিন প্রদর্শন, যা সংখ্যার তথ্য প্রদর্শন করতে অনেক সিস্টেমে ব্যবহৃত হয়। এটি আটটি এলইডি নিয়ে গঠিত যা ক্রমানুসারে সংযুক্ত থাকে যাতে 0 থেকে 9 পর্যন্ত অঙ্কগুলি প্রদর্শিত হয়, যখন এলইডিগুলির সঠিক সংমিশ্রণগুলি চালু হয়। তারা একসাথে কেবল একটি অঙ্ক প্রদর্শন করতে পারে।
8051 মাইক্রোকন্ট্রোলার ব্যবহার করে 7-বিভাগের প্রদর্শনগুলিতে নম্বর প্রদর্শন করা হচ্ছে
1. চারটি 7 সেগমেন্টের ডিসপ্লেতে '0 থেকে এফ' নাম্বার ফর্মটি প্রদর্শন করতে ওয়াপ?
# অন্তর্ভুক্ত
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3
অকার্যকর প্রধান ()
{
স্বাক্ষরবিহীন এন [10] = {0 × 40,0xF9,0 × 24,0 × 30,0 × 19,0 × 12,0 × 02,0xF8,0xE00,0 × 10}
আপনাকে স্বাক্ষরযুক্ত, জে
a = b = c = d = 1
যখন (1)
{
(i = 0i) এর জন্য<10i++)
{
পি 2 = এন [আমি]
(j = 0 জে) জন্য<60000j++)
}
}
}
2. W সেগমেন্টের ডিসপ্লেতে ‘00 থেকে 10 ’পর্যন্ত নম্বর প্রদর্শন করতে ওয়াপ?
# অন্তর্ভুক্ত
sbit a = P3 ^ 0
sbit b = P3 ^ 1
শূন্য প্রদর্শন 1 ()
শূন্য প্রদর্শন 2 ()
অকার্যকর বিলম্ব ()
অকার্যকর প্রধান ()
{
স্বাক্ষরবিহীন এন [10] = {0 × 40,0xF9,0 × 24,0 × 30,0 × 19,0 × 12,0 × 02,0xF8,0xE00,0 × 10}
আপনাকে স্বাক্ষরযুক্ত, জে
ds1 = ds2 = 0
যখন (1)
{
এর জন্য (i = 0, i)<20i++)
প্রদর্শন 1 ()
প্রদর্শন 2 ()
}
}
শূন্য প্রদর্শন 1 ()
{
a = 1
খ = 0
পি 2 = এস [ডিএস 1]
বিলম্ব ()
a = 1
খ = 0
পি 2 = এস [ডিএস 1]
বিলম্ব ()
}
শূন্য প্রদর্শন 2 ()
{
ডিএস 1 ++
যদি (ডিএস 1> = 10)
{
ডিএস 1 = 0
ds2 ++
যদি (ডিএস 2> = 10)
{
ds1 = ds2 = 0
}
}
}
অকার্যকর বিলম্ব ()
{
স্বাক্ষরবিহীন কে
(কে = 0 কে।)<30000k++)
}
8051 মাইক্রোকন্ট্রোলার ব্যবহার করে টাইমার / কাউন্টার গণনা এবং প্রোগ্রাম
বিলম্ব হ'ল অ্যাপ্লিকেশন সফটওয়্যার বিকাশের অন্যতম গুরুত্বপূর্ণ কারণ। যাইহোক, টাইমর বিলম্ব বাস্তবায়নের জন্য এই সমস্যাটি কাটিয়ে উঠতে সাধারণ দেরি মূল্যবান ফল দেয় না। দ্য টাইমার এবং কাউন্টার মাইক্রোকন্ট্রোলারের হার্ডওয়্যার উপাদান, যা গণনা ডাল দিয়ে মূল্যবান সময় বিলম্ব করতে অনেক অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয় both দু'টি কাজই সফ্টওয়্যার প্রযুক্তি দ্বারা বাস্তবায়ন করা হয়।
টাইমার বিলম্ব
টিএএমএম 2 (টাইমার 1 এবং মোড 2) ব্যবহার করে 500 ডাবল টাইম বিলম্ব উত্পন্ন করতে ওয়াপ?
# অন্তর্ভুক্ত
অকার্যকর প্রধান ()
{
স্বাক্ষরবিহীন চর i
TMOD = 0x20 // টাইমার মোড সেট করুন //
(i = 0i) এর জন্য<2i++) //double the time daly//
{
টিএল 1 = 0x19 // সময় বিলম্ব সেট করুন //
TH1 = 0x00 x
টিআর 1 = 1 // টাইমার ওএন //
(TF1 == 0) // ফ্ল্যাগ বিটটি পরীক্ষা করুন //
টিএফ 1 = 0
}
TR1 = 0 // টাইমার বন্ধ //
}
সাধারণ লুপ বিলম্ব
অকার্যকর বিলম্ব ()
{
স্বাক্ষরবিহীন কে
(কে = 0 কে।)<30000k++)
}
8051 মাইক্রোকন্ট্রোলার ব্যবহার করে সিরিয়াল যোগাযোগ গণনা এবং প্রোগ্রাম
সিরিয়াল যোগাযোগ সাধারণত সংকেত প্রেরণ এবং গ্রহণের জন্য ব্যবহৃত হয়। 8051 মাইক্রোকন্ট্রোলার নিয়ে গঠিত ইউআরটি সিরিয়াল যোগাযোগ আরএক্স এবং টিএক্স পিনগুলি দ্বারা সংক্রমণিত এবং প্রাপ্ত সংকেতগুলি। ইউআরটি ডেটা বাইট নেয় এবং ক্রমিক পদ্ধতিতে পৃথক বিট প্রেরণ করে। নিবন্ধগুলি মেমরিতে ডেটা সংগ্রহ এবং সঞ্চয় করার একটি উপায়। ইউআআআটিটি একটি অর্ধ-দ্বৈত প্রোটোকল। হাফ-ডুপ্লেক্স অর্থ ডেটা ট্রান্সফার এবং গ্রহণ করা, তবে একই সাথে নয়।
8051 মাইক্রোকন্ট্রোলার ব্যবহার করে সিরিয়াল যোগাযোগ গণনা এবং প্রোগ্রাম
১. সিরিয়াল উইন্ডোতে ‘এস’ চরিত্রটি সঞ্চারিত করার জন্য ডাব্লিউএপি AP৯০০ বাউড রেট হিসাবে ব্যবহার করে?
28800 হ'ল 8051 মাইক্রোকন্ট্রোলারের সর্বোচ্চ বাড রেট
28800/9600 = 3
সেই বাউড রেট ‘3’ টাইমারগুলিতে সঞ্চিত রয়েছে
# অন্তর্ভুক্ত
অকার্যকর প্রধান ()
{
এসসিএন = 0x50 // ক্রমিক যোগাযোগ শুরু করুন //
TNOD = 0x20 // টাইমার মোড নির্বাচন করেছে //
TH1 = 3 // বাউড রেট লোড করুন //
টিআর 1 = 1 // টাইমার অন //
SBUF = ’S’ // রেজিস্টারে অক্ষর সংরক্ষণ করুন //
(টিআই == 0) // বিঘ্নিত রেজিস্টারটি পরীক্ষা করুন //
টিআই = 0
টিআর 1 = 0 // টাইমার বন্ধ //
(1) // ক্রমাগত লুপ //
}
২. হাইপারটার্মিনাল থেকে ডেটা গ্রহণ করতে এবং AP 00০০ টি বাউড ব্যবহার করে মাইক্রোকন্ট্রোলারের পোর্ট ০ তে সেই ডেটা প্রেরণে ডাব্লুএপি?
28800 হ'ল 8051 মাইক্রোকন্ট্রোলারের সর্বোচ্চ বাড রেট
28800/9600 = 3
সেই বাউড রেট ‘3’ টাইমারগুলিতে সঞ্চিত রয়েছে
# অন্তর্ভুক্ত
অকার্যকর প্রধান ()
{
এসসিএন = 0x50 // ক্রমিক যোগাযোগ শুরু করুন //
TMOD = 0x20 // টাইমার মোড নির্বাচন করেছে //
TH1 = 3 // বাউড রেট লোড করুন //
টিআর 1 = 1 // টাইমার অন //
পোর্টটি = এসবিইউএফ // এসবিইউএফ থেকে ডেটা পোর্ট0 এ প্রেরণ করুন //
(RI == 0) // বিঘ্নিত রেজিস্টারটি পরীক্ষা করুন //
আরআই = 0
টিআর 1 = 0 // টাইমার বন্ধ //
(1) // চরিত্রটি পাওয়ার পরে প্রোগ্রামটি বন্ধ করুন //
}
8051 মাইক্রোকন্ট্রোলার ব্যবহার করে বাধা প্রোগ্রামগুলি
বাধা হ'ল এমন একটি সংকেত যা বর্তমান প্রোগ্রামটি বন্ধ করতে এবং অন্য প্রোগ্রামটি অবিলম্বে সম্পাদন করতে বাধ্য করে। 8051 মাইক্রোকন্ট্রোলার 6 টি বাধা সরবরাহ করে যা অভ্যন্তরীণ এবং বাহ্যিক বাধা উত্স । যখন বিঘ্ন ঘটে তখন মাইক্রোকন্ট্রোলার বর্তমান কার্যটি বিরতি দেয় এবং আইএসআর কার্যকর করে বিঘ্নিত হয়ে উপস্থিত হয় তখন মাইক্রোকন্ট্রোলার সাম্প্রতিক কার্যটিতে ফিরে আসে।
ডাব্লু শিফট অপারেশন করার জন্য ডাব্লিউএপি যখন টাইমার 0 বিঘ্ন ঘটে তখন মূল ফাংশনে পি 0 এর জন্য বিঘ্নিত ক্রিয়াটি সম্পাদন করবেন?
# অন্তর্ভুক্ত
স্বাক্ষরবিহীন চর খ
অকার্যকর টাইমার0 () বাধা 2 // নির্বাচিত টাইমার0 বিঘ্নিত //
{
খ = 0x10
পি 1 = খ<<2
}
অকার্যকর প্রধান ()
{
স্বাক্ষরবিহীন চর a, i
IE = 0x82 // টাইমার 0 বাধাকে সক্ষম করুন //
টিএমওড = 0x01
টিএলও = 0 এক্সএফসি // বিঘ্নিত টাইমার //
TH1 = 0xFB
টিআর0 = 1
a = 0x00
যখন (1)
{
(i = 0i) এর জন্য<255i++)
{
a ++
পো = ক
}
}
}
8051 মাইক্রোকন্ট্রোলার ব্যবহার করে কীপ্যাড প্রোগ্রামিং
ম্যাট্রিক্স কীপ্যাড একটি এনালগ স্যুইচিং ডিভাইস, যা ব্যবহারকারীর প্রয়োজনীয় কাজগুলি সম্পাদনের অনুমতি দেওয়ার জন্য অনেক এমবেডেড অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয়। ক ম্যাট্রিক্স কিপ্যাড সারি এবং কলামগুলিতে ম্যাট্রিক্স ফর্ম্যাটে স্যুইচগুলির ব্যবস্থা রয়েছে। সারি এবং কলামগুলি মাইক্রোকন্ট্রোলারের সাথে এমনভাবে সংযুক্ত থাকে যে স্যুইচগুলির সারি একটি পিনের সাথে সংযুক্ত থাকে এবং প্রতিটি কলামের স্যুইচগুলি অন্য পিনের সাথে সংযুক্ত থাকে, তারপরে ক্রিয়াকলাপগুলি সম্পাদন করে।
8051 মাইক্রোকন্ট্রোলার ব্যবহার করে কীপ্যাড প্রোগ্রামিং
1. সুইচ টিপে এলইডি টগল করতে ওয়াপ
# অন্তর্ভুক্ত
sbit a = P3 ^ 0
sbit b = P3 ^ 1
sbit c = P3 ^ 2
sbit d = P3 ^ 3
অকার্যকর বিলম্ব ()
অকার্যকর প্রধান ()
{
যখন (1)
{
a = 0
খ = 1
সি = 1
d = 1
বিলম্ব ()
a = 1
খ = 0
সি = 1
d = 1
অকার্যকর বিলম্ব ()
{
স্বাক্ষরবিহীন চর i
TMOD = 0x20 // টাইমার মোড সেট করুন //
(i = 0i) এর জন্য<2i++) //double the time daly//
{
টিএল 1 = 0x19 // সময় বিলম্ব সেট করুন //
TH1 = 0x00 x
টিআর 1 = 1 // টাইমার ওএন //
(TF1 == 0) // ফ্ল্যাগ বিটটি পরীক্ষা করুন //
টিএফ 1 = 0
}
TR1 = 0 // টাইমার বন্ধ //
}
২. কীপ্যাডে কী টিপুন 1 টি দিয়ে এলইডি অন স্যুইচ করুন?
# অন্তর্ভুক্ত
sbit r1 = P2 ^ 0
sbit c1 = P3 ^ 0
sbit LED = P0 ^ 1
অকার্যকর প্রধান ()
{
r1 = 0
যদি (সি 1 == 0)
{
LED = 0xff
}
}
৩. কিপ্যাডে সংশ্লিষ্ট কী টিপে সাতটি বিভাগে 0,1,2,3,4,5 নম্বরটি প্রদর্শন করতে WAP?
# অন্তর্ভুক্ত
sbit r1 = P2 ^ 0
sbit c1 = P3 ^ 0
sbit r2 = P2 ^ 0
sbit c2 = P3 ^ 0
sbit a = P0 ^ 1
অকার্যকর প্রধান ()
{
r1 = 0 a = 1
যদি (সি 1 == 0)
{
a = 0xFC
}
যদি (সি 2 == 0)
{
a = 0x60
}
যদি (সি 3 == 0)
{
a = 0xDA
}
যদি (সি 4 == 0)
{
a = 0xF2
}
}
8051 মাইক্রোকন্ট্রোলার সহ এলসিডি প্রোগ্রামিং
দ্য LCD প্রদর্শন একটি বৈদ্যুতিন ডিভাইস, যা প্রায়শই অনেকগুলি অ্যাপ্লিকেশনে কোনও পাঠ্য বা চিত্র বিন্যাসে তথ্য প্রদর্শনের জন্য ব্যবহৃত হয়। এলসিডি হ'ল একটি প্রদর্শন যা সহজেই তার স্ক্রিনে অক্ষর প্রদর্শন করতে পারে। এলসিডি ডিসপ্লেতে 8-ডেটা লাইন এবং 3-নিয়ন্ত্রণ লাইন রয়েছে যা মাইক্রোকন্ট্রোলারের সাথে ইন্টারফেস করতে ব্যবহৃত হয়।
8051 মাইক্রোকন্ট্রোলার সহ এলসিডি প্রোগ্রামিং
এলইডি ডিসপ্লেতে 'ইডজিএফএক্স কিটস' প্রদর্শন করতে ওয়াপ?
# অন্তর্ভুক্ত
# নির্ধারিত কাম পি 0
voidlcd_initi ()
voidlcd_dat (স্বাক্ষরবিহীন চর)
voidlcd_cmd (স্বাক্ষরবিহীন চর)
অকার্যকর বিলম্ব ()
অকার্যকর প্রদর্শন (স্বাক্ষরবিহীন চর * গুলি, স্বাক্ষরবিহীন চর আর)
sbitrs = পি 2 ^ 0
sbitrw = পি 2 ^ 1
sbit at = P2 ^ 2
অকার্যকর প্রধান ()
{
lcd_initi ()
lcd_cmd (0x80)
বিলম্ব (100)
lcd_cmd (0xc0)
প্রদর্শন ('এজেফেক্স কিটস', 11)
যখন (1)
}
অকার্যকর প্রদর্শন (স্বাক্ষরবিহীন চর * গুলি, স্বাক্ষরবিহীন চর আর)
{
স্বাক্ষরবিহীন
(ডাব্লু = 0 ডাব্লু)
lcd_data (গুলি [w])
}
}
voidlcd_initi ()
{
lcd_cmd (0 × 01)
বিলম্ব (100)
lcd_cmd (0 × 38)
বিলম্ব (100)
lcd_cmd (0 × 06)
বিলম্ব (100)
lcd_cmd (0x0c)
বিলম্ব (100)
}
voidlcd_dat (স্বাক্ষরবিহীন চর ডেটা)
{
চিরুনি = যে
আরএস = 1
rw = 0
ইন = 1
বিলম্ব (100)
ইন = 0
}
}
voidlcd_cmd (স্বাক্ষরবিহীন চর সেন্টিমিটার)
{
এসেছিল = সেমি
আরএস = 0
rw = 0
ইন = 1
বিলম্ব (100)
ইন = 0
}
অকার্যকর বিলম্ব (স্বাক্ষরবিহীন int এন)
{
স্বাক্ষরবিহীন a
(a = 0a) এর জন্য
আশা করি এই নিবন্ধটি উদাহরণস্বরূপ কয়েকটি প্রোগ্রাম সহ 8051 মাইক্রোকন্ট্রোলার ব্যবহার করে এমবেডেড সিস্টেম প্রোগ্রামিং সম্পর্কে একটি প্রাথমিক তথ্য দেয়। বিস্তারিত এম্বেড এম সি প্রোগ্রামিং টিউটোরিয়াল জন্য দয়া করে নীচের মন্তব্য বিভাগে আপনার মন্তব্য এবং প্রশ্ন পোস্ট করুন।