AD prevodník - 10 bit s mikroprocesorom NXP 80C552
Projekty > 8051 > Podprogramy
10 bitový AD prevodník
Mikroprocesor NXP 80C552 obsahuje integrovaný 8 kanálový 10 bitový AD prevodník ktorý vykoná prevod jedného kanála za 50 strojových cyklov procesora. Výsledkom je číslo ktoré je v rozsahu 0x0000 až 0x03FF kde nižšia časť výsledku (ADC.1 bit7, ADC.0 bit6) prevodu je uložená v registri ADCON a vyššia časť prevodu je uložená v registri ADCH. Bit ADCI v registri ADCH je nastavený pri ukončení prevodu a je ho nutné programovými prostriedkami vynulovať a previesť výsledok z registrov ADCON a ADCH na číslo zodpovedajúce hodnote analógového napätia. Pre dosiahnutie požadovaných rýchlostných parametrov a efektivity bola rutina AD prevodníka napísaná v assembler-i.
int ADC(unsigned char Channel)
{
#define ADCS 0x08#define ADCI 0x10ADCON=Channel; //Vyber kanalu pre prevod 0..7
ADCON|=ADCS; //Spustim prevod, bolo tu ADCON|=ADEX+ADCS;while((ADCON&ADCI)==0x00); //Cakam na ukoncenie prevodu cca. 80usADCON^=ADCI; //Nulujem priznak AD prevodnikareturn(256*ADCH+(ADCON&0xC0)>>6);
}
Program si môžete stiahnúť kliknutím na nižšie uvedenú ikonu.
Aktualizácia údajov bola vykonaná dňa 05.10.2024.