एडीसी डिजिटल कनवर्टर का एनालॉग है, जो एनालॉग डेटा को डिजिटल प्रारूप में परिवर्तित करता है; आमतौर पर इसका उपयोग एनालॉग वोल्टेज को डिजिटल प्रारूप में बदलने के लिए किया जाता है । एनालॉग सिग्नल में साइन वेव या हमारे भाषण जैसे मूल्यों का कोई अंतर नहीं है, एडीसी उन्हें विशेष स्तरों या राज्यों में परिवर्तित करता है, जिसे भौतिक मात्रा के रूप में संख्याओं में मापा जा सकता है। निरंतर रूपांतरण के बजाय, एडीसी डेटा को समय-समय पर परिवर्तित करता है, जिसे आमतौर पर नमूना दर के रूप में जाना जाता है। टेलीफोन मॉडेमएडीसी के उदाहरणों में से एक है, जो इंटरनेट के लिए उपयोग किया जाता है, यह एनालॉग डेटा को डिजिटल डेटा में परिवर्तित करता है, जिससे कंप्यूटर समझ सकता है, क्योंकि कंप्यूटर केवल डिजिटल डेटा को समझ सकता है। एडीसी का उपयोग करने का प्रमुख लाभ यह है कि, हम शोर को मूल सिग्नल से कुशलतापूर्वक समाप्त कर सकते हैं और डिजिटल सिग्नल एनालॉग एक से अधिक कुशलता से यात्रा कर सकता है। यही कारण है कि सुनते समय डिजिटल ऑडियो बहुत स्पष्ट है।
वर्तमान समय में बाजार में बहुत सारे माइक्रोकंट्रोलर हैं जो एक या अधिक चैनलों के साथ एडीसी को इनबिल्ट करते हैं। और उनके एडीसी रजिस्टर का उपयोग करके हम इंटरफ़ेस कर सकते हैं। जब हम किसी परियोजना को बनाने के लिए 8051 माइक्रोकंट्रोलर परिवार का चयन करते हैं, जिसमें हमें एडीसी रूपांतरण की आवश्यकता होती है, तो हम बाहरी एडीसी का उपयोग करते हैं । कुछ बाहरी एडीसी चिप्स 0803,0804,0808,0809 हैं और कई और हैं। आज हम AT89s52 माइक्रोकंट्रोलर के साथ ADC0808 / 0809 के साथ 8-चैनल ADC को इंटरफ़ेस करने जा रहे हैं।
अवयव:
- 8051 माइक्रोकंट्रोलर (AT89S52)
- ADC0808 / 0809
- 16x2 एलसीडी
- रेसिस्टर (1k, 10k)
- पॉट (10k x4)
- संधारित्र (10uf, 1000uf)
- लाल ने नेतृत्व किया
- ब्रेड बोर्ड या पीसीबी
- 7805 है
- 11.0592 मेगाहर्ट्ज क्रिस्टल
- शक्ति
- तारों को जोड़ना
ADC0808 / 0809:
ADC0808 / 0809 एक अखंड CMOS डिवाइस और माइक्रोप्रोसेसर संगत नियंत्रण तर्क है और 28 पिन है जो आउटपुट में 8-बिट मान और 8- चैनल ADC इनपुट पिन (IN0-IN7) देता है। इसका रिज़ॉल्यूशन 8 है इसलिए यह एनालॉग डेटा को 256 स्तरों (2 8) में से एक में एन्कोड कर सकता है । इस डिवाइस में तीन चैनल एड्रेस लाइन हैं: चैनल के चयन के लिए ADDA, ADDB और ADDC। नीचे ADC0808 के लिए पिन आरेख है:
ADC0808 / 0809 रूपांतरण के लिए एक घड़ी नाड़ी की आवश्यकता है । हम इसे थरथरानवाला का उपयोग करके या माइक्रोकंट्रोलर का उपयोग करके प्रदान कर सकते हैं। इस परियोजना में हमने माइक्रोकंट्रोलर का उपयोग करके आवृत्ति लागू की है।
हम पता लाइनों का उपयोग करके किसी भी इनपुट चैनल का चयन कर सकते हैं, जैसे हम तीनों पता लाइनों (ADDA, ADDB और ADDC) को कम रखकर इनपुट लाइन IN0 का चयन कर सकते हैं। यदि हम इनपुट चैनल IN2 का चयन करना चाहते हैं तो हमें ADDA, ADDB कम और ADDC को उच्च रखने की आवश्यकता है। अन्य सभी इनपुट चैनलों के चयन के लिए, दी गई तालिका पर एक नज़र डालें:
एडीसी चैनल का नाम |
एडीडीसी पिन |
ADDB पिन |
ADDA पिन |
IN0 |
कम |
कम |
कम |
1 में |
कम |
कम |
उच्च |
दो में |
कम |
उच्च |
कम |
IN3 |
कम |
उच्च |
उच्च |
IN4 |
उच्च |
कम |
कम |
IN5 |
उच्च |
कम |
उच्च |
IN6 |
उच्च |
उच्च |
कम |
IN7 |
उच्च |
उच्च |
उच्च |
सर्किट विवरण:
"इंटरफैसिंग ADC0808 विथ 8051" का सर्किट थोड़ा जटिल होता है जिसमें एक दूसरे से डिवाइस को जोड़ने के लिए अधिक कनेक्टिंग तार होते हैं। इस सर्किट में हमने मुख्य रूप से AT89s52 को 8051 माइक्रोकंट्रोलर, ADC0808, पोटेंशियोमीटर और एलसीडी के रूप में इस्तेमाल किया है।
4x मोड में 89x52 माइक्रोकंट्रोलर के साथ एक 16x2 एलसीडी जुड़ा हुआ है। नियंत्रण पिन आरएस, आरडब्ल्यू और एन सीधे पिन 2.0, जीएनडी और पी 2.2 से जुड़े हैं। और डेटा पिन D4-D7 89s52 के पिन P2.4, P2.5, P2.6 और P2.7 से जुड़ा है। ADC0808 आउटपुट पिन AT89s52 के पोर्ट P1 से सीधे जुड़े हुए हैं। पता पंक्ति पिन ADDA, ADDB, AADC P3.0, P3.1, और P3.2 से जुड़े हैं।
ALE (एड्रेस लैच इनेबल), SC (स्टार्ट कन्वर्जन), EOC (रूपांतरण का अंत), OE (आउटपुट इनेबल) और क्लॉक पिन P3.3, P3.4, P3.5, P3.6 और P3.7 से जुड़े हैं ।
और यहां हमने ADC0808 के पिन 26, 27 और 28 से जुड़े तीन पोटेंशियोमीटर का उपयोग किया है।
सर्किट को पॉवर देने के लिए 9 वोल्ट की बैटरी और 7 वोल्ट की 5 वोल्ट वोल्टेज नियामक का उपयोग किया जाता है।
काम कर रहे:
इस परियोजना में हमने ADC0808 के तीन चैनलों को बाधित किया है। और प्रदर्शन के लिए हमने तीन चर प्रतिरोधों का उपयोग किया है। जब हम सर्किट को पावर करते हैं तो माइक्रोकंट्रोलर एलसीडी को उचित कमांड का उपयोग करके इनिशियलाइज़ करता है, ADC चिप को घड़ी देता है, एड्रेस लाइन का उपयोग करके ADC चैनल का चयन करता है और ADC को कनवर्ज़न सिग्नल भेजता है। इसके बाद ADC पहले चयनित ADC चैनल इनपुट को पढ़ता है और अपने परिवर्तित आउटपुट को माइक्रोकंट्रोलर को देता है। फिर माइक्रोकंट्रोलर एलसीडी में Ch1 स्थिति पर अपना मूल्य दिखाता है। और फिर पता लाइन का उपयोग करके माइक्रोकंट्रोलर एडीसी चैनल को बदलता है। और फिर एडीसी चयनित चैनल को पढ़ता है और माइक्रोकंट्रोलर को आउटपुट भेजता है। और एलसीडी पर Ch2 नाम से दिखाओ। और अन्य चैनलों के लिए बुद्धिमान की तरह।
ADC0808 का कार्य ADC0804 के कार्य के समान है। इसमें, पहले माइक्रोकंट्रोलर ADC0808 को 500 KHz क्लॉक सिग्नल प्रदान करता है, टाइमर 0 इंटरप्ट का उपयोग करते हुए, क्योंकि ADC को संचालित करने के लिए क्लॉक सिग्नल की आवश्यकता होती है। अब माइक्रोकंट्रोलर पते में कुंडी को सक्षम करने के लिए ADC0808 के ALE पिन (इसके सक्रिय-उच्च पिन) को एक LOW को उच्च स्तर का संकेत भेजता है। फिर SC (प्रारंभ रूपांतरण) में उच्च से निम्न स्तर के संकेत को लागू करके, ADC डिजिटल रूपांतरण के अनुरूप शुरू होता है। और फिर LOW जाने के लिए EOC (रूपांतरण की समाप्ति) पिन की प्रतीक्षा करें। जब EOC कम हो जाती है, तो इसका मतलब है कि डिजिटल रूपांतरण का एनालॉग पूरा हो गया है और डेटा उपयोग के लिए तैयार है। इसके बाद, माइक्रोकंट्रोलर ADC0808 के OE पिन के लिए एक उच्च से कम सिग्नल लगाकर आउटपुट लाइन को सक्षम करता है।
ADC0808 अपने आउटपुट पिन पर अनुपात मीट्रिक रूपांतरण आउटपुट देता है। और रेडियोमेट्रिक रूपांतरण का सूत्र निम्न द्वारा दिया गया है:
V in / (V fs -V z) = D x / (D अधिकतम -D मिनट)
कहाँ पे
वी में रूपांतरण के लिए इनपुट वोल्टेज है
वी FS है पूर्ण पैमाने वोल्टेज
वी जेड है शून्य वोल्टेज
डी एक्स है पाइंट डेटा उपाय किया जा रहा
डी अधिकतम अधिकतम डेटा सीमा है
डी मिनट न्यूनतम डेटा सीमा है
कार्यक्रम की व्याख्या:
कार्यक्रम में, सबसे पहले हम एडीसी और एलसीडी के लिए हेडर फ़ाइल रेत परिभाषित चर और इनपुट और आउटपुट पिन शामिल करते हैं।
# शामिल
विलंब बनाने के लिए फ़ंक्शन (शून्य विलंब) बनाया गया है, साथ ही एलसीडी आरंभीकरण के लिए कुछ एलसीडी फ़ंक्शंस जैसे, स्ट्रिंग को प्रिंट करना, एलसीडी कमांड के लिए आदि। आप उन्हें आसानी से कोड में पा सकते हैं। 8051 और इसके कार्यों के साथ एलसीडी इंटरफेसिंग के लिए इस लेख की जाँच करें।
इसके बाद मुख्य कार्यक्रम में हमने एलसीडी को इनिशियलाइज़ किया और उसके अनुसार EOC, ALE, EO, SC पिन सेट किए।
शून्य मुख्य () {int i = 0; eoc = 1; ale = 0; ओई = 0; sc = 0; टीएमओडी = 0x02; TH0 = 0xFD; lcd_ini (); एलसीडीप्रिंट ("एडीसी 0808/0809");
और फिर प्रोग्राम एडीसी को पढ़ता है और एडीसी आउटपुट को एक चर में संग्रहीत करता है और फिर इसे ASCII रूपांतरण में दशमलव के बाद एलसीडी पर भेजता है, शून्य रीड_एडीसी () और शून्य एडीसी (इंट i) कार्यों का उपयोग करते हुए:
void read_adc () {संख्या = 0; ale = 1; sc = 1; देरी (1); ale = 0; sc = 0; जबकि (eoc == 1); जबकि (eoc == 0); ओई = 1; नंबर = input_port; देरी (1); ओई = 0; } void adc (int i) {स्विच (i) {केस 0: ADDC = 0; ADDB = 0; ADDA = 0; lcdcmd (0xc0); read_adc ();