Sunteți pe pagina 1din 3

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER

INGENIERÍA ELECTRÓNICA
MICROCONTROLADORES
VCO LINEAL

DIANA MILENA URBINA DIEZ


dianamilenau@hotmail.com

RESUMEN CJNE R1,#03H,CMP4


MOV R2,#13H
Realiza un Oscilador Controlado por Voltaje MOV A,R2
MOV R3,A
(VCO) que sea lineal, es decir que su ACALL FREQ
frecuencia aumente proporcionalmente para
diferentes entrada, es realizado y programado LJMP CMP3
en un 89c51. CMP4: MOV R1,P1
CJNE R1,#04H,CMP5
MOV R2,#0BH
MOV A,R2
DESARROLLO
MOV R3,A
ACALL FREQ
Para el desarrollo del VCO se utilizo un ADC LJMP CMP4
que nos realizara la conversión de voltaje, se CMP5: MOV R1,P1
uso un ADC0804 configurado en carrera libre y CJNE R1,#05H,CMP6
se trabajo con 3 de sus bits (D4-D6), se realizo MOV R2,#08H
solo con estos 3 bits, porque el VCO fue MOV A,R2
realizado de tal forma que para una entrada de MOV R3,A
ACALL FREQ
1v saliera 1kHz, para 2v tuviera 2kHz y así LJMP CMP5
hasta llegar a 7. CMP6: MOV R1,P1
Se trabajo el 89c51 con un cristal de 4Mhz, CJNE R1,#06H,CMP7
para generar su reloj. MOV R2,#05H
MOV A,R2
Para obtener los datos del converso se usaron MOV R3,A
los 3 primeros pines del puerto P1 y se uso el ACALL FREQ
pin0 del puerto P0 para la salida del LJMP CMP6
microcontrolador. CMP7: MOV R1,P1
A continuación se presenta el programa del CJNE R1,#07H,CMP8
MOV R2,#03H
VCO con el que fue realizado el VCO. MOV A,R2
MOV R3,A
$MOD51 ACALL FREQ
$TITLE(VCO DIANA) LJMP CMP7
ORG 00H
LJMP 100H CMP8: ANL P0,#00H
ORG 100H LJMP CMP1
ANL P0,#00H
CMP1: MOV R1,P1 FREQ: SETB P0.0
CJNE R1,#01H,CMP2 ACALL DELAY
MOV R2,#047H NOP
MOV A,R2 NOP
MOV R3,A NOP
ACALL FREQ NOP
LJMP CMP1 NOP
NOP
CMP2: MOV R1,P1 NOP
CJNE R1,#02H,CMP3 NOP
MOV R2,#1FH NOP
MOV A,R2 NOP
MOV R3,A CLR P0.0
ACALL FREQ ACALL DELAY
LJMP CMP2 RET
CMP3: MOV R1,P1

Ing. Gabriel Sánchez Suárez


gsanchez@bari.ufps.edu.co
UNIVERSIDAD FRANCISCO DE PAULA SANTANDER
INGENIERÍA ELECTRÓNICA
MICROCONTROLADORES
VCO LINEAL

DIANA MILENA URBINA DIEZ


dianamilenau@hotmail.com
DELAY: MOV A,R3 DIV AB
MOV R6,A MOV R3,A
DELAY1:DJNZ R6,DELAY1 ACALL FREQ
LJMP CMP3
RET CMP4: MOV R1,P1
END CJNE R1,#04H,CMP5
MOV A,R2
Para calcular los retardos que se trabajo con la MOV B,#04H
DIV AB
siguiente relación: MOV R3,A
1 12 ACALL FREQ
=K= = 3 −6 s LJMP CMP4
f OSCILADOR 4MHz CMP5: MOV R1,P1
CJNE R1,#05H,CMP6
MOV A,R2
1 MOV B,#05H
*K = m DIV AB
f DESEADA MOV R3,A
ACALL FREQ
Este valor m es el que vamos a poner en LJMP CMP5
CMP6: MOV R1,P1
nuestro retardo, debemos considerar al hacer CJNE R1,#06H,CMP7
esta relación que cada instrucción posee entre MOV A,R2
1 o 2 ciclos de maquina que es equivalente a MOV B,#06H
12 ciclos de reloj, debemos tener cuidado con DIV AB
estos tiempos para lograr una frecuencia MOV R3,A
ACALL FREQ
deseada. LJMP CMP6
CMP7: MOV R1,P1
Inicialmente se trabajo con el siguiente CJNE R1,#07H,CMP8
programa: MOV A,R2
INCLUDE 89C51.mc MOV B,#07H
DIV AB
ORG 00H MOV R3,A
LJMP INICIO ACALL FREQ
INICIO: ORG 100H LJMP CMP7
ANL P0,#00H CMP7: ANL P0,#00H
MOV R2,#03CH LJMP CMP1
CMP1: MOV R1,P1
CJNE R1,#01H,CMP2 FREQ: SETB P0.0
MOV A,R2 ACALL DELAY
MOV B,#01H NOP
DIV AB NOP
MOV R3,A NOP
ACALL FREQ NOP
LJMP CMP1 NOP
NOP
CMP2: MOV R1,P1 NOP
CJNE R1,#02H,CMP3 NOP
MOV A,R2 NOP
MOV B,#02H NOP
DIV AB CLR P0.0
MOV R3,A ACALL DELAY
ACALL FREQ RET
LJMP CMP2
CMP3: MOV R1,P1 DELAY:MOV A,R3
CJNE R1,#03H,CMP4 MOV R6,A
MOV A,R2 MOV R7,A
MOV B,#03H DELAY1:DJNZ R6,DELAY1

Ing. Gabriel Sánchez Suárez


gsanchez@bari.ufps.edu.co
UNIVERSIDAD FRANCISCO DE PAULA SANTANDER
INGENIERÍA ELECTRÓNICA
MICROCONTROLADORES
VCO LINEAL

DIANA MILENA URBINA DIEZ


dianamilenau@hotmail.com
DELAY2:DJNZ R7,DELAY2 que para poder generar frecuencias mas altas
de 7khz en este diseño se necesitaría un reloj
RET
END de cristal menor a los 4MHz y el 89c51 debe
ser configurado con un reloj entre un rango de
Como se puede observar lo que se hizo fue 4MHz a 20MHz, por esta razón se trabajo solo
hallar una constante y luego dividir esta con 3 bits y un máximo de 7kHz a 7v.
constante con la entrada, de esta forma se
aseguraba la linealidad, de hecho si es lineal,
solo que al realizarse de esta forma no se CONCLUSIONES
considera el tiempo de las instrucciones y
también se ve bastante afectada la frecuencia El 89C51 es un microcontrolador muy fácil de
debido a que muchas de estas divisiones son programar, con instrucciones sencillas, fácil de
enteras y otra no lo son. comprender y poner en funcionamiento.
Por este motivo se decidió realizar el calculo
para cada una de las frecuencias deseadas, El programa es bastante fácil, y solos e basa
pero es importante decir que se partió del valor en rutinas de retardos y comparaciones.
hallado en la división como se acaba de
explicar y mostrar en el programa anterior. Se debe considerar bastante al realizar un
Al realizar la prueba, se observo que algunas diseño, el manejo de los tiempos que se
de las frecuencias no eran exactas, así que demora cada instrucción, ya que se observo
sencillamente se empezó a incrementar o a que no es tan despreciable como una
decrementar el valor del retardo, dependiendo considera, sino que todo lo contrario es
de si se deseaba disminuir o aumentar la bastante significativo.
frecuencia.
Cabe decir que de cualquiera de estas dos
formas el VCO es completamente lineal, solo
que de la segunda forma no se obtienen
frecuencias exactas de 1kHz para un 1v, ni
para ninguna otro voltaje, mientras que con el
primero programa se obtuvo una frecuencia de
1.04kHz a 1v, hasta un máximo de 6.98kHz
para 7 v, el efecto de esta diferencia es ya
debida al reloj y las instrucciones del
programa.
Como se puede observar en el retardo que se
usa para generar el reloj, se ven varios NOP,
estos NOP es para asegurar un ciclo útil de
50%, ya que si se analiza detenidamente el
programa, se observara que cuando P0 esta
en 0 y va a realizar el cambio a P1 tiene que
recorrer mas instrucciones que cuando P1 esta
en 1 y va a cambiar a 0, esta es la explicación
de porque los NOP que se encuentran solo en
el retardo cuando P0 esta en 1.
Se trato de trabajar con un rango de
frecuencias mas altas, pero si se observa en el
retardo de cuando el voltaje es 7, se podrán
dar cuenta que este retardo es solo de 3, así

Ing. Gabriel Sánchez Suárez


gsanchez@bari.ufps.edu.co

S-ar putea să vă placă și