మానవ ప్రపంచం మరియు యంత్ర ప్రపంచం మధ్య మంచి సంభాషణను నెలకొల్పడానికి, ప్రదర్శన యూనిట్లు ముఖ్యమైన పాత్ర పోషిస్తాయి. కాబట్టి అవి ఎంబెడెడ్ సిస్టమ్స్లో ఒక ముఖ్యమైన భాగం. ప్రదర్శన యూనిట్లు - పెద్దవి లేదా చిన్నవి, ఒకే ప్రాథమిక సూత్రంపై పనిచేస్తాయి. గ్రాఫిక్ డిస్ప్లేలు మరియు 3 డి డిస్పాస్ వంటి సంక్లిష్ట ప్రదర్శన యూనిట్లతో పాటు, 16x1 మరియు 16x2 యూనిట్ల వంటి సాధారణ ప్రదర్శనలతో పనిచేయడం తెలుసుకోవాలి. 16x1 డిస్ప్లే యూనిట్లో 16 అక్షరాలు ఉంటాయి మరియు ఒకే వరుసలో ఉంటాయి. 16x2 LCD మొత్తం 16in 1 స్టంప్ లైన్లో 32 అక్షరాలను మరియు 2 nd లో 16 అక్షరాలను కలిగి ఉంటుందిలైన్. ప్రతి అక్షరంలో 5x10 = 50 పిక్సెల్లు ఉన్నాయని ఇక్కడ అర్థం చేసుకోవాలి, కాబట్టి ఒక అక్షరాన్ని ప్రదర్శించడానికి మొత్తం 50 పిక్సెల్లు కలిసి పనిచేయాలి. డిస్ప్లే యూనిట్లో పిక్సెల్లను నియంత్రించే పని చేసే మరో కంట్రోలర్ (హెచ్డి 44780) ఉన్నందున మనం దాని గురించి ఆందోళన చెందాల్సిన అవసరం లేదు. (మీరు దీన్ని ఎల్సిడి యూనిట్లో చూడవచ్చు, ఇది వెనుక భాగంలో ఉన్న నల్ల కన్ను).
భాగాలు అవసరం
హార్డ్వేర్:
ATmega32 మైక్రోకంట్రోలర్
విద్యుత్ సరఫరా (5 వి)
AVR-ISP ప్రోగ్రామర్
JHD_162ALCD (16x2 LCD)
100uF కెపాసిటర్.
సాఫ్ట్వేర్:
అట్మెల్ స్టూడియో 6.1
ప్రోగిస్ప్ లేదా ఫ్లాష్ మ్యాజిక్
సర్క్యూట్ రేఖాచిత్రం మరియు వివరణ
ATmega32 సర్క్యూట్తో LCD ఇంటర్ఫేసింగ్లో చూపినట్లుగా, ATMEGA32 యొక్క PORTA డేటా పోర్ట్ LCD కి కనెక్ట్ చేయబడిందని మీరు చూడవచ్చు. PORTC ని సాధారణ కమ్యూనికేషన్ పోర్ట్గా ఉపయోగించాలనుకుంటే, ఫ్యూజ్ బైట్లను మార్చడం ద్వారా ATMEGA యొక్క PORTC లోని JTAG కమ్యూనికేషన్ను నిలిపివేయాలని ఇక్కడ గుర్తుంచుకోవాలి. 16x2 LCD లో అన్నింటికంటే 16 పిన్స్ ఉన్నాయి, బ్యాక్ లైట్ ఉంటే, బ్యాక్ లైట్ లేకపోతే 14 పిన్స్ ఉంటాయి. బ్యాక్ లైట్ పిన్లను శక్తివంతం చేయవచ్చు లేదా వదిలివేయవచ్చు. ఇప్పుడు 14 పిన్లలో 8 డేటా పిన్స్ (7-14 లేదా డి 0-డి 7), 2 విద్యుత్ సరఫరా పిన్స్ (1 & 2 లేదా విఎస్ఎస్ & విడిడి లేదా జిఎన్డి & + 5 వి), కాంట్రాస్ట్ కంట్రోల్ కోసం 3 వ పిన్ (అక్షరాలు ఎంత మందంగా ఉండాలో VEE- నియంత్రిస్తుంది చూపబడింది), 3 కంట్రోల్ పిన్స్ (RS & RW & E)
AVR మైక్రోకంట్రోలర్తో 16x2 LCD ఇంటర్ఫేస్కు పై సర్క్యూట్లో, నేను రెండు కంట్రోల్ పిన్లను మాత్రమే తీసుకున్నాను. ఇది మంచి అవగాహన యొక్క సౌలభ్యాన్ని ఇస్తుంది. కాంట్రాస్ట్ బిట్ మరియు READ / WRITE తరచుగా ఉపయోగించబడవు కాబట్టి వాటిని భూమికి తగ్గించవచ్చు. ఇది ఎల్సిడిని అత్యధిక కాంట్రాస్ట్ మరియు రీడ్ మోడ్లో ఉంచుతుంది. అక్షరాలు మరియు డేటాను తదనుగుణంగా పంపడానికి మేము ఎనేబుల్ మరియు RS పిన్లను నియంత్రించాలి.
ATmega32 మైక్రోకంట్రోలర్ మరియు 16x2 LCD ల మధ్య కనెక్షన్లు క్రింద ఇవ్వబడ్డాయి:
పిన్ 1 లేదా విఎస్ఎస్ - గ్రౌండ్
PIN2 లేదా VDD లేదా VCC - + 5v శక్తి
PIN3 లేదా VEE - గ్రౌండ్ (ఒక అనుభవశూన్యుడు కోసం గరిష్ట విరుద్ధతను ఉత్తమంగా ఇస్తుంది)
PIN4 లేదా RS (రిజిస్టర్ ఎంపిక) - మైక్రోకంట్రోలర్ యొక్క PD6
PIN5 లేదా RW (చదవడం / వ్రాయడం) - గ్రౌండ్ (LCD ని రీడ్ మోడ్లో ఉంచుతుంది వినియోగదారు కోసం కమ్యూనికేషన్ను సులభతరం చేస్తుంది)
PIN6 లేదా E (ప్రారంభించు) - మైక్రోకంట్రోలర్ యొక్క PD5
మైక్రోకంట్రోలర్ యొక్క PIN7 లేదా D0 - PA0
PIN8 లేదా D1 - PA1
PIN9 లేదా D2 - PA2
PIN10 లేదా D3 - PA3
PIN11 లేదా D4 - PA4
PIN12 లేదా D5 - PA5
PIN13 లేదా D6 - PA6
PIN14 లేదా D7 - PA7
సర్క్యూట్లో మేము 8 బిట్ కమ్యూనికేషన్ (డి 0-డి 7) ను ఉపయోగించాము, అయితే ఇది తప్పనిసరి కాదు మరియు మేము 4 బిట్ కమ్యూనికేషన్ (డి 4-డి 7) ను కూడా ఉపయోగించవచ్చు, కాని 4 బిట్ కమ్యూనికేషన్ ప్రోగ్రామ్ ప్రారంభకులకు కొంచెం క్లిష్టంగా మారుతుంది కాబట్టి మేము వెళ్ళాము 8 బిట్ కమ్యూనికేషన్.
కాబట్టి పై పట్టిక నుండి కేవలం పరిశీలన నుండి మేము 10 పిన్స్ ఎల్సిడిని కంట్రోలర్కు కలుపుతున్నాము, ఇందులో 8 పిన్స్ డేటా పిన్స్ మరియు నియంత్రణ కోసం 2 పిన్స్.
పని
ఇప్పుడు ప్రారంభించడానికి మీరు 16x2 LCD యొక్క 10 పిన్స్ (8 డేటా పిన్స్ + 2 కంట్రోల్ పిన్స్) యొక్క విధులను తెలుసుకోవాలి. 8 డేటా పిన్స్ LCD కి డేటా లేదా ఆదేశాలను పంపడం. రెండు నియంత్రణ పిన్లలో:
1. RS (రిజిస్టర్ ఎంపిక) పిన్ అంటే LCD కి మనం డేటాను పంపుతున్నామా లేదా దానికి ఆదేశించాలా అని చెప్పడం.
ఉదాహరణకి:
పై పట్టికలో “0b0010 1000 లేదా 0x28” యొక్క డేటా పోర్ట్ (D7-D0) విలువ LCD కి “(” చిహ్నాన్ని ప్రదర్శించమని చెబుతుంది. పట్టిక రెండులో 0x28 యొక్క అదే విలువ LCD కి చెబుతుంది “మీరు 5x7 డాట్ LCD మరియు ఒకదాని వలె ప్రవర్తించండి ”, కాబట్టి అదే విలువ కోసం వినియోగదారు రెండు విషయాలను నిర్వచించగలరు, ఇప్పుడు ఈ పరిస్థితి రిజిస్టర్ సెలెక్షన్ పిన్ ద్వారా తటస్థీకరించబడింది, RS పిన్ తక్కువగా సెట్ చేయబడితే LCD మేము ఆదేశాన్ని పంపుతున్నట్లు అర్థం చేసుకుంటుంది. మనం RS పిన్ను అధికంగా సెట్ చేస్తే మేము డేటాను పంపుతున్నామని LCD అర్థం చేసుకుంటుంది. అందువల్ల రెండు సందర్భాల్లోనూ LCD డేటా పోర్ట్ విలువను RS పిన్ విలువ ప్రకారం గౌరవిస్తుంది.
2. ఇ (ఎనేబుల్) పిన్ అంటే “పిసి యొక్క పవర్ ఇండికేషన్ ఎల్ఇడి” అని చెప్పడం, ఈ పిన్ ఎల్సిడికి “డేటా ఫారమ్ డేటా పోర్ట్ ఆఫ్ కంట్రోలర్ను స్వీకరించడానికి” చెప్పడానికి అధికంగా సెట్ చేయబడింది. ఈ పిన్ అధిక తర్వాత తక్కువ అయిన తర్వాత, ఎల్సిడి అందుకున్న డేటాను ప్రాసెస్ చేస్తుంది మరియు సంబంధిత ఫలితాన్ని చూపుతుంది. కాబట్టి డేటాను పంపే ముందు ఈ పిన్ అధికంగా సెట్ చేయబడుతుంది మరియు డేటాను పంపిన తర్వాత భూమికి లాగబడుతుంది.
ఇప్పుడు హార్డ్వేర్ను కనెక్ట్ చేసిన తర్వాత, అట్మెల్ స్టూడియోని ప్రారంభించి, ప్రోగ్రామ్ రాయడానికి కొత్త ప్రాజెక్ట్ను ప్రారంభించండి, ఇప్పుడు ప్రోగ్రామింగ్ స్క్రీన్ను తెరిచి, రింగ్ ప్రోగ్రామ్ను ప్రారంభించండి. ప్రోగ్రామ్ షో ఫాలోయింగ్ గా అనుసరించాలి.
మొదట మేము కంట్రోలర్కు డేటా మరియు ఎల్సిడి నియంత్రణ కోసం ఏ పోర్టులను ఉపయోగిస్తున్నామో తెలియజేస్తాము. RS మరియు E పిన్లతో ఆడుకోవడం ద్వారా డేటా లేదా కమాండ్ను ఎప్పుడు పంపాలో నియంత్రికకు చెప్పండి.
కార్యక్రమంలో ఉపయోగించిన భావనల సంక్షిప్త వివరణ:
1. E అధికంగా సెట్ చేయబడింది (డేటాను స్వీకరించమని LCD కి చెప్పడం) మరియు RS తక్కువగా సెట్ చేయబడింది (LCD కి చెప్పడం మేము కమాండ్ ఇస్తున్నాము)
2. స్క్రీన్ను క్లియర్ చేయడానికి ఆదేశంగా డేటా పోర్ట్కు విలువ 0x01 ఇవ్వడం
3. E అధికంగా సెట్ చేయబడింది (డేటాను స్వీకరించమని LCD కి చెప్పడం) మరియు RS అధికంగా సెట్ చేయబడింది (మేము డేటాను ఇస్తున్న LCD కి చెప్పడం)
4. ప్రతి అక్షరాన్ని ఒక్కొక్కటిగా తీసే అక్షరాల స్ట్రింగ్ తీసుకోవడం.
5. E తక్కువగా సెట్ చేయబడింది (మేము డేటాను పంపినట్లు LCD కి చెప్పడం)
6. చివరి ఆదేశం తరువాత LCD కమ్యూనికేషన్ను ముగించి డేటాను ప్రాసెస్ చేస్తుంది మరియు తెరపై అక్షరాల స్ట్రింగ్ను ప్రదర్శిస్తుంది.
ఈ దృష్టాంతంలో మనం పాత్రలను ఒకదాని తరువాత ఒకటి పంపబోతున్నాం. అక్షరాలను ఎల్సిడికి ASCII సంకేతాలు (అమెరికన్ స్టాండర్డ్ కోడ్ ఫర్ ఇన్ఫర్మేషన్ ఇంటర్చేంజ్) ఇస్తాయి.
ASCII సంకేతాల పట్టిక పైన చూపబడింది. ఇక్కడ LCD “@” అక్షరాన్ని చూపించడానికి మనం హెక్సాడెసిమల్ కోడ్ “64” ను పంపాలి. మేము '0x62' ను LCD కి పంపితే అది '>' గుర్తును చూపుతుంది. ఇలా మనం పేరును ప్రదర్శించడానికి తగిన కోడ్లను ఎల్సిడికి పంపబోతున్నాం.
LCD మరియు ATmega32 AVR మైక్రోకంట్రోలర్ మధ్య కమ్యూనికేషన్ యొక్క మార్గం సి కోడ్ యొక్క దశల వారీగా క్రింద వివరించబడింది,