2 KANALNI AD KONVERTOR

 

Primer upotrebe mikrokontrolera za AD konverziju data je na donjoj slici.

 

 

Mikrokontroler PIC16F877 ima više pinova koji se mogu koristiti za AD konverziju. U ovom primeru upotrebljeni su pinovi RA2 i RA3. Potenciometrima P1 i P2 menjamo ulazni napon koji dolazi na pinove za merenje. Ovaj mikrokontroler ima 10-bitnu AD rezoluciju tj. ima 210=1024 koraka, odnosno za napon od 5 Volti rezolucija je 5 /1023=0.0048 = 4.8mV. Izmereni napon nakon konverzije šalje se na LCD displej(2x16 karaktera). Program je tako napisan da vrši merenje na prvom, a zatim drugom kanalu i tako ukrug.

 

Rb.

Komponenta

Količina

1.

IC2 - PIC16F877A dip pakovanje

1 kom

2.

Naponski regulator 7805

1 kom

3.

Alfanumerički displej D16217SYH

1 kom

4.

Q1 - Keramički rezonator 3 pina - 4 Mhz

1 kom

5.

P1, P2 – trimer potenciometri 5k, linearni

2 kom

6.

DIL-8 podnožje

1 kom

7.

R1 - 10kW(1/4W)

1 kom

8.

C1, C2 – 1 mF elektrolitski

2 kom

9.

R - mikro taster za PCB montažu

1 kom

10.

Dvopolna redne stezaljke za štampu

2 kom

11.

Kabal za priključak 9 V baterije

1 kom

 

Program za po podršku ovom konvertoru je sledeći:

 

 

''****************************************************************

' IME PROGRAMA: ADKONVER.BAS

' OPIS: Program meri vrednost napona na pinu RA2 i RA3

' Radi se o desetobitnoj konverziji. Vrednost napona se prikazuje

' na LCD displeju koji je povezan na port D.

' Okretanjem potenciometra P1 menja se napon na RA2 a P2 na RA3

'****************************************************************

 

DEFINE LCD_DREG PORTD

DEFINE LCD_DBIT 4

DEFINE LCD_BITS 4

DEFINE LCD_RSREG PORTD

DEFINE LCD_RSBIT 2

DEFINE LCD_EREG PORTD

DEFINE LCD_EBIT 3

DEFINE LCD_LINES 2

DEFINE LCD_COMMANDUS 2000

DEFINE LCD_DATAUS 40

Define ADC_BITS 10 ' Broj bita

Define ADC_CLOCK 1 ' Klok (0=Oscilator /8)

 

AD_Rez var word ' Rezultat AD konverzije

Napon var word ' Promenljiva za dobijanje napona

TRISA = %11111111 ' Port A je ulazni

ADCON1 = %10000010 ' Port A je u analognom modu, 0 i 5V su

' referentni naponi a rezultat je desno

'formatiran.

 

Dummy var byte ' Promenljiva za 32 bitno delenje i mnozenje

Pause 500 ' Pauza 0.5 sec

Lcdout $fe, 1 ' Izbrisi ceo LCD displej

Lcdout $fe, 2 ' Pozicioniraj se na prvi red prvi karakter

Lcdout " AD KONVERTOR" ' Ispisi "AD KONVERTOR" u prvom redu

Lcdout $fe, $C0 ' Podesi kursor na pocetak drugog reda

Lcdout "sa 2 kanala" ' Ispisi dati tekst u drugom redu displeja

Pause 15000 ' Pauza 15 sec

Glavni:

 

' Procitaj 1 kanal na RA2 i prikazi

Lcdout $fe, 1 ' Izbrisi ceo LCD displej

Lcdout $fe, 2 ' Pozicioniraj se na prvi red prvi karakter

Lcdout " A/D kanal br.1" ' Ispisi “A/D kanal br.1 u prvom redu

 

ADCIN 2, AD_Rez ' Izvrsi konverziju na RA2 i 16 bita i

' rezultat smesti u AD_Rez.

Lcdout $fe, $C0 ' Podesi kursor na pocetak drugog reda

Dummy = AD_Rez * 5 * 100

Napon = Div32 1023

Lcdout $fe, $C0 ' Podesi kursor na pocetak drugog reda

Lcdout " Napon:", DEC Napon DIG 2,".", DEC2 Napon, "V"

Pause 10000 ' Pauza 10 sec

' Procitaj 2 kanal na RA3 i prikazi

 

Lcdout $fe, 1 ' Izbrisi ceo LCD displej

Lcdout $fe, 2 ' Pozicioniraj se na prvi red prvi karakter

Lcdout " A/D kanal br.2" ' Ispisi “A/D kanal br.2 u prvom redu

ADCIN 3, AD_Rez ' Izvrsi konverziju na RA3 i 16 bita i

' rezultat smesti u AD_Rez.

Lcdout $fe, $C0 ' Podesi kursor na pocetak drugog reda

Dummy = AD_Rez * 5 * 100

Napon = Div32 1023

Lcdout $fe, $C0 ' Podesi kursor na pocetak drugog reda

Lcdout " Napon:", DEC Napon DIG 2,".", DEC2 Napon, "V"

Pause 10000 ' Pauza 10 sec

 

Goto Pocetak ' Kreni ponovo na merenje

 

End ' Kraj programa

 

 

 

Program čita rezultat AD konverzije instrukcijom ADCIN x, AD_Rez gde je x broj kanala a AD_Rez promenljiva dužine jedne reči u koju se smešta 10 bitna vrednost konverzije. Da bi dobili rezultat na dve decimale koristimo instrukciju Div32 koja koristi 32 bita za rezultat. Tako dobijen rezultat prikaže se na displeju. Nakon prikaza na displeju napravi se pauza od 10 sekundi pre prelaska na očitavanje sledećeg kanala.

 

http://vojo.milanovic.org
Copyright, 2005 Milanović Vojo
All right reserved