21.12.2013 Views

Maskinnära programmering 6B2266

Maskinnära programmering 6B2266

Maskinnära programmering 6B2266

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

PIC16F87x AD-omvandling, steg för<br />

steg (utan användning av interrupt)<br />

1. Konfigurera AD-modulen<br />

Konfigurera analoga ingångar och referensspänningar (eller digitital<br />

I/O). Register ADCON1.<br />

• Välj AD-ingångskanal. Register ADCON0.<br />

• Bestäm AD-omvandlarens klockfrekvens. Register ADCON0.<br />

• Sätt på AD-modulen! Register ADCON0.<br />

• Välj format på hur 10-bitstalet ska justeras. Register ADCON1.<br />

Exempel:<br />

ADCON0=0bxxxxxxxx; ADCON1=0bxxxxxxxx; TRISA=0bxxxxxxxx;<br />

TRISE=0bxxxxxxxx;<br />

2. Vänta inställningstiden ( acquistion time ).<br />

• Acquistion time t ACQ är av storleksordningen 20 µs. Exempel på hur man<br />

programmerar 20 µs ungefärlig fördröjningstid (tids-spill) vid 4 MHz<br />

klockfrekvens:<br />

char i = 3; do ; while ( --i > 0);<br />

3. Starta AD-omvandlingen.<br />

• Ettställ GO/DONE biten. Register ADCON0. Kodexempel:<br />

GO = 1;<br />

4. Vänta tills AD-omvandlingen är klar.<br />

• Vänta ut att biten GO/DONE blir 0. Exempel på programkod:<br />

while( GO );<br />

5. Läs av AD-omvandlaren.<br />

• 8 bitar, ADRES vänsterjusterat. Kodexempel:<br />

char answer;<br />

answer=ADRESH;<br />

• 10 bitar, ADRES högerjusterat. Kodexempel:<br />

unsigned long answer;<br />

answer = 256*ADRESH; answer += ADRESL;<br />

( ADRES finns fördefinierad i headerfilen 16f874.h som ADRESH och ADRESL,<br />

GO/DONE finns fördefinierad i headerfilen 16f874.h som GO )<br />

50

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!