ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

CONTROL CONVERTIDOR AC AC MONOFASICO


Enviado por   •  15 de Octubre de 2013  •  2.219 Palabras (9 Páginas)  •  449 Visitas

Página 1 de 9

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

...

Descargar como (para miembros actualizados) txt (10 Kb)
Leer 8 páginas más »
Disponible sólo en Clubensayos.com