13.07.2015 Views

Introduccion tecnico de productos Holtek

Introduccion tecnico de productos Holtek

Introduccion tecnico de productos Holtek

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CTU-005, Introducción a <strong>Holtek</strong>que el byte bajo tiene 1 ó 2 bits, en la posición <strong>de</strong> bit más significativos. De esta forma, leyendo el byte alto (ADRH),pue<strong>de</strong> utilizarse el conversor como uno <strong>de</strong> 8 bits; mientras que leyendo ambos (ADRL-ADRH), pue<strong>de</strong> usarse como siel dato fuera una fracción <strong>de</strong> 16 bits (<strong>de</strong>ben enmascararse los 6 ó 7 bits menos significativos). La elección <strong>de</strong> qué pinesestán conectados al conversor, y cuál <strong>de</strong> ellos es el que provee la señal para la conversión en curso, se realiza medianteel registro <strong>de</strong> control (ADCR), el mismo registro controla a su vez el inicio <strong>de</strong> la conversión (bit START). El clocking<strong>de</strong>l AD se controla <strong>de</strong>s<strong>de</strong> el registro ACSR, que permite dividir por 2, 8 ó 32 la frecuencia <strong>de</strong> clock. La frecuenciamáxima <strong>de</strong> clock para el AD es <strong>de</strong> 1MHz. El AD pue<strong>de</strong> interrumpir cuando termina una conversión.Ej.: conversión <strong>de</strong> señal en AN0 (PB0) con cristal <strong>de</strong> 4 MHz, poleadoConfiguramos los registros <strong>de</strong> control para clockear correctamente al AD, y seteamos los valores correspondientespara leer el pin AN0. La conversión se inicia en CONVERT y finaliza cuando el AD pone a cero el bit EOCB en elregistro <strong>de</strong> control, momento a partir <strong>de</strong>l cual los registros ADRL y ADRH contienen el valor correspondiente alresultado <strong>de</strong> la conversión.INIT: mov A,00001000b ; AN0mov ADCR,amov a,00000001bmov ACSR,a; clk/8 (500KHz)CONVERT:clr ADCR.7set ADCR.7 ; reset A/Dclr ADCR.7; start A/D (nueva conversión)WAIT: sz ADCR.6 ; EOCBjmp WAIT; a partir <strong>de</strong> aquí disponemos <strong>de</strong>l valor en ADRL, ADRHEj.: conversión <strong>de</strong> señal en AN0 con cristal <strong>de</strong> 4 MHz, por interrupcionesEn este caso, iniciamos el proceso manualmente (START), y a cada fin <strong>de</strong> conversión el AD generará unainterrupción que procesará su resultadoorg 0Chjmp HANDLERorg someplaceHANDLER:mov somewhere,A ; salva Amov A,STATUSmov somewhere2,A ; salva STATUS.. tarea, dato en ADRL-ADRHclr ADCR.7set ADCR.7 ; reset A/Dclr ADCR.7; start A/D (nueva conversión)mov A,somewhere2mov STATUS,A; recupera STATUSmov A,somewhere ; recupera AretiINIT: mov A,00001000b ; AN0mov ADCR,Amov a,00000001bmov ACSR,a; clk/8 (500KHz)set INTC.3; habilita A/D interruptset INTC.0; habilita interrupcionesSTARTclr ADCR.7set ADCR.7clr ADCR.7; reset A/D; start A/D; 46R23 usa INTC0 en vez <strong>de</strong> INTC; 46R24 también, y el "vector" <strong>de</strong>l AD es 010hCTU-005 11

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

Saved successfully!

Ooh no, something went wrong!