CONTROL CONVERTIDOR AC AC MONOFASICO
Enviado por ceverac • 15 de Octubre de 2013 • 2.219 Palabras (9 Páginas) • 449 Visitas
INTRODUCCIÓN
Los microcontroladores son dispositivos de menor capacidad pero estos son ideales para el diseño y sus instrucciones son más fáciles de manipular y son económicos. Los más comercializados son los AVR y los PIC. En nuestro caso decidimos trabajar con los PIC, ya que son los dispositivos más utilizados hoy en día. Existe una gran variedad de estos dispositivos, elegimos uno de gama media el PIC16F877A, este dispositivo cumple con nuestras especificaciones de diseño, dentro del proyecto planteado se realizara el diseño de un circuito de disparo empleando un TRIAC con un Angulo de disparo de 0 a 180 grados con su respectiva carga de potencia, se empleara el lenguaje de programación Asembler simulado previamente en PROTEUS.
DESARROLLO DEL TRABAJO COLABORATIVO 1
El grupo debe diseñar el circuito de control de un convertidor AC-AC monofásico (control de fase) que se alimenta a 120V/60Hz para controlar el ángulo de disparo de un TRIAC, utilizando microcontrolador.
Debe desarrollar el software de programación en lenguaje assembler, que cumpla con las siguientes condiciones:
1. Angulo de disparo: 0 a 180 grados
2. Carga resistiva bombilla de 100 W.
3. El microcontrolador será el PIC16F877A.
4. Debe simularse con Proteus.
Registro Fotografico Montaje CEAD de Ibagué.
CODIGO ASEMBLER
LIST P=16F84A
INCLUDE "P16F84A.INC"
CBLOCK 0x0c
contador,aux_1,aux_2,aux_3
ENDC
org 0x00
goto inicio
org 0x05
;==========PROGRAMACION DE REGISTROS E INTERRUPCIONES==================
inicio
banksel TRISA ;paso al banco 1
clrf TRISA ;configuro puerto a como salida
movlw 0x03 ;cargo el w con 00000011
movwf TRISB ;cargo el puerto b con bit 01 como entradas
bcf OPTION_REG,6 ;coloco a 0 el bit 6 de este reg.hab int. flanco de bajada rb0
banksel PORTB ;ir al banco 0 ya que portb esde este banco
movlw b'00000001' ;cargo contador en 1
movwf contador ;contador cargado
clrf PORTA ;limpio porta
;==========VERIFICACION DE CONTADOR DE PULSOS============================
probar
btfsc contador,0 ;pruebe el 0 bit del contador y salte si es 0
goto potencia_min ;salto a subrutina potencia_min
btfsc contador,1 ;pruebe el bit 1 del contador y salte si es 0
goto potencia_asc1 ;salto a subrutina potencia_asc1
btfsc contador,2 ;pruebe el bit 2 del contador y salte si es 0
goto potencia_asc2 ;salto a subrutina potencia_asc2
goto potencia_max ;salto a subrutina potencia máxima
;=========== SUBRUTINAS DE POTENCIA========================================
potencia_min
btfss PORTB,1 ;verifica si el rb0 esta en 1 y si salta (cruce por cero)
goto potencia_min ;si no queda en bucle infinito hasta que cambie pot =0 call retard_100 ;llamo retardo de 100 o sea 8ms aprox pot = 0
bsf PORTA,0 ;pongo a 1 el bit 0 del porta por unos pocos us
call delay ;tiempo de conteo 50us
bcf PORTA,0
call pulsador
btfsc PORTB,0
goto pro_principal
goto potencia_min ;si no hay cambios en el pulsador quedo en bucle infinito
potencia_asc1
btfss PORTB,1 ;verifica si el rb0 esta en 1 y si salta(cruce por cero)
goto potencia_asc1 ;si no queda en bucle infinito hasta que cambie pot =0 call retard_75 ;llamo retardo de 100 o sea 8ms aprox pot = 0
bsf PORTA,0 ;pongo a 1 el bit 0 del porta por unos pocos us
call delay ;tiempo de conteo 50us
bcf PORTA,0 ;pongo a 0 el bit 0 del porta
call pulsador
btfsc PORTB,0
goto pro_principal
goto potencia_asc1 ;si no hay cambios en el pulsador quedo en bucle infinito
potencia_asc2
btfss PORTB,1 ;verifica si el rb0 esta en 1 y si salta(cruce por cero)
goto potencia_asc2 ;si no queda en bucle infinito hasta que cambie pot =0
call retard_50 ;llamo retardo de 100 o sea 8ms aprox pot = 0
bsf PORTA,0 ;pongo a 1 el bit 0 del porta por unos pocos us
call delay ;tiempo de conteo 50us
bcf PORTA,0 ;pongo a 0 el bit 0del porta
call pulsador
btfsc PORTB,0
goto pro_principal
goto potencia_asc2 ;si no hay cambios en el pulsador quedo en bucle infinito
potencia_max
btfss PORTB,1 ;verifica si el rb0 esta en 1 y si salta(cruce por cero)
goto potencia_max ;si no queda en bucle infinito hasta que cambie pot =0
...