;************************************************** ;SVETLOBNI REGULATOR Z 16F84 ;AVTOR :æTRASER SILVO ;11:08 2001-02-12 ;Z ISTO TIPKO JE MO¦NA REGULACIJA ;GOR DOL TER VKLOP IZKLOP ;15:30 2001-03-14 ;*************************************************** ERRORLEVEL -302 LIST P=16F84 #INCLUDE "D:\ASM\P16F84.INC" __CONFIG _CP_OFF & _WDT_ON & _PWRTE_ON & _RC_OSC ;------------------------------------------------------------------------ ;PORT A #DEFINE TRIAC_G .0 ;------------------------------------------------------------------------ ;PORT B #DEFINE TIPKA .6 #DEFINE LED .3 ;------------------------------------------------------------------------ ;SPEREMENJIVKE #DEFINE HITROST .5 ;BRZINA SPREMEMBE PREKINITEV 10mS *5 #DEFINE MINIMUM .100 ;MINIMALNA OSVETLITEV #DEFINE CAS_ROCNO .20 ;V KAKEM ¬ASU DELUJE TIPKA KOT STIKALO (POGOJENO ;Z HITROSTJO 5*10mS*20 =1S ;------------------------------------------------------------------------- ;REGISTER NADZOR #DEFINE PREMIK 0 #DEFINE SET_GOR 1 #DEFINE ROCNO 2 #DEFINE NAPAKA 3 #DEFINE LUC_GORI 4 CBLOCK 0XC WTMP,STMP,TMP,T1,T2,T3,T_SET,NADZOR,CAS_P,CAS_R,TT1,TT2,TT3 ENDC ORG 0 GOTO GLAVNI ORG 0X4 GOTO PREK ORG 0X5 ;*************************************** ;PREKINITVENA RUTRINA ;*************************************** PREK MOVWF WTMP SWAPF STATUS,W MOVWF STMP CLRF STATUS BTFSC INTCON,INTF GOTO Z_PREK END_PREK SWAPF STMP,W MOVWF STATUS SWAPF WTMP,F SWAPF WTMP,W RETFIE Z_PREK BCF INTCON,INTF CALL TIMER ;PROCEDURA PO POTEKU ¬ASA POSTAVI BIT PREMIK (NADZOR) BTFSC NADZOR,ROCNO GOTO END_PREK BCF PORTA,TRIAC_G CALL PAVZA BSF PORTA,TRIAC_G CALL TEST ;PROCEDURA VKLJU¬UJE IN IZKLJU¬UJE LED DIODO V 1SEC GOTO END_PREK ;********************************************** ;PROCEDURA V RITMU 1 SEC VKLJU¬UJE LED ;NA PORTU 3 ;********************************************** TEST DECFSZ T1,F RETURN MOVLW .100 MOVWF T1 BTFSS PORTB,LED GOTO PIN_ON3 BCF PORTB,LED RETURN PIN_ON3 BSF PORTB,LED RETURN ;****************************************************** ;TIMER ;PROCEDURA PO POTEKU ¬ASA POSTVI BIT PREMIK REGISTRA ;NADZOR V ¬ASU 10mS*HITROST ;***************************************************** TIMER DECFSZ CAS_P,F RETURN MOVLW HITROST MOVWF CAS_P BSF NADZOR,PREMIK RETURN ;***************************************************** ;DOL¦INA PAVZE JE ;(((T3*3)+5)*T2)+6 ;SPREMINJA SE T2 ;***************************************************** PAVZA MOVLW .33 MOVWF T3 MOVF T_SET,W MOVWF T2 PAV1 DECFSZ T3,F GOTO PAV1 MOVLW .33 MOVWF T3 DECFSZ T2,F GOTO PAV1 RETURN ;********************************************** ;REG_GOR ;REGULACIJA NAVZGOR ;VSAK KLIC ZMANæA REGISTER T_SET ZA ENA ;(1-MAKSUIMUM) ;********************************************** REG_GOR BCF NADZOR,PREMIK MOVLW .1 SUBWF T_SET,W BTFSC STATUS,Z GOTO ZG_MEJA DECF T_SET,F RETURN ZG_MEJA BSF NADZOR,ROCNO BSF PORTA,TRIAC_G BSF NADZOR,LUC_GORI BSF NADZOR,LUC_GORI RETURN ;********************************************** ;REG_DOL ;REGULACIJA NAVZGOR ;VSAK KLIC POVE¬A REGISTER T_SET ZA 1 ;********************************************** REG_DOL BCF NADZOR,PREMIK MOVLW MINIMUM SUBWF T_SET,W BTFSC STATUS,C RETURN INCF T_SET,F RETURN ;******************************************* ;CLRRAM ;BRISANJE SNR ;****************************************** CLRRAM MOVLW 0XC MOVWF FSR BRISI CLRF INDF INCF FSR,F MOVLW 0X50 SUBWF FSR,W BTFSS STATUS,C GOTO BRISI RETURN ;********************************************* ;PAVZA ;********************************************* INI_PAVZA CLRWDT MOVLW .255 MOVWF TT1 MOVWF TT2 MOVLW .10 MOVWF TT3 P_ZANKA DECFSZ TT1,F GOTO P_ZANKA CLRWDT MOVLW .255 MOVWF TT1 DECFSZ TT2,F GOTO P_ZANKA MOVLW .255 MOVWF TT2 DECFSZ TT3,F GOTO P_ZANKA RETURN ;********************************************* ;PAVZA ;PAVZA DEFINIRA KAKO DOLGO NAJ BO ;MINIMALNO PRITISNJENA TIPKA ;********************************************* PAVZA2 MOVLW .255 MOVWF TT1 MOVLW .150 MOVWF TT2 P_ZANKA2 BTFSC PORTB,TIPKA GOTO MOTNJA DECFSZ TT1,F GOTO P_ZANKA2 MOVLW .255 MOVWF TT1 CLRWDT DECFSZ TT2,F GOTO P_ZANKA2 RETURN MOTNJA BSF NADZOR,NAPAKA RETURN ;********************************************* ;GLAVNA PROCEDURA ;********************************************* GLAVNI CLRWDT CALL CLRRAM ;BRISANJE SNR CLRF PORTA CLRF PORTB BSF STATUS,5 BCF TRISA,TRIAC_G BCF TRISB,LED MOVLW B'00111011' ;PULL UP VKLJU¬ENI MOVWF OPTION_REG BCF STATUS,5 MOVLW .100 MOVWF T1 MOVLW B'10010000' ;VKLJU¬ENA PREKINITEV NA RBO OB PADAJO¬I FRONTI MOVWF INTCON MOVLW MINIMUM ; MOVWF T_SET ;REGISTER ,KI DEFINIRA ¬AS VKLOPA PO REHODU SKOZI "0" MOVLW HITROST MOVWF CAS_P BSF NADZOR,ROCNO ;VKLJU¬EN RO¬EN NA¬IN CALL INI_PAVZA ;ZADR¦IM PROGRAM ZARADI INICIALIZACIJE SFH ZANKA CLRWDT BCF NADZOR,NAPAKA BTFSC PORTB,TIPKA ;JE TIPKA PRITISNJENA ? GOTO ZANKA CALL PAVZA2 BTFSC NADZOR,NAPAKA GOTO ZANKA BTFSC PORTB,TIPKA ;JE TIPKA [E PRITISNJENA ? GOTO ZANKA MOVLW CAS_ROCNO ;DA MOVWF CAS_R ZANKA2 CLRWDT BTFSC PORTB,TIPKA ;JE TIPKA æE VEDNO PRITISNJENA ? GOTO ZANKA3 ; NE BIL JE KRATEK PRITISK TIPKE (ON/OFF9 BTFSS NADZOR,PREMIK GOTO ZANKA2 BCF NADZOR,PREMIK DECFSZ CAS_R,F ;JE POTEKEL ¬AS DR¦ANJA TIPKE GOTO ZANKA2 ;NE BCF NADZOR,ROCNO ;DA TOREJ SLEDI GOTO ZANKA1 ;REGULACIJA ZANKA3 CLRWDT BSF NADZOR,ROCNO BTFSS NADZOR,LUC_GORI ;JE LUC VKLJUCENA GOTO LUC_ON ;NE GA VKLU¬I BCF PORTA,TRIAC_G ;DA GA IZKLJU¬I BCF NADZOR,LUC_GORI MOVLW MINIMUM MOVWF T_SET ;REGULACIJA NA MINIMUM BSF NADZOR,SET_GOR ;NASLEDNJI¬ ZA¬NI Z REGULACIJO NAVZGOR GOTO ZANKA LUC_ON CLRWDT BSF PORTA,TRIAC_G BSF NADZOR,LUC_GORI MOVLW .1 MOVWF T_SET ;PRIPRAVI REGULACIJO NA MAXIMUM BCF NADZOR,SET_GOR ;NASLEDNJI¬ ZA¬NI Z REGULACIJO NAVDOL GOTO ZANKA ZANKA1 CLRWDT BTFSS NADZOR,PREMIK GOTO ZANKA1 BTFSS NADZOR,SET_GOR GOTO S_DOL CALL REG_GOR BTFSS PORTB,TIPKA GOTO ZANKA1 BCF NADZOR,SET_GOR BSF NADZOR,LUC_GORI GOTO ZANKA S_DOL CLRWDT CALL REG_DOL BTFSS PORTB,TIPKA GOTO ZANKA1 BSF NADZOR,SET_GOR BSF NADZOR,LUC_GORI GOTO ZANKA END ;EOF