विषयसूची:
- चरण 1: अंतर्दृष्टि
- चरण 2: पोर्ट आरंभीकरण
- चरण 3: अल्ट्रा लो पावर
- चरण 4: टाइमर
- चरण 5: लो पावर मोड
- चरण 6: ISR- टाइमर
- चरण 7: हार्डवेयर इंटरप्ट
- चरण 8: ISR- रीसेट / पुश बटन
- चरण 9: कोड
- चरण 10: संदर्भ कोड
वीडियो: MSP430 सेकंड काउंटर: 10 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
स्वागत! सेकेंड काउंटर बनाना: प्रोजेक्ट के लिए CCStudio 8 और MSP430F5529 का उपयोग करना।
सी भाषा माइक्रो नियंत्रक को कोड करने के लिए। लो पावर मोड, टाइमर और इंटरप्ट को लागू करना। आउटपुट को 7 सेगमेंट के माध्यम से प्रदर्शित किया जाता है।
चरण 1: अंतर्दृष्टि
चलो शुरू करें!
वॉचडॉग टाइमर के लिए आवश्यक पासवर्ड का उपयोग करके वॉचडॉग टाइमर को ऑफ स्टेट में प्रारंभ करें (यह प्रोसेसर को सुरक्षित रखते हुए अनंत लूप की जांच करने में मदद करता है)।
#शामिल
/** * main.c */
मुख्य अंतर (शून्य)
{
WDTCTL = WDTPW | डब्ल्यूडीथोल्ड; // वॉचडॉग टाइमर बंद करो
वापसी 0;
}
चरण 2: पोर्ट आरंभीकरण
{
P3DIR = 0xFF; // P3DIR = 0x00;
P6DIR = 0xFF;
पी4डीआईआर |=0x00;
P4REN | = 0xFF;
P4OUT | = 0xFF;
}
P3DIR | = 0x00 हमें बताता है कि इनपुट लेने के लिए पूरे PORT-3 को इनिशियलाइज़ किया गया है।
P3DIR | = 0xFF हमें बताता है कि आउटपुट देने के लिए पूरे PORT-3 को इनिशियलाइज़ किया गया है।
P3DIR |=0x01 केवल पिन P3.0 को PORT-3 में आउटपुट के लिए इनिशियलाइज़ किया गया है। यह एक हेक्साडेसिमल पोर्ट मैपिंग का अनुसरण करता है।
P4REN |=0xFF, यह इंगित करता है कि PORT-4 के पिनों में उनके पुल अप/डाउन रेसिस्टर्स सक्षम हैं।
पुल अप या पुल डाउन के बीच उन्हें चुनने के लिए, निर्देश P$OUT |=0xFF का उपयोग किया जाता है।
यदि 0xFF का उपयोग किया जाता है तो वे पुल यूपी प्रतिरोधों के रूप में कॉन्फ़िगर करते हैं और यदि 0x00 वे पुल डाउन के रूप में कॉन्फ़िगर करते हैं।
चरण 3: अल्ट्रा लो पावर
MSP430F5529 हमें प्रोसेसर से बिजली की कमी को कम करने की अनुमति देता है। यह स्टैंडअलोन अनुप्रयोगों में उपयोगी है।
यह आउटपुट के लिए सभी पिन या पोर्ट की घोषणा के लिए कहता है।
{
P7DIR |= 0xFF;
P6DIR |= 0xFF;
P5DIR |= 0xFF;
P4DIR |= 0xFF;
P3DIR |= 0xFF;
P2DIR |= 0xFF;
P1DIR |= 0xFF;
}
चरण 4: टाइमर
एक सेकंड की देरी पीढ़ी के लिए टाइमर का उपयोग। यह 1 मेगाहर्ट्ज के एसएमसीएलके का उपयोग करता है, टाइमर भी लो पावर मोड में चलता है (अगले चरण में, इसकी गिनती के बाद एलपीएम से बाधित)। यह प्रक्रिया प्रोसेसर पर बिजली और बोझ बचाती है
TA0CCTL0=CCIE;
TA0CCR0=999;
TA0CTL = TASSEL_2 + MC_1;
मान 999 है, क्योंकि टाइमर रजिस्टर में शून्य पर वापस जाने के लिए एक और गिनती की आवश्यकता होती है।
चरण 5: लो पावर मोड
_BIS_SR (LPM0_bits+GIE);
यह सामान्य व्यवधान सक्षम (GIE) को सक्षम करता है, और CPU को LPM0 पर रखता है, जहाँ MCLK जो cpu का समर्थन करता है, बंद है, और SMCLK और ACLK चलते हैं जो टाइमर को चालू रखता है। इसलिए हम देख सकते हैं कि सीपीयू बिजली की बचत करके वहां बंद है।
चरण 6: ISR- टाइमर
#pragma वेक्टर=TIMER0_A0_VECTOR
_ व्यवधान शून्य टाइमर_ए (शून्य)
{
जेड++;
अगर (जेड> देरी)
{
P3OUT = कोड [x];
P6OUT=code1[y];
एक्स++;
अगर (एक्स == 10)
{
एक्स = 0;
वाई++;
}
अगर (वाई == 6)
वाई = 0;
जेड = 0;
}
}
प्राग्मा वेक्टर सी एम्बीडी में आईएसआर प्रतिनिधित्व के लिए है।
कोड [x] और कोड 1 [y] ऐसे सरणियाँ हैं जिनमें 60 सेकंड के काउंटर को प्रदर्शित करने के लिए दो सात खंडों के आउटपुट मान होते हैं।
चरण 7: हार्डवेयर इंटरप्ट
P2DIR = 0x00;
P2REN = 0x02;
P2OUT = 0x02;
P2IE |=BIT1;
P2IES |=BIT1;
P2IFG &= ~BIT1;
यहां P2.1 को हार्डवेयर इंटरप्ट के रूप में घोषित किया गया है, यदि बटन दबाया जाता है, तो काउंटर मान पर रीसेट हो जाता है।
बाकी प्रोग्राम इस रुकावट के ISR के अंदर लिखा जाता है।
चरण 8: ISR- रीसेट / पुश बटन
#pragma वेक्टर=PORT2_VECTOR
_इंटरप्ट शून्य पोर्ट_2(शून्य)
{
P2IFG &=~BIT1;
एक्स = 0; वाई = 0;
P3OUT = कोड [x];
P6OUT=code1[y];
वी++;
के लिए(i=0;i
{
P1OUT |= BIT0; // पी 1.0 = टॉगल
_देरी_चक्र(1048576);
P1OUT &=~BIT0; // P1.0 = टॉगल
_देरी_चक्र(1048576);
}
यह ISR काउंटर को रीसेट करता है, और इस बात का हिसाब रखता है कि बाकी को कितनी बार दबाया गया।
(यहां डिस्प्ले एलईडी टॉगल के माध्यम से बनाया गया है, 7 सेगमेंट में आउटपुट के रूप में उन मानों को दिखाने के लिए एक और सरणी और टाइमर का भी उपयोग कर सकते हैं)।
चरण 9: कोड
#शामिल
#देरी को परिभाषित करें 1000
चार कोड = {0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0, 0xFE, 0xE6};
चार कोड1={0x7E, 0x30, 0x6D, 0x79, 0x33, 0x5B};
अस्थिर अहस्ताक्षरित int x=0, y=0, z=0;
अस्थिर अहस्ताक्षरित int v=0, i=0;
शून्य मुख्य ()
{
WDTCTL = WDTPW | डब्ल्यूडीथोल्ड; // वॉचडॉग टाइमर बंद करो
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 |=BIT1;
P2IFG &= ~BIT1;
TA0CCTL0=CCIE;
TA0CCR0=999;
TA0CTL = TASSEL_2 + MC_1;
_BIS_SR (एलपीएम0_बिट्स+जीआईई);
}
// टाइमर A0 इंटरप्ट सर्विस रूटीन
#pragma वेक्टर=TIMER0_A0_VECTOR
_ व्यवधान शून्य टाइमर_ए (शून्य)
{
जेड++;
अगर (जेड> देरी)
{
P3OUT = कोड [x];
P6OUT=code1[y];
एक्स++;
अगर (एक्स == 10)
{
एक्स = 0;
वाई++;
}
अगर (वाई == 6)
वाई = 0;
जेड = 0;
}
}
// हार्डवेयर इंटरप्ट सर्विस रूटीन
#pragma वेक्टर=PORT2_VECTOR
_इंटरप्ट शून्य पोर्ट_2(शून्य)
{
P2IFG &=~BIT1;
एक्स = 0;
वाई = 0;
P3OUT = कोड [x];
P6OUT=code1[y];
वी++;
के लिए(i=0;i
{P1OUT |= BIT0; // P1.0 = टॉगल
_देरी_चक्र(1048576);
P1OUT &=~BIT0; // P1.0 = टॉगल
_देरी_चक्र(1048576);
}
}
चरण 10: संदर्भ कोड
गिटहब रिपोजिटरी
सिफारिश की:
एलसीडी के साथ 8051 और आईआर सेंसर का उपयोग कर आगंतुक काउंटर: 3 कदम
एलसीडी के साथ 8051 और आईआर सेंसर का उपयोग कर विज़िटर काउंटर: प्रिय दोस्तों, मैंने बताया है कि 8051 और आईआर सेंसर का उपयोग करके विज़िटर काउंटर कैसे बनाया जाता है और इसे एलसीडी में प्रदर्शित किया जाता है। 8051 सबसे लोकप्रिय माइक्रोकंट्रोलर में से एक है जिसका उपयोग दुनिया भर में शौक, व्यावसायिक अनुप्रयोग बनाने के लिए किया जाता है। मैंने एक विज़ बनाया है
माइक्रोबिट रूम ऑक्यूपेंसी काउंटर और कंट्रोलर: 4 कदम
माइक्रोबिट रूम ऑक्यूपेंसी काउंटर और कंट्रोलर: महामारी के दौरान, वायरस के संचरण को कम करने का एक तरीका लोगों के बीच शारीरिक दूरी को अधिकतम करना है। कमरों या दुकानों में, यह जानना उपयोगी होगा कि किसी भी समय कितने लोग संलग्न स्थान में हैं। यह परियोजना एक जोड़ी का उपयोग करती है
स्वचालित कक्ष प्रकाश और द्विदिश आगंतुक काउंटर के साथ पंखे नियंत्रक: 3 कदम
स्वचालित कक्ष प्रकाश और द्विदिश आगंतुक काउंटर के साथ पंखा नियंत्रक: अक्सर हम स्टेडियम, मॉल, कार्यालय, कक्षा आदि में आगंतुक काउंटर देखते हैं। जब कोई अंदर नहीं होता है तो वे लोगों की गिनती कैसे करते हैं और प्रकाश को चालू या बंद कैसे करते हैं? आज हम यहां द्विदिश आगंतुक काउंटर के साथ स्वचालित कक्ष प्रकाश नियंत्रक परियोजना के साथ हैं
ताली स्विच (5 सेकंड में 40 ताली): 4 कदम (चित्रों के साथ)
क्लैप स्विच (5 सेकंड में 40 क्लैप्स): क्लैप स्विच में सर्किट के आउटपुट को रिले स्विच से जोड़कर किसी भी इलेक्ट्रिकल कंपोनेंट को चालू / बंद करने की क्षमता होती है। यहां हम बहुत अच्छी व्याख्या के साथ कुछ घटकों के साथ एक क्लैप स्विच बनाने जा रहे हैं। अन्य सभी ताली स्विच की तुलना में
सीडी/डीवीडी पर सभी डेटा को ५ सेकंड या उससे कम समय में समाप्त करें: ३ चरण
सीडी/डीवीडी पर 5 सेकंड या उससे कम समय में सभी डेटा को समाप्त करें विशेष बेडरूम समय को डीवीडी में बर्न कर दिया++ आपका पूर्व सीडी/डीवीडी वापस चाहता है।++एओएल डिस्क के साथ मज़ा!!!! ज़ोर - ज़ोर से हंसना