Académique Documents
Professionnel Documents
Culture Documents
PROGRAMA PROFESIONAL DE
INGENIERA
ELECTRNICA
CURSO:
MICROCONTROLADORES
Practica 5
TEMA:
CONFIGURACION DE PUERTOS
CONVERSOR A/D
(CUESTIONARIO PREVIO)
ALUMNOS:
AREQUIPA PERU
2011
I. CUESTIONARIO PREVIO
1. Investigue sobre temporizacin de la conversin y mxima
velocidad de conversin.
El tiempo de conversin para cada bit viene definido por el TAD, el
conversor necesita un mnimo de 12 ciclos de reloj (12TAD), para la
conversin de 10-bits. Para generar los pulsos de reloj, deberemos
escoger la mejor de las 3 opciones que nos facilita: 2TOSC, 8TOSC, 32
TOSC.
Tendremos en cuenta que el oscilador interno tiene un TAD tpico de
4Ks, pero podemos hacerlo variar entre 2Ks y 6Ks. Para un optimo
funcionamiento del conversor, nunca deberemos seleccionar un
tiempo menor a 1,6Ks.
Siempre deberemos intentar ajustar el tiempo de reloj, para optimizar
el funcionamiento del conversor.
LIST P=16F877;tipo de uC
include<p16f877.inc>;
RDELAY EQU 0x21;variables en direcciones 21h,22h,23h,24h
CONTA0 EQU 0x22
CONTA1 EQU 0x23
CONTA2 EQU 0x24
W EQU 0 ;Registro W
F EQU 1 ;Registro de trabajo
;ADRESL EQU 0x9E
;*****************************************************************
bsf STATUS,RP0;ir al banco 1
movlw b'00011111';movemos el dato 00011111 a W
movwf PORTA; movemos W a puerto A, NO se puede porque PORTA esta en el banco 0
clrf ADCON0; limpiar registro ADCON0,NO se puede por que ADCON0 esta en el banco 0
clrf PORTB; limpia el puerto B, NO se puede porque PORTB esta en el banco 0.
clrf PORTD; limpia el puerto D, NO se puede porque PORTD esta en el banco 0.
bcf STATUS,RP0; se selecciona el banco 0
bsf ADCON0,0; se coloca 1 en el bit 0 del registro ADCON0
convertir call espera20u;subrutina convertir, contiene una llamada a la subrutina espera 20u
bsf ADCON0,2; ponemos en 1 logico el bit 2 de ADCON0
espera btfsc ADCON0,2 ;subrutina espera, examina si el bit 2 de ADCON0, si es 0 salta.
goto espera; sino, retorna a espera
movf ADRESH,0; el registro ADRESH se mueve a W
movwf PORTB; W se mueve a PORTB
bsf STATUS,RP0;ir al banco1
movf ADRESH,0; mover ADRESH a W, NO se puede por que esta en el banco 0
bcf STATUS,RP0;irl banco 0
movwf PORTD; mover W a PORTD
goto convertir; ir a la subrutina convertir
espera20u movlw 0x05; subrutina espera20u, mueve 0x05 al registro W
movwf CONTA0;mueve el contenido de W al registro CONTA0
ret1 decfsz CONTA0,1;subrutina ret1, decrementa en 1 CONTA0 y el resultado se coloca en el mismo registr
;si es cero salta.
goto ret1; si no , vuelve a ret1
return; retorna a la lnea despus del llamado a espera 20u
end;fin de programa