- PIC16F877A में EEPROM:
- सर्किट आरेख और स्पष्टीकरण:
- PIC EEPROM का उपयोग करने का अनुकरण:
- EEPROM के लिए प्रोग्रामिंग PIC:
- काम कर रहे:
इस ट्यूटोरियल में हम सीखेंगे कि PIC16F877A माइक्रोकंट्रोलर में मौजूद EEPROM का उपयोग करके डेटा को बचाना कितना आसान है । अधिकांश वास्तविक समय की परियोजनाओं में हमें कुछ डेटा को सहेजना पड़ सकता है, जिसे बिजली बंद होने पर भी मिटाया नहीं जाना चाहिए। यह एक जटिल प्रक्रिया की तरह लग सकता है, लेकिन XC8 कंपाइलर की मदद से इस कार्य को कोड की एक लाइन का उपयोग करके किया जा सकता है। यदि मेगा बाइट के संदर्भ में डेटा बड़ा है तो हम एक स्टोरेज डिवाइस को एसडी कार्ड की तरह इंटरफेस कर सकते हैं और उन डेटा को स्टोर कर सकते हैं। लेकिन हम उन थका देने वाली प्रक्रिया से बच सकते हैं यदि डेटा छोटा है, तो हम बस अपने डेटा को बचाने के लिए PIC Microcontroller में मौजूद EEPROM का उपयोग कर सकते हैं और इसे किसी भी समय हम प्राप्त कर सकते हैं।
यह PIC EEPROM ट्यूटोरियल PIC माइक्रोकंट्रोलर ट्यूटोरियल के अनुक्रम का एक हिस्सा है जिसमें हमने बहुत ही बुनियादी स्तर से शुरुआत की थी। यदि आपने पिछले ट्यूटोरियल्स को नहीं सीखा है, तो अब उन पर एक नज़र रखना बेहतर होगा, क्योंकि यह ट्यूटोरियल मानता है कि आप PIC Microcontroller के साथ Interfacing एलसीडी से परिचित हैं और PIC Microcontroller के साथ ADC का उपयोग कर रहे हैं।
PIC16F877A में EEPROM:
EEPROM "इलेक्ट्रॉनिक रूप से मिटने योग्य और प्रोग्रामेबल रीड ओनली मेमोरी" के लिए खड़ा है। जैसा कि नाम से पता चलता है कि यह PIC माइक्रोकंट्रोलर के अंदर मौजूद एक मेमोरी है जिसमें हम ऐसा करने के लिए प्रोग्रामिंग करके डेटा लिख / पढ़ सकते हैं। इसमें सहेजे गए डेटा को तभी मिटाया जाएगा जब प्रोग्राम में ऐसा करने का उल्लेख किया गया हो। EEPROM में उपलब्ध संग्रहण स्थान की मात्रा प्रत्येक माइक्रोकंट्रोलर पर भिन्न होती है; विवरण हमेशा की तरह डेटशीट में दिया जाएगा। PIC16F877A के लिए हमारे मामले में उपलब्ध स्पेसिफिकेशन डेटशीट में उल्लिखित 256 बाइट्स है। अब देखते हैं कि एक साधारण प्रयोगात्मक सेटअप का उपयोग करके डेटा को पढ़ने / लिखने के लिए हम इन 256 बाइट्स का उपयोग कैसे कर सकते हैं।
सर्किट आरेख और स्पष्टीकरण:
परियोजना के लिए सर्किट आरेख ऊपर दिखाया गया है। हमने सहेजे गए और पुनर्प्राप्त किए गए डेटा की कल्पना करने के लिए एक एलसीडी को बाधित किया है। एक सामान्य पोटेंशियोमीटर एएन 4 एनालॉग चैनल से जुड़ा हुआ है इसलिए चर वोल्टेज में फ़ीड करें, इस चर वोल्टेज को ईईपीआरओएम में सहेजे जाने वाले डेटा के रूप में उपयोग किया जाएगा। हमने RB0 पर एक पुश बटन का भी उपयोग किया है, जब यह बटन दबाया जाता है तो एनालॉग चैनल के डेटा को EEPROM में सहेजा जाएगा।
यह कनेक्शन एक ब्रेडबोर्ड पर बनाया जा सकता है। पीआईसी Microcontroller के pinouts नीचे दी गई तालिका में दिखाया गया है।
S.No: |
पिन नम्बर |
पिन नाम |
से जुड़ा |
1 |
२१ |
RD2 |
एलसीडी का आर.एस. |
२ |
२२ |
RD3 |
ई का एलसीडी |
३ |
२। |
RD4 |
डी 4 की एलसीडी |
४ |
२। |
RD5 |
डी 5 की एलसीडी |
५ |
२ ९ |
RD6 |
डी 6 एलसीडी की |
६ |
३० |
RD7 |
डी 7 की एलसीडी |
। |
३३ |
RBO / INT |
बटन दबाओ |
। |
। |
AN4 |
तनाव नापने का यंत्र |
PIC EEPROM का उपयोग करने का अनुकरण:
इस परियोजना में प्रोटीन का उपयोग करके डिज़ाइन किया गया एक सिमुलेशन भी शामिल है, जिसके उपयोग से हम बिना किसी हार्डवेयर के परियोजना के काम का अनुकरण कर सकते हैं। इस सिमुलेशन का कार्यक्रम इस ट्यूटोरियल के अंत में दिया गया है। आप बस यहां से हेक्स फ़ाइल का उपयोग कर सकते हैं और पूरी प्रक्रिया का अनुकरण कर सकते हैं।
सिमुलेशन के दौरान आप एलसीडी स्क्रीन पर EEPROM में सहेजे गए वर्तमान एडीसी मूल्य और डेटा की कल्पना कर सकते हैं। EEPROM में वर्तमान ADC मान को सहेजने के लिए बस RB0 से जुड़े स्विच को दबाएँ और इसे सहेजा जाएगा। सिमुलेशन का एक स्नैपशॉट नीचे दिखाया गया है।
EEPROM के लिए प्रोग्रामिंग PIC:
इस ट्यूटोरियल का पूरा कोड इस ट्यूटोरियल के अंत में दिया गया है। हमारे कार्यक्रम में हमें एडीसी मॉड्यूल से मूल्यों को पढ़ना है और जब एक बटन दबाया जाता है तो हमें उस मूल्य को अपने ईईप्रॉम में सहेजना होगा। चूंकि हमने एडीसी और एलसीडी इंटरफेसिंग के बारे में पहले ही जान लिया है, इसलिए मैं आगे EEPROM से डेटा को बचाने और पुनः प्राप्त करने के लिए कोड को समझाऊंगा।
डेटशीट के अनुसार, "इन उपकरणों में प्रोग्राम फ्लैश के 4 या 8K शब्द हैं, जिसमें PIC16F877A के लिए 0000h से 1FFFh तक का पता है।" इसका अर्थ है कि प्रत्येक EEPROM संग्रहण स्थान का एक पता है जिसके माध्यम से इसे एक्सेस किया जा सकता है और हमारे MCU में यह पता 0000h से 1FFFh तक शुरू होता है।
किसी विशेष EEPROM पते के अंदर एक डेटा को बचाने के लिए बस नीचे की रेखा का उपयोग करें।
eeprom_write (0, adc);
यहाँ "adc" एक प्रकार का पूर्णांक है जिसमें सहेजे जाने वाला डेटा मौजूद है। और "0" उस EEPROM का पता है जिस पर हमारा डेटा सेव है। वाक्यविन्यास "eeprom_write" हमारे XC8 द्वारा अनिवार्य रूप से प्रदान किया गया है, इसलिए रजिस्टरों को संकलक द्वारा स्वचालित रूप से ध्यान रखा जाएगा।
एक डेटा जो पहले से ही EEPROM में संग्रहीत है और इसे एक चर में सहेजने के लिए प्राप्त करने के लिए कोड की निम्नलिखित पंक्ति का उपयोग किया जा सकता है।
सदक = (इंट) इप्रोम_्रेड (0);
यहाँ, “Sadc” वह चर है जिसमें EEPROM के डेटा को सहेजा जाएगा। और "0" EEPROM का पता है जिसमें से हम डेटा को पुनः प्राप्त कर रहे हैं। सिंटैक्स "eeprom_read" हमारे XC8 द्वारा अनिवार्य रूप से प्रदान किया गया है, इसलिए रजिस्टरों को कंपाइलर द्वारा स्वचालित रूप से ध्यान रखा जाएगा। EEPROM में सहेजा गया डेटा हेक्साडेसिमल प्रकार में होगा। इसलिए हम उन्हें सिंटैक्स से पहले (int) प्रीफ़िक्स करके पूर्णांक प्रकार में परिवर्तित करते हैं।
काम कर रहे:
एक बार जब हम समझ जाते हैं कि कोड कैसे काम करता है और हार्डवेयर के साथ तैयार होता है तो हम कोड का परीक्षण कर सकते हैं। अपने PIC माइक्रोकंट्रोलर को कोड अपलोड करें और सेट-अप को पावर करें। यदि सब कुछ उम्मीद के मुताबिक काम कर रहा है, तो आपको एलसीडी में प्रदर्शित वर्तमान एडीसी मूल्यों को देखना चाहिए। अब आप EEPROM के ADC मान को बचाने के लिए बटन दबा सकते हैं। अब आप जांचते हैं कि क्या मान पूरी प्रणाली को बंद करके और फिर से चालू करके सहेजा गया है। जब आप पर संचालित होता है तो एलसीडी स्क्रीन पर पहले से सहेजे गए मूल्य को देखना चाहिए।
PIC माइक्रोकंट्रोलर EEPROM का उपयोग करने के लिए इस परियोजना का पूरा काम नीचे दिए गए वीडियो में दिखाया गया है। आशा है कि आप ट्यूटोरियल को समझ गए और इसे करने का आनंद लिया। यदि आपको कोई संदेह है तो आप उन्हें नीचे टिप्पणी अनुभाग पर लिख सकते हैं या उन्हें हमारे मंचों पर पोस्ट कर सकते हैं।