0 оценок0% нашли этот документ полезным (0 голосов)
477 просмотров3 страницы
El documento describe un oscilador controlado por voltaje (VCO) lineal desarrollado y programado en un microcontrolador 89c51. Se utilizó un convertidor analógico-digital ADC0804 para convertir el voltaje de entrada y trabajar con 3 bits de salida, generando frecuencias de 1 kHz a 7 kHz para voltajes de 1V a 7V respectivamente. El programa del VCO se implementó mediante comparaciones seriales para establecer la frecuencia de salida en función del voltaje de entrada.
El documento describe un oscilador controlado por voltaje (VCO) lineal desarrollado y programado en un microcontrolador 89c51. Se utilizó un convertidor analógico-digital ADC0804 para convertir el voltaje de entrada y trabajar con 3 bits de salida, generando frecuencias de 1 kHz a 7 kHz para voltajes de 1V a 7V respectivamente. El programa del VCO se implementó mediante comparaciones seriales para establecer la frecuencia de salida en función del voltaje de entrada.
Авторское право:
Attribution Non-Commercial (BY-NC)
Доступные форматы
Скачайте в формате PDF, TXT или читайте онлайн в Scribd
El documento describe un oscilador controlado por voltaje (VCO) lineal desarrollado y programado en un microcontrolador 89c51. Se utilizó un convertidor analógico-digital ADC0804 para convertir el voltaje de entrada y trabajar con 3 bits de salida, generando frecuencias de 1 kHz a 7 kHz para voltajes de 1V a 7V respectivamente. El programa del VCO se implementó mediante comparaciones seriales para establecer la frecuencia de salida en función del voltaje de entrada.
Авторское право:
Attribution Non-Commercial (BY-NC)
Доступные форматы
Скачайте в формате PDF, TXT или читайте онлайн в Scribd
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í