Sie sind auf Seite 1von 5

;Proyecto: regulador de luz. ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 100%.

; ; Al llegar al 100% con el botn UP puedo ir disminuyendo la intensidad de luz hasta llegar al 0% Condiciones de funcionamiento segn se empiece a pulsar el botn UP o DOWN: * Al conectarse el montaje la lmpara est apagada. * Si toco el botn UP se enciende lmpara al 100% y con dicho botn puedo bajar la intensidad de luz hasta llegar al 0%. Con el botn DOWN a partir de ese 0% puedo ir incrementando la intensidad de la luz hasta el 100%. * Si una vez conectado el montaje (lmpara apagada) toc el botn DOWN la luz ir aumentado progresivamente de 0% al Control de la intensidad lumnica de la lmpara mediante el sistema de recorte o graduador de fase. Cada 10 mseg. tenemos el paso de la seal rectificada en doble onda por cero. A partir de hay introducimos temporizaciones que al acabar nos indicar el instante para disparar el triac, siempre antes de que llegue otro impulso de paso por cero.

;---------------------------------------------------------------------------------;PIC 16F84A/ 4 MHz/ ;Bits de configuracin para el programador: ;CP(proteccin de la memoria de cdigo):..............................No ;PWRTE(activacin del temporizador "Power-up"):..............No ;WDTE(activacin del "perro guardin"):...............................No ;FOSC1-FOSC0(tipo de oscilador):........................................Xtal ;----------------------------------------------------------------------------------;PROGRAMA LIST INCLUDE p=16f84A "p16f84A.inc"

ORG goto inicio ORG

00h inicio

10h

;Configurar el puerto B (RB4 salida). call bcf call banco1 TRISB,4 banco0 ;El Puerto RB4 como salida

bcf

PORTB,4

;pongo a cero el Puerto RB4

;Configurar la INT. call bcf call programa movlw movwf progra1 btfss goto INTCON,INTF progra1 00h 20h banco1 OPTION_REG,INTEDG ;flanco de bajada de la INT banco0

bcf call call

INTCON,INTF varia disparo

call call goto

up down progra1

;--------------------------------------------------

;Subrutinas de los botones UP-DOWN. ;--------------------------------------------------up btfss goto incf PORTB,2 saltu1 20h,1 ;incremento el registro 20h ;testeo el puerto RB2 y si vale uno salto

bcf

STATUS,C

;correccin para no llegar a FFh, solo llego ;hasta F1h

movlw addwf btfss goto movlw movwf saltu1 return down btfss goto decf

0fh 20h,0 STATUS,C saltu1 0f1h 20h

PORTB,3 saltu3 20h,1

;testeo el puerto RB3 y si vale uno salto

;decremento el registro 20h

bcf

STATUS,C

;correccin para no llegar a 00h, slo llego ;hasta 0Fh

movlw addwf btfss goto return saltu2

0f1h 20h,0 STATUS,C saltu2

movlw movwf saltu3 return

0fh 20h

;-----------------------------------;Disparo del triac: 225 useg. ;-----------------------------------,Pulso de disparo de 225 microsegundos necesarios para activar el triac disparo bsf call bcf return usg225 movlw movwf sal4 decfsz goto return ;----------------------------------------------;Retardo variable despus de la INT. ;----------------------------------------------;El tiempo entre que se activa la bandera INTF es de 10mseg (10.000 microsegundos) Si un registro (21h) lo cargo con un valor comprendido entre 01h y FFh y lo voy decrementando hasta llegar a cero con un retardo fijo de unos 25 microsegundos entre medias puedo conseguir unos pocos microsegundos o los 10.000 microsegundos. varia movf movwf salte 20h,0 21h 30h,1 sal4 4bh 30h PORTB,4 usg225 PORTB,4

call decfsz goto return usg25 movlw movwf sal5 decfsz goto return

usg25 21h,1 salte

08h 31h

31h,1 sal5

;-----------------------------------------;Subrutinas de cambios de bancos. ;-----------------------------------------banco0 bcf return banco1 bsf return END STATUS,RP0 STATUS,RP0

Das könnte Ihnen auch gefallen