ఏదైనా ఎంబెడెడ్ సిస్టమ్ అప్లికేషన్లో డిస్ప్లే చాలా ముఖ్యమైన భాగం, ఎందుకంటే ఇది సిస్టమ్ యొక్క స్థితిని తెలుసుకోవడానికి వినియోగదారులకు సహాయపడుతుంది మరియు అవుట్పుట్ లేదా సిస్టమ్ సృష్టించిన ఏదైనా హెచ్చరిక సందేశాన్ని కూడా చూపిస్తుంది. 7-సెగ్మెంట్ డిస్ప్లే, ఎల్సిడి డిస్ప్లే, టిఎఫ్టి టచ్స్క్రీన్ డిస్ప్లే, ఎల్ఇడి డిస్ప్లే వంటి ఎలక్ట్రానిక్స్లో అనేక రకాల డిస్ప్లేలు ఉపయోగించబడుతున్నాయి.
మేము ఇప్పటికే మా మునుపటి ట్యుటోరియల్లో ARM7-LPC2148 తో 16x2 LCD ని ఇంటర్ఫేస్ చేసాము. ఈ రోజు ఈ ట్యుటోరియల్లో మేము ARM7-LPC2148 తో 7-సెగ్మెంట్ డిస్ప్లేని ఇంటర్ఫేస్ చేస్తాము. వివరాల్లోకి వెళ్ళే ముందు, ఎన్ని అక్షరాలను ప్రదర్శించడానికి 7-సెగ్మెంట్ మాడ్యూల్ను ఎలా నియంత్రించాలో చూద్దాం.
7-సెగ్మెంట్ డిస్ప్లే
7 సెగ్మెంట్ డిస్ప్లేలు సంఖ్యలు మరియు అక్షరాలను ప్రదర్శించడానికి సరళమైన ప్రదర్శన యూనిట్లలో ఉన్నాయి. ఇది సాధారణంగా సంఖ్యలను ప్రదర్శించడానికి ఉపయోగించబడుతుంది మరియు డాట్ మ్యాట్రిక్స్ డిస్ప్లే కంటే ప్రకాశవంతమైన ప్రకాశం మరియు సరళమైన నిర్మాణాన్ని కలిగి ఉంటుంది. మరియు ప్రకాశవంతమైన ప్రకాశం కారణంగా, అవుట్పుట్ LCD కన్నా పెద్ద దూరం నుండి చూడవచ్చు. 7-సెగ్మెంట్ డిస్ప్లే యొక్క పై చిత్రంలో చూపినట్లుగా, ఇది 8 ఎల్ఇడిలను కలిగి ఉంటుంది, ప్రతి ఎల్ఇడి యూనిట్ యొక్క ఒక విభాగాన్ని ప్రకాశవంతం చేయడానికి ఉపయోగించబడుతుంది మరియు 7 సెగ్మెంట్ డిస్ప్లేలో డాట్ను ప్రకాశవంతం చేయడానికి ఉపయోగించే 8 వ ఎల్ఇడి. రెండు లేదా అంతకంటే ఎక్కువ 7-సెగ్మెంట్ మాడ్యూళ్ళను ఉపయోగించినప్పుడు 8 వ ఎల్ఇడి ఉపయోగించబడుతుంది, ఉదాహరణకు ప్రదర్శించడానికి (0.1). ఒకే అంకె లేదా అక్షరాన్ని ప్రదర్శించడానికి ఒకే మాడ్యూల్ ఉపయోగించబడుతుంది. ఒకటి కంటే ఎక్కువ అంకెలు లేదా అక్షరాలను ప్రదర్శించడానికి, బహుళ 7-విభాగాలు ఉపయోగించబడతాయి.
7-సెగ్మెంట్ డిస్ప్లే యొక్క పిన్స్
10 పిన్స్ ఉన్నాయి, వీటిలో 8 పిన్స్ a, b, c, d, e, f, g మరియు h / dp ని సూచించడానికి ఉపయోగిస్తారు, రెండు మిడిల్ పిన్స్ అతను LED లన్నింటిలో సాధారణ యానోడ్ / కాథోడ్. ఈ సాధారణ యానోడ్ / కాథోడ్ అంతర్గతంగా చిన్నది కాబట్టి మనం ఒక COM పిన్ను మాత్రమే కనెక్ట్ చేయాలి
కనెక్షన్పై ఆధారపడి మేము 7-సెగ్మెంట్ను రెండు రకాలుగా వర్గీకరిస్తాము:
సాధారణ కాథోడ్
దీనిలో మొత్తం 8 LED లలోని అన్ని నెగటివ్ టెర్మినల్స్ (కాథోడ్) కలిసి అనుసంధానించబడి ఉన్నాయి (క్రింద ఉన్న రేఖాచిత్రం చూడండి), వీటిని COM అని పిలుస్తారు. మరియు అన్ని సానుకూల టెర్మినల్స్ ఒంటరిగా మిగిలిపోతాయి లేదా మైక్రోకంట్రోలర్ పిన్లతో అనుసంధానించబడతాయి. మేము మైక్రోకంట్రోలర్ను ఉపయోగిస్తే, ప్రత్యేకమైనదాన్ని ప్రకాశవంతం చేయడానికి లాజిక్ HIGH ని సెట్ చేస్తాము మరియు LED ని ఆఫ్ చేయడానికి తక్కువ సెట్ చేస్తాము.
సాధారణ యానోడ్
దీనిలో మొత్తం 8 LED లలోని అన్ని పాజిటివ్ టెర్మినల్స్ (యానోడ్లు) కలిసి కనెక్ట్ అయ్యాయి, వీటిని COM అని పిలుస్తారు. మరియు అన్ని ప్రతికూల థర్మల్స్ ఒంటరిగా మిగిలిపోతాయి లేదా మైక్రోకంట్రోలర్ పిన్స్తో అనుసంధానించబడతాయి. మేము మైక్రోకంట్రోలర్ను ఉపయోగిస్తే, ప్రత్యేకమైనదాన్ని ప్రకాశవంతం చేయడానికి లాజిక్ LOW ను సెట్ చేస్తాము మరియు LED ని ఆపివేయడానికి లాజిక్ హైని సెట్ చేస్తాము.
కాబట్టి పిన్ విలువను బట్టి, కావలసిన సంఖ్య లేదా వర్ణమాలను ప్రదర్శించడానికి 7 సెగ్మెంట్ యొక్క నిర్దిష్ట సెగ్మెంట్ లేదా లైన్ ఆన్ లేదా ఆఫ్ చేయవచ్చు. ఉదాహరణకు 0 అంకెలను ప్రదర్శించడానికి మనం పిన్స్ ABCDEF ని HIGH గా మరియు G ని మాత్రమే LOW గా సెట్ చేయాలి. వంటి ABCDEF LED లు ఉన్నాయి మరియు G ఆఫ్లో ఉంది ఈ రూపాల్లో 0 అంకెల 7-సెగ్మెంట్ మాడ్యూల్ లో. (ఇది సాధారణ కాథోడ్ కోసం, సాధారణ యానోడ్కు వ్యతిరేకం).
సాధారణ కాథోడ్ కాన్ఫిగరేషన్ కోసం LPC2148 పిన్స్ ప్రకారం HEX విలువలు మరియు సంబంధిత అంకెలను క్రింద పట్టిక చూపిస్తుంది.
అంకెల |
LPC2148 కోసం HEX విలువలు |
జ |
బి |
సి |
డి |
ఇ |
ఎఫ్ |
జి |
0 |
0xF3 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0x12 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
2 |
0x163 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
3 |
0x133 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
4 |
0x192 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
5 |
0x1B1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
6 |
0x1F1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
7 |
0x13 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
8 |
0x1F3 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
9 |
0x1B3 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
ముఖ్యమైనది: పై పట్టికలో నేను LPC2148 లో ఉపయోగించిన పిన్స్ ప్రకారం HEX విలువలను ఇచ్చాను, క్రింద ఉన్న సర్క్యూట్ రేఖాచిత్రాన్ని తనిఖీ చేయండి. మీకు కావలసిన పిన్లను మీరు ఉపయోగించవచ్చు కాని దాని ప్రకారం హెక్స్ విలువలను మార్చవచ్చు.
7-సెగ్మెంట్ డిస్ప్లే గురించి మరింత తెలుసుకోవడానికి, లింక్ ద్వారా వెళ్ళండి. ఇతర మైక్రోకంట్రోలర్లతో 7-సెగ్మెంట్ డిస్ప్లే ఇంటర్ఫేసింగ్లను కూడా తనిఖీ చేయండి:
- రాస్ప్బెర్రీ పైతో 7 సెగ్మెంట్ డిస్ప్లే ఇంటర్ఫేసింగ్
- పిఐసి మైక్రోకంట్రోలర్తో 7 సెగ్మెంట్ డిస్ప్లే ఇంటర్ఫేసింగ్
- Arduino తో 7 సెగ్మెంట్ డిస్ప్లే ఇంటర్ఫేసింగ్
- 8051 మైక్రోకంట్రోలర్తో 7 సెగ్మెంట్ డిస్ప్లే ఇంటర్ఫేసింగ్
- 0-99 AVR మైక్రోకంట్రోలర్ ఉపయోగించి కౌంటర్
పదార్థాలు అవసరం
హార్డ్వేర్
- ARM7-LPC2148
- ఏడు సెగ్మెంట్ డిస్ప్లే మాడ్యూల్ (సింగిల్ డిజిట్)
- బ్రెడ్బోర్డ్
- వైర్లను కనెక్ట్ చేస్తోంది
సాఫ్ట్వేర్
- కైల్ uVision5
- ఫ్లాష్ మ్యాజిక్
సర్క్యూట్ రేఖాచిత్రం
LPC2148 తో 7-సెగ్మెంట్ ఇంటర్ఫేసింగ్ కోసం, దిగువ సర్క్యూట్ రేఖాచిత్రంలో చూపిన విధంగా బాహ్య భాగం అవసరం లేదు:
దిగువ పట్టిక 7-సెగ్మెంట్ మాడ్యూల్ & LPC2148 మధ్య సర్క్యూట్ కనెక్షన్లను చూపుతుంది
ఏడు సెగ్మెంట్ మాడ్యూల్ పిన్స్ |
LPC2148 పిన్స్ |
జ |
పి 0.0 |
బి |
పి.0.1 |
సి |
పి.0.4 |
డి |
పి 0.5 |
ఇ |
పి.0.6 |
ఎఫ్ |
పి.0.7 |
జి |
పి.0.8 |
సాధారణం |
GND |
ప్రోగ్రామింగ్ ARM7 LPC2148
మా మునుపటి ట్యుటోరియల్లో కైల్ ఉపయోగించి ARM7-LPC2148 ను ఎలా ప్రోగ్రామ్ చేయాలో నేర్చుకున్నాము. కోడ్ను వ్రాసి హెక్స్ ఫైల్ను సృష్టించడానికి మేము ఇక్కడ అదే కైల్ యువిజన్ 5 ను ఉపయోగిస్తాము, ఆపై ఫ్లాష్ మ్యాజిక్ సాధనాన్ని ఉపయోగించి హెక్స్ ఫైల్ను LPC2148 కు అప్లోడ్ చేస్తాము. మేము USB కేబుల్ను శక్తికి ఉపయోగిస్తున్నాము మరియు LPC2148 కు కోడ్ను అప్లోడ్ చేస్తున్నాము
ఈ ట్యుటోరియల్ చివరిలో వీడియో వివరణతో పూర్తి కోడ్ ఇవ్వబడింది. ఇక్కడ మేము కోడ్ యొక్క కొన్ని ముఖ్యమైన భాగాలను వివరిస్తున్నాము.
మొదట మనం LPC214x సిరీస్ మైక్రోకంట్రోలర్ కోసం హెడర్ ఫైల్ను చేర్చాలి
# చేర్చండి
తరువాత పిన్లను అవుట్పుట్గా సెట్ చేయండి
IO0DIR = IO0DIR-0xffffffff
ఇది పిన్లను P0.0 కు P0.31 కు అవుట్పుట్గా సెట్ చేస్తుంది, కాని మేము పిన్లను ఉపయోగిస్తాము (P0.0, P0.1, P0.4, P0.5, P0.6, P0.7 మరియు P0.8).
అప్పుడు ప్రదర్శించాల్సిన సంఖ్యా అంకె ప్రకారం కొన్ని పిన్లను LOGIC HIGH లేదా LOW వద్ద సెట్ చేయండి. ఇక్కడ మనం (0 నుండి 9 వరకు) విలువలను ప్రదర్శిస్తాము. మేము 0 నుండి 9 విలువలకు HEX విలువలను కలిగి ఉన్న శ్రేణిని ఉపయోగిస్తాము.
సంతకం చేయని పూర్ణాంకం a = {0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
లూప్ చేస్తున్నప్పుడు కోడ్ ఉంచబడినందున విలువలు నిరంతరం ప్రదర్శించబడతాయి
(1) { కోసం (i = 0; i <= 9; i ++) { IO0SET = IO0SET-a; // సంబంధిత పిన్లను సెట్ చేస్తుంది అధిక ఆలస్యం (9000); // కాల్స్ ఆలస్యం ఫంక్షన్ IO0CLR = IO0CLR-a; // సంబంధిత పిన్లను తక్కువ సెట్ చేస్తుంది } }
ఇక్కడ IOSET మరియు IOCLR పిన్లను వరుసగా HIGH మరియు LOW సెట్ చేయడానికి ఉపయోగిస్తారు. మేము PORT0 పిన్లను ఉపయోగించినందున మనకు IO0SET & IO0CLR ఉంది .
కోసం లూప్ పెంచడం ఉపయోగిస్తారు నేను ప్రతి పునరావృతం మరియు ప్రతి సమయం నేను ఇంక్రిమెంట్, 7 విభాగంలో కూడా అది చూపిస్తోంది అంకెల ఇంక్రిమెంట్.
SET & CLR మధ్య ఆలస్యం సమయాన్ని సృష్టించడానికి ఆలస్యం ఫంక్షన్ ఉపయోగించబడుతుంది
void delay (int k) // ఆలస్యం చేయడానికి ఫంక్షన్ { int i, j; (i = 0; i
పూర్తి కోడ్ మరియు పని వీడియో వివరణ క్రింద ఇవ్వబడింది. 7-సెగ్మెంట్ డిస్ప్లే సంబంధిత ప్రాజెక్టులను కూడా ఇక్కడ తనిఖీ చేయండి.