మన రోజువారీ జీవితంలో భద్రత ఒక ప్రధాన ఆందోళన, మరియు ఈ భద్రతా వ్యవస్థలలో డిజిటల్ తాళాలు ఒక ముఖ్యమైన భాగంగా మారాయి. పిఐఆర్ బేస్డ్ సెక్యూరిటీ సిస్టమ్స్, ఆర్ఎఫ్ఐడి ఆధారిత సెక్యూరిటీ సిస్టమ్, లేజర్ సెక్యూరిటీ అలారాలు, బయో మ్యాట్రిక్స్ సిస్టమ్స్ వంటి అనేక రకాల టెక్నాలజీలు అందుబాటులో ఉన్నాయి. ఇప్పుడు కూడా, మన స్మార్ట్ ఫోన్లను ఉపయోగించి ఆపరేట్ చేయగల డిజిటల్ లాక్లు ఉన్నాయి, అంటే లేదు వేర్వేరు కీలను ఉంచాల్సిన అవసరం ఉంది, కేవలం ఒక స్మార్ట్ ఫోన్ అన్ని తాళాలను ఆపరేట్ చేయగలదు, ఈ భావన ఇంటర్నెట్ ఆఫ్ థింగ్స్పై ఆధారపడి ఉంటుంది.
ఈ ప్రాజెక్ట్లో, మేము 8051 మైక్రోకంటోర్లర్ను ఉపయోగించి సరళమైన ఎలక్ట్రానిక్ కోడ్ లాక్ని వివరించాము, ఇది ముందే నిర్వచించిన కోడ్ ద్వారా మాత్రమే అన్లాక్ చేయబడుతుంది, మేము తప్పు కోడ్ను నమోదు చేస్తే, సిస్టమ్ బజర్ను సైరన్ చేయడం ద్వారా హెచ్చరిస్తుంది. మేము ఇప్పటికే ఆర్డునో ఉపయోగించి డిజిటల్ లాక్ని సృష్టించాము.
పని వివరణ:
ఈ వ్యవస్థలో ప్రధానంగా AT89S52 మైక్రోకంట్రోలర్, కీప్యాడ్ మాడ్యూల్, బజర్ మరియు LCD ఉన్నాయి. At89s52 మైక్రోకంట్రోలర్ పాస్వర్డ్ ఫారమ్ కీప్యాడ్ మాడ్యూల్ తీసుకోవడం, పాస్వర్డ్లను ముందే నిర్వచించిన పాస్వర్డ్ను పోల్చడం, బజర్ డ్రైవింగ్ చేయడం మరియు ఎల్సిడి డిస్ప్లేకి స్థితిని పంపడం వంటి పూర్తి ప్రక్రియలను నియంత్రిస్తుంది. మైక్రోకంట్రోలర్లో పాస్వర్డ్ను చొప్పించడానికి కీప్యాడ్ ఉపయోగించబడుతుంది. తప్పు పాస్వర్డ్ను సూచించడానికి బజర్ ఉపయోగించబడుతుంది మరియు దానిపై స్థితి లేదా సందేశాలను ప్రదర్శించడానికి LCD ఉపయోగించబడుతుంది. ఎన్పిఎన్ ట్రాన్సిస్టర్ను ఉపయోగించడం ద్వారా బజర్ ఇన్బిల్ట్ డ్రైవర్ను కలిగి ఉంది.
భాగాలు:
- 8051 మైక్రోకంట్రోలర్ (AT89S52)
- 4X4 కీప్యాడ్ మాడ్యూల్
- బజర్
- 16x2 LCD
- రెసిస్టర్ (1 కే, 10 కె)
- పుల్లప్ రెసిస్టర్ (10 కె)
- కెపాసిటర్ (10 యుఎఫ్)
- రెడ్ దారితీసింది
- బ్రెడ్ బోర్డు
- ఐసి 7805
- 11.0592 MHz క్రిస్టల్
- విద్యుత్ పంపిణి
- వైర్లను కనెక్ట్ చేస్తోంది
మల్టీప్లెక్సింగ్ టెక్నిక్ ఉపయోగించి 4X4 కీప్యాడ్ మ్యాట్రిక్స్ నుండి ఇన్పుట్ తీసుకోవడం:
ఈ సర్క్యూట్లో, సిస్టమ్లో పాస్వర్డ్ను నమోదు చేయడానికి, 8051 మైక్రోకంట్రోలర్కు కీప్యాడ్ను ఇంటర్ఫేస్ చేయడానికి మల్టీప్లెక్సింగ్ టెక్నిక్ని ఉపయోగించాము. ఇక్కడ మేము 16 కీలను కలిగి ఉన్న 4x4 కీప్యాడ్ను ఉపయోగిస్తున్నాము. మేము 16 కీలను ఉపయోగించాలనుకుంటే, 89s52 కి కనెక్షన్ కోసం మాకు 16 పిన్ అవసరం, కానీ మల్టీప్లెక్సింగ్ టెక్నిక్లో 16 కీలను ఇంటర్ఫేస్ చేయడానికి 8 పిన్లను మాత్రమే ఉపయోగించాలి. కనుక ఇది కీప్యాడ్ మాడ్యూల్ను ఇంటర్ఫేస్ చేయడానికి ఒక మంచి మార్గం.
ఇన్పుట్ లేదా పాస్వర్డ్ను అందించడానికి మైక్రోకంట్రోలర్తో ఉపయోగించే పిన్స్ సంఖ్యను తగ్గించడానికి మల్టీప్లెక్సింగ్ టెక్నిక్ చాలా సమర్థవంతమైన మార్గం. ప్రాథమికంగా ఈ సాంకేతికత రెండు విధాలుగా ఉపయోగించబడుతుంది - ఒకటి వరుస స్కానింగ్ మరియు మరొకటి కాలమ్ స్కానింగ్.
ఇక్కడ మేము వరుస స్కానింగ్ గురించి వివరించబోతున్నాము:
మొదట మనం కీప్యాడ్ మాడ్యూల్ కోసం 8 పిన్ను నిర్వచించాలి. దీనిలో మొదటి 4 పిన్స్ కాలమ్ మరియు చివరి 4 పిన్స్ వరుసలు.
అడ్డు వరుస స్కానింగ్ కోసం మనం కాలమ్ పిన్స్కు డేటా లేదా సిగ్నల్ ఇవ్వాలి మరియు రో పిన్ నుండి ఆ డేటా లేదా సిగ్నల్ చదవాలి. ఇప్పుడు మేము కాలమ్ పిన్లకు దిగువ డేటాను ఇద్దాం అనుకుందాం:
సి 1 = 0;
సి 2 = 1;
సి 3 = 1;
సి 4 = 1;
మరియు మేము ఈ డేటాను వరుస పిన్స్ వద్ద చదువుతాము (అప్రమేయంగా అడ్డు వరుస పిన్స్ పుల్-అప్ రెసిస్టర్ కారణంగా అధికంగా ఉంటాయి).
వినియోగదారు కీ సంఖ్య '1' ను నొక్కితే, R1 HIGH ని LOW గా మారుస్తుంది అంటే R1 = 0; మరియు వినియోగదారు '1' కీని నొక్కినట్లు నియంత్రిక అర్థం చేసుకుంటుంది. మరియు ఇది LCD లో '1' ను ప్రింట్ చేస్తుంది మరియు '1' ను శ్రేణిలో నిల్వ చేస్తుంది. కాబట్టి R1 వద్ద ఈ HIGH to LOW మార్పు, కాలమ్ 1 కి అనుగుణమైన కొన్ని కీ నొక్కినట్లు కంట్రోలర్ అర్థం చేసుకునే ప్రధాన విషయం.
ఇప్పుడు యూజర్ కీ నంబర్ '2' ను నొక్కితే, R1 HIGH వద్ద C1 మరియు R1 రెండూ HIGH వద్ద ఉంటాయి. అందువల్ల ఎటువంటి మార్పు ఉండదు, అంటే కాలమ్ వన్లో ఏమీ నొక్కినట్లు మైక్రోకంట్రోలర్ అర్థం చేసుకుంటుంది. అదేవిధంగా ఈ ప్రిన్సిపాల్ అన్ని పిన్స్ కోసం వెళుతుంది. కాబట్టి ఈ దశలో నియంత్రిక కాలమ్ వన్ లోని కీల కోసం మాత్రమే వేచి ఉంటుంది: '1', '4', '7' మరియు '*'.
ఇప్పుడు మనం ఇతర నిలువు వరుసలలో (కోల్ 2 లో ఉన్నట్లు) కీలను ట్రాక్ చేయాలనుకుంటే, అప్పుడు నిలువు వరుసల పిన్స్ వద్ద డేటాను మార్చాలి:
సి 1 = 1;
సి 2 = 0;
సి 3 = 1;
సి 4 = 1;
ఈ సమయ నియంత్రిక కాలమ్ రెండులోని కీల కోసం మాత్రమే వేచి ఉంటుంది: '2', '5', '8'అండ్' 0 ', ఎందుకంటే కాలమ్ రెండు కీలను నొక్కినప్పుడు మాత్రమే మార్పు (HIGH నుండి LOW) జరుగుతుంది. మేము col 1, 3 లేదా 4 లో ఏదైనా కీని నొక్కితే ఎటువంటి మార్పు జరగదు, ఎందుకంటే ఈ నిలువు వరుసలు HIGH వద్ద ఉన్నాయి మరియు వరుసలు ఇప్పటికే HIGH వద్ద ఉన్నాయి.
అదేవిధంగా కాలమ్ C3 మరియు C4 లోని కీలను కూడా ఒకేసారి 0 గా మార్చడం ద్వారా వాటిని ట్రాక్ చేయవచ్చు. వివరణాత్మక వివరణను ఇక్కడ తనిఖీ చేయండి: 8051 తో కీప్యాడ్ ఇంటర్ఫేసింగ్. తర్కాన్ని సరిగ్గా అర్థం చేసుకోవడానికి క్రింది కోడ్ విభాగం ద్వారా వెళ్ళండి.
సర్క్యూట్ వివరణ:
8051 ఉపయోగించి ఈ డిజిటల్ లాక్ కోసం సర్క్యూట్ రేఖాచిత్రం క్రింద చూపబడింది మరియు సులభంగా అర్థం చేసుకోవచ్చు. కీప్యాడ్ మాడ్యూల్ యొక్క కాలమ్ పిన్స్ నేరుగా పిన్ P0.0, P0.1, P0.2, P0.3 కు అనుసంధానించబడి ఉన్నాయి మరియు 89952 మైక్రోకంట్రోలర్ యొక్క పోర్ట్ 0 యొక్క P0.4, P0.5, P0.6, P0.7 కు రో పిన్స్ అనుసంధానించబడి ఉన్నాయి. 16x2 LCD 4-బిట్ మోడ్లో 89s52 మైక్రోకంట్రోలర్తో అనుసంధానించబడి ఉంది. కంట్రోల్ పిన్ RS, RW మరియు En నేరుగా పిన్ P1.0, GND మరియు P1.2 లకు అనుసంధానించబడి ఉన్నాయి. మరియు డేటా పిన్ D4-D7 89s52 యొక్క పిన్స్ P1.4, P1.5, P1.6 మరియు P1.7 లకు అనుసంధానించబడి ఉంది. మరియు ఒక బజర్ పిన్ P2.6 వద్ద రెసిస్టర్ ద్వారా అనుసంధానించబడి ఉంది.
ప్రోగ్రామ్ వివరణ:
మేము ప్రోగ్రామ్లో ముందే నిర్వచించిన పాస్వర్డ్ను ఉపయోగించాము, ఈ పాస్వర్డ్ను ఈ క్రింది కోడ్లోని వినియోగదారు నిర్వచించవచ్చు. వినియోగదారు సిస్టమ్కు పాస్వర్డ్ ఎంటర్ చేసినప్పుడు, ఆపై సిస్టమ్ వినియోగదారు ఎంటర్ చేసిన పాస్వర్డ్ను కోడ్ ఆఫ్ ప్రోగ్రామ్లో నిల్వ చేసిన లేదా ముందే నిర్వచించిన పాస్వర్డ్తో పోలుస్తుంది. ఒక మ్యాచ్ సంభవిస్తే, ఎల్సిడి “యాక్సెస్ గ్రేటెడ్” చూపిస్తుంది మరియు పాస్వర్డ్ సరిపోలకపోతే ఎల్సిడి “యాక్సెస్ నిరాకరించబడింది” చూపిస్తుంది మరియు కొంతకాలం బజర్ నిరంతరం బీప్ అవుతుంది. ఇక్కడ మేము string.h లైబ్రరీని ఉపయోగించాము. ఈ లైబ్రరీని ఉపయోగించడం ద్వారా “strncmp” ఫంక్షన్ను ఉపయోగించడం ద్వారా మనం రెండు తీగలను పోల్చవచ్చు లేదా సరిపోల్చవచ్చు.
ప్రోగ్రామ్లో, మొదట మేము హెడర్ ఫైల్ను చేర్చుకుంటాము మరియు కీప్యాడ్ మరియు ఎల్సిడి కోసం వేరియబుల్ మరియు ఇన్పుట్ & అవుట్పుట్ పిన్లను నిర్వచిస్తాము.
# చేర్చండి
1 సెకన్ల ఆలస్యాన్ని సృష్టించే ఫంక్షన్, ఎల్సిడి ప్రారంభించడం, స్ట్రింగ్ను ముద్రించడం, ఆదేశాల కోసం కొన్ని ఎల్సిడి ఫంక్షన్లతో పాటు సృష్టించబడింది. మీరు వాటిని కోడ్లో సులభంగా కనుగొనవచ్చు. 8051 మరియు దాని ఫంక్షన్లతో LCD ఇంటర్ఫేసింగ్ కోసం ఈ కథనాన్ని తనిఖీ చేయండి.
దీని తరువాత, ప్రధాన ప్రోగ్రామ్లో మేము ఎల్సిడిని ప్రారంభించాము, ఆపై కీప్యాడ్ () ఫంక్షన్ను ఉపయోగించి కీప్యాడ్ నుండి ఇన్పుట్ను చదివి, ఇన్పుట్ కీలను శ్రేణిలోకి నిల్వ చేసి, ఆపై దాన్ని strncmp ఉపయోగించి ముందే నిర్వచించిన శ్రేణి డేటా నుండి పోల్చండి.
void main () {బజర్ = 1; lcd_init (); lcdstring ("ఎలక్ట్రానిక్ కోడ్"); lcdcmd (0xc0); lcdstring ("లాక్ సిస్టమ్"); ఆలస్యం (400); lcdcmd (1); lcdstring ("సర్క్యూట్ డైజెస్ట్"); ఆలస్యం (400); (1) {i = 0; కీప్యాడ్ (); if (strncmp (పాస్, "4201", 4) == 0)
నమోదు చేసిన పాస్వర్డ్ సరిపోలితే, అంగీకరించు () ఫంక్షన్ అంటారు:
void అంగీకరించు () {lcdcmd (1); lcdstring ("స్వాగతం"); lcdcmd (192); lcdstring ("పాస్వర్డ్ అంగీకరించు"); ఆలస్యం (200); }
పాస్వర్డ్ తప్పు అయితే తప్పు () ఫంక్షన్ అంటారు:
void wrong () {బజర్ = 0; lcdcmd (1); lcdstring ("తప్పు పాస్కీ"); lcdcmd (192); lcdstring ("PLZ మళ్ళీ ప్రయత్నించండి"); ఆలస్యం (200); బజర్ = 1; }
ఇన్పుట్ ఫారమ్ కీప్యాడ్ మాడ్యూల్ను చదివే కోడ్లో దిగువ కీప్యాడ్ ఫంక్షన్ను తనిఖీ చేయండి.