- 16x2 ఆల్ఫాన్యూమరిక్ ఎల్సిడి డిస్ప్లే
- MSP430 కోసం 16x2 LCD CCS లైబ్రరీ
- MSP430 లో 16x2 LCD డిస్ప్లే కోసం LCD విధులు
- MSP430 తో ఇంటర్ఫేస్ LCD కి సర్క్యూట్ రేఖాచిత్రం
- LCD డిస్ప్లే కోసం కోడ్ కంపోజర్ స్టూడియోని ఉపయోగించి ప్రోగ్రామింగ్ MSP430
ఈ వ్యాసం కోడ్ కంపోజర్ స్టూడియోని ఉపయోగించి ప్రోగ్రామింగ్ MSP430 పై మా ట్యుటోరియల్ సిరీస్ యొక్క కొనసాగింపు. చివరి ట్యుటోరియల్ GPIO పిన్లను ఉపయోగించి MSP430 లో బాహ్య అంతరాయాల ఆధారంగా రూపొందించబడింది. ఈ ట్యుటోరియల్ MSP430 తో డిస్ప్లేని ఇంటర్ఫేస్ చేయడం గురించి, 16 * 2 LCD డిస్ప్లేని ప్రదర్శించడానికి వచ్చినప్పుడు , ఇది ఏదైనా ఎలక్ట్రానిక్ అభిరుచి గలవారికి మొదటి ఎంపిక. ఇంతకుముందు మేము ఎల్సిడిని ఎంఎస్పి 430 తో ఆర్డునో ఐడిఇని ఉపయోగించి ఇంటర్ఫేస్ చేసాము, ఈ ట్యుటోరియల్లో, ఆర్డునో ఐడిఇని ఉపయోగించకుండా స్థానిక కోడ్ కంపోజర్ స్టూడియో ప్లాట్ఫామ్ను ఉపయోగిస్తాము, ఈ విధంగా డిజైనర్గా, మనకు మరింత సౌలభ్యం లభిస్తుంది.
16x2 LCD డిస్ప్లే గురించి మరింత తెలుసుకోవడానికి మరియు ఇతర మైక్రోకంట్రోలర్లతో ఉపయోగించడం కోసం, దయచేసి క్రింద ట్యుటోరియల్స్ చూడండి.
- ATmega16 తో LCD ని ఇంటర్ఫేసింగ్
- రాస్ప్బెర్రీ పైతో ఎల్.సి.డి.
- పిఐసి మైక్రోకంట్రోలర్తో ఎల్సిడిని ఇంటర్ఫేసింగ్
- ARM7-LPC2148 తో LCD ని ఇంటర్ఫేసింగ్
- నోడ్ఎంసియుతో ఎల్సిడిని ఇంటర్ఫేసింగ్
- STM32 తో LCD ని ఇంటర్ఫేసింగ్
- MSP430G2 తో LCD ని ఇంటర్ఫేసింగ్
- STM8 తో LCD ని ఇంటర్ఫేసింగ్
ఇది అంతర్నిర్మిత IC hd44780 ను కలిగి ఉంది, అది కమాండ్ మరియు దానికి పంపిన డేటాను నిల్వ చేస్తుంది. ఎల్సిడి మాడ్యూల్లో సుమారు 16 పిన్లు ఉన్నాయి. వాటిలో 8 డేటా పిన్స్, వాటిలో 4 బ్యాక్లైట్ ఎల్ఇడి మరియు మొత్తం ఎల్సిడి మాడ్యూల్ కోసం సరఫరా పిన్లు, ఆపరేషన్ను నియంత్రించడానికి 3 మరియు కాంట్రాస్ట్ సర్దుబాటు కోసం 1 పిన్. ట్యుటోరియల్ డెన్నిస్ ఐచ్మాన్ సృష్టించిన లైబ్రరీపై ఆధారపడి ఉంటుంది. వేర్వేరు డేటా రకాలను ముద్రించడానికి ప్రత్యేక ఫంక్షన్లతో లైబ్రరీని ఉపయోగించడం చాలా సులభం. ప్రముఖ, ఖాళీ మరియు తొలగించిన సున్నాలతో డేటాను వివిధ రూపాల్లో ప్రదర్శించడానికి ఇది నిబంధనలను కలిగి ఉంది. ఇది చాలా విస్తృతమైన మరియు సమగ్రమైన లైబ్రరీ మరియు విభిన్న కనెక్షన్లకు కాన్ఫిగర్ చేయబడుతుంది. ఇక్కడ, డేటా కమ్యూనికేషన్ కోసం 8-పిన్ సమాంతర ఆకృతీకరణకు అనుగుణంగా హెడర్ ఫైల్ సవరించబడింది.
16x2 ఆల్ఫాన్యూమరిక్ ఎల్సిడి డిస్ప్లే
సాధారణ 16x2 డిస్ప్లేలో అంతర్నిర్మిత hd44780 IC ఉంది (క్రింద ఎరుపు రంగులో ప్రదక్షిణ చేయబడింది), ఇది కమాండ్ మరియు దానికి పంపిన డేటాను నిల్వ చేస్తుంది. ఎల్సిడి మాడ్యూల్లో సుమారు 16 పిన్లు ఉన్నాయి. వాటిలో 8 డేటా పిన్స్, వాటిలో 4 బ్యాక్లైట్ ఎల్ఇడి మరియు మొత్తం ఎల్సిడి మాడ్యూల్ కోసం సరఫరా పిన్లు, ఆపరేషన్ను నియంత్రించడానికి 3 మరియు కాంట్రాస్ట్ సర్దుబాటు కోసం 1 పిన్.
ఈ LCD మాడ్యూల్ బహుముఖ పైన చూపబడింది మరియు ఇతర సెగ్మెంటెడ్ LCD లతో పోలిస్తే కనీస పిన్లను ఉపయోగిస్తుంది. ఇవన్నీ సరిగ్గా ఎలా పనిచేస్తాయో తెలుసుకోవాలనే ఆసక్తి మీకు ఉంటే, ఎల్సిడి ఎలా వివరంగా పనిచేస్తుందో మేము ఇప్పటికే చర్చించిన 16x2 ఎల్సిడి డిస్ప్లే యొక్క పనిని మీరు తనిఖీ చేయాలి.
RS పిన్: RS = 1 LCD లోని డేటా రిజిస్టర్ను ప్రారంభిస్తుంది, ఇది LCD లోని డేటా రిజిస్టర్కు విలువలను వ్రాయడానికి ఉపయోగించబడుతుంది. RS = 0 LCD యొక్క ఇన్స్ట్రక్షన్ రిజిస్టర్ను అనుమతిస్తుంది.
పిన్ను ప్రారంభించండి: ప్రతికూల అంచు-ప్రేరేపించబడినది; పిన్ను హై స్టేట్ నుండి తక్కువ స్టేట్కు మార్చినప్పుడు, ఎల్సిడి డేటా పిన్లకు వ్రాయమని ప్రాంప్ట్ చేయబడుతుంది. సానుకూల అంచు-ప్రేరేపించబడినది; పిన్ తక్కువ స్థితి నుండి అధిక స్థితికి మార్చబడినప్పుడు, డేటా పిన్ల నుండి ఎల్సిడి చదవమని ప్రాంప్ట్ చేయబడుతుంది.
R / W పిన్: R / W = 0 RS పిన్ ఎంపిక ప్రకారం ఇన్స్ట్రక్షన్ రిజిస్టర్ లేదా డేటా రిజిస్టర్కు వ్రాస్తుంది. RS పిన్ ఎంపిక ప్రకారం R / W = 1 IR లేదా DR నుండి చదువుతుంది.
RS R / W ఆపరేషన్
0 0 IR అంతర్గత ఆపరేషన్గా వ్రాయండి (స్పష్టంగా ప్రదర్శించు, మొదలైనవి)
0 1 బిజీ ఫ్లాగ్ (DB7) మరియు అడ్రస్ కౌంటర్ (DB0 నుండి DB6 వరకు) చదవండి
1 0 DR అంతర్గత ఆపరేషన్గా వ్రాయండి (DR నుండి DDRAM లేదా CGRAM)
1 1 DR అంతర్గత ఆపరేషన్గా చదవబడుతుంది (DDRAM లేదా CGRAM నుండి DR వరకు)
D0-D7 పిన్స్: డేటా కమాండ్కు మరియు నుండి బదిలీ చేయబడుతుంది మరియు ఈ పిన్ల ద్వారా డేటా రిజిస్టర్ అవుతుంది.
సరఫరా పిన్స్: LCD మాడ్యూల్కు శక్తినివ్వడానికి V ss, V dd పిన్లను ఉపయోగిస్తారు. A, K పిన్స్ LED బ్యాక్లైట్కు శక్తినిస్తాయి. కాంట్రాస్ట్ను నియంత్రించడానికి V 0 పిన్లను ఉపయోగిస్తారు.
MSP430 కోసం 16x2 LCD CCS లైబ్రరీ
ట్యుటోరియల్ డెన్నిస్ ఐచ్మాన్ సృష్టించిన లైబ్రరీపై ఆధారపడి ఉంటుంది. వేర్వేరు డేటా రకాలను ముద్రించడానికి ప్రత్యేక ఫంక్షన్లతో లైబ్రరీని ఉపయోగించడం చాలా సులభం. ప్రముఖ, ఖాళీ మరియు తొలగించిన సున్నాలతో డేటాను వివిధ రూపాల్లో ప్రదర్శించడానికి ఇది నిబంధనలను కలిగి ఉంది. ఇది చాలా విస్తృతమైన మరియు సమగ్రమైన లైబ్రరీ మరియు విభిన్న కనెక్షన్లకు కాన్ఫిగర్ చేయబడుతుంది. ఇక్కడ, డేటా కమ్యూనికేషన్ కోసం 8-పిన్ సమాంతర ఆకృతీకరణకు అనుగుణంగా హెడర్ ఫైల్ సవరించబడింది. లైబ్రరీని క్రింది లింక్ నుండి డౌన్లోడ్ చేసుకోవచ్చు, డౌన్లోడ్ చేసిన తర్వాత మీరు లైబ్రరీని CCS కు జోడించడానికి క్రింది దశలను అనుసరించండి.
MSP430 కోసం 16x2 లైబ్రరీని డౌన్లోడ్ చేయండి - కోడ్ కంపోజర్ స్టూడియో
దశ 1: ఫైళ్ళు మరియు ప్రాజెక్టులను సృష్టించడం
ఫైల్ మెనుని ఉపయోగించి డిఫాల్ట్ CCS ప్రాజెక్ట్ సృష్టించబడుతుంది. సృష్టించు ప్రాజెక్ట్ డైలాగ్ బాక్స్లో, పరికరాన్ని ఎంచుకుని, ప్రాజెక్ట్ పేరుగా hd44780 ఇవ్వండి. ప్రాజెక్ట్ రకం మరియు టూల్చెయిన్ కింద, అవుట్పుట్ రకాన్ని స్టాటిక్ లైబ్రరీగా ఎంచుకోండి మరియు ప్రాజెక్ట్ను సృష్టించండి.
ప్రాజెక్ట్ ఎక్స్ప్లోరర్ లేన్లో (ఎడమ వైపు), చేర్చండి ఫోల్డర్లో ఒక హెడర్ ఫైల్ను సృష్టించండి మరియు దానికి hd44780.h అని పేరు పెట్టండి . డౌన్లోడ్ చేసిన hd44780.h ఫైల్లోని విషయాలను కొత్తగా సృష్టించిన వాటికి కాపీ చేయండి.
అవుట్పుట్ రకాన్ని ఎక్జిక్యూటబుల్ గా మార్చడం ద్వారా ఇప్పుడు ప్రధాన ప్రాజెక్ట్ను సృష్టించండి మరియు CCS_LCD అనే ప్రాజెక్ట్ను సృష్టించండి.
దశ 2: ప్రధాన ప్రాజెక్టుకు శోధన మార్గాలను చేర్చండి
HD44780 ప్రాజెక్ట్ యొక్క ప్రాపర్టీస్ డైలాగ్ బాక్స్లో మరియు MSP430 కంపైలర్ కోసం చేర్చబడిన ఎంపికల లోపల, శోధన మార్గంలో ఫైల్లో చేర్చండి ఫోల్డర్ను జోడించండి.
అప్పుడు, .lib ఫైల్స్ వంటి అవసరమైన లింకర్ ఫైళ్ళను సృష్టించడానికి ఈ ప్రాజెక్ట్ను నిర్మించండి. దీన్ని నిర్మించడం డీబగ్ ఫోల్డర్ లోపల hd44780.lib ఫైల్ను సృష్టిస్తుంది.
దశ 3: లింకర్ కోసం శోధన మార్గాలను చేర్చండి
CCS_LCD ప్రాజెక్ట్ కోసం ప్రాపర్టీస్ డైలాగ్ బాక్స్లో మరియు MSP430 లింకర్ టాబ్ యొక్క ఫైల్ సెర్చ్ పాత్లో, hd44780 ప్రాజెక్ట్ యొక్క డీబగ్ ఫోల్డర్ లోపల ఉన్న hd44780.lib ని చేర్చండి. డీబగ్ ఫోల్డర్ ఫైల్ శోధన మార్గంలో కూడా చేర్చబడింది.
CCS_LCD ప్రాజెక్ట్ యొక్క MSP430 కంపైలర్ యొక్క చేర్చబడిన ఎంపికలకు చేర్చబడిన ఫోల్డర్ మళ్ళీ జోడించబడింది.
లైబ్రరీ విజయవంతంగా కంపైల్ చేయబడింది మరియు ప్రధాన ప్రాజెక్ట్ యొక్క లింకర్కు జోడించబడుతుంది.
MSP430 లో 16x2 LCD డిస్ప్లే కోసం LCD విధులు
void hd44780_timer_isr (void): దీనిని టైమర్ A. యొక్క ISR లో క్రమానుగతంగా పిలుస్తారు. స్క్రీన్ను క్లియర్ చేయడం, కర్సర్ను సెట్ చేయడం మరియు డేటాను ప్రదర్శించడం వంటి LCD ఫంక్షన్లను క్రమానుగతంగా చేయడానికి టైమర్ A ఉపయోగించబడుతుంది. ఫంక్షన్ ISR లో ఉపయోగించబడుతుంది. ఇది ఏమీ ఇవ్వదు.
uint8_t hd44780_write_string (char * ch__string, uint8_t u8__row, uint8_t u8__column, uint8_t u8__cr_lf): ఇది మొదటి ఆర్గ్యుమెంట్లో పేర్కొన్న స్ట్రింగ్ను వ్రాస్తుంది.
చార్ * ch__ స్ట్రింగ్ : డేటా బఫర్కు వ్రాయవలసిన స్ట్రింగ్ (hd44780_timer_isr ఫంక్షన్ లోపల). Hd44780_timer_isr ని క్రమానుగతంగా పిలిచినప్పుడు డేటా LCD IC యొక్క డేటా రిజిస్టర్ మరియు ఇన్స్ట్రక్షన్ రిజిస్టర్కు కాపీ చేయబడుతుంది.
uint8_t u8__row: ఇది స్ట్రింగ్ వ్రాయబడే అడ్డు వరుసను నిర్వచిస్తుంది.
uint8_t u8__ కాలమ్ : ఇది స్ట్రింగ్ వ్రాయబడే కాలమ్ను నిర్వచిస్తుంది.
uint8_t u8__cr_lf: ఇది 1 గా సెట్ చేయబడితే, అడ్డు వరుస తదుపరిదానికి తీసుకువెళుతుంది. ఇది 0 అయితే, ప్రింటింగ్ అదే వరుసలో ఆగుతుంది.
void hd44780_clear_screen (శూన్యమైనది): ఈ ఫంక్షన్ మొత్తం స్క్రీన్ను క్లియర్ చేస్తుంది. ఇది ఏమీ ఇవ్వదు.
uint8_t hd44780_output_unsigned_16bit_value (uint16_t u16__value, uint8_t u8__leading_zero_handling, uint8_t u8__row, uint8_t u8__column, uint8_t u8__cr_lf): ఫంక్షన్ సంతకం చేయని 16-బిట్ విలువను ప్రదర్శిస్తుంది.
uint16_t u16__value: ప్రదర్శించాల్సిన పూర్ణాంకం మొదటి వాదనలో ఇవ్వబడింది.
uint8_t u8__leading_zero_handling: 0 ఉత్తీర్ణత సాధించినట్లయితే, పూర్ణాంక విలువకు ప్రముఖ సున్నాలు చూపబడతాయి. 1 ఉత్తీర్ణత సాధించినట్లయితే, సున్నాలు ఖాళీ చేయబడతాయి. 2 పరామితిగా ఆమోదించబడితే, ముఖ్యమైన అంకెలు మాత్రమే చూపబడతాయి.
uint8_t u8__row: పూర్ణాంకం ప్రదర్శించబడే అడ్డు వరుస ఎంచుకోబడుతుంది.
uint8_t u8__ కాలమ్ : వాదనను ఉపయోగించి ముద్రించవలసిన కాలమ్ ఎంపిక చేయబడింది.
uint8_t u8__cr_lf: ఇది 1 గా సెట్ చేయబడితే, అడ్డు వరుస తదుపరిదానికి తీసుకువెళుతుంది. ఇది 0 అయితే, ప్రింటింగ్ అదే వరుసలో ఆగుతుంది.
MSP430 తో ఇంటర్ఫేస్ LCD కి సర్క్యూట్ రేఖాచిత్రం
పూర్తి సర్క్యూట్ రేఖాచిత్రం క్రింది చిత్రంలో వివరించబడింది. మీరు గమనిస్తే, హార్డ్వేర్ కనెక్షన్లు చాలా సులభం మరియు మేము 5V అడాప్టర్ను ఉపయోగించడం ద్వారా పూర్తి బోర్డ్ను శక్తివంతం చేసాము.
పై స్కెచ్ ప్రకారం కనెక్షన్లు తయారు చేయబడతాయి. వివరణాత్మక కనెక్షన్ల కోసం దయచేసి క్రింది పట్టికలో చూడండి.
Vss | 5 వి విద్యుత్ సరఫరా గ్రౌండ్ |
Vdd | 5 వి |
వి 0 | పొటెన్టోమీటర్ అవుట్పుట్ |
ఆర్ఎస్ | పి 2.1 |
R / W. | గ్రౌండ్ |
ఇ | పి 2.0 |
డి 0 | పి 1.0 |
డి 1 | పి 1.1 |
డి 2 | పి 1.2 |
డి 3 | పి 1.3 |
డి 4 | పి 1.4 |
డి 5 | పి 1.5 |
డి 6 | పి 1.6 |
డి 7 | పి 1.7 |
జ | 220 ఓం రెసిస్టర్ |
కె | గ్రౌండ్ |
LED బ్యాక్లైట్ యొక్క యానోడ్ నేరుగా 5V సరఫరాతో కనెక్ట్ చేయబడదు. ఎల్సిడి మాడ్యూల్ ద్వారా ప్రస్తుత ప్రవాహాన్ని తగ్గించడానికి దీనిని ప్రతిఘటనతో అనుసంధానించాలి. నేను ఎల్సిడిని టంకం చేయడానికి పెర్ఫ్ బోర్డ్ను ఉపయోగించి నా కనెక్షన్లను తయారు చేసాను, ఆపై ఎల్సిడిని ఎంఎస్పి 430 బోర్డ్తో కనెక్ట్ చేయడానికి జంపర్ వైర్లను ఉపయోగించాను, నా సెటప్ ఈ విధంగా కనిపిస్తుంది, కానీ మీరు మీ కనెక్షన్లను చేయడానికి బ్రెడ్బోర్డ్ను కూడా ఉపయోగించవచ్చు.
LCD డిస్ప్లే కోసం కోడ్ కంపోజర్ స్టూడియోని ఉపయోగించి ప్రోగ్రామింగ్ MSP430
ఈ ప్రాజెక్ట్లో ఉపయోగించిన పూర్తి కోడ్ ఈ పేజీ దిగువన ఇవ్వబడింది. కోడ్ను ఉపయోగించడం యొక్క వివరణ క్రింది విధంగా ఉంది. మొదట, హెడర్ ఫైల్ (hd44780.h) ను తెరిచి, ఫైల్ యొక్క మొదటి భాగంలో మైక్రోకంట్రోలర్ పార్ట్ నంబర్ను చేర్చండి.
# చేర్చండి "msp430g2553.h"
వాచ్డాగ్ టైమర్ను మొదట ఆపివేయాలి. మైక్రోకంట్రోలర్ యొక్క ఓసిలేటర్ను కాన్ఫిగర్ చేయడానికి DCOCTL మరియు BCSCTL1 కంట్రోల్ రిజిస్టర్లు ఉపయోగించబడతాయి. దిగువ పంక్తులు MCLK ని 1MHZ గా కాన్ఫిగర్ చేస్తాయి.
WDTCTL = (WDTPW - WDTHOLD); BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ;
పోర్ట్ 1 పిన్లను అవుట్పుట్గా పేర్కొనాలి, ఇది డేటా పిన్ల కోసం ఉపయోగించబడుతుంది. పిన్ 0 మరియు పిన్ 1 ను పోర్ట్ 2 లో అవుట్పుట్ గా పేర్కొనవలసి ఉంది, ఇది RS మరియు R / W పిన్ కొరకు ఉపయోగించబడుతుంది.
P1DIR = 0xFF; పి 2 డిఐఆర్ = (0x01 - 0x02);
విలువలను క్రమానుగతంగా ప్రదర్శించడానికి ఇన్బిల్ట్ టైమర్ ఉపయోగించబడుతోంది. టైమర్ A ని క్లాక్ సోర్స్గా SMCLK (1MHZ) తో ఎంపిక చేస్తారు మరియు నిరంతర మోడ్ ఆపరేషన్ మోడ్.
TA0CCR1 = 32768; TA0CCTL1 = CCIE; TA0CTL = (TASSEL_2 - MC_2 - TACLR);
1 మరియు 2 పోలిక ఛానెల్ల అంతరాయాలు మరియు టైమర్ ఓవర్ఫ్లో అంతరాయం ఒకే ప్రారంభ అంతరాయ వెక్టర్ను ( TIMER0_A1_VECTOR ) వేర్వేరు ప్రారంభ చిరునామాలతో పంచుకుంటాయి . క్యాప్చర్ సరిపోల్చండి ఛానల్ 1 (CCR1) ఉపయోగిస్తుంది 2 స్విచ్ సందర్భంలో ఉపయోగిస్తున్నారు ఇది చిరునామా అని.
#pragma vector = TIMER0_A1_VECTOR __ నిరంతర శూన్య టైమర్_0_a1_isr (శూన్యమైనది) { స్విచ్ (TA0IV) { కేసు 2: { hd44780_timer_isr (); విచ్ఛిన్నం; } } }
మీరు మీ కోడ్ను కంపైల్ చేసిన తర్వాత, MSP430 ట్యుటోరియల్తో ప్రారంభించడంలో వివరించిన విధంగా మీరు దాన్ని MSP430 బోర్డ్కి అప్లోడ్ చేయవచ్చు. ప్రతిదీ expected హించిన విధంగా జరిగితే, క్రింద చూపిన విధంగా మీ LCD డిస్ప్లే కొంత విరుద్ధంగా చూడాలి.
మీ పరీక్ష చాలా మసకగా ఉంటే, మంచి కాంట్రాస్ట్ పొందడానికి మీరు పొటెన్షియోమీటర్ను సర్దుబాటు చేయడానికి ప్రయత్నించవచ్చు. ప్రాజెక్ట్ యొక్క పూర్తి పని క్రింద లింక్ చేయబడిన వీడియోలో కూడా చూడవచ్చు. మీరు ప్రాజెక్ట్ను ఆస్వాదించారని మరియు మీ స్వంతంగా నిర్మించడం ఆసక్తికరంగా ఉందని ఆశిస్తున్నాము. మీకు ఏవైనా ప్రశ్నలు ఉంటే, దయచేసి వాటిని క్రింది వ్యాఖ్య విభాగంలో ఉంచండి. ఫోరమ్లలో మీ అన్ని సాంకేతిక ప్రశ్నలకు సమాధానం ఇవ్వడానికి లేదా చర్చను ప్రారంభించడానికి కూడా మీరు వ్రాయవచ్చు.