Ang ADC ay ang Analog to Digital converter, na nagko-convert ng analog data sa digital format; karaniwang ginagamit ito upang mai-convert ang analog voltage sa digital format. Ang signal ng analog ay walang hanggan walang ng mga halagang tulad ng isang sine alon o ang aming pagsasalita, binago ng ADC ang mga ito sa mga partikular na antas o estado, na maaaring masukat sa mga bilang bilang isang pisikal na dami. Sa halip na tuluy-tuloy na pag-convert, pana-panahong binabago ng ADC ang data, na karaniwang kilala bilang rate ng pag-sample. Modem ng teleponoay isa sa mga halimbawa ng ADC, na ginagamit para sa internet, binabago nito ang analog data sa digital data, upang maunawaan ng computer, sapagkat ang computer ay maaari lamang maunawaan ang Digital data. Ang pangunahing bentahe, ng paggamit ng ADC ay iyon, ang ingay namin ay maaaring mahusay na matanggal mula sa orihinal na signal at ang digital signal ay maaaring maglakbay nang mas mahusay kaysa sa isa sa analog. Iyon ang dahilan na ang digital audio ay napakalinaw, habang nakikinig.
Sa kasalukuyang oras mayroong maraming mga microcontroller sa merkado na kung saan ay inbuilt ADC na may isa o higit pang mga channel. At sa pamamagitan ng paggamit ng kanilang rehistro sa ADC maaari kaming mag-interface. Kapag pinili namin ang 8051 pamilya ng microcontroller para sa paggawa ng anumang proyekto, kung saan kailangan namin ng isang ADC conversion, pagkatapos ay gumagamit kami ng panlabas na ADC. Ang ilang mga panlabas na chips ng ADC ay 0803,0804,0808,0809 at marami pang iba. Ngayon ay pupunta kami sa interface ng 8-channel ADC na may AT89s52 Microcontroller lalo na ADC0808 / 0809.
Mga Bahagi:
- 8051 Microcontroller (AT89S52)
- ADC0808 / 0809
- 16x2 LCD
- Resistor (1k, 10k)
- POT (10k x4)
- Kapasitor (10uf, 1000uf)
- Pinangunahan ni Red
- Bread board o PCB
- 7805
- 11.0592 MHz Crystal
- Lakas
- Mga kumokonekta na mga wire
ADC0808 / 0809:
Ang ADC0808 / 0809 ay isang monolithic CMOS aparato at microprocessor na katugmang kontrol sa lohika at mayroong 28 pin na nagbibigay ng 8-bit na halaga sa output at 8-channel ADC input pin (IN0-IN7). Ang resolusyon nito ay 8 kaya maaari nitong ma-encode ang analog data sa isa sa 256 na antas (2 8). Ang aparato na ito ay may tatlong linya ng address ng channel na katulad ng: ADDA, ADDB at ADDC para sa pagpili ng channel. Nasa ibaba ang Pin Diagram para sa ADC0808:
Ang ADC0808 / 0809 ay nangangailangan ng isang pulso sa orasan para sa conversion. Maaari naming ibigay ito sa pamamagitan ng paggamit ng oscillator o sa pamamagitan ng paggamit ng microcontroller. Sa proyektong ito inilapat namin ang dalas sa pamamagitan ng paggamit ng microcontroller.
Maaari nating piliin ang anumang input channel sa pamamagitan ng paggamit ng mga linya ng Address, tulad ng mapipili namin ang linya ng pag-input na IN0 sa pamamagitan ng pagpapanatiling mababa sa lahat ng tatlong mga linya ng address (ADDA, ADDB at ADDC). Kung nais naming pumili ng input channel IN2 kung gayon kailangan nating panatilihing mababa ang ADDA, ADDB at mataas ang ADDC. Para sa pagpili ng lahat ng iba pang mga input channel, tingnan ang ibinigay na talahanayan:
Pangalan ng ADC Channel |
ADDC PIN |
ADDB PIN |
ADDA PIN |
IN0 |
MABABA |
MABABA |
MABABA |
IN1 |
MABABA |
MABABA |
TAAS |
IN2 |
MABABA |
TAAS |
MABABA |
IN3 |
MABABA |
TAAS |
TAAS |
IN4 |
TAAS |
MABABA |
MABABA |
IN5 |
TAAS |
MABABA |
TAAS |
IN6 |
TAAS |
TAAS |
MABABA |
IN7 |
TAAS |
TAAS |
TAAS |
Paglalarawan ng Circuit:
Ang circuit ng "Interfacing ADC0808 na may 8051" ay maliit na kumplikado na naglalaman ng mas maraming kawad para sa pagkonekta sa bawat isa. Sa circuit na ito higit sa lahat ginamit namin ang AT89s52 bilang 8051 microcontroller, ADC0808, Potentiometer at LCD.
Ang isang 16x2 LCD ay konektado sa 89s52 microcontroller sa 4-bit mode. Ang control pin RS, RW at En ay direktang konektado sa pin P2.0, GND at P2.2. At ang data pin D4-D7 ay konektado sa mga pin na P2.4, P2.5, P2.6 at P2.7 ng 89s52. Ang ADC0808 output pin ay direktang konektado sa port P1 ng AT89s52. Ang mga pin ng linya ng address na ADDA, ADDB, AADC ay konektado sa P3.0, P3.1, at P3.2.
Ang ALE (Paganahin ang latch sa pag-address), SC (Start conversion), EOC (End of conversion), OE (Paganahin ang output) at mga pin ng orasan ay konektado sa P3.3, P3.4, P3.5, P3.6 at P3.7.
At dito nagamit namin ang tatlong potentiometers na konektado sa pin 26, 27, at 28 ng ADC0808.
Ang isang 9 volt na baterya at isang 5 volt boltahe regulator lalo na 7805 ay ginagamit para sa pag-power ng circuit.
Nagtatrabaho:
Sa proyektong ito, nag-interfaced kami ng tatlong mga channel ng ADC0808. At para sa pagpapakita ay gumamit kami ng tatlong variable resistors. Kapag pinapagana namin ang circuit pagkatapos ay pinasimulan ng microcontroller ang LCD sa pamamagitan ng paggamit ng naaangkop na utos, nagbibigay ng orasan sa ADC chip, pipiliin ang ADC channel sa pamamagitan ng paggamit ng linya ng address at ipadala ang pagsisimula ng signal ng conversion sa ADC. Matapos itong unang mabasa ng ADC ang napiling input ng ADC channel at ibibigay ang na-convert na output sa microcontroller. Pagkatapos ay ipinapakita ng microcontroller ang halaga nito sa posisyon na Ch1 sa LCD. At pagkatapos ay binabago ng microcontroller ang ADC channel sa pamamagitan ng paggamit ng linya ng address. At pagkatapos ay binabasa ng ADC ang napiling channel at nagpapadala ng output sa microcontroller. At ipakita sa LCD bilang pangalang Ch2. At tulad ng matalino para sa iba pang mga channel.
Ang pagtatrabaho ng ADC0808 ay katulad sa pagtatrabaho ng ADC0804. Sa ito, ang unang microcontroller ay nagbibigay ng isang 500 KHz na orasan signal sa ADC0808, gamit ang Timer 0 na nakakagambala, dahil ang ADC ay nangangailangan ng signal ng orasan upang gumana. Ngayon ang microcontroller ay nagpapadala ng isang LOW to HIGH level signal sa ALE pin (ang active-high pin) na ADC0808 upang paganahin ang aldaba sa address. Pagkatapos sa pamamagitan ng paglalapat ng TAAS sa mababang antas ng signal sa SC (Start Conversion), nagsisimula ang ADC ng analog sa digital conversion. At pagkatapos ay hintayin ang EOC (End of Conversion) pin upang maging LOW. Kapag ang EOC ay napakababa, nangangahulugan ito na ang analog sa digital conversion ay nakumpleto at handa nang gamitin ang data. Pagkatapos nito, binibigyang-daan ng microcontroller ang linya ng output sa pamamagitan ng paglalapat ng isang HINDI sa LOW signal sa OE pin ng ADC0808.
Ang ADC0808 ay nagbibigay ng output ng sukatan ng sukatan ng sukat sa mga output pin nito. At ang formula para sa pagbabago ng radiometric ay ibinibigay ng:
V in / (V fs -V z) = D x / (D max -D min)
Kung saan
V in ay input boltahe para sa conversion
V fs ay buong sukat Boltahe
V z ay zero boltahe
D x ay data point na sinusukat
D max ay Maximum na limitasyon ng data
D min ay Minimum na limitasyon ng data
Paliwanag ng Programa:
Sa programa, una sa lahat isinasama namin ang header file sand na tumutukoy sa variable at input & output pin para sa ADC at LCD.
# isama
Ang pagpapaandar para sa paglikha ng pagkaantala ay nilikha (walang bisa ang pagkaantala), kasama ang ilang mga pagpapaandar ng LCD tulad ng para sa pagsisimula ng LCD, pagpi-print ng string, para sa mga LCD command atbp Madali mong mahahanap ang mga ito sa Code. Suriin ang artikulong ito para sa LCD na nakikipag-ugnay sa 8051 at mga pag-andar nito.
Pagkatapos nito sa pangunahing programa mayroon kaming inisyal na LCD at itinakda ang mga EOC, ALE, EO, SC pin na naaayon.
void main () {int i = 0; eoc = 1; ale = 0; oe = 0; sc = 0; TMOD = 0x02; TH0 = 0xFD; lcd_ini (); lcdprint ("ADC 0808/0809");
At pagkatapos ay binabasa ng programa ang ADC at iniimbak ang output ng ADC sa isang variable at pagkatapos ay ipinapadala ito sa LCD pagkatapos ng decimal sa ASCII conversion, gamit ang void read_adc () at void adc (int i) na mga function:
void read_adc () {number = 0; ale = 1; sc = 1; antala (1); ale = 0; sc = 0; habang (eoc == 1); habang (eoc == 0); oe = 1; numero = input_port; antala (1); oe = 0; } void adc (int i) {switch (i) {case 0: ADDC = 0; ADDB = 0; ADDA = 0; lcdcmd (0xc0); read_adc ();