;******************************************************************************************************************** ;* Control de Corriente Alterna empleando un dispositivo de la gama Tiny AVR ;* ;* Compañia: Solaris Digital. www.solaris-digital.com ;* Desarrollado por: Ing. Victor Joaquin Zepeda P. reviso:Ing ruben andrade navarro(cyber). ;* Lugar: México D.F. ;* ;* Este ejemplo de aplicación pretende cubrir los siguientes puntos: ;* 1. Probar la capacidad de un Microcontrolador AVR de 8 pines para control. ;* 2. Mostrar la forma de configurar las interrupciones del AVR y el manejo de sus vectores. ;* 3. Ejemplificar el control por angulo de fase. ;* ;* Nota: Recuerde que para que este programa se pueda ensamblar debera de contar con las libreria 2323def.inc en la ruta ;* especificada por el directivo include ;* ;******************************************************************************************************************** .INCLUDE "C:\WORK\AVR\APPNOTES\2323DEF.INC" .def CONTADOR=R20 .equ Val_Max =150 .def act_cont=R19 .org $0000 rjmp inicio .org $0001 rjmp pulsos .org $0002 rjmp control INICIO: ldi r25,low(ramend) out spl,r25 ldi r25,$01 out ddrb,r25 ldi r25,$06 out portb,r25 ldi r25,$02 out timsk,r25 ldi r25,$40 out gimsk,r25 ldi r25,$02 out mcucr,r25 ldi r25,$40 out gifr,r25 sei ldi ACT_CONT,Val_Max ldi R31,$00 LOOP: sbic PINB,2 rjmp loop cpi r31,$00 brne bajar_Pot subir_Pot: cpi ACT_CONT,00 breq complementar subi ACT_CONT,$0A rcall RETARDO1 sbis PINB,2 rjmp subir_Pot complementar: com R31 rjmp loop bajar_Pot: cpi ACT_CONT,Val_Max breq complementar ldi r25,$0A add ACT_CONT,r25 rcall RETARDO1 sbis PINB,2 rjmp bajar_Pot rjmp complementar RETARDO1: ldi R16,$0A dec3: ldi R17,$00 dec2: ldi R18,$00 dec1: dec R18 brne dec1 dec R17 brne dec2 dec R16 brne dec3 ret PULSOS: ldi r25,71 out tcnt0,r25 ldi r25,$01 out tccr0,r25 mov CONTADOR,ACT_CONT reti CONTROL: ldi r25,71 out tcnt0,r25 in R23,SREG push R23 cpi CONTADOR,$00 breq REINICIO dec CONTADOR breq REINICIO regreso: pop R23 out SREG,R23 reti REINICIO: ldi r25,$00 out tccr0,r25 sbi PORTB,0 rcall RETARDO cbi PORTB,0 rjmp regreso retardo: ldi R21,$04 loop2: ldi R22,$00 loop1: dec R22 brne loop1 dec R21 brne loop2 ret