ఎంబెడెడ్ ప్రాజెక్టులు మరియు ఎలక్ట్రానిక్స్ ఉత్పత్తులలో డిస్ప్లే యూనిట్లు చాలా ముఖ్యమైన అవుట్పుట్ పరికరాలు. 16x2 LCD ఎక్కువగా ఉపయోగించే డిస్ప్లే యూనిట్లలో ఒకటి. 16x2 LCD అంటే రెండు వరుసలు ఉన్నాయి, ఇందులో ఒక పంక్తికి 16 అక్షరాలు ప్రదర్శించబడతాయి మరియు ప్రతి అక్షరం LCD లో 5X7 మ్యాట్రిక్స్ స్థలాన్ని తీసుకుంటుంది. ఈ ట్యుటోరియల్లో మేము 16X2 LCD మాడ్యూల్ను 8051 మైక్రోకంట్రోలర్కు (AT89S52) కనెక్ట్ చేయబోతున్నాం. 8051 మైక్రోకంట్రోలర్తో ఎల్సిడిని ఇంటర్ఫేసింగ్ చేయడం కొత్తవారికి చాలా క్లిష్టంగా అనిపించవచ్చు, కాని భావనను అర్థం చేసుకున్న తర్వాత ఇది చాలా సరళంగా మరియు తేలికగా కనిపిస్తుంది. మీరు 16 పిన్స్ ఎల్సిడిని మైక్రోకంట్రోలర్కు అర్థం చేసుకొని కనెక్ట్ చేయాల్సిన అవసరం ఉన్నందున ఇది సమయం పడుతుంది. కాబట్టి మొదట ఎల్సిడి మాడ్యూల్ యొక్క 16 పిన్లను అర్థం చేసుకుందాం.
పవర్ పిన్స్, కాంట్రాస్ట్ పిన్, కంట్రోల్ పిన్స్, డేటా పిన్స్ మరియు బ్యాక్లైట్ పిన్స్ అనే ఐదు విభాగాలుగా విభజించవచ్చు.
వర్గం |
పిన్ లేదు. |
పిన్ పేరు |
ఫంక్షన్ |
పవర్ పిన్స్ |
1 |
వి.ఎస్.ఎస్ |
గ్రౌండ్ పిన్, గ్రౌండ్కు కనెక్ట్ చేయబడింది |
2 |
VDD లేదా Vcc |
వోల్టేజ్ పిన్ + 5 వి |
|
కాంట్రాస్ట్ పిన్ |
3 |
V0 లేదా VEE |
కాంట్రాస్ట్ సెట్టింగ్, Vcc క్షుణ్ణంగా వేరియబుల్ రెసిస్టర్కు కనెక్ట్ చేయబడింది. |
నియంత్రణ పిన్స్ |
4 |
ఆర్ఎస్ |
రిజిస్టర్ ఎంచుకోండి పిన్, RS = 0 కమాండ్ మోడ్, RS = 1 డేటా మోడ్ |
5 |
ఆర్డబ్ల్యూ |
పిన్ చదవండి / వ్రాయండి, RW = 0 రైట్ మోడ్, RW = 1 రీడ్ మోడ్ |
|
6 |
ఇ |
ప్రారంభించండి, ఎల్సిడిని ప్రారంభించడానికి అధిక నుండి తక్కువ పల్స్ అవసరం |
|
డేటా పిన్స్ |
7-14 |
డి 0-డి 7 |
డేటా పిన్స్, ఎల్సిడి లేదా కమాండ్ సూచనలపై ప్రదర్శించాల్సిన డేటాను నిల్వ చేస్తుంది |
బ్యాక్లైట్ పిన్లు |
15 |
LED + లేదా A. |
బ్యాక్లైట్ + 5 వికి శక్తినివ్వడానికి |
16 |
LED- లేదా K. |
బ్యాక్లైట్ గ్రౌండ్ |
కంట్రోల్ పిన్స్ మినహా అన్ని పిన్స్ వాటి పేరు మరియు ఫంక్షన్ల ద్వారా స్పష్టంగా అర్థమవుతాయి, కాబట్టి అవి క్రింద వివరించబడ్డాయి:
RS: RS అనేది రిజిస్టర్ సెలెక్ట్ పిన్. ఎల్సిడిలో ప్రదర్శించబడటానికి కొంత డేటాను పంపుతున్నట్లయితే దాన్ని 1 కి సెట్ చేయాలి. స్క్రీన్ క్లియర్ (హెక్స్ కోడ్ 01) వంటి కొన్ని కమాండ్ ఇన్స్ట్రక్షన్ పంపుతున్నట్లయితే మనం దానిని 0 కి సెట్ చేస్తాము.
ఆర్డబ్ల్యు: ఇది రీడ్ / రైట్ పిన్, మేము ఎల్సిడిలో కొంత డేటాను రాయబోతున్నట్లయితే దాన్ని 0 గా సెట్ చేస్తాము. మరియు మేము LCD మాడ్యూల్ నుండి చదువుతుంటే దానిని 1 కు సెట్ చేయండి. సాధారణంగా ఇది 0 కి సెట్ చేయబడింది, ఎందుకంటే మనకు LCD నుండి డేటాను చదవవలసిన అవసరం లేదు. “LCD స్థితిని పొందండి” అనే ఒక సూచన మాత్రమే, కొన్ని సార్లు చదవాలి.
ఇ: ఈ పిన్ మాడ్యూల్కు అధిక నుండి తక్కువ పల్స్ ఇచ్చినప్పుడు దాన్ని ప్రారంభించడానికి ఉపయోగించబడుతుంది. 450 ఎన్ఎస్ పల్స్ ఇవ్వాలి. HIGH నుండి LOW కి మారడం మాడ్యూల్ను ఎనేబుల్ చేస్తుంది.
LCD లో కొన్ని ప్రీసెట్ కమాండ్ సూచనలు ఉన్నాయి, LCD (lcd_init () ఫంక్షన్లో) సిద్ధం చేయడానికి మేము వాటిని క్రింద ఉన్న మా ప్రోగ్రామ్లో ఉపయోగించాము. కొన్ని ముఖ్యమైన ఆదేశ సూచనలు క్రింద ఇవ్వబడ్డాయి:
హెక్స్ కోడ్ |
LCD ఇన్స్ట్రక్షన్ రిజిస్టర్కు కమాండ్ |
0 ఎఫ్ |
LCD ఆన్, కర్సర్ ఆన్ |
01 |
ప్రదర్శన స్క్రీన్ క్లియర్ |
02 |
ఇంటికి తిరిగి రా |
04 |
తగ్గింపు కర్సర్ (కర్సర్ను ఎడమ వైపుకు మార్చండి) |
06 |
పెరుగుదల కర్సర్ (కర్సర్ను కుడికి మార్చండి) |
05 |
ప్రదర్శనను కుడివైపుకి మార్చండి |
07 |
షిఫ్ట్ ప్రదర్శన ఎడమవైపు |
0 ఇ |
డిస్ప్లే ఆన్, కర్సర్ మెరిసే |
80 |
మొదటి పంక్తి ప్రారంభానికి కర్సర్ను బలవంతం చేయండి |
సి 0 |
కర్సర్ను రెండవ పంక్తి ప్రారంభానికి బలవంతం చేయండి |
38 |
2 పంక్తులు మరియు 5 × 7 మాతృక |
83 |
కర్సర్ లైన్ 1 స్థానం 3 |
3 సి |
రెండవ పంక్తిని సక్రియం చేయండి |
08 |
డిస్ప్లే ఆఫ్, కర్సర్ ఆఫ్ |
సి 1 |
రెండవ పంక్తికి వెళ్ళు, స్థానం 1 |
OC |
ఆన్, కర్సర్ ఆఫ్ |
సి 1 |
రెండవ పంక్తికి వెళ్ళు, స్థానం 1 |
సి 2 |
రెండవ పంక్తికి వెళ్లండి, స్థానం 2 |
సర్క్యూట్ రేఖాచిత్రం మరియు వివరణ
8051 మైక్రోకంట్రోలర్తో ఎల్సిడి ఇంటర్ఫేసింగ్ కోసం సర్క్యూట్ రేఖాచిత్రం పై చిత్రంలో చూపబడింది. మీకు 8051 పై ప్రాథమిక అవగాహన ఉంటే, మీరు 8051 మైక్రోకంట్రోలర్ యొక్క EA (PIN 31), XTAL1 & XTAL2, RST పిన్ (PIN 9), Vcc మరియు గ్రౌండ్ పిన్ గురించి తెలుసుకోవాలి. నేను ఈ పిన్లను పై సర్క్యూట్లో ఉపయోగించాను. మీకు దాని గురించి ఏమైనా ఆలోచన లేకపోతే, ఎల్సిడి ఇంటర్ఫేసింగ్ ద్వారా వెళ్ళే ముందు ఈ ఆర్టికల్ ఎల్ఇడి ఇంటర్ఫేసింగ్ను 8051 మైక్రోకంట్రోలర్తో చదవమని నేను మీకు సిఫార్సు చేస్తున్నాను.
కాబట్టి ఈ పై పిన్లతో పాటు ఎల్సిడి యొక్క డేటా పిన్లను (డి 0-డి 7) పోర్ట్ 2 (పి 2_0 - పి 2_7) మైక్రోకంట్రోలర్కు అనుసంధానించాము. మరియు మైక్రోకంట్రోలర్ యొక్క పిన్ 12,13,14 (పోర్ట్ 3 యొక్క పిన్ 2,3,4) కు పిన్స్ RS, RW మరియు E ని నియంత్రించండి.
ఎల్సిడి యొక్క పిన్ 2 (విడిడి) మరియు పిన్ 15 (బ్యాక్లైట్ సరఫరా) వోల్టేజ్ (5 వి) తో అనుసంధానించబడి ఉన్నాయి, మరియు పిన్ 1 (విఎస్ఎస్) మరియు పిన్ 16 (బ్యాక్లైట్ గ్రౌండ్) భూమికి అనుసంధానించబడి ఉన్నాయి.
ఎల్సిడి యొక్క విరుద్ధతను సర్దుబాటు చేయడానికి పిన్ 3 (వి 0) 10 కె యొక్క వేరియబుల్ రెసిస్టర్ ద్వారా వోల్టేజ్ (విసిసి) తో అనుసంధానించబడి ఉంది. వేరియబుల్ రెసిస్టర్ యొక్క మిడిల్ లెగ్ పిన్ 3 కి అనుసంధానించబడి ఉంది మరియు ఇతర రెండు కాళ్ళు వోల్టేజ్ సరఫరా మరియు గ్రౌండ్కు అనుసంధానించబడి ఉన్నాయి.
కోడ్ వివరణ
నేను వ్యాఖ్యల ద్వారా కోడ్ను వివరించడానికి ప్రయత్నించాను (కోడ్లోనే).
కమాండ్ మోడ్ మరియు డేటా మోడ్ గురించి నేను ఇంతకు ముందు వివరించినట్లుగా, కమాండ్ పంపేటప్పుడు (ఫంక్షన్ lcd_cmd) మేము RS = 0, RW = 0 ను సెట్ చేసాము మరియు దానిని 1 గా చేసి, 0 కి తక్కువ పల్స్ ఇకి ఇస్తాము. ఎల్సిడికి డేటా (ఫంక్షన్ lcd_data) పంపేటప్పుడు మేము RS = 1, RW = 0 ను సెట్ చేసాము మరియు 1 నుండి 0 గా చేయడం ద్వారా E కి HIGH to LOW పల్స్ ఇవ్వబడుతుంది. మిల్లీసెకన్లలో ఆలస్యాన్ని సృష్టించడానికి ఫంక్షన్ msdelay () సృష్టించబడింది మరియు ప్రోగ్రామ్లో తరచుగా పిలుస్తారు, దీనిని పిలుస్తారు, తద్వారా LCD మాడ్యూల్ అంతర్గత ఆపరేషన్ మరియు ఆదేశాలను అమలు చేయడానికి తగిన సమయం ఉంటుంది.
స్ట్రింగ్ను ప్రింట్ చేయడానికి కాసేపు లూప్ సృష్టించబడింది, ఇది చివరి అక్షరం (శూన్య టెర్మినేటర్- '\ 0') వరకు అక్షరాన్ని ముద్రించడానికి ప్రతిసారీ lcd_data ఫంక్షన్ను పిలుస్తుంది.
ప్రీసెట్ కమాండ్ సూచనలను ఉపయోగించి (పైన వివరించినది) LCD ని సిద్ధం చేయడానికి మేము lcd_init () ఫంక్షన్ను ఉపయోగించాము.