ADC అనలాగ్ టు డిజిటల్ కన్వర్టర్, ఇది అనలాగ్ డేటాను డిజిటల్ ఆకృతిలోకి మారుస్తుంది; సాధారణంగా ఇది అనలాగ్ వోల్టేజ్ను డిజిటల్ ఆకృతిలోకి మార్చడానికి ఉపయోగిస్తారు. అనలాగ్ సిగ్నల్కు సైన్ వేవ్ లేదా మా ప్రసంగం వంటి అనంతమైన విలువలు లేవు, ADC వాటిని నిర్దిష్ట స్థాయిలు లేదా రాష్ట్రాలుగా మారుస్తుంది, వీటిని భౌతిక పరిమాణంగా కొలవవచ్చు. నిరంతర మార్పిడికి బదులుగా, ADC డేటాను క్రమానుగతంగా మారుస్తుంది, దీనిని సాధారణంగా నమూనా రేటు అంటారు. టెలిఫోన్ మోడెమ్ADC యొక్క ఉదాహరణలలో ఒకటి, ఇది ఇంటర్నెట్ కోసం ఉపయోగించబడుతుంది, ఇది అనలాగ్ డేటాను డిజిటల్ డేటాగా మారుస్తుంది, తద్వారా కంప్యూటర్ అర్థం చేసుకోగలదు, ఎందుకంటే కంప్యూటర్ డిజిటల్ డేటాను మాత్రమే అర్థం చేసుకోగలదు. ADC ని ఉపయోగించడం యొక్క ప్రధాన ప్రయోజనం ఏమిటంటే, మన శబ్దాన్ని అసలు సిగ్నల్ నుండి సమర్థవంతంగా తొలగించవచ్చు మరియు డిజిటల్ సిగ్నల్ అనలాగ్ ఒకటి కంటే మరింత సమర్థవంతంగా ప్రయాణించగలదు. వినేటప్పుడు డిజిటల్ ఆడియో చాలా స్పష్టంగా ఉండటానికి కారణం అదే.
ప్రస్తుతం మార్కెట్లో మైక్రోకంట్రోలర్లు చాలా ఉన్నాయి, ఇవి ఒకటి లేదా అంతకంటే ఎక్కువ ఛానెల్లతో ADC ని అంతర్నిర్మితంగా కలిగి ఉన్నాయి. మరియు వారి ADC రిజిస్టర్ ఉపయోగించడం ద్వారా మేము ఇంటర్ఫేస్ చేయవచ్చు. ఏదైనా ప్రాజెక్ట్ చేయడానికి 8051 మైక్రోకంట్రోలర్ కుటుంబాన్ని ఎన్నుకున్నప్పుడు, మనకు ADC మార్పిడి అవసరం, అప్పుడు మేము బాహ్య ADC ని ఉపయోగిస్తాము. కొన్ని బాహ్య ADC చిప్స్ 0803,0804,0808,0809 మరియు మరెన్నో ఉన్నాయి. ఈ రోజు మనం 8-ఛానల్ ADC ని AT89s52 మైక్రోకంట్రోలర్తో ADC0808 / 0809 తో ఇంటర్ఫేస్ చేయబోతున్నాం.
భాగాలు:
- 8051 మైక్రోకంట్రోలర్ (AT89S52)
- ADC0808 / 0809
- 16x2 LCD
- రెసిస్టర్ (1 కే, 10 కె)
- POT (10k x4)
- కెపాసిటర్ (10uf, 1000uf)
- రెడ్ దారితీసింది
- బ్రెడ్ బోర్డు లేదా పిసిబి
- 7805
- 11.0592 MHz క్రిస్టల్
- శక్తి
- వైర్లను కనెక్ట్ చేస్తోంది
ADC0808 / 0809:
ADC0808 / 0809 ఒక మోనోలిథిక్ CMOS పరికరం మరియు మైక్రోప్రాసెసర్ అనుకూల నియంత్రణ లాజిక్ మరియు 28 పిన్ను కలిగి ఉంది, ఇది అవుట్పుట్లో 8-బిట్ విలువను మరియు 8- ఛానల్ ADC ఇన్పుట్ పిన్లను (IN0-IN7) ఇస్తుంది. దీని రిజల్యూషన్ 8 కాబట్టి ఇది అనలాగ్ డేటాను 256 స్థాయిలలో (2 8) ఒకటిగా ఎన్కోడ్ చేస్తుంది. ఈ పరికరం మూడు ఛానెల్ చిరునామా పంక్తిని కలిగి ఉంది: అవి ఛానెల్ ఎంచుకోవడానికి ADDA, ADDB మరియు ADDC. ADC0808 కోసం పిన్ రేఖాచిత్రం క్రింద ఉంది:

ADC0808 / 0809 మార్పిడి కోసం క్లాక్ పల్స్ అవసరం. మేము ఓసిలేటర్ ఉపయోగించి లేదా మైక్రోకంట్రోలర్ ఉపయోగించి దీన్ని అందించవచ్చు. ఈ ప్రాజెక్ట్లో మైక్రోకంట్రోలర్ను ఉపయోగించి ఫ్రీక్వెన్సీని వర్తింపజేసాము.
చిరునామా పంక్తులను ఉపయోగించడం ద్వారా మనం ఏదైనా ఇన్పుట్ ఛానెల్ని ఎంచుకోవచ్చు, మూడు చిరునామా పంక్తులను (ADDA, ADDB మరియు ADDC) తక్కువగా ఉంచడం ద్వారా ఇన్పుట్ లైన్ IN0 ను ఎంచుకోవచ్చు. మేము ఇన్పుట్ ఛానల్ IN2 ను ఎంచుకోవాలనుకుంటే, అప్పుడు మేము ADDA, ADDB తక్కువ మరియు ADDC ని ఎక్కువగా ఉంచాలి. అన్ని ఇతర ఇన్పుట్ ఛానెల్లను ఎంచుకోవడానికి, ఇచ్చిన పట్టికలో చూడండి:
|
ADC ఛానల్ పేరు |
ADDC పిన్ |
ADDB పిన్ |
ADDA పిన్ |
|
IN0 |
తక్కువ |
తక్కువ |
తక్కువ |
|
IN1 |
తక్కువ |
తక్కువ |
అధిక |
|
IN2 |
తక్కువ |
అధిక |
తక్కువ |
|
IN3 |
తక్కువ |
అధిక |
అధిక |
|
IN4 |
అధిక |
తక్కువ |
తక్కువ |
|
IN5 |
అధిక |
తక్కువ |
అధిక |
|
IN6 |
అధిక |
అధిక |
తక్కువ |
|
IN7 |
అధిక |
అధిక |
అధిక |
సర్క్యూట్ వివరణ:
“8051 తో ఇంటర్ఫేసింగ్ ADC0808” యొక్క సర్క్యూట్ కొద్దిగా సంక్లిష్టంగా ఉంటుంది, ఇది పరికరాన్ని ఒకదానితో ఒకటి కనెక్ట్ చేయడానికి మరింత కనెక్ట్ చేసే తీగను కలిగి ఉంటుంది. ఈ సర్క్యూట్లో మేము ప్రధానంగా AT89s52 ను 8051 మైక్రోకంట్రోలర్, ADC0808, పొటెన్టోమీటర్ మరియు LCD గా ఉపయోగించాము.
16x2 LCD 4-బిట్ మోడ్లో 89s52 మైక్రోకంట్రోలర్తో అనుసంధానించబడి ఉంది. కంట్రోల్ పిన్ RS, RW మరియు En నేరుగా పిన్ P2.0, GND మరియు P2.2 లకు అనుసంధానించబడి ఉన్నాయి. మరియు డేటా పిన్ D4-D7 89s52 యొక్క పిన్స్ P2.4, P2.5, P2.6 మరియు P2.7 లకు అనుసంధానించబడి ఉంది. ADC0808 అవుట్పుట్ పిన్ నేరుగా AT89s52 యొక్క పోర్ట్ P1 కి అనుసంధానించబడి ఉంది. అడ్రస్ లైన్ పిన్స్ ADDA, ADDB, AADC P3.0, P3.1 మరియు P3.2 వద్ద అనుసంధానించబడి ఉన్నాయి.
ALE (అడ్రస్ లాచ్ ఎనేబుల్), SC (స్టార్ట్ కన్వర్షన్), EOC (మార్పిడి ముగింపు), OE (అవుట్పుట్ ఎనేబుల్) మరియు క్లాక్ పిన్స్ P3.3, P3.4, P3.5, P3.6 మరియు P3.7 వద్ద అనుసంధానించబడి ఉన్నాయి..
మరియు ఇక్కడ మేము ADC0808 యొక్క పిన్ 26, 27 మరియు 28 వద్ద అనుసంధానించబడిన మూడు పొటెన్షియోమీటర్లను ఉపయోగించాము.
9 వోల్ట్ బ్యాటరీ మరియు 5 వోల్ట్ వోల్టేజ్ రెగ్యులేటర్ 7805 సర్క్యూట్ను శక్తివంతం చేయడానికి ఉపయోగిస్తారు.

పని:
ఈ ప్రాజెక్ట్లో మేము ADC0808 యొక్క మూడు ఛానెల్లను ఇంటర్ఫేస్ చేసాము. మరియు ప్రదర్శన కోసం మేము మూడు వేరియబుల్ రెసిస్టర్లను ఉపయోగించాము. మేము సర్క్యూట్కు శక్తినిచ్చేటప్పుడు మైక్రోకంట్రోలర్ తగిన ఆదేశాన్ని ఉపయోగించి LCD ని ప్రారంభిస్తాడు, ADC చిప్కు గడియారం ఇస్తాడు, చిరునామా పంక్తిని ఉపయోగించి ADC ఛానెల్ని ఎంచుకుంటాడు మరియు ప్రారంభ మార్పిడి సిగ్నల్ను ADC కి పంపుతాడు. ఈ ADC మొదట ఎంచుకున్న ADC ఛానల్ ఇన్పుట్ను చదివి, దాని మార్చబడిన అవుట్పుట్ను మైక్రోకంట్రోలర్కు ఇస్తుంది. అప్పుడు మైక్రోకంట్రోలర్ దాని విలువను LCD లో Ch1 స్థానంలో చూపిస్తుంది. ఆపై మైక్రోకంట్రోలర్ అడ్రస్ లైన్ ఉపయోగించి ADC ఛానెల్ని మారుస్తుంది. ఆపై ADC ఎంచుకున్న ఛానెల్ని చదివి మైక్రోకంట్రోలర్కు అవుట్పుట్ను పంపుతుంది. మరియు LCD లో Ch2 పేరుగా చూపించు. మరియు ఇతర ఛానెల్లకు తెలివైనది.

ADC0808 యొక్క పని ADC0804 యొక్క పనికి చాలా పోలి ఉంటుంది. దీనిలో, మొదటి మైక్రోకంట్రోలర్ ADC0808 కు 500 KHz క్లాక్ సిగ్నల్ను అందిస్తుంది, టైమర్ 0 అంతరాయాన్ని ఉపయోగించి, ADC పనిచేయడానికి క్లాక్ సిగ్నల్ అవసరం. ఇప్పుడు మైక్రోకంట్రోలర్ చిరునామాలోని గొళ్ళెంను ప్రారంభించడానికి ADC0808 యొక్క ALE పిన్ (దాని యాక్టివ్-హై పిన్) కు తక్కువ స్థాయికి అధిక స్థాయి సిగ్నల్ను పంపుతుంది. ఎస్సీకి (స్టార్ట్ కన్వర్షన్) హై టు తక్కువ లెవల్ సిగ్నల్ వర్తింపజేయడం ద్వారా, ఎడిసి డిజిటల్ మార్పిడికి అనలాగ్ ప్రారంభిస్తుంది. ఆపై EOC (మార్పిడి ముగింపు) పిన్ తక్కువ వరకు వేచి ఉండండి. EOC తక్కువకు వెళ్ళినప్పుడు, డిజిటల్ మార్పిడికి అనలాగ్ పూర్తయిందని మరియు డేటా ఉపయోగించడానికి సిద్ధంగా ఉందని అర్థం. దీని తరువాత, మైక్రోకంట్రోలర్ ADC0808 యొక్క OE పిన్కు HIGH to LOW సిగ్నల్ను వర్తింపజేయడం ద్వారా అవుట్పుట్ లైన్ను ప్రారంభిస్తుంది.
ADC0808 దాని అవుట్పుట్ పిన్స్ వద్ద నిష్పత్తి మెట్రిక్ మార్పిడి అవుట్పుట్ ఇస్తుంది. మరియు రేడియోమెట్రిక్ మార్పిడి యొక్క సూత్రం దీని ద్వారా ఇవ్వబడింది:
V లో / (V fs -V z) = D x / (D max -D min)
ఎక్కడ
V in అనేది మార్పిడి కోసం ఇన్పుట్ వోల్టేజ్
V fs పూర్తి స్థాయి వోల్టేజ్
V z సున్నా వోల్టేజ్
D x అనేది డేటా పాయింట్ కొలత
D గరిష్టంగా గరిష్ట డేటా పరిమితి
D నిమిషం కనీస డేటా పరిమితి
ప్రోగ్రామ్ వివరణ:
ప్రోగ్రామ్లో, మొదట మనం హెడర్ ఫైల్ ఇసుకను ADC మరియు LCD కొరకు వేరియబుల్ మరియు ఇన్పుట్ & అవుట్పుట్ పిన్లను నిర్వచిస్తాము.
# చేర్చండి
ఎల్సిడి ప్రారంభించడం, స్ట్రింగ్ను ముద్రించడం, ఎల్సిడి ఆదేశాల కోసం కొన్ని ఎల్సిడి ఫంక్షన్లతో పాటు ఆలస్యాన్ని సృష్టించే ఫంక్షన్ (శూన్య ఆలస్యం) సృష్టించబడింది. మీరు వాటిని కోడ్లో సులభంగా కనుగొనవచ్చు. 8051 మరియు దాని ఫంక్షన్లతో LCD ఇంటర్ఫేసింగ్ కోసం ఈ కథనాన్ని తనిఖీ చేయండి.
ప్రధాన ప్రోగ్రామ్లో దీని తరువాత మేము ఎల్సిడిని ప్రారంభించాము మరియు తదనుగుణంగా EOC, ALE, EO, SC పిన్లను సెట్ చేసాము.
void main () {int i = 0; eoc = 1; ale = 0; oe = 0; sc = 0; TMOD = 0x02; TH0 = 0xFD; lcd_ini (); lcdprint ("ADC 0808/0809");
ఆపై ప్రోగ్రామ్ ADC ని చదివి ADC అవుట్పుట్ను వేరియబుల్లో నిల్వ చేసి, ఆపై ASCII మార్పిడికి దశాంశం తరువాత LCD కి పంపుతుంది, శూన్యమైన read_adc () మరియు శూన్యమైన adc (int i) ఫంక్షన్లను ఉపయోగించి:
void read_adc () {number = 0; ale = 1; sc = 1; ఆలస్యం (1); ale = 0; sc = 0; అయితే (eoc == 1); అయితే (eoc == 0); oe = 1; సంఖ్య = ఇన్పుట్_పోర్ట్; ఆలస్యం (1); oe = 0; ad శూన్యమైన adc (int i) {స్విచ్ (i) {కేసు 0: ADDC = 0; ADDB = 0; ADDA = 0; lcdcmd (0xc0); read_adc ();
