সুচিপত্র:
- ধাপ 1: অন্তর্দৃষ্টি
- ধাপ 2: পোর্ট আরম্ভ
- ধাপ 3: আল্ট্রা লো পাওয়ার
- ধাপ 4: টাইমার
- ধাপ 5: লো পাওয়ার মোড
- ধাপ 6: ISR- টাইমার
- ধাপ 7: হার্ডওয়্যার ইন্টারাপ্ট
- ধাপ 8: ISR- রিসেট/ পুশ বোতাম
- ধাপ 9: কোড
- ধাপ 10: রেফারেন্স কোড
ভিডিও: MSP430 সেকেন্ডের কাউন্টার: 10 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:01
স্বাগত! সেকেন্ড কাউন্টার তৈরি করা: প্রকল্পের জন্য CCStudio 8 এবং MSP430F5529 ব্যবহার করা।
মাইক্রো কন্ট্রোলার কোড করার জন্য C ভাষা। লো পাওয়ার মোড, টাইমার এবং ইন্টারাপ্ট প্রয়োগ করা হচ্ছে আউটপুট 7 সেগমেন্টের মাধ্যমে প্রদর্শিত হয়।
ধাপ 1: অন্তর্দৃষ্টি
চল শুরু করি!
ওয়াচডগ টাইমারের জন্য প্রয়োজনীয় পাসওয়ার্ড ব্যবহার করে ওয়াচডগ টাইমার বন্ধ অবস্থায় চালু করুন (এটি প্রসেসরকে নিরাপদ রেখে অসীম লুপগুলি পরীক্ষা করতে সাহায্য করে)।
#অন্তর্ভুক্ত
/** * main.c */
int প্রধান (শূন্য)
{
WDTCTL = WDTPW | WDTHOLD; // স্টপ ওয়াচডগ টাইমার
রিটার্ন 0;
}
ধাপ 2: পোর্ট আরম্ভ
{
P3DIR = 0xFF; // P3DIR = 0x00;
P6DIR = 0xFF;
P4DIR | = 0x00;
P4REN | = 0xFF;
P4OUT | = 0xFF;
}
P3DIR | = 0x00 আমাদের বলে যে সম্পূর্ণ PORT-3 ইনপুট নিতে শুরু হয়।
P3DIR | = 0xFF আমাদের বলে যে পুরো PORT-3 আউটপুট দিতে শুরু হয়।
P3DIR | = 0x01 শুধুমাত্র P3.0 পিনটি PORT-3 এ আউটপুট শুরু হয়। এটি একটি হেক্সাডেসিমাল পোর্ট ম্যাপিং অনুসরণ করে।
P4REN | = 0xFF, এটি ইঙ্গিত করে যে PORT-4 এর পিনগুলি তাদের পুল আপ/ডাউন প্রতিরোধক সক্ষম করেছে।
Pull OU বা POW DOWN এর মধ্যে তাদের নির্বাচন করার জন্য, নির্দেশ P $ OUT | = 0xFF ব্যবহার করা হয়।
যদি 0xFF ব্যবহার করা হয় তবে তারা পুল ইউপি প্রতিরোধক হিসাবে কনফিগার করে এবং যদি 0x00 তারা পুল ডাউন হিসাবে কনফিগার করে।
ধাপ 3: আল্ট্রা লো পাওয়ার
MSP430F5529 আমাদের প্রসেসর থেকে পাওয়ার লস কমাতে দেয়। এটি স্বতন্ত্র অ্যাপ্লিকেশনগুলিতে দরকারী।
এটি সমস্ত পিন বা পোর্টকে আউটপুটে ঘোষণার আহ্বান জানায়।
{
P7DIR | = 0xFF;
P6DIR | = 0xFF;
P5DIR | = 0xFF;
P4DIR | = 0xFF;
P3DIR | = 0xFF;
P2DIR | = 0xFF;
P1DIR | = 0xFF;
}
ধাপ 4: টাইমার
এক সেকেন্ডের বিলম্ব প্রজন্মের জন্য টাইমারের ব্যবহার। এটি 1MHz এর SMCLK ব্যবহার করে, এছাড়াও লো পাওয়ার মোডে টাইমার চলে (পরবর্তী ধাপে, এলপিএম থেকে তার গণনার পরে)। এই প্রক্রিয়াটি প্রসেসরের শক্তি এবং বোঝা বাঁচায়
TA0CCTL0 = CCIE;
TA0CCR0 = 999;
TA0CTL = TASSEL_2 + MC_1;
মান 999, কারণ টাইমার রেজিস্টারে শূন্যে ফিরতে আরও একটি গণনা লাগে।
ধাপ 5: লো পাওয়ার মোড
_BIS_SR (LPM0_bits+GIE);
এটি জেনারেল ইন্টারাপ্ট এনাবল (GIE) সক্ষম করে, এবং CPU কে LPM0 তে রাখে, যেখানে MCLK যে cpu সমর্থন করে, এবং SMCLK এবং ACLK চালায় যা টাইমারকে সচল রাখে। তাই আমরা দেখতে পাচ্ছি CPU বন্ধ আছে, সেখানে বিদ্যুৎ সাশ্রয় করে।
ধাপ 6: ISR- টাইমার
#প্রাগমা ভেক্টর = TIMER0_A0_VECTOR
_ বিরতিহীন অকার্যকর টাইমার_এ (অকার্যকর)
{
z ++;
যদি (z> বিলম্ব)
{
P3OUT = কোড [x];
P6OUT = code1 [y];
x ++;
যদি (x == 10)
{
x = 0;
y ++;
}
যদি (y == 6)
y = 0;
z = 0;
}
}
প্রগমা ভেক্টর সি এমবিডিতে আইএসআর প্রতিনিধিত্বের জন্য।
কোড [x] এবং কোড 1 [y] হল এমন অ্যারে যা 60 সেকেন্ডের কাউন্টার প্রদর্শনের জন্য দুটি সাতটি অংশের আউটপুট মান ধারণ করে।
ধাপ 7: হার্ডওয়্যার ইন্টারাপ্ট
P2DIR = 0x00;
P2REN = 0x02;
P2OUT = 0x02;
P2IE | = BIT1;
P2IES | = বিআইটি 1;
P2IFG & = ~ BIT1;
এখানে P2.1 কে হার্ডওয়্যার ইন্টারাপ্ট হিসেবে ঘোষণা করা হয়, যদি বোতাম টিপে থাকে, কাউন্টারটি ভ্যালুতে রিসেট হয়।
এই বিরতির ISR এর ভিতরে বাকি প্রোগ্রাম লেখা আছে।
ধাপ 8: ISR- রিসেট/ পুশ বোতাম
#pragma ভেক্টর = PORT2_VECTOR
_ বিরতিহীন শূন্য পোর্ট ২ (অকার্যকর)
{
P2IFG & = ~ BIT1;
x = 0; y = 0;
P3OUT = কোড [x];
P6OUT = code1 [y];
v ++;
জন্য (i = 0; i
{
P1OUT | = BIT0; //P1.0 = টগল
_ বিলম্ব_চক্র (1048576);
P1OUT & = ~ BIT0; // P1.0 = টগল
_ বিলম্ব_চক্র (1048576);
}
এই ISR কাউন্টারটি পুনরায় সেট করে, এবং বিশ্রামটি কতবার চাপানো হয়েছিল তার হিসাব রাখে।
(এখানে LED টগলের মাধ্যমে ডিসপ্লে তৈরি করা হয়, 7 সেগমেন্টে আউটপুট হিসাবে সেই মানগুলি দেখানোর জন্য অন্য অ্যারে এবং টাইমার ব্যবহার করতে পারে)।
ধাপ 9: কোড
#অন্তর্ভুক্ত
#বিলম্ব 1000 নির্ধারণ করুন
চার কোড = {0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0, 0xFE, 0xE6};
char code1 = {0x7E, 0x30, 0x6D, 0x79, 0x33, 0x5B};
উদ্বায়ী স্বাক্ষরবিহীন int x = 0, y = 0, z = 0;
উদ্বায়ী স্বাক্ষরবিহীন int v = 0, i = 0;
অকার্যকর প্রধান ()
{
WDTCTL = WDTPW | WDTHOLD; // স্টপ ওয়াচডগ টাইমার
P7DIR | = 0xFF;
P7OUT | = 0x00;
P8DIR | = 0xFF;
P8OUT | = 0x00;
P4DIR | = 0xFF;
P4OUT | = 0x00;
P5DIR | = 0xFF;
P5OUT | = 0x00;
P1DIR = 0xFF;
P3DIR = 0xFF;
P6DIR = 0xFF;
P2DIR = 0x00;
P2REN = 0x02;
P2OUT = 0x02;
P2IE | = BIT1;
P2IES | = বিআইটি 1;
P2IFG & = ~ BIT1;
TA0CCTL0 = CCIE;
TA0CCR0 = 999;
TA0CTL = TASSEL_2 + MC_1;
_BIS_SR (LPM0_bits+GIE);
}
// টাইমার A0 বিঘ্নিত পরিষেবা রুটিন
#প্রাগমা ভেক্টর = TIMER0_A0_VECTOR
_ বিরতিহীন অকার্যকর টাইমার_এ (অকার্যকর)
{
z ++;
যদি (z> বিলম্ব)
{
P3OUT = কোড [x];
P6OUT = code1 [y];
x ++;
যদি (x == 10)
{
x = 0;
y ++;
}
যদি (y == 6)
y = 0;
z = 0;
}
}
// হার্ডওয়্যার ইন্টারাপ্ট সার্ভিস রুটিন
#pragma ভেক্টর = PORT2_VECTOR
_ বিরতিহীন শূন্য পোর্ট ২ (অকার্যকর)
{
P2IFG & = ~ BIT1;
x = 0;
y = 0;
P3OUT = কোড [x];
P6OUT = code1 [y];
v ++;
জন্য (i = 0; i
{P1OUT | = BIT0; // P1.0 = টগল
_ বিলম্ব_চক্র (1048576);
P1OUT & = ~ BIT0; // P1.0 = টগল
_ বিলম্ব_চক্র (1048576);
}
}
ধাপ 10: রেফারেন্স কোড
গিটহাব রিপোজিটরি
প্রস্তাবিত:
এলসিডি সহ 5০৫১ এবং আইআর সেন্সর ব্যবহার করে ভিজিটর কাউন্টার: Ste টি ধাপ
এলসিডি সহ ভিজিটর কাউন্টার 8051 এবং আইআর সেন্সর ব্যবহার করে: প্রিয় বন্ধুরা, আমি ব্যাখ্যা করেছি কিভাবে 8051 এবং আইআর সেন্সর ব্যবহার করে ভিজিটর কাউন্টার তৈরি করা যায় এবং এটি এলসিডিতে প্রদর্শিত হয়। 8051 হল অন্যতম জনপ্রিয় মাইক্রোকন্ট্রোলার যা সারা বিশ্বে শখ, বাণিজ্যিক অ্যাপ্লিকেশন তৈরিতে ব্যবহৃত হয়। আমি একটি দৃশ্য তৈরি করেছি
CMOS ফ্রিকোয়েন্সি কাউন্টার: 3 টি ধাপ
সিএমওএস ফ্রিকোয়েন্সি কাউন্টার: এটি অন্তর্ভুক্ত পিডিএফ এবং ফটোগুলির একটি গাইড যা আমি কীভাবে আলাদা যুক্তির বাইরে মজা করার জন্য আমার নিজের ফ্রিকোয়েন্সি কাউন্টার ডিজাইন করেছি। আমি কিভাবে সার্কিট শুয়োর বানালাম বা কিভাবে তারে বাঁধবো সে সম্পর্কে আমি বিস্তারিতভাবে বলব না কিন্তু স্কিম্যাটিকস KICAD এ তৈরি করা হয়েছে যা বিনামূল্যে নরম
Arduino ব্যবহার করে সহজ ফ্রিকোয়েন্সি কাউন্টার: 6 টি ধাপ
Arduino ব্যবহার করে সহজ ফ্রিকোয়েন্সি কাউন্টার: এই টিউটোরিয়ালে আমরা শিখব কিভাবে Arduino ব্যবহার করে একটি সাধারণ ফ্রিকোয়েন্সি কাউন্টার তৈরি করতে হয়। ভিডিওটি দেখুন
মাইক্রোবিট রুম অকুপেন্সি কাউন্টার এবং কন্ট্রোলার: 4 টি ধাপ
মাইক্রোবিট রুম অকুপেন্সি কাউন্টার এবং কন্ট্রোলার: মহামারীর সময়, ভাইরাসের সংক্রমণ কমানোর একটি উপায় হল মানুষের মধ্যে শারীরিক দূরত্ব বাড়ানো। কক্ষ বা দোকানে, যেকোনো সময়ে কতজন লোক ঘিরে রাখা স্থানে আছে তা জানা সহায়ক হবে। এই প্রকল্পটি একজোড়া ব্যবহার করে
TinkerCad- এ Arduino ব্যবহার করে ভিজিটর কাউন্টার: 3 টি ধাপ
TinkerCad- এ Arduino ব্যবহার করে ভিজিটর কাউন্টার: অনেক সময় আমাদের সেমিনার হল, কনফারেন্স রুম বা শপিং মল বা মন্দিরের মতো কোথাও যাওয়া ব্যক্তি/মানুষদের পর্যবেক্ষণ করতে হয়। এই প্রকল্পটি যে কোন কনফারেন্স রুম বা সেমিনারের ভিতরে প্রবেশ করা দর্শকদের সংখ্যা গণনা এবং প্রদর্শন করতে ব্যবহার করা যেতে পারে