- ADC क्या है?
- ARM7-LPC2148 में ADC
- ARM7-LPC2148 में ADC पिन
- ARM7-LPC2148 में ADC रजिस्टर
- LPC2148 में ADxCR रजिस्टर
- ADxGDR: ADC ग्लोबल डेटा रजिस्टर
- अवयव आवश्यक
- सर्किट आरेख
- ADC के लिए ARM7-LPC2148 प्रोग्रामिंग
इलेक्ट्रॉनिक्स की दुनिया में बाजार में एनालॉग सेंसर की कई किस्में हैं जो तापमान, गति, विस्थापन, दबाव आदि को मापने के लिए उपयोग की जाती हैं। एनालॉग सेंसर का उपयोग आउटपुट के उत्पादन के लिए किया जाता है जो समय के साथ लगातार बदल रहे हैं। एनालॉग सेंसर से ये संकेत कुछ माइक्रो-वोल्ट (यूवी) से कई मिली-वोल्ट (एमवी) तक के मूल्य में बहुत कम होते हैं, इसलिए कुछ प्रकार के प्रवर्धन की आवश्यकता होती है। माइक्रोकंट्रोलर में इन एनालॉग सिग्नल का उपयोग करने के लिए हमें एनालॉग सिग्नल को डिजिटल सिग्नल में बदलने की जरूरत है क्योंकि माइक्रोकंट्रोलर केवल डिजिटल सिग्नल को समझता है और प्रोसेस करता है। इसलिए अधिकांश माइक्रोकंट्रोलर में एक इनबिल्ट महत्वपूर्ण विशेषता है जिसे एडीसी (एनालॉग टू डिजिटल कनवर्टर) कहा जाता है । हमारे माइक्रोकंट्रोलर ARM7-LPC2148 में ADC फीचर भी है।
इस ट्यूटोरियल में हम देखेंगे कि एनालॉग पिन को एक अलग वोल्टेज की आपूर्ति करके ARM7-LPC2148 में ADC का उपयोग कैसे करें और एनालॉग से डिजिटल रूपांतरण के बाद 16x2 एलसीडी स्क्रीन पर इसे प्रदर्शित करें। तो आइए ADC के बारे में एक छोटे से परिचय से शुरू करते हैं।
ADC क्या है?
जैसा कि पहले कहा गया था कि एडीसी एनालॉग से डिजिटल रूपांतरण के लिए है और इसका उपयोग वास्तविक दुनिया से एनालॉग मूल्यों को 1 और 0 के डिजिटल मूल्यों में बदलने के लिए किया जाता है। तो ये एनालॉग मूल्य क्या हैं? ये वे हैं जो हम अपने दिन-प्रतिदिन के जीवन में देखते हैं जैसे कि तापमान, गति, चमक आदि। इन मापदंडों को संबंधित सेंसर द्वारा एनालॉग वोल्टेज के रूप में मापा जाता है और फिर इन एनालॉग मूल्यों को माइक्रोकंट्रोलर्स के लिए डिजिटल मूल्यों में बदल दिया जाता है।
आइए मान लें कि हमारी एडीसी सीमा 0V से 3.3V तक है और हमारे पास 10-बिट ADC है इसका मतलब है कि हमारे इनपुट वोल्टेज 0-3.3 वोल्ट को असतत एनालॉग मान (2 10 = 1024) के 1024 स्तरों में विभाजित किया जाएगा । मतलब 1024 10-बिट ADC के लिए रिज़ॉल्यूशन है, इसी तरह 8-बिट ADC रिज़ॉल्यूशन 512 (28) होगा और 16-बिट ADC रिज़ॉल्यूशन के लिए 65,536 (216) होगा। LPC2148 में 10 बिट रिज़ॉल्यूशन एडीसी है ।
इसके साथ यदि वास्तविक इनपुट वोल्टेज 0V है तो MCU का ADC इसे 0 के रूप में पढ़ेगा और यदि 3.3V है तो MCU 1024 को पढ़ेगा और यदि यह कहीं 1.65v की तरह है तो MCU 512 पढ़ेगा। हम नीचे का उपयोग कर सकते हैं डिजिटल मूल्य की गणना करने के सूत्र जो एडीसी के रिज़ॉल्यूशन और ऑपरेटिंग वोल्टेज के आधार पर एमसीयू द्वारा पढ़ा जाएगा।
(एडीसी संकल्प / ऑपरेटिंग वोल्टेज) = (एडीसी डिजिटल मूल्य / वास्तविक वोल्टेज मान)
उदाहरण के लिए यदि संदर्भ वोल्टेज 3 v है:
हमने एडीसी को पिछले लेख में विस्तार से बताया।
ARM7-LPC2148 में ADC
- LPC2148 में डिजिटल कन्वर्टर्स में दो एनालॉग होते हैं ।
- ये कन्वर्टर्स डिजिटल कन्वर्टर्स के लिए एकल 10-बिट क्रमिक एनालॉग हैं।
- जबकि ADC0 में छह चैनल हैं, ADC1 में आठ चैनल हैं।
- इसलिए, LPC2148 के लिए उपलब्ध ADC इनपुट्स की कुल संख्या 14 है ।
- यह केवल (0 से 3.3V) की सीमा में इनपुट वोल्टेज को परिवर्तित करता है। यह वोल्टेज के संदर्भ में 3.3V से अधिक नहीं होना चाहिए। चूंकि यह आईसी को नुकसान पहुंचाएगा और अनिश्चित मान भी प्रदान करेगा।
LPC2148 में ADC की कुछ महत्वपूर्ण विशेषता
- प्रत्येक कनवर्टर 400000 से अधिक 10-बिट नमूने प्रति सेकंड प्रदर्शन करने में सक्षम है।
- प्रत्येक एनालॉग इनपुट में ओवरहेड को कम करने के लिए एक समर्पित परिणाम रजिस्टर है।
- एकल या एकाधिक इनपुट के लिए फट रूपांतरण मोड।
- इनपुट पिन या टाइमर मैच सिग्नल पर संक्रमण पर वैकल्पिक रूपांतरण।
- दोनों कन्वर्टर्स के लिए ग्लोबल स्टार्ट कमांड।
अन्य माइक्रोकंट्रोलरों में एडीसी का उपयोग कैसे करें, इसकी भी जाँच करें:
- Arduino Uno में ADC का उपयोग कैसे करें?
- 8051 माइक्रोकंट्रोलर के साथ ADC0808 को इंटरफैस करना
- तस्वीर माइक्रोकंट्रोलर के एडीसी मॉड्यूल का उपयोग करना
- रास्पबेरी पाई एडीसी ट्यूटोरियल
- MSP430G2 में ADC का उपयोग कैसे करें - एनालॉग वोल्टेज को मापना
- STM32F103C8 में ADC का उपयोग कैसे करें
ARM7-LPC2148 में ADC पिन
जैसा कि बाली ने बताया, ARM7-LPC2148 में 6 एनालॉग इनपुट पिन और ADC1 के साथ 8 एनालॉग इनपुट पिन के साथ दो चैनल ADC0 हैं। तो पूरी तरह से एनालॉग इनपुट के लिए 14 पिन हैं। नीचे दिए गए आरेख में पिन दिखाई देते हैं जो एनालॉग इनपुट के लिए उपलब्ध हैं।
चूंकि ADC इनपुट पिन अन्य GPIO पिन के साथ बहुसंकेतन हैं। ADC फ़ंक्शन का चयन करने के लिए हमें PINSEL रजिस्टर को कॉन्फ़िगर करके उन्हें सक्षम करने की आवश्यकता है ।
नीचे दी गई तालिका ADC और संबंधित ADC चैनल LPC2148 में पिन दिखाती है। AD0 चैनल 0 है और AD1 चैनल 1 है
LPC2148 पिन |
एडीसी चैनल नं |
P0.28 |
AD0.1 |
P0.29 |
AD0.2 |
P0.30 |
AD0.3 |
P0.25 |
AD0.4 |
P0.4 |
AD0.6 |
P0.5 |
AD0.7 |
P0.6 |
AD1.0 |
P0.8 |
AD1.1 |
P0.10 |
AD1.2 |
P0.12 |
AD1.3 |
P0.13 |
AD1.4 |
P0.15 |
AD1.5 |
P0.21 |
AD1.6 |
P0.22 |
AD1.7 |
ARM7-LPC2148 में ADC रजिस्टर
LPC2148 में A / D रूपांतरण सुविधा का उपयोग करने के लिए प्रोग्रामिंग में रजिस्टरों का उपयोग किया जाता है।
नीचे A / D रूपांतरण के लिए LPC2148 में प्रयुक्त रजिस्टरों की सूची दी गई है
1. एडीसीआर: डिजिटल कंट्रोल रजिस्टर के अनुरूप
उपयोग: यह रजिस्टर LPC2148 में A / D कनवर्टर को कॉन्फ़िगर करने के लिए उपयोग किया जाता है
2. एडीजीडीआर: एनालॉग से डिजिटल ग्लोबल डेटा रजिस्टर
उपयोग: इस रजिस्टर में ए / डी कनवर्टर के लिए बिट किया गया है और रूपांतरण का परिणाम यहां संग्रहीत है।
3. ADINTERN: एनालॉग से डिजिटल इंटरप्ट इनेबल रजिस्टर
उपयोग: यह एक इंटरप्ट इनेबल रजिस्टर है।
4. ADDR0 - ADDR7: डिजिटल चैनल डेटा रजिस्टर के अनुरूप
उपयोग करें: इस रजिस्टर में संबंधित चैनलों के लिए A / D मान है।
5. ADSTAT: एनालॉग से डिजिटल स्थिति रजिस्टर।
उपयोग: इस रजिस्टर में संबंधित ADC चैनल के लिए DONE ध्वज है और संबंधित ADC चैनल के लिए OVERRUN ध्वज भी है।
इस ट्यूटोरियल में हम केवल ADCR और ADGDR रजिस्टर का ही उपयोग करेंगे। आइए उनके बारे में विस्तार से देखें
LPC2148 में ADxCR रजिस्टर
AD0CR और AD1CR क्रमशः चैनल 0 और चैनल 1 के लिए। यह 32-बिट रजिस्टर है। नीचे तालिका ADCR रजिस्टर के लिए बिट फ़ील्ड को इंगित करती है।
31:28 |
२। |
26:24 |
23:22 |
२१ |
२० |
19:17 |
१६ |
15: 8 |
7: 0 |
आरक्षित |
एज |
शुरू |
आरक्षित |
पी डी एन |
आरक्षित |
सीएलकेएस |
फट |
CLCKDIV |
एसईएल |
आइए देखें कि व्यक्तिगत रजिस्टरों को कैसे कॉन्फ़िगर किया जाए
1. SEL: ADC रूपांतरण के लिए चैनल का चयन करने के लिए (0 से 7) बिट्स का उपयोग किया जाता है। प्रत्येक चैनल के लिए एक बिट आवंटित है। उदाहरण के लिए Bit-0 सेट करने से ADC रूपांतरण के लिए AD0.1 का नमूना बन जाएगा। और बिट -1 सेट करना AD0.1 बना देगा; इसी तरह बिट -7 की सेटिंग AD0.7 के लिए रूपांतरण करेगी। महत्वपूर्ण कदम यह है कि हमारे पास PINSEL उस पोर्ट के अनुसार है जिसका उपयोग हम PINSEL0 के लिए PORT0 के लिए PLC2148 में कर रहे हैं।
2. CLCKDIV: क्लॉक डिवाइज़र के लिए बिट्स (8 से 15) हैं । यहां एपीबी घड़ी (एआरएम पेरिफेरल बस घड़ी) को इस मान से विभाजित किया गया है ताकि ए / डी कनवर्टर के लिए आवश्यक घड़ी का उत्पादन किया जा सके, जो कि 4.5 मेगाहर्ट्ज से कम या बराबर होना चाहिए क्योंकि हम एलपीसी 2 ए 2018 में क्रमिक सन्निकटन विधि का उपयोग कर रहे हैं।
3. BURST: BURST रूपांतरण मोड के लिए बिट 16 का उपयोग किया जाता है।
सेटिंग 1: ADC उन सभी चैनलों के लिए रूपांतरण करेगा जो SEL बिट्स में चुने गए हैं।
सेटिंग 0: BURST रूपांतरण मोड को अक्षम कर देगा।
4. CLCKS: रिज़ॉल्यूशन के चयन के लिए (17 से 19) तीन बिट्स का उपयोग किया जाता है और फट मोड में A / D रूपांतरण के लिए घड़ियों की संख्या, क्योंकि यह निरंतर A / D रूपांतरण मोड है।
बिट्स के लिए मूल्य (17 से 19) |
बिट्स (सटीकता) |
घड़ी की नहीं |
000 है |
१० |
1 1 |
001 |
९ |
१० |
010 है |
। |
९ |
011 है |
। |
। |
100 |
६ |
। |
101 |
५ |
६ |
110 |
४ |
५ |
111 |
३ |
४ |
5. PDN: बिट 21 LPC2148 में ADC के पावर डाउन मोड को चुनने के लिए है ।
- ए / डी पीडीएन मोड में है।
- A / D ऑपरेशनल मोड में है
6. START: (24 से 26) बिट्स START के लिए हैं। जब BURST रूपांतरण मोड 0 सेट करके बंद हो जाता है, तो ये START बिट्स A / D रूपांतरण शुरू करने के लिए उपयोगी होते हैं। START का उपयोग एज नियंत्रित रूपांतरण के लिए भी किया जाता है। ऐसा तब होता है जब LPC2148 के CAP या MAT पिन में एक इनपुट होता है, A / D कन्वर्ट होने लगता है। आइए नीचे दी गई तालिका देखें
बिट्स के लिए मूल्य (24 से 26) |
पिन LPC2148 का |
एडीसी का कार्य |
000 है |
PDN मोड में ADC सेट करने के लिए उपयोग किया जाता है कोई प्रारंभ नहीं |
|
001 |
A / D रूपांतरण प्रारंभ करें |
|
010 है |
CAP0.2 / MAT0.2 |
LPC2148 के CAP / MAT पिन पर पिन 27 (राइजिंग या फॉलिंग) पर चुने गए EDGE पर ए / डी रूपांतरण शुरू करें |
011 है |
CAP0.0 / MAT0.0 |
|
100 |
MAT0.1 |
|
101 |
MAT0.3 |
|
110 |
MAT1.0 |
|
111 |
MAT1.1 |
7. EDGE: 27 वें बिट EDGE के लिए उपयोग किया जाता है, जब START बिट में 010-111 होता है। यह रूपांतरण शुरू करता है जब सीएपी या एमएटी इनपुट होता है, तो आप उसके लिए उपरोक्त तालिका देख सकते हैं।
सेटिंग : 0 - फॉलिंग एज पर
1 - राइजिंग एज पर
ADxGDR: ADC ग्लोबल डेटा रजिस्टर
ADC चैनल 0 और ADC चैनल 1 के लिए AD0GDR & AD1GDR क्रमशः।
यह एक 32-बिट रजिस्टर में A / D रूपांतरण का परिणाम होता है और DONE बिट भी इंगित करता है कि A / D रूपांतरण किया जाता है। नीचे दी गई तालिका ADGDR रजिस्टर के लिए बिट फ़ील्ड को इंगित करती है।
३१ |
३० |
29:27 |
26:24 |
23:16 |
15: 6 |
5: 0 |
किया हुआ |
उग आया |
आरक्षित |
सीएचएन |
आरक्षित |
परिणाम |
आरक्षित |
1. परिणाम: इन बिट्स (6 से 15) में ADCR SEL रजिस्टर में चयनित चैनल के लिए A / D रूपांतरण का परिणाम है। मान ए / डी रूपांतरण पूरा होने के बाद ही पढ़ा जाता है और यह डीओएन बिट द्वारा इंगित किया जाता है ।
उदाहरण: 10-बिट एडीसी परिणाम के लिए संग्रहीत मूल्य 0 (1023) से भिन्न होता है।
2. चैनल: इन बिट्स 24 से 26 में चैनल नंबर होता है जिसके लिए ए / डी रूपांतरण किया जाता है। परिवर्तित डिजिटल मान RESULT बिट में मौजूद है।
उदाहरण: 000 ADC चैनल के लिए है 0 और 001 ADC चैनल 1, आदि के लिए है
3. OVERRUN: OVERRUN के लिए 30 वें बिट का उपयोग BURST मोड में किया जाता है। जब 1 सेट किया जाता है तो पिछले परिवर्तित ADC मान को नए रूपांतरित ADC मान से अधिलेखित कर दिया जाता है। जब रजिस्टर पढ़ा जाता है तो यह OVERRUN बिट को साफ करता है।
4. पूर्ण : 31 बिट बिट के लिए है।
सेट 1: जब ए / डी रूपांतरण पूरा हो गया है।
सेट 0: जब रजिस्टर पढ़ा जाता है और ADCR लिखा जाता है।
हमने उन महत्वपूर्ण रजिस्टरों के बारे में देखा है जो LPC2148 में ADC में उपयोग किए जाते हैं। अब ARM7 में ADC का उपयोग शुरू करते हैं।
अवयव आवश्यक
हार्डवेयर
- ARM7-LPC2148 माइक्रोकंट्रोलर
- 3.3V वोल्टेज नियामक आईसी
- 5V वोल्टेज नियामक आईसी
- 10K पोटेंशियोमीटर - 2 नग
- एलईडी (कोई भी रंग)
- एलसीडी डिस्प्ले (16X2)
- 9 वी बैटरी
- ब्रेड बोर्ड
- तारों को जोड़ना
सॉफ्टवेयर
- कील uVision5
- मैजिक फ्लैश टूल
सर्किट आरेख
नीचे दी गई तालिका एलसीडी और ARM7-LPC2148 के बीच सर्किट कनेक्शन दिखाती है ।
ARM7-LPC2148 |
एलसीडी (16x2) |
P0.4 |
रुपये (पंजीकरण चुनें) |
P0.6 |
ई (सक्षम) |
P0.12 |
D4 (डेटा पिन 4) |
P0.13 |
D5 (डेटा पिन 5) |
P0.14 |
D6 (डेटा पिन 6) |
P0.15 |
D7 (डेटा पिन 7) |
ARM 7 - LPC2148 के साथ LCD का उपयोग करने के बारे में अधिक जानें।
महत्वपूर्ण: यहां हम 5V एलसीडी डिस्प्ले के लिए दो वोल्टेज नियामक आईसीएस का उपयोग कर रहे हैं और एनालॉग इनपुट के लिए एक और 3.3V जो कि पोटेंशियोमीटर द्वारा भिन्न हो सकते हैं।
एलसीडी और ARM7 स्टिक के साथ 5V वोल्टेज रेगुलेटर के बीच कनेक्शन
5V वोल्टेज नियामक आईसी |
पिन समारोह |
एलसीडी और एआरएम -7 LPC2148 |
1. टाईट पिन |
+ बैटरी 9 वी इनपुट से वी |
एनसी |
2.कंपनी पिन |
- बैटरी से |
वीएसएस, आर / डब्ल्यू, एलसीडी का ARM7 का GND |
3. राइट पिन |
विनियमित + 5 वी आउटपुट |
वीडीडी, एलसीडी का ए एआरएम 7 का + 5 वी |
एलसीडी के साथ पोटेंशियोमीटर
एलसीडी डिस्प्ले के विपरीत को बदलने के लिए एक पोटेंशियोमीटर का उपयोग किया जाता है। एक पॉट में तीन पिन होते हैं, लेफ्ट पिन (1) +5 वी से जुड़ा होता है और एलसीडी मॉड्यूल के वीईई या वी 0 से केंद्र (2) और राइट पिन (3) जीएनडी से जुड़ा होता है। हम घुंडी को मोड़कर इसके विपरीत को समायोजित कर सकते हैं।
3.3V वोल्टेज नियामक के साथ LPC2148 और पोटेंशियोमीटर के बीच कनेक्शन
3.3V वोल्टेज नियामक आईसी |
पिन समारोह |
एआरएम -7 एलपीसी 2148 |
1. टाईट पिन |
- बैटरी से |
जीएनडी पिन |
2.कंपनी पिन |
विनियमित + 3.3V आउटपुट |
पोटेंशियोमीटर इनपुट और पोटेंशियोमीटर का आउटपुट P0.28 तक |
3. राइट पिन |
+ बैटरी 9 वी इनपुट से वी |
एनसी |
ADC के लिए ARM7-LPC2148 प्रोग्रामिंग
ARM7-LPC2148 प्रोग्राम करने के लिए हमें keil uVision और Flash Magic टूल की आवश्यकता है। हम माइक्रो यूएसबी पोर्ट के माध्यम से ARM7 स्टिक को प्रोग्राम करने के लिए USB केबल का उपयोग कर रहे हैं। हम Keil का उपयोग करके कोड लिखते हैं और एक हेक्स फ़ाइल बनाते हैं और फिर HEX फाइल को फ्लैश मैजिक का उपयोग करते हुए ARM7 स्टिक में लाते हैं। काइल uVision और फ्लैश मैजिक को स्थापित करने के बारे में अधिक जानने के लिए और उनका उपयोग कैसे करें लिंक का पालन करें ARM7 LPC2148 माइक्रोकंट्रोलर के साथ शुरुआत करें और इसे Keil uVision का उपयोग करके प्रोग्राम करें।
इस ट्यूटोरियल में हम LPC2148 में ADC का उपयोग करके एनालॉग इनपुट वोल्टेज (0 से 3.3V) को डिजिटल मूल्य में परिवर्तित करते हैं और एलसीडी डिस्प्ले (16x2) पर एनालॉग वोल्टेज प्रदर्शित करते हैं। इनपुट एनालॉग वोल्टेज को अलग करने के लिए एक पोटेंशियोमीटर का उपयोग किया जाएगा।
ARM7-LPC2148 4-बिट मोड के साथ एलसीडी को बदलने के बारे में अधिक जानने के लिए इस लिंक का पालन करें।
एआरसी 7 के साथ एडीसी का उपयोग करने का पूरा कोड इस ट्यूटोरियल के अंत में दिया गया है, यहां हम इसके कुछ भागों की व्याख्या कर रहे हैं।
LPC2148-ADC प्रोग्रामिंग में शामिल कदम
1. PINSEL रजिस्टर का उपयोग LPC2148 के पोर्ट पिन और एनालॉग इनपुट के रूप में ADC फ़ंक्शन को चुनने के लिए किया जाता है।
PINSEL1 = 0x01000000; // AD0.1 के रूप में P0.28 का चयन करें
2. ADxCR (ADC नियंत्रण रजिस्टर) के मान लिखकर रूपांतरण के लिए घड़ी और बिट सटीकता का चयन करें।
AD0CR = 0x00200402; // सेट एडीसी ऑपरेशन रूपांतरण के लिए 10-बिट्स / 11 सीएलके के रूप में (000)
3. ADxCR में START बिट्स का मान लिखकर रूपांतरण शुरू करें।
यहाँ मैंने AD0CR रजिस्टर के 24 वें बिट पर लिखा है ।
AD0CR = AD0CR - (1 << 24);
4. अब हमारे पास संबंधित ADxDRy (ADC डेटा रजिस्टर) के DONE बिट (31 वें) की जाँच है क्योंकि यह 0 से 1 में बदलता है। इसलिए हम लूप का लगातार उपयोग करते हैं अगर डेटा रजिस्टर के 31 वें बिट पर रूपांतरण हो।
जबकि ((AD0DR1 & 0x80000000));
5. जब बिट किया जाता है तो 1 पर सेट किया जाता है, रूपांतरण सफल होता है, इसके बाद हम उसी ADC डेटा रजिस्टर AD0DR1 से परिणाम को पढ़ते हैं और एक वैरिएबल में वैल्यू स्टोर करते हैं।
adcvalue = AD0DR1;
आगे हम डिजिटल वैल्यू को वोल्टेज में परिवर्तित करने और वोल्टेज नामक स्टोरेज में फॉर्मूला का उपयोग करते हैं ।
वोल्टेज = ((adcvalue / 1023.0) * 3.3);
5. डिजिटल रूपांतरण के अनुरूप के बाद डिजिटल मान (0 से 1023) प्रदर्शित करने के लिए निम्नलिखित पंक्तियों का उपयोग किया जाता है।
adc = adcvalue; स्प्रिंटफ (डिस्प्लेडेक, "एडक्वाल्यू =% एफ", एडीसी); LCD_DISPLAY (displayadc); // प्रदर्शन ADC मान (0 से 1023)
6. डिजिटल रूपांतरण के अनुरूप और चरण 5 के बाद इनपुट एनालॉग वोल्टेज (0 से 3.3V) प्रदर्शित करने के लिए निम्नलिखित पंक्तियों का उपयोग किया जाता है।
LCD_SEND (0xC0); स्प्रिंटफ (वोल्टवल्यू, "वोल्ट =%। 2 एफ वी", वोल्टेज); LCD_DISPLAY (वोल्टवॉल); // प्रदर्शन (इनपुट एनालॉग वोल्टेज)
7. अब हमें एलसीडी डिस्प्ले पर इनपुट वोल्टेज और डिजिटल मूल्यों को प्रदर्शित करना होगा। इससे पहले हमें एलसीडी डिस्प्ले को इनिशियलाइज़ करना होगा और डिस्प्ले को मैसेज भेजने के लिए उपयुक्त कमांड्स का इस्तेमाल करना होगा।
एलसीडी को इनिशियलाइज़ करने के लिए नीचे कोड का उपयोग किया जाता है
vid LCD_INITILIZE (शून्य) // फ़ंक्शन तैयार एलसीडी प्राप्त करने के लिए { IO0DIR = 0x0000FF00; // सेट पिन P0.12, P0.13, P0.14, P0.15, P0.4, P0.6 OUTPUT delay_ms (20) के रूप में; LCD_SEND (0x02); // प्रारंभिक एलसीडी को ऑपरेशन के 4-बिट मोड में LCD_SEND (0x28); // 2 लाइनें (16X2) LCD_SEND (0x0C); // LCD_SEND (0x06) पर कर्सर पर प्रदर्शन ; // ऑटो इंक्रीमेंट कर्सर LCD_SEND (0x01); // स्पष्ट LCD_SEND (0x80) प्रदर्शित करें ; // पहली पंक्ति पहली स्थिति }
एलसीडी पर मान प्रदर्शित करने के लिए नीचे कोड का उपयोग किया जाता है
शून्य LCD_DISPLAY (चार * संदेश) // समारोह पात्रों मुद्रित करने के लिए एक के बाद एक भेजा { uint8_t मैं = 0; जबकि (संदेश! = 0) { IO0PIN = ((IO0PIN & 0xFFFF00FF) - ((संदेश और 0xF0) << 8)); // अपर निबल IO0SET = 0x00000050 भेजता है ; // RS उच्च और सक्षम डेटा IO0CLR = 0x00000020 मुद्रित करने के लिए उच्च ; // RW LOW लिखो मोड delay_ms (2); IO0CLR = 0x00000040; // EN = 0, RS और RW अपरिवर्तित (यानी RS = 1, RW = 0) delay_ms (5); IO0PIN = ((IO0PIN & 0xFFFF00FF) - ((संदेश और 0x0F) << 12)); // लोअर निबल IO0SET = 0x00000050 भेजता है ; // RS & EN हाई IO0CLR = 0x00000020; delay_ms (2); IO0CLR = 0x00000040; delay_ms (5); मैं ++; } }
नीचे फ़ंक्शन का उपयोग देरी बनाने के लिए किया जाता है
void delay_ms (uint16_t j) // मिलीसेकंड में देरी करने का कार्य { uint16_t x, i; के लिए (i = 0; i)
प्रदर्शन वीडियो के साथ पूरा कोड नीचे दिया गया है।