कीपैड व्यापक रूप से विभिन्न इलेक्ट्रॉनिक्स और एम्बेडेड परियोजनाओं में उपयोग किए जा रहे इनपुट डिवाइस हैं। उनका उपयोग संख्याओं और एल्बबेट्स के रूप में इनपुट लेने के लिए किया जाता है, और आगे की प्रक्रिया के लिए सिस्टम में समान फ़ीड किया जाता है। इस ट्यूटोरियल में हम 8051 माइक्रोकंट्रोलर के साथ 4x4 मैट्रिक्स कीपैड को इंटरफेस करने जा रहे हैं ।
4X4 मैट्रिक्स कीपैड
इससे पहले कि हम माइक्रोकंट्रोलर के साथ कीपैड को इंटरफेस करें, पहले हमें यह समझने की आवश्यकता है कि यह कैसे काम करता है। मैट्रिक्स कीपैड में पुश बटन के सेट होते हैं, जो परस्पर जुड़े होते हैं। जैसे हमारे मामले में हम 4X4 मैट्रिक्स कीपैड का उपयोग कर रहे हैं, जिसमें प्रत्येक चार पंक्तियों में 4 पुश बटन हैं। और पुश बटन के टर्मिनल आरेख के अनुसार जुड़े हुए हैं। पहली पंक्ति में, सभी 4 पुश बटन का एक टर्मिनल एक साथ जुड़ा हुआ है और 4 पुश बटन का एक और टर्मिनल 4 कॉलम में से प्रत्येक का प्रतिनिधित्व कर रहा है, वही प्रत्येक पंक्ति के लिए जाता है। इसलिए हमें माइक्रोकंट्रोलर से जुड़ने के लिए 8 टर्मिनल मिल रहे हैं।
8051 माइक्रोकंट्रोलर (AT89S52) के साथ कीपैड की जगह
पहले हमें KEYPAD के माध्यम से फीड होने वाले डेटा को प्रदर्शित करने के लिए एक LCD मॉड्यूल को इंटरफ़ेस करने की आवश्यकता है, इसलिए KEYPAD को इंटरलेस करने से पहले कृपया "8051 माइक्रोकंट्रोलर के साथ एलसीडी इंटरफेसिंग" के माध्यम से जाएं।
जैसा कि ऊपर सर्किट आरेख में दिखाया गया है, कीपैड को इंटरफ़ेस करने के लिए, हमें माइक्रोकंट्रोलर के किसी भी पोर्ट (8 पिन) को कीपैड के 8 टर्मिनलों को जोड़ने की आवश्यकता है। जैसे हमने 8051 के पोर्ट 1 में कीपैड टर्मिनलों को जोड़ा है। जब भी कोई बटन दबाया जाता है तो हमें बटन का स्थान प्राप्त करने की आवश्यकता होती है, इसका अर्थ है कि संबंधित ROW COLUMN सं। एक बार जब हमें बटन का स्थान मिल जाता है, तो हम उसके अनुसार वर्ण प्रिंट कर सकते हैं।
अब सवाल यह है कि दबाए गए बटन का स्थान कैसे प्राप्त करें? मैं इसे नीचे के चरणों में समझाने जा रहा हूं और यह भी चाहता हूं कि आप इस कोड को देखें:
1. सबसे पहले हमने सभी रोल्स को Logic लेवल 0 और सभी कॉलम को Logic लेवल 1 में बनाया है।
2. जब भी हम किसी बटन को दबाते हैं, तो उस बटन के अनुरूप कॉलम और पंक्ति छोटी हो जाती है और इसी कॉलम को लॉजिक लेवल 0. पर बना देता है। क्योंकि वह कॉलम पंक्ति से जुड़ा (शॉर्टेड) हो जाता है, जो लॉजिक लेवल 0. पर होता है, इसलिए हमें मिल जाता है। कॉलम नं। मुख्य () फ़ंक्शन देखें।
3. अब हमें पंक्ति संख्या खोजने की आवश्यकता है, इसलिए हमने प्रत्येक कॉलम के अनुरूप चार फ़ंक्शन बनाए हैं। जैसे यदि स्तंभ एक का कोई भी बटन दबाया जाता है, तो हम पंक्ति संख्या खोजने के लिए फ़ंक्शन row_finder1 () कहते हैं।
4. row_finder1 () फ़ंक्शन में, हमने तर्क स्तरों को उलट दिया, इसका मतलब है कि अब सभी पंक्तियाँ 1 हैं और कॉलम 0. हैं। अब दबाए गए बटन की पंक्ति 0 होनी चाहिए क्योंकि यह स्तंभ से जुड़ा (छोटा) हो गया है जिसका बटन दबाया गया है, और सभी कॉलम 0 तर्क पर हैं। इसलिए हमने 0 के लिए सभी पंक्तियों को स्कैन किया है।
5. इसलिए जब भी हम तर्क 0 पर रो पाते हैं, इसका मतलब है कि दबाए गए बटन की पंक्ति है। तो अब हमारे पास कॉलम नंबर (चरण 2 में मिला) और पंक्ति संख्या है, और हम प्रिंट नहीं कर सकते हैं। उस बटन का उपयोग करते हुए lcd_data फ़ंक्शन।
प्रत्येक बटन प्रेस के लिए एक ही प्रक्रिया इस प्रकार है, और हम (1) का उपयोग कर रहे हैं, लगातार जांच करने के लिए कि बटन दबाया गया है या नहीं।