- 16x2 డాట్ మ్యాట్రిక్స్ LCD కంట్రోలర్ IC HD44780:
- 16x2 LCD లో అనుకూల అక్షరాన్ని ప్రదర్శిస్తుంది:
- ప్రోగ్రామింగ్ మరియు వర్కింగ్ వివరణ:
- సర్క్యూట్ కనెక్షన్లు మరియు పరీక్ష:
మా మునుపటి ట్యుటోరియల్లో, పిఐసి మైక్రోకంట్రోలర్తో 16 * 2 ఎల్సిడిని ఎలా ఇంటర్ఫేస్ చేయాలో నేర్చుకున్నాము. మీరు పిఐసి మైక్రోకంట్రోలర్లో అనుభవశూన్యుడు అయితే, ఇంకా ముందుకు వెళ్ళే ముందు దాని ద్వారా వెళ్ళమని మేము మీకు సిఫార్సు చేస్తున్నాము. ఇంతకుముందు పిఐసి మైక్రోకంట్రోలర్లో ఎల్ఇడి బ్లింకింగ్ ప్రోగ్రామ్ మరియు టైమర్లను ఉపయోగించి పిఐసి యొక్క ప్రాథమికాలను కూడా నేర్చుకున్నాము. MPLABX మరియు XC8 కంపైలర్ ఉపయోగించి PIC మైక్రోకంట్రోలర్లను నేర్చుకోవడం గురించి అన్ని ట్యుటోరియల్లను మీరు ఇక్కడ తనిఖీ చేయవచ్చు.
ఈ ట్యుటోరియల్లో, మన స్వంత కస్టమ్ అక్షరాలను సృష్టించడం ద్వారా మరియు PIC16F877A PIC మైక్రోకంట్రోలర్ను ఉపయోగించి వాటిని మా LCD తెరపై ప్రదర్శించడం ద్వారా మరింత ఆసక్తికరంగా చేద్దాం. HD44780A IC ఇచ్చిన కొన్ని ముందుగా నిర్వచించిన ఎక్కువగా ఉపయోగించిన కస్టమ్ అక్షరాలు కూడా ఉన్నాయి, మనం వాటిని ఎలా ఉపయోగించవచ్చో కూడా చూస్తాము. మా మునుపటి ట్యుటోరియల్లో వివరించినట్లుగా, మా ఎల్సిడిలో హిటాచీ హెచ్డి 44780 కంట్రోలర్ను పొందుపరిచారు, ఇది అక్షరాలను ప్రదర్శించడానికి మాకు సహాయపడుతుంది. మేము ప్రదర్శించే ప్రతి అక్షరం ఇప్పటికే HD44780 IC యొక్క ROM లోపల ముందే నిర్వచించబడింది. LCD లో అక్షరాన్ని ప్రదర్శించే ముందు, LCD కంట్రోలర్ IC HD44780 గురించి నేర్చుకుంటాము.
16x2 డాట్ మ్యాట్రిక్స్ LCD కంట్రోలర్ IC HD44780:
కస్టమ్ అక్షరాన్ని ప్రదర్శించడానికి, కస్టమ్ క్యారెక్టర్ ఎలా ఉంటుందో మనం ఏదో ఒకవిధంగా ఐసికి చెప్పాలి. అలా చేయడానికి HD44780 LCD కంట్రోలర్ IC లో ఉన్న మూడు రకాల జ్ఞాపకాల గురించి మనం తెలుసుకోవాలి:
అక్షర జనరేటర్ ROM (CGROM): ఇది చదవడానికి మాత్రమే జ్ఞాపకం, ఇది ముందే చెప్పినట్లుగా, దానిలో ముందుగా నిర్వచించిన అక్షరాల యొక్క అన్ని నమూనాలను కలిగి ఉంటుంది. ఈ ROM ప్రతి రకం ఇంటర్ఫేస్ IC నుండి మారుతుంది మరియు కొన్ని వాటితో ముందే నిర్వచించిన అనుకూల అక్షరాన్ని కలిగి ఉండవచ్చు.
డిస్ప్లే డేటా ర్యామ్ (DDRAM): ఇది యాదృచ్ఛిక యాక్సెస్ మెమరీ. మేము ఒక పాత్రను ప్రదర్శించిన ప్రతిసారీ దాని నమూనా CGROM నుండి పొందబడుతుంది మరియు DDRAM కు బదిలీ చేయబడుతుంది మరియు తరువాత తెరపై ఉంచబడుతుంది. సరళంగా చెప్పాలంటే, ప్రస్తుతం ఎల్సిడి స్క్రీన్లో ప్రదర్శించబడుతున్న అన్ని అక్షరాల నమూనాలను DDRAM కలిగి ఉంటుంది. ప్రతి చక్రానికి ఈ మార్గం CGROM నుండి డేటాను పొందవలసిన అవసరం లేదు మరియు చిన్న నవీకరణ పౌన.పున్యాన్ని పొందడంలో సహాయపడుతుంది
అక్షర జనరేటర్ RAM (CGRAM): ఇది కూడా రాండమ్ యాక్సెస్ మెమరీ, కాబట్టి మనం దాని నుండి డేటాను వ్రాయవచ్చు మరియు చదవవచ్చు. పేరు సూచించినట్లుగా, ఈ మెమరీ కస్టమ్ క్యారెక్టర్ను రూపొందించడానికి ఉపయోగపడుతుంది. మేము పాత్ర కోసం ఒక నమూనాను ఏర్పరుచుకోవాలి మరియు దానిని CGRAM లో వ్రాయాలి, అవసరమైనప్పుడు ఈ నమూనాను స్క్రీన్లో చదవవచ్చు మరియు ప్రదర్శించవచ్చు.
ఇప్పుడు, HD44780 ఇంటర్ఫేస్ IC లో ఉన్న మెమరీ రకాలను గురించి మాకు ప్రాథమిక అవగాహన వచ్చింది. కొంచెం ఎక్కువ అర్థం చేసుకోవడానికి దాని డేటాషీట్ లోకి చూద్దాం.
డేటాషీట్ సూచించినట్లుగా, HD44780 IC మా అనుకూల నమూనాలను CGRAM లో నిల్వ చేయడానికి 8 స్థానాలుగా అందించింది, కుడి వైపున కూడా కొన్ని ముందే నిర్వచించిన అక్షరాలు ఉన్నాయని చూడవచ్చు, ఇవి మన LCD స్క్రీన్లో కూడా ప్రదర్శించబడతాయి. మనం దీన్ని ఎలా చేయగలమో చూద్దాం.
16x2 LCD లో అనుకూల అక్షరాన్ని ప్రదర్శిస్తుంది:
అనుకూల అక్షరాన్ని ప్రదర్శించడానికి మనం మొదట దాని కోసం ఒక నమూనాను రూపొందించి, దానిని CGRAM కు సేవ్ చేయాలి. మన వద్ద ఇప్పటికే లైబ్రరీ విధులు ఉన్నందున, కొన్ని సాధారణ ఆదేశాలతో దీన్ని చేయడం సులభం. LCD ఫంక్షన్ల కోసం లైబ్రరీ ఇక్కడ ఉంది, కానీ ఇక్కడ మేము అన్ని లైబ్రరీ ఫంక్షన్లను ప్రోగ్రామ్లోనే కాపీ-పేస్ట్ చేసాము, కాబట్టి ఈ హెడర్ ఫైల్ను మా ప్రోగ్రామ్లో చేర్చాల్సిన అవసరం లేదు. బేసిక్ ఎల్సిడి పని మరియు దాని పిన్అవుట్ల కోసం ఈ కథనాన్ని కూడా తనిఖీ చేయండి.
మొదటి దశ ఒక నమూనా లేదా అనుకూల అక్షరాన్ని రూపొందించడం. మనకు తెలిసిన ప్రతి పాత్ర 5 * 8 చుక్కల కలయిక. ఏ డాట్ (పిక్సెల్) ఎత్తుకు వెళ్ళాలి మరియు ఏది తక్కువగా ఉండాలో మనం ఎంచుకోవాలి. దిగువ వంటి పెట్టెను గీయండి మరియు మీ పాత్ర ఆధారంగా ప్రాంతాలను నీడ చేయండి. ఇక్కడ నా పాత్ర స్టిక్ మ్యాన్ (ఇది ఒకటిలా కనిపిస్తుందని ఆశిస్తున్నాను). షేడెడ్ అయిన తర్వాత, క్రింద చూపిన విధంగా ప్రతి బైట్ యొక్క సమానమైన బైనరీ విలువను వ్రాయండి.
ప్రతి బైట్కు షేడెడ్ ప్రాంతంపై '1' మరియు అన్-షేడెడ్ రీజియన్పై '0' ఉంచండి మరియు అది మా అనుకూల నమూనా సిద్ధంగా ఉంది. అదేవిధంగా నేను మా 8 మెమరీ ఖాళీల కోసం 8 కస్టమ్ నమూనా కోడ్లను CGROM ను ప్రదర్శించాను. అవి క్రింది పట్టికలో ఇవ్వబడ్డాయి.
S.NO: |
అనుకూల అక్షరం |
సరళి కోడ్ |
1 |
|
0b01110, 0b01110, 0b00100, 0b01110, 0b10101, 0b00100, 0b01010, 0b01010 |
2 |
|
0b00000, 0b00000, 0b01010, 0b00100, 0b00100, 0b10001, 0b01110, 0b00000 |
3 |
|
0b00100, 0b01110, 0b11111, 0b11111, 0b01110, 0b01110, 0b01010, 0b01010 |
4 |
|
0b01110, 0b10001, 0b10001, 0b11111, 0b11011, 0b11011, 0b11111, 0b00000 |
5 |
|
0b01110, 0b10000, 0b10000, 0b11111, 0b11011, 0b11011, 0b11111, 0b00000 |
6 |
|
0b00000, 0b10001, 0b01010, 0b10001, 0b00100, 0b01110, 0b10001, 0b00000 |
7 |
|
0b00000, 0b00000, 0b01010, 0b10101, 0b10001, 0b01110, 0b00100, 0b00000 |
8 |
|
0b11111, 0b11111, 0b10101, 0b11011, 0b11011, 0b11111, 0b10001, 0b11111 |
గమనిక: CGRAM లో అందించిన మొత్తం 8 ఖాళీలను లోడ్ చేయడం తప్పనిసరి కాదు.
ప్రోగ్రామింగ్ మరియు వర్కింగ్ వివరణ:
ఇప్పుడు మా నమూనా సంకేతాలు సిద్ధంగా ఉన్నాయి, మేము వాటిని LCD యొక్క CGRAM కు లోడ్ చేసి PIC మైక్రోకంట్రోలర్ ఉపయోగించి వాటిని ప్రదర్శించాలి. CGRAM లోకి వాటిని లోడ్ చేయడానికి మేము 5 * 8 శ్రేణి మూలకాలను ఏర్పరుచుకోవచ్చు మరియు ' ఫర్ లూప్ ' ఉపయోగించి ప్రతి బైట్ను లోడ్ చేయవచ్చు. నమూనా కోడ్ యొక్క శ్రేణి క్రింద చూపబడింది:
const సంతకం చేయని చిన్న Custom_Char5x8 = {0b01110,0b01110,0b00100,0b01110,0b10101,0b00100,0b01010,0b01010, // CGRAM మెమరీ స్థలం కోసం కోడ్ 1 0b00000,0b00000,0b01010,0b00100,0b00100,0b001 CGRAM మెమరీ స్పేస్ 2 0b00100,0b01110,0b11111,0b11111,0b01110,0b01110,0b01010,0b01010, // CGRAM మెమరీ స్థలం కోసం కోడ్ 3 0b01110,0b10001,0b10001,0b11111,0b11011,0b11011,0b11011 space 4 0b01110,0b10000,0b10000,0b11111,0b11011,0b11011,0b11111,0b00000, // CGRAM మెమరీ స్థలం కోసం కోడ్ 5 0b00000,0b10001,0b01010,0b10001,0b00100,0b01110,0b10001 0b00000,0b00000,0b01010,0b10101,0b10001,0b01110,0b00100,0b00000, // CGRAM మెమరీ స్థలం కోసం కోడ్ 7 0b11111,0b11111,0b10101,0b11011,0b11011,0b11111,0b1111
ప్రతి మెమరీ స్థలం దాని గౌరవనీయమైన అక్షర నమూనాతో లోడ్ అవుతుంది. ఈ నమూనాను HD44780 IC లోకి లోడ్ చేయడానికి, HD44780 యొక్క డేటా-షీట్ సూచించబడాలి, అయితే ఇది CGRAM యొక్క చిరునామాను సెట్ చేయడానికి ఉపయోగపడే కమాండ్ లైన్లు మాత్రమే
// *** CGROM లో కస్టమ్ చార్ను లోడ్ చేయండి *** ////// Lcd_Cmd (0x04); // CGRAM చిరునామాను సెట్ చేయండి Lcd_Cmd (0x00); //.. (i = 0; i <= 63; i ++) Lcd_Print_Char (Custom_Char5x8) కోసం CGRAM చిరునామాను సెట్ చేయండి; Lcd_Cmd (0); // ఇంటికి తిరిగి వెళ్ళు Lcd_Cmd (2); //.. ఇంటికి తిరిగి వెళ్ళు // *** కస్టమ్ చార్ పూర్తి అవుతోంది *** //////
ఇక్కడ, ' ఫర్ లూప్' లోపల ప్రతి బైనరీ విలువ CGROM లోకి లోడ్ అవుతుంది. నమూనా లోడ్ అయిన తర్వాత, క్రింద చూపిన విధంగా శూన్యమైన Lcd_Print_Char (చార్ డేటా) ఫంక్షన్ను ఉపయోగించి నమూనా యొక్క స్థానానికి కాల్ చేయడం ద్వారా అనుకూల అక్షరాలను ప్రదర్శించడానికి చేయవచ్చు.
ఎల్సిడి_ప్రింట్_చార్ (0); // అనుకూల అక్షరాన్ని ప్రదర్శించు 0 Lcd_Print_Char (1); // అనుకూల అక్షరాన్ని ప్రదర్శించు 1 Lcd_Print_Char (2); // అనుకూల అక్షరాన్ని ప్రదర్శించు 2 Lcd_Print_Char (3); // కస్టమ్ క్యారెక్టర్ 3 Lcd_Print_Char (4) ను ప్రదర్శించు; // అనుకూల అక్షరాన్ని ప్రదర్శించు 4 Lcd_Print_Char (5); // అనుకూల అక్షర 5 Lcd_Print_Char (6) ను ప్రదర్శించు; // కస్టమ్ క్యారెక్టర్ 6 Lcd_Print_Char (7) ను ప్రదర్శించు; // కస్టమ్ అక్షరాన్ని ప్రదర్శించు 7
ముందే నిర్వచించిన ప్రత్యేక అక్షరాన్ని ముద్రించండి:
HD44780 IC లో DDROM లో నిల్వ చేయబడిన కొన్ని ముందే నిర్వచించబడిన ప్రత్యేక అక్షరాలు ఉన్నాయి. డేటాషీట్లోని దాని బైనరీ విలువను సూచించడం ద్వారా ఈ అక్షరాలను నేరుగా తెరపై ముద్రించవచ్చు.
ఉదాహరణకు: "ALPHA" అక్షరం యొక్క బైనరీ విలువ 0b11100000. దీన్ని ఎలా పొందాలో ఈ క్రింది బొమ్మ నుండి అర్థం చేసుకోవచ్చు, అదేవిధంగా మీరు ఐసిలో ముందే నిర్వచించబడిన ఏదైనా ప్రత్యేక అక్షరానికి విలువను పొందవచ్చు.
బైనరీ విలువ తెలిసిన తర్వాత, క్రింద చూపిన విధంగా శూన్యమైన Lcd_Print_Char (చార్ డేటా) ఫంక్షన్ను ఉపయోగించడం ద్వారా సంబంధిత అక్షరాన్ని స్క్రీన్కు ముద్రించవచ్చు, ఎల్సిడి_ప్రింట్_చార్ (0 బి 11100000); డేటా-షీట్ నుండి ఆల్ఫా యొక్క బైనరీ విలువ
ఈ ప్రాజెక్ట్ యొక్క పూర్తి కోడ్ కోడ్ విభాగంలో క్రింద ఇవ్వబడింది, ఈ ట్యుటోరియల్ చివరిలో వీడియో వివరణను కూడా తనిఖీ చేయండి.
సర్క్యూట్ కనెక్షన్లు మరియు పరీక్ష:
ఈ ప్రాజెక్ట్కు అదనపు హార్డ్వేర్ అవసరం లేదు, మేము మునుపటి ఎల్సిడి ఇంటర్ఫేసింగ్ ట్యుటోరియల్ నుండి అదే కనెక్షన్లను ఉపయోగించాము మరియు LED బ్లింకింగ్ ట్యుటోరియల్లో మేము సృష్టించిన అదే బోర్డ్ను ఉపయోగించాము. మా అవుట్పుట్ను ధృవీకరించడానికి ప్రోటీస్ను ఉపయోగించి ప్రోగ్రామ్ను ఎప్పటిలాగే అనుకరిద్దాం.
మేము అనుకున్నట్లుగా అనుకరణ నడుస్తున్న తర్వాత, కోడ్ను మా హార్డ్వేర్ సెటప్లోకి నేరుగా బర్న్ చేద్దాం. ప్రోగ్రామ్ యొక్క అవుట్పుట్ ఇలా ఉండాలి:
కాబట్టి మీరు MPLABX మరియు XC8 కంపైలర్తో PIC మైక్రోకంట్రోలర్ను ఉపయోగించి 16x2 LCD లో ఏదైనా కస్టమ్ క్యారెక్టర్ను ఎలా ప్రదర్శించవచ్చు. మా పూర్తి PIC మైక్రోకంట్రోలర్ లెర్నింగ్ సిరీస్ను కూడా ఇక్కడ తనిఖీ చేయండి.