प्रदर्शन किसी भी एंबेडेड सिस्टम एप्लिकेशन का एक बहुत महत्वपूर्ण हिस्सा है क्योंकि यह उपयोगकर्ताओं को सिस्टम की स्थिति जानने में मदद करता है और सिस्टम द्वारा उत्पन्न आउटपुट या किसी चेतावनी संदेश को भी दिखाता है। इलेक्ट्रॉनिक्स में कई प्रकार के डिस्प्ले का उपयोग किया जाता है जैसे 7-सेगमेंट डिस्प्ले, एलसीडी डिस्प्ले, टीएफटी टचस्क्रीन डिस्प्ले, एलईडी डिस्प्ले आदि।
हम पहले से ही हमारे पिछले ट्यूटोरियल में ARM7-LPC2148 के साथ 16x2 एलसीडी इंटरफेज कर चुके हैं। आज इस ट्यूटोरियल में हम ARM7-LPC2148 के साथ 7-सेगमेंट डिस्प्ले को इंटरफेस करेंगे । विस्तार में जाने से पहले, हम देखेंगे कि किसी भी वर्ण को प्रदर्शित करने के लिए 7-खंड मॉड्यूल को कैसे नियंत्रित किया जाए।
7-सेगमेंट डिस्प्ले
संख्याओं और वर्णों को प्रदर्शित करने के लिए 7 सेगमेंट डिस्प्ले सबसे सरल प्रदर्शन इकाइयों में से हैं। इसका उपयोग आम तौर पर संख्याओं को प्रदर्शित करने के लिए किया जाता है और इसमें डॉट मैट्रिक्स डिस्प्ले की तुलना में उज्जवल रोशनी और सरल निर्माण होता है। और उज्जवल रोशनी के कारण, एलसीडी से आउटपुट को बड़ी दूरी से देखा जा सकता है। जैसा कि 7-सेगमेंट डिस्प्ले की उपरोक्त छवि में दिखाया गया है, इसमें 8 एलईडी शामिल हैं, प्रत्येक एलईडी का उपयोग यूनिट के एक सेगमेंट को रोशन करने के लिए किया जाता है और 8 एलईडी को 7 सेगमेंट के डिस्प्ले में रोशन करने के लिए उपयोग किया जाता है। 8LED का उपयोग तब किया जाता है जब दो या अधिक 7-खंड मॉड्यूल का उपयोग किया जाता है, उदाहरण के लिए (0.1) प्रदर्शित करने के लिए। एकल मॉड्यूल का उपयोग एकल अंक या चरित्र को प्रदर्शित करने के लिए किया जाता है। एक से अधिक अंक या वर्ण प्रदर्शित करने के लिए, कई 7-खंडों का उपयोग किया जाता है।
7-सेगमेंट डिस्प्ले के पिन
10 पिन हैं, जिसमें 8 पिन का उपयोग ए, बी, सी, डी, ई, एफ, जी और एच / डीपी को संदर्भित करने के लिए किया जाता है, दो मध्य पिन सभी एल ई डी के सामान्य एनोड / कैथोड हैं। इन आम एनोड / कैथोड को आंतरिक रूप से छोटा किया जाता है, इसलिए हमें केवल एक COM पिन कनेक्ट करना होगा
कनेक्शन के आधार पर हम 7-सेगमेंट को दो प्रकारों में वर्गीकृत करते हैं:
आम कैथोड
इसमें सभी 8 एल ई डी के सभी नेगेटिव टर्मिनल (कैथोड) एक साथ जुड़े हुए हैं (नीचे चित्र देखें), जिसका नाम COM है। और सभी सकारात्मक टर्मिनलों को अकेले छोड़ दिया जाता है या माइक्रोकंट्रोलर पिन से जुड़ा होता है। यदि हम माइक्रोकंट्रोलर का उपयोग करते हैं, तो हम विशेष को रोशन करने के लिए लॉजिक हाई सेट करते हैं और ऑफ एलईडी को चालू करने के लिए कम सेट करते हैं।
आम एनोड
इसमें सभी 8 एल ई डी के सभी सकारात्मक टर्मिनलों (एनोड्स) को एक साथ जोड़ा गया है, जिसका नाम COM है। और सभी नकारात्मक थर्मल अकेले या माइक्रोकंट्रोलर पिन से जुड़े होते हैं। यदि हम माइक्रोकंट्रोलर का उपयोग करते हैं, तो हम विशेष को रोशन करने के लिए लॉजिक सेट करते हैं और ऑफ लेड को बंद करने के लिए लॉजिक सेट करते हैं।
तो पिन मूल्य के आधार पर, एक विशेष खंड या 7 खंड की रेखा को वांछित संख्या या वर्णमाला प्रदर्शित करने के लिए चालू या बंद किया जा सकता है। उदाहरण के लिए 0 अंक प्रदर्शित करने के लिए हमें पिन ABCDEF को हाई और केवल G को LOW के रूप में सेट करना चाहिए । जैसे ABCDEF LED चालू हैं और G बंद है, यह 7-खंड मॉड्यूल में 0 अंक बनाता है । (यह आम कैथोड के लिए है, आम एनोड के लिए यह विपरीत है)।
नीचे दी गई तालिका में एचएक्स मान और इसी अंक को आम कैथोड कॉन्फ़िगरेशन के लिए एलपीसी 2148 पिन के अनुसार दिखाया गया है ।
अंक |
LPC2148 के लिए हेक्स मान |
ए |
ख |
सी |
घ |
इ |
एफ |
जी |
० |
0xF3 |
1 |
1 |
1 |
1 |
1 |
1 |
० |
1 |
0x12 |
० |
1 |
1 |
० |
० |
० |
० |
२ |
0x163 |
1 |
1 |
० |
1 |
1 |
० |
1 |
३ |
0x133 |
1 |
1 |
1 |
1 |
० |
० |
1 |
४ |
0x192 है |
० |
1 |
1 |
० |
० |
1 |
1 |
५ |
0x1B1 |
1 |
० |
1 |
1 |
० |
1 |
1 |
६ |
0x1F1 |
1 |
० |
1 |
1 |
1 |
1 |
1 |
। |
0x13 |
1 |
1 |
1 |
० |
० |
1 |
० |
। |
0x1F3 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
९ |
0x1B3 |
1 |
1 |
1 |
1 |
० |
1 |
1 |
महत्वपूर्ण: ऊपर तालिका में मैंने LPC2148 में उपयोग किए गए पिन के अनुसार HEX मान दिया है, नीचे दिए गए सर्किट आरेख की जांच करें। आप जो भी पिन चाहते हैं उसका उपयोग कर सकते हैं लेकिन उसके अनुसार हेक्स वैल्यू बदल सकते हैं।
7-सेगमेंट डिस्प्ले के बारे में अधिक जानने के लिए, लिंक पर जाएं। अन्य माइक्रोकंट्रोलर्स के साथ 7-सेगमेंट डिस्प्ले इंटरफेस की भी जाँच करें:
- रास्पबेरी पाई के साथ 7 सेगमेंट डिस्प्ले इंटरफेसिंग
- PIC माइक्रोकंट्रोलर के साथ 7 सेगमेंट डिस्प्ले इंटरफेसिंग
- Arduino के साथ 7 सेगमेंट डिस्प्ले इंटरफेसिंग
- 8051 माइक्रोकंट्रोलर के साथ 7 सेगमेंट डिस्प्ले इंटरफेसिंग
- एवीआर माइक्रोकंट्रोलर का उपयोग कर 0-99 काउंटर
सामग्री की आवश्यकता
हार्डवेयर
- ARM7-LPC2148
- सात खंड प्रदर्शन मॉड्यूल (एकल अंक)
- ब्रेड बोर्ड
- तारों को जोड़ना
सॉफ्टवेयर
- कील uVision5
- फ्लैश मैजिक
सर्किट आरेख
LPC2148 के साथ 7-सेगमेंट को बदलने के लिए, नीचे दिए गए सर्किट आरेख में किसी बाहरी घटक की आवश्यकता नहीं है:
नीचे दी गई तालिका 7-सेगमेंट मॉड्यूल और LPC2148 के बीच सर्किट कनेक्शन दिखाती है
सात खंड मॉड्यूल पिन |
LPC2148 पिंस |
ए |
P0.0 |
ख |
P0.1 |
सी |
P0.4 |
घ |
P0.5 |
इ |
P0.6 |
एफ |
P0.7 |
जी |
P0.8 |
सामान्य |
GND |
प्रोग्रामिंग ARM7 LPC2148
हमने सीखा है कि हमारे पिछले ट्यूटोरियल में कैमिल का उपयोग करके ARM7-LPC2148 कैसे प्रोग्राम किया जाए। हम कोड लिखने और हेक्स फ़ाइल बनाने के लिए यहां उसी Keil uVision 5 का उपयोग करते हैं, और फिर फ़्लैश जादू उपकरण का उपयोग करके LPC2148 पर हेक्स फ़ाइल अपलोड करते हैं। हम USB केबल का उपयोग पावर और LPC2148 पर कोड अपलोड करने के लिए कर रहे हैं
वीडियो ट्यूटोरियल के साथ पूरा कोड इस ट्यूटोरियल के अंत में दिया गया है। यहां हम कोड के कुछ महत्वपूर्ण भागों की व्याख्या कर रहे हैं।
पहले हमें LPC214x श्रृंखला माइक्रोकंट्रोलर के लिए हेडर फ़ाइल को शामिल करना होगा
#शामिल
अगला पिंस आउटपुट के रूप में सेट करें
IO0DIR = IO0DIR-0xffffffff
यह पिंस P0.0 से P0.31 को आउटपुट के रूप में सेट करता है लेकिन हम पिन (P0.0, P0.1, P0.4, P0.5, P0.6, P0.7, और P0.8) का उपयोग करेंगे ।
फिर प्रदर्शित होने के लिए संख्यात्मक अंक के अनुसार कुछ उच्च पिन को LOGIC HIGH या LOW पर सेट करें। यहां हम (0 से 9) मान प्रदर्शित करेंगे। हम एक ऐसी सरणी का उपयोग करेंगे जिसमें 0 से 9 मानों के लिए HEX मान शामिल हैं।
अहस्ताक्षरित int a = {0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
मान लगातार प्रदर्शित किया जाएगा के रूप में कोड में डाल दिया गया है , जबकि पाश
जबकि (1) {के लिए (i = 0; मैं <= 9; मैं ++) { IO0SET = IO0SET a; // सेट संबंधित पिन उच्च विलंब (9000); // कॉल देरी फ़ंक्शन IO0CLR = IO0CLR-a; // सेट्स संबंधित पिन कम } }
यहाँ IOSET और IOCLR का उपयोग क्रमशः Pins HIGH और LOW सेट करने के लिए किया जाता है । जैसा कि हमने PORT0 पिन का उपयोग किया है इसलिए हमारे पास IO0SET और IO0CLR है ।
के लिए लूप को बढ़ाने के लिए प्रयोग किया जाता है मैं प्रत्येक चरण में और हर बार जब मैं वृद्धि कर देता है, 7 खंड भी अंकों जो उस पर दिखाया जा रहा है जुड़ जाता है।
देरी फ़ंक्शन का उपयोग SET और CLR के बीच विलंब समय उत्पन्न करने के लिए किया जाता है
शून्य विलंब (इंट कश्मीर) // विलंब बनाने के लिए कार्य { इंट i, j; के लिए (i = 0; i)
पूरा कोड और काम करने का वीडियो विवरण नीचे दिया गया है। साथ ही सभी 7-सेगमेंट डिस्प्ले से संबंधित प्रोजेक्ट्स यहां देखें।