కీప్యాడ్లు వివిధ ఎలక్ట్రానిక్స్ మరియు ఎంబెడెడ్ ప్రాజెక్ట్లలో ఉపయోగించబడుతున్న ఇన్పుట్ పరికరాలను విస్తృతంగా ఉపయోగిస్తున్నారు. అవి సంఖ్యలు మరియు ఆల్బాబెట్ల రూపంలో ఇన్పుట్లను తీసుకోవడానికి ఉపయోగించబడతాయి మరియు తదుపరి ప్రాసెసింగ్ కోసం అదే వ్యవస్థలోకి తింటాయి. ఈ ట్యుటోరియల్లో మేము 80x1 మైక్రోకంట్రోలర్తో 4x4 మ్యాట్రిక్స్ కీప్యాడ్ను ఇంటర్ఫేస్ చేయబోతున్నాం.
4 ఎక్స్ 4 మ్యాట్రిక్స్ కీప్యాడ్
మేము కీప్యాడ్ను మైక్రోకంట్రోలర్తో ఇంటర్ఫేస్ చేయడానికి ముందు, మొదట ఇది ఎలా పనిచేస్తుందో అర్థం చేసుకోవాలి. మ్యాట్రిక్స్ కీప్యాడ్లో ఒకదానితో ఒకటి అనుసంధానించబడిన పుష్ బటన్ల సెట్ ఉంటుంది. మా విషయంలో మాదిరిగానే మేము 4X4 మ్యాట్రిక్స్ కీప్యాడ్ను ఉపయోగిస్తున్నాము, దీనిలో ప్రతి నాలుగు వరుసలలో 4 పుష్ బటన్లు ఉన్నాయి. మరియు పుష్ బటన్ల టెర్మినల్స్ రేఖాచిత్రం ప్రకారం అనుసంధానించబడి ఉన్నాయి. మొదటి వరుసలో, మొత్తం 4 పుష్ బటన్లలో ఒక టెర్మినల్ కలిసి అనుసంధానించబడి ఉంటుంది మరియు 4 పుష్ బటన్ల యొక్క మరొక టెర్మినల్ ప్రతి 4 నిలువు వరుసలను సూచిస్తుంది, ప్రతి అడ్డు వరుసకు అదే వెళుతుంది. కాబట్టి మైక్రోకంట్రోలర్తో కనెక్ట్ కావడానికి 8 టెర్మినల్స్ పొందుతున్నాము.
8051 మైక్రోకంట్రోలర్ (AT89S52) తో ఇంటర్ఫేసింగ్ కీప్యాడ్
మొదట మేము KEYPAD ద్వారా ఫీడ్ చేయబడే డేటాను ప్రదర్శించడానికి ఒక LCD మాడ్యూల్ను ఇంటర్ఫేస్ చేయాలి, కాబట్టి దయచేసి KEYPAD ను ఇంటర్ఫేస్ చేయడానికి ముందు “8051 మైక్రోకంట్రోలర్తో LCD ఇంటర్ఫేసింగ్” వ్యాసం ద్వారా వెళ్ళండి.
పై సర్క్యూట్ రేఖాచిత్రంలో చూపినట్లుగా, కీప్యాడ్ను ఇంటర్ఫేస్ చేయడానికి, మేము కీప్యాడ్ యొక్క 8 టెర్మినల్లను మైక్రోకంట్రోలర్ యొక్క ఏదైనా పోర్ట్కు (8 పిన్స్) కనెక్ట్ చేయాలి. మేము కీప్యాడ్ టెర్మినల్స్ ను 8051 యొక్క పోర్ట్ 1 కి కనెక్ట్ చేసినట్లుగా. ఏదైనా బటన్ నొక్కినప్పుడు మనం బటన్ యొక్క స్థానాన్ని పొందాలి, అంటే సంబంధిత ROW a COLUMN no. మేము బటన్ యొక్క స్థానాన్ని పొందిన తర్వాత, తదనుగుణంగా అక్షరాన్ని ముద్రించవచ్చు.
నొక్కిన బటన్ యొక్క స్థానాన్ని ఎలా పొందాలో ఇప్పుడు ప్రశ్న. నేను దీన్ని క్రింది దశల్లో వివరించబోతున్నాను మరియు మీరు కోడ్ను చూడాలని కూడా కోరుకుంటున్నాను:
1. మొదట మేము అన్ని వరుసలను లాజిక్ స్థాయి 0 కి మరియు అన్ని నిలువు వరుసలను లాజిక్ స్థాయి 1 కి చేసాము.
2. మేము ఒక బటన్ను నొక్కినప్పుడల్లా, ఆ బటన్కు అనుగుణమైన కాలమ్ మరియు అడ్డు వరుస చిన్నది అవుతుంది మరియు సంబంధిత కాలమ్ను లాజిక్ స్థాయి 0 కి చేస్తుంది. ఎందుకంటే ఆ కాలమ్ అడ్డు వరుసకు అనుసంధానించబడి ఉంటుంది (చిన్నది) ఇది లాజిక్ స్థాయి 0 వద్ద ఉంటుంది కాలమ్ నం. ప్రధాన () ఫంక్షన్ చూడండి.
3. ఇప్పుడు మనం వరుస సంఖ్యను కనుగొనవలసి ఉంది, కాబట్టి మేము ప్రతి కాలమ్కు అనుగుణంగా నాలుగు ఫంక్షన్లను సృష్టించాము. కాలమ్ వన్ యొక్క ఏదైనా బటన్ నొక్కినట్లే, అడ్డు వరుస సంఖ్యను కనుగొనడానికి మేము ఫంక్షన్ row_finder1 () అని పిలుస్తాము.
4. row_finder1 () ఫంక్షన్లో, మేము లాజిక్ స్థాయిలను తిప్పికొట్టాము, అంటే ఇప్పుడు అన్ని అడ్డు వరుసలు 1 మరియు నిలువు వరుసలు 0., మరియు అన్ని నిలువు వరుసలు 0 తర్కం వద్ద ఉన్నాయి. కాబట్టి మేము అన్ని వరుసలను 0 కోసం స్కాన్ చేసాము.
5. కాబట్టి మనం లాజిక్ 0 వద్ద అడ్డు వరుసను కనుగొన్నప్పుడల్లా, అంటే నొక్కిన బటన్ యొక్క వరుస. కాబట్టి ఇప్పుడు మనకు కాలమ్ సంఖ్య (2 వ దశలో వచ్చింది) మరియు అడ్డు వరుస సంఖ్య ఉన్నాయి, మరియు మేము సంఖ్యను ముద్రించవచ్చు. lcd_data ఫంక్షన్ ఉపయోగించి ఆ బటన్.
ప్రతి బటన్ ప్రెస్ కోసం అదే విధానం అనుసరిస్తుంది మరియు బటన్ నొక్కినట్లు లేదా కాదా అని నిరంతరం తనిఖీ చేయడానికి (1) ఉపయోగిస్తున్నాము.