ఈ ట్యుటోరియల్లో మేము 4x4 (16 కీ) కీప్యాడ్ను ATMEGA32A మైక్రోకంట్రోలర్తో ఇంటర్ఫేస్ చేయబోతున్నాం. ఎలక్ట్రానిక్స్ ప్రాజెక్టులలో ఉపయోగించే ముఖ్యమైన ఇన్పుట్ పరికరాలలో కీప్యాడ్ ఒకటి అని మాకు తెలుసు. ఎలక్ట్రానిక్ సిస్టమ్కు ఆదేశాలు లేదా సూచనలు ఇవ్వడానికి సులభమైన మార్గాలలో కీప్యాడ్ ఒకటి.
భాగాలు అవసరం
హార్డ్వేర్: ATMEGA32, విద్యుత్ సరఫరా (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF కెపాసిటర్, 100nF కెపాసిటర్, 10KΩ రెసిస్టర్ (8 ముక్కలు).
సాఫ్ట్వేర్: అట్మెల్ స్టూడియో 6.1 లేదా అట్మెల్ స్టూడియో 6.2, ప్రోగిస్ప్ లేదా ఫ్లాష్ మ్యాజిక్.
సర్క్యూట్ రేఖాచిత్రం మరియు వర్కింగ్ వివరణ
సర్క్యూట్లో ATMEGA32 యొక్క PORTB డేటా పోర్ట్ LCD కి అనుసంధానించబడి ఉంది. ఇక్కడ ఒక PORTC ను సాధారణ కమ్యూనికేషన్ పోర్ట్గా ఉపయోగించాలనుకుంటే, ఫ్యూజ్ బైట్లను మార్చడం ద్వారా PORTC ot ATMEGA లో JTAG కమ్యూనికేషన్ను నిలిపివేయాలని గుర్తుంచుకోవాలి. 16x2 LCD లో బ్యాక్ లైట్ ఉంటే అన్నింటికంటే 16 పిన్స్ ఉన్నాయి, బ్యాక్ లైట్ లేకపోతే 14 పిన్స్ ఉంటాయి. బ్యాక్ లైట్ పిన్లను శక్తివంతం చేయవచ్చు లేదా వదిలివేయవచ్చు. ఇప్పుడు 14 పిన్లలో 8 డేటా పిన్స్ (7-14 లేదా డి 0-డి 7), 2 విద్యుత్ సరఫరా పిన్స్ (1 & 2 లేదా విఎస్ఎస్ & విడిడి లేదా జిఎన్డి & + 5 వి), కాంట్రాస్ట్ కంట్రోల్ కోసం 3 వ పిన్ (అక్షరాలు ఎంత మందంగా ఉండాలో VEE- నియంత్రిస్తుంది చూపబడింది), మరియు 3 కంట్రోల్ పిన్స్ (RS & RW & E).
సర్క్యూట్లో, నేను రెండు కంట్రోల్ పిన్స్ మాత్రమే తీసుకున్నానని మీరు గమనించవచ్చు, ఇది వశ్యతను ఇస్తుంది, కాంట్రాస్ట్ బిట్ మరియు READ / WRITE తరచుగా ఉపయోగించబడవు కాబట్టి అవి భూమికి తగ్గించబడతాయి. ఇది ఎల్సిడిని అత్యధిక కాంట్రాస్ట్ మరియు రీడ్ మోడ్లో ఉంచుతుంది. అక్షరాలు మరియు డేటాను తదనుగుణంగా పంపడానికి మేము ఎనేబుల్ మరియు RS పిన్లను నియంత్రించాలి.
LCD కోసం చేసిన కనెక్షన్లు క్రింద ఇవ్వబడ్డాయి:
PIN1 లేదా VSS భూమికి
PIN2 లేదా VDD లేదా VCC నుండి + 5v శక్తికి
PIN3 లేదా VEE to ground (ఒక అనుభవశూన్యుడు కోసం గరిష్ట విరుద్ధతను ఉత్తమంగా ఇస్తుంది)
UC యొక్క PD6 కు PIN4 లేదా RS (రిజిస్టర్ ఎంపిక)
PIN5 లేదా RW (చదవడం / వ్రాయడం) భూమికి (LCD ని రీడ్ మోడ్లో ఉంచుతుంది వినియోగదారు కోసం కమ్యూనికేషన్ను సులభతరం చేస్తుంది)
UC యొక్క PD5 కు PIN6 లేదా E (ప్రారంభించు)
UC యొక్క PIN7 లేదా D0 నుండి PB0 వరకు
UC యొక్క PIN8 లేదా D1 నుండి PB1 వరకు
UC యొక్క PB9 లేదా D2 నుండి PB2 వరకు
UC యొక్క PIN10 లేదా D3 నుండి PB3 వరకు
UC యొక్క PIN11 లేదా D4 నుండి PB4 వరకు
UC యొక్క PIN12 లేదా D5 నుండి PB5 వరకు
UC యొక్క PIN13 లేదా D6 నుండి PB6 వరకు
UC యొక్క PIN14 లేదా D7to PB7
సర్క్యూట్లో మేము 8 బిట్ కమ్యూనికేషన్ (డి 0-డి 7) ను ఉపయోగించామని మీరు చూడవచ్చు, అయితే ఇది తప్పనిసరి కాదు, మేము 4 బిట్ కమ్యూనికేషన్ (డి 4-డి 7) ను ఉపయోగించవచ్చు, కాని 4 బిట్ కమ్యూనికేషన్ ప్రోగ్రామ్ తో కొంచెం క్లిష్టంగా మారుతుంది. కాబట్టి పై పట్టికను పరిశీలించడం నుండి మేము 10 పిన్స్ ఎల్సిడిని కంట్రోలర్కు కలుపుతున్నాము, ఇందులో 8 పిన్లు డేటా పిన్స్ మరియు నియంత్రణ కోసం 2 పిన్స్.
ఇప్పుడు కీప్యాడ్ గురించి మాట్లాడుదాం, కీప్యాడ్ మల్టీప్లెక్స్డ్ కీలు తప్ప మరొకటి కాదు. నియంత్రణ వ్యవస్థ యొక్క పిన్ వాడకాన్ని తగ్గించడానికి బటన్లు మల్టీప్లెక్స్ రూపంలో అనుసంధానించబడి ఉన్నాయి.
మనకు 4x4 కీప్యాడ్ ఉందని పరిగణించండి, ఈ కీప్యాడ్లో మనకు 16 బటన్లు ఉన్నాయి, సాధారణ సందర్భాల్లో 16 బటన్లను ఇంటర్ఫేస్ చేయడానికి మాకు 16 కంట్రోలర్ పిన్లు అవసరం, అయితే ఇది కంట్రోల్ సిస్టమ్ దృష్టికోణంలో మంచిది కాదు. మల్టీప్లెక్స్ రూపంలో బటన్లను కనెక్ట్ చేయడం ద్వారా ఈ పిన్ వాడకాన్ని తగ్గించవచ్చు.
ఉదాహరణకు, మనకు 16 బటన్లు ఉన్నాయని పరిగణించండి మరియు కీప్యాడ్ను రూపొందించడానికి మేము దానిని కంట్రోలర్కు అటాచ్ చేయాలనుకుంటున్నాము, ఈ కీలు చిత్రంలో చూపిన విధంగా అమర్చబడి ఉంటాయి:
చిత్రంలో చూపిన విధంగా ఈ బటన్లు సాధారణ నిలువు వరుసల ద్వారా అనుసంధానించబడి ఉన్నాయి:
చిత్రంలో చూపినట్లుగా, ప్రతి నాలుగు బటన్ల యొక్క గుర్తించబడని చివరలను ఒక నిలువు వరుసను రూపొందించడానికి గెట్హర్కు లాగబడతాయి మరియు 16 కీల కోసం మనకు నాలుగు నిలువు వరుసలు ఉంటాయి.
మేము పైన ఉన్న నిలువు వరుసల కనెక్షన్లను మరచిపోయి, ప్రతి నాలుగు బటన్ల యొక్క సాధారణ గుర్తు చివరలను కలిపి వరుసగా ఏర్పాటు చేస్తే:
చిత్రంలో చూపిన విధంగా, 16 కీల కోసం మనకు చిత్రంలో చూపిన విధంగా నాలుగు వరుసలు ఉంటాయి.
ఇప్పుడు అవి రెండూ కలిసి చూసినప్పుడు మనకు ఈ క్రింది సర్క్యూట్ లాంటిది లభిస్తుంది:
నియంత్రిక యొక్క పిన్ వాడకాన్ని తగ్గించడానికి ఇక్కడ మేము 16 కీలను మల్టీప్లెక్స్ రూపంలో కనెక్ట్ చేసాము. కనెక్ట్ చేయబడిన 16 కీల యొక్క మొదటి కేసుతో పోల్చినప్పుడు మనకు కంట్రోలర్పై 16 పిన్లు అవసరమయ్యాయి, కాని ఇప్పుడు మల్టీప్లెక్సింగ్ తర్వాత 16 కీలను కనెక్ట్ చేయడానికి 8 పిన్స్ కంట్రోలర్ అవసరం.
సాధారణంగా ఇది కీప్యాడ్ లోపల ప్రదర్శించబడుతుంది:
పై చిత్రంలో చూపిన విధంగా పై కీప్యాడ్లో 16 కీలు ఉన్నాయి మరియు ఈ ప్రతి కీ మల్టీప్లెక్స్డ్ బటన్ కాన్ఫిగరేషన్లోని బటన్ను సూచిస్తుంది. మల్టీప్లెక్స్డ్ కనెక్షన్ను సూచించే పై చిత్రంలో చూపిన విధంగా 8 పిన్ కనెక్షన్లు కూడా ఉన్నాయి.
ఇప్పుడు పని కోసం:
ఇక్కడ కీప్యాడ్లో నాలుగు నిలువు వరుసలు మరియు నాలుగు వరుసలు ఉన్నాయి, నొక్కిన బటన్ను గుర్తించడానికి, మేము క్రాస్ రిఫరెన్స్ పద్ధతిని ఉపయోగించబోతున్నాము. ఇక్కడ మొదట మనం అన్ని నిలువు వరుసలను లేదా అన్ని అడ్డు వరుసలను vcc కి కనెక్ట్ చేయబోతున్నాము, కాబట్టి వరుసలు సాధారణ vcc కి అనుసంధానించబడి ఉంటే, మేము నిలువు వరుసలను నియంత్రికకు ఇన్పుట్లుగా తీసుకోబోతున్నాము.
చిత్రంలో చూపిన విధంగా బటన్ ఒకటి నొక్కితే:
ఆ తరువాత కింది చిత్రంలో చూపిన విధంగా విద్యుత్తు సర్క్యూట్ ద్వారా ప్రవహిస్తుంది:
కాబట్టి మనకు బటన్ ప్రెస్ కోసం సి 1 అధికంగా ఉంటుంది. ఈ క్షణంలో, మేము శక్తి మరియు ఇన్పుట్ పోర్టులను మార్చబోతున్నాము, అంటే మేము నిలువు వరుసలకు శక్తినివ్వబోతున్నాము మరియు అడ్డు వరుసలను ఇన్పుట్లుగా తీసుకుంటాము, దీని ద్వారా, క్రింద ఉన్న చిత్రంలో చూపిన విధంగా శక్తి ప్రవాహం ఉంటుంది:
కాబట్టి వరుస కోసం మనకు R1 ఎక్కువ.
ప్రస్తుతానికి మనకు మొదటి సందర్భంలో C1 అధికం మరియు రెండవ సందర్భంలో R1 అధికం ఉంది, కాబట్టి మనకు బటన్ యొక్క మాతృక స్థానం ఉంది, అందుకే “వన్” సంఖ్య.
రెండవ బటన్ నొక్కితే, మనకు C1 ని కాలమ్ గా ఉంటుంది, కాని సాధారణ కాలమ్లో మనకు లభించే అధిక తర్కం 'R2' అవుతుంది. కాబట్టి మనకు C1 మరియు R2 ఉంటుంది, అందువల్ల మనకు రెండవ బటన్ యొక్క మ్యాట్రిక్స్ స్థానం ఉంటుంది.
ఈ విధంగా మేము ప్రోగ్రామ్ రాయబోతున్నాం, ఎనిమిది పిన్స్ కీప్యాడ్ను ఎనిమిది పిన్స్ కంట్రోలర్కు కనెక్ట్ చేయబోతున్నాం. మరియు ప్రారంభంలో మేము నాలుగు వరుసల కీప్యాడ్ను శక్తివంతం చేయడానికి నాలుగు పిన్స్ కంట్రోలర్కు శక్తినిస్తాము, ఈ సమయంలో మిగతా నాలుగు పిన్లను ఇన్పుట్లుగా తీసుకుంటారు. బటన్ నొక్కినప్పుడు సంబంధిత కాలమ్ పిన్ పైకి లాగబడుతుంది మరియు కంట్రోలర్ పిన్ పైకి లాగబడుతుంది, ఇది ఇన్పుట్ను శక్తిగా మరియు శక్తిని ఇన్పుట్గా మార్చడానికి గుర్తించబడుతుంది, కాబట్టి మనకు వరుసలను ఇన్పుట్లుగా కలిగి ఉంటుంది.
దీని ద్వారా మనం యూజర్ నొక్కిన బటన్ను పొందుతాము. ఈ మాతృక చిరునామాలు సంబంధిత సంఖ్యకు దర్శకత్వం వహించబడతాయి మరియు ఈ సంఖ్య LCD లో చూపబడుతుంది.
అవర్ మైక్రోకంట్రోలర్తో కీప్యాడ్ ఇంటర్ఫేసింగ్ యొక్క పని క్రింద ఇవ్వబడిన సి కోడ్లో దశల వారీగా వివరించబడింది. మీరు కూడా తనిఖీ చేయవచ్చు: 8051 మైక్రోకంట్రోలర్తో కీప్యాడ్ ఇంటర్ఫేసింగ్.