Maskinnära programmering 6B2266
Maskinnära programmering 6B2266
Maskinnära programmering 6B2266
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