Sie sind auf Seite 1von 3
UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERÍA ELECTRÓNICA MICROCONTROLADORES VCO LINEAL DIANA MILENA URBINA DIEZ

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERÍA ELECTRÓNICA MICROCONTROLADORES VCO LINEAL

DIANA MILENA URBINA DIEZ dianamilenau@hotmail.com

RESUMEN

Realiza un Oscilador Controlado por Voltaje (VCO) que sea lineal, es decir que su frecuencia aumente proporcionalmente para

diferentes entrada, es realizado y programado

en un 89c51.

DESARROLLO

Para el desarrollo del VCO se utilizo un ADC que nos realizara la conversión de voltaje, se uso un ADC0804 configurado en carrera libre y

se trabajo con 3 de sus bits (D4-D6), se realizo

CJNE

R1,#03H,CMP4

MOV

R2,#13H

MOV

A,R2

MOV

R3,A

ACALL

FREQ

LJMP

CMP3

CMP4:

MOV

R1,P1

CJNE

R1,#04H,CMP5

MOV

R2,#0BH

MOV

A,R2

MOV

R3,A

ACALL

FREQ

LJMP

CMP4

CMP5:

MOV

R1,P1

CJNE

R1,#05H,CMP6

MOV

R2,#08H

solo con estos 3 bits, porque el VCO fue

CMP6:

MOV

A,R2

realizado de tal forma que para una entrada de

MOV

R3,A

1v saliera 1kHz, para 2v tuviera 2kHz y así

ACALL

FREQ

LJMP

CMP5

hasta llegar a 7.

MOV

R1,P1

Se trabajo el 89c51 con un cristal de 4Mhz,

CJNE

R1,#06H,CMP7

para generar su reloj.

MOV

R2,#05H

Para obtener los datos del converso se usaron

MOV

A,R2

los 3 primeros pines del puerto P1 y se uso el

MOV

R3,A

ACALL

FREQ

pin0 del puerto P0 para la salida del

CMP7:

LJMP

CMP6

microcontrolador.

MOV

R1,P1

A

VCO con el que fue realizado el VCO.

continuación se presenta el programa del

CJNE

MOV

R1,#07H,CMP8

R2,#03H

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

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERÍA ELECTRÓNICA MICROCONTROLADORES VCO LINEAL

DIANA MILENA URBINA DIEZ dianamilenau@hotmail.com

DELAY: MOV A,R3 MOV R6,A DELAY1:DJNZ R6,DELAY1

RET

END

Para calcular los retardos que se trabajo con la siguiente relación:

 

1

=

K

=

12

f

OSCILADOR

 

4

MHz

 

1

*

K

=

m

f DESEADA

6

= 3 s

Este valor m es el que vamos a poner en nuestro retardo, debemos considerar al hacer esta relación que cada instrucción posee entre 1 o 2 ciclos de maquina que es equivalente a 12 ciclos de reloj, debemos tener cuidado con estos tiempos para lograr una frecuencia deseada.

Inicialmente

se

trabajo

con

el

siguiente

programa:

INCLUDE 89C51.mc

ORG

00H

LJMP INICIO

INICIO: ORG

100H

 

ANL

P0,#00H

MOV

R2,#03CH

CMP1:

MOV

R1,P1

CJNE

R1,#01H,CMP2

MOV

A,R2

MOV

B,#01H

DIV

AB

MOV

R3,A

ACALL

FREQ

LJMP

CMP1

CMP2:

MOV

R1,P1

CJNE

R1,#02H,CMP3

MOV

A,R2

MOV

B,#02H

DIV

AB

MOV

R3,A

ACALL

FREQ

LJMP

CMP2

CMP3:

MOV

R1,P1

CJNE

R1,#03H,CMP4

MOV

A,R2

MOV

B,#03H

 

DIV

AB

MOV

R3,A

ACALL

FREQ

LJMP

CMP3

CMP4:

MOV

R1,P1

CJNE

R1,#04H,CMP5

MOV

A,R2

MOV

B,#04H

DIV

AB

MOV

R3,A

ACALL

FREQ

LJMP

CMP4

CMP5:

MOV

R1,P1

CJNE

R1,#05H,CMP6

MOV

A,R2

MOV

B,#05H

DIV

AB

MOV

R3,A

ACALL

FREQ

LJMP

CMP5

CMP6:

MOV

R1,P1

CJNE

R1,#06H,CMP7

MOV

A,R2

MOV

B,#06H

DIV

AB

MOV

R3,A

ACALL

FREQ

LJMP

CMP6

CMP7:

MOV

R1,P1

CJNE

R1,#07H,CMP8

MOV

A,R2

MOV

B,#07H

DIV

AB

MOV

R3,A

ACALL

FREQ

LJMP

CMP7

CMP7: ANL

P0,#00H

 

LJMP

CMP1

FREQ: SETB

P0.0

 

ACALL

DELAY

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

CLR

P0.0

ACALL

DELAY

RET

DELAY:MOV A,R3 MOV R6,A MOV R7,A 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

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER INGENIERÍA ELECTRÓNICA MICROCONTROLADORES VCO LINEAL

DIANA MILENA URBINA DIEZ dianamilenau@hotmail.com

DELAY2:DJNZ R7,DELAY2

RET

END

Como se puede observar lo que se hizo fue hallar una constante y luego dividir esta 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 considera el tiempo de las instrucciones y también se ve bastante afectada la frecuencia debido a que muchas de estas divisiones son enteras y otra no lo son. Por este motivo se decidió realizar el calculo para cada una de las frecuencias deseadas, pero es importante decir que se partió del valor hallado en la división como se acaba de explicar y mostrar en el programa anterior. Al realizar la prueba, se observo que algunas de las frecuencias no eran exactas, así que sencillamente se empezó a incrementar o a decrementar el valor del retardo, dependiendo de si se deseaba disminuir o aumentar la 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í

que para poder generar frecuencias mas altas de 7khz en este diseño se necesitaría un reloj de cristal menor a los 4MHz y el 89c51 debe ser configurado con un reloj entre un rango de 4MHz a 20MHz, por esta razón se trabajo solo con 3 bits y un máximo de 7kHz a 7v.

CONCLUSIONES

El 89C51 es un microcontrolador muy fácil de programar, con instrucciones sencillas, fácil de comprender y poner en funcionamiento.

El programa es bastante fácil, y solos e basa en rutinas de retardos y comparaciones.

Se debe considerar bastante al realizar un diseño, el manejo de los tiempos que se demora cada instrucción, ya que se observo que no es tan despreciable como una considera, sino que todo lo contrario es bastante significativo.

Ing. Gabriel Sánchez Suárez gsanchez@bari.ufps.edu.co