LIST P=PIC16F877a #INCLUDE P16F877a.INC ;errorlevel -302 ;suppress "not in bank 0" message __CONFIG _CP_OFF & _DEBUG_OFF & _LVP_OFF & _PWRTE_ON & _WDT_OFF & _BODEN_OFF & _HS_OSC CBLOCK 0x20 WREG_TEMP ;storage for WREG during interrupt STATUS_TEMP ;storage for STATUS during interrupt PCLATH_TEMP ;storage for PCLATH during interrupt FSR_TEMP ;storage for FSR during interrupt HOEKTELLER TEST TIMER1 ;FOR DELAY TIMER2 ;FOR DELAY PERIOD_COUNTER HOEKVERANDERD INTENSIT INTENS_COUNTER TESTY ENDC ;---------------------------------------------------------------------------- ;RESET Interrupt Vector ORG 0x0000 ;reset vector GOTO Main nop nop ;---------------------------------------------------------------------------- ;Other interrupt vector ORG 0x0004 ;interrupt vector GOTO Int ;****************************************************************************** ;****************************************************************************** Main: ;POORTEN CONFIGUREREN + LEDS UITDOEN BSF STATUS,RP0 MOVLW B'00000000' MOVWF TRISC ; pinnen van port C uitgang MOVWF TRISD ; pinnen van port D uitgang MOVWF TRISA ; pinnen van port A uitgang MOVLW B'00000001' MOVWF TRISB ; pinnen van port B uitgang behalve RB0 voor externe interrupt BCF STATUS,RP0 MOVLW B'00000000' ; D uit MOVWF PORTD MOVLW B'00000000' ; B uit MOVWF PORTB MOVLW B'00000000' ; A uit MOVWF PORTA MOVLW B'00000000' ; C uit MOVWF PORTC ;INSTELLINGEN VAN ANDERE REGISTERS BSF STATUS,RP0 ;bank1 BCF STATUS,RP1 MOVLW D'100' MOVWF PR2 ;PERIOD TIMER2: initial BCF OPTION_REG,6 ;external interrupt on falling edge of RB0 BCF STATUS,RP0 ;bank0 BCF STATUS,RP1 MOVLW B'11010000' MOVWF INTCON ;interrupts enablen BSF STATUS,RP0 ;bank1 BCF STATUS,RP1 BCF PIE1,2 ;disable CCP1 interrupt BSF PIE1,1 ;enable TMR2 to PR2 match interrupt BCF PIE2,0 ;disable CCP2 interrupt BCF STATUS,RP0 BCF STATUS,RP1 BCF T1CON,1 ;TIMER1 = volgt externe klok (rising edge counter) BSF T2CON,1 ;PRESCALE 16 OP TIMER2: 250 * 16 * 1/4000000 = 0,001 sec -> 10 Hz, 100 hoeken BCF STATUS,RP0 ;bank 0 BCF STATUS,RP1 MOVLW B'00000000' ;periode timer1 MOVWF CCPR2H MOVLW B'00001000' MOVWF CCPR2L MOVLW B'00000110' MOVWF CCP2CON ;select compare mode of CCP2 BSF T1CON,3 ;enables Timer1 oscillator BCF T1CON,1 ;internal clock BSF T1CON,0 ;enables Timer1 BSF T2CON,2 ;TIMER2 ON ;CALL DELAY ;anders gaat em niet in de interrupt ;MAIN LOOP MOVLW D'4' ;beginwaarde MOVWF INTENS_COUNTER MOVLW B'1000' MOVWF INTENSIT ;****************************************************************************** ;****************************************************************************** ; HIERONDER MET BEELDPROGRAMMER BEKOMEN TEKST KOPIËREN ;****************************************************************************** ;****************************************************************************** MOVLW D'100' ;# positions MOVWF HOEKTELLER BEGIN MOVLW D'2' MOVWF HOEKVERANDERD hoek100 MOVF HOEKVERANDERD,0 MOVWF TEST DECFSZ TEST,1 GOTO hoek100 MOVF HOEKTELLER,0 SUBLW D'101' MOVWF TEST DECFSZ TEST,1 GOTO hoek99 GOTO BEGIN hoek99 MOVF HOEKTELLER,0 SUBLW D'100' MOVWF TEST DECFSZ TEST,1 GOTO hoek98 GOTO BEGIN hoek98 MOVF HOEKTELLER,0 SUBLW D'99' MOVWF TEST DECFSZ TEST,1 GOTO hoek97 GOTO BEGIN hoek97 MOVF HOEKTELLER,0 SUBLW D'98' MOVWF TEST DECFSZ TEST,1 GOTO hoek96 GOTO BEGIN hoek96 MOVF HOEKTELLER,0 SUBLW D'97' MOVWF TEST DECFSZ TEST,1 GOTO hoek95 GOTO BEGIN hoek95 MOVF HOEKTELLER,0 SUBLW D'96' MOVWF TEST DECFSZ TEST,1 GOTO hoek94 GOTO BEGIN hoek94 MOVF HOEKTELLER,0 SUBLW D'95' MOVWF TEST DECFSZ TEST,1 GOTO hoek93 GOTO BEGIN hoek93 MOVF HOEKTELLER,0 SUBLW D'94' MOVWF TEST DECFSZ TEST,1 GOTO hoek92 GOTO BEGIN hoek92 MOVF HOEKTELLER,0 SUBLW D'93' MOVWF TEST DECFSZ TEST,1 GOTO hoek91 GOTO BEGIN hoek91 MOVF HOEKTELLER,0 SUBLW D'92' MOVWF TEST DECFSZ TEST,1 GOTO hoek90 GOTO BEGIN hoek90 MOVF HOEKTELLER,0 SUBLW D'91' MOVWF TEST DECFSZ TEST,1 GOTO hoek89 GOTO BEGIN hoek89 MOVF HOEKTELLER,0 SUBLW D'90' MOVWF TEST DECFSZ TEST,1 GOTO hoek88 GOTO BEGIN hoek88 MOVF HOEKTELLER,0 SUBLW D'89' MOVWF TEST DECFSZ TEST,1 GOTO hoek87 GOTO BEGIN hoek87 MOVF HOEKTELLER,0 SUBLW D'88' MOVWF TEST DECFSZ TEST,1 GOTO hoek86 GOTO BEGIN hoek86 MOVF HOEKTELLER,0 SUBLW D'87' MOVWF TEST DECFSZ TEST,1 GOTO hoek85 GOTO BEGIN hoek85 MOVF HOEKTELLER,0 SUBLW D'86' MOVWF TEST DECFSZ TEST,1 GOTO hoek84 GOTO BEGIN hoek84 MOVF HOEKTELLER,0 SUBLW D'85' MOVWF TEST DECFSZ TEST,1 GOTO hoek83 GOTO BEGIN hoek83 MOVF HOEKTELLER,0 SUBLW D'84' MOVWF TEST DECFSZ TEST,1 GOTO hoek82 GOTO BEGIN hoek82 MOVF HOEKTELLER,0 SUBLW D'83' MOVWF TEST DECFSZ TEST,1 GOTO hoek81 GOTO BEGIN hoek81 MOVF HOEKTELLER,0 SUBLW D'82' MOVWF TEST DECFSZ TEST,1 GOTO hoek80 GOTO BEGIN hoek80 MOVF HOEKTELLER,0 SUBLW D'81' MOVWF TEST DECFSZ TEST,1 GOTO hoek79 GOTO UPDATE80 UPDATE80 BCF STATUS,RP0 BCF STATUS,RP1 MOVLW B'00000000' MOVWF PORTD MOVLW B'00000000' MOVWF PORTB MOVLW B'00000000' MOVWF PORTA MOVLW B'11110000' MOVWF PORTC MOVLW B'00000000' MOVWF PORTD MOVLW B'00000000' MOVWF PORTB MOVLW B'00000000' MOVWF PORTA MOVLW B'00000000' MOVWF PORTC CALL DELAY2 CALL DELAY3 CALL DELAY4 GOTO BEGIN hoek79 MOVF HOEKTELLER,0 SUBLW D'80' MOVWF TEST DECFSZ TEST,1 GOTO hoek78 GOTO UPDATE79 UPDATE79 BCF STATUS,RP0 BCF STATUS,RP1 MOVLW B'00000000' MOVWF PORTD MOVLW B'00000000' MOVWF PORTB MOVLW B'00000000' MOVWF PORTA MOVLW B'11110000' MOVWF PORTC CALL DELAY2 MOVLW B'00000000' MOVWF PORTD MOVLW B'00000000' MOVWF PORTB MOVLW B'00000000' MOVWF PORTA MOVLW B'00000000' MOVWF PORTC CALL DELAY3 CALL DELAY4 GOTO BEGIN hoek78 MOVF HOEKTELLER,0 SUBLW D'79' MOVWF TEST DECFSZ TEST,1 GOTO hoek77 GOTO UPDATE78 UPDATE78 BCF STATUS,RP0 BCF STATUS,RP1 MOVLW B'00000000' MOVWF PORTD MOVLW B'00000000' MOVWF PORTB MOVLW B'00000000' MOVWF PORTA MOVLW B'11110000' MOVWF PORTC CALL DELAY2 CALL DELAY3 MOVLW B'00000000' MOVWF PORTD MOVLW B'00000000' MOVWF PORTB MOVLW B'00000000' MOVWF PORTA MOVLW B'00000000' MOVWF PORTC CALL DELAY4 GOTO BEGIN hoek77 MOVF HOEKTELLER,0 SUBLW D'78' MOVWF TEST DECFSZ TEST,1 GOTO hoek76 GOTO UPDATE77 UPDATE77 BCF STATUS,RP0 BCF STATUS,RP1 MOVLW B'00000000' MOVWF PORTD MOVLW B'00000000' MOVWF PORTB MOVLW B'00000000' MOVWF PORTA MOVLW B'11110000' MOVWF PORTC CALL DELAY2 CALL DELAY3 CALL DELAY4 CALL LEDSUIT GOTO BEGIN hoek76 MOVF HOEKTELLER,0 SUBLW D'77' MOVWF TEST DECFSZ TEST,1 GOTO hoek75 GOTO BEGIN hoek75 MOVF HOEKTELLER,0 SUBLW D'76' MOVWF TEST DECFSZ TEST,1 GOTO hoek74 GOTO BEGIN hoek74 MOVF HOEKTELLER,0 SUBLW D'75' MOVWF TEST DECFSZ TEST,1 GOTO hoek73 GOTO BEGIN hoek73 MOVF HOEKTELLER,0 SUBLW D'74' MOVWF TEST DECFSZ TEST,1 GOTO hoek72 GOTO BEGIN hoek72 MOVF HOEKTELLER,0 SUBLW D'73' MOVWF TEST DECFSZ TEST,1 GOTO hoek71 GOTO BEGIN hoek71 MOVF HOEKTELLER,0 SUBLW D'72' MOVWF TEST DECFSZ TEST,1 GOTO hoek70 GOTO BEGIN hoek70 MOVF HOEKTELLER,0 SUBLW D'71' MOVWF TEST DECFSZ TEST,1 GOTO hoek69 GOTO BEGIN hoek69 MOVF HOEKTELLER,0 SUBLW D'70' MOVWF TEST DECFSZ TEST,1 GOTO hoek68 GOTO BEGIN hoek68 MOVF HOEKTELLER,0 SUBLW D'69' MOVWF TEST DECFSZ TEST,1 GOTO hoek67 GOTO BEGIN hoek67 MOVF HOEKTELLER,0 SUBLW D'68' MOVWF TEST DECFSZ TEST,1 GOTO hoek66 GOTO BEGIN hoek66 MOVF HOEKTELLER,0 SUBLW D'67' MOVWF TEST DECFSZ TEST,1 GOTO hoek65 GOTO BEGIN hoek65 MOVF HOEKTELLER,0 SUBLW D'66' MOVWF TEST DECFSZ TEST,1 GOTO hoek64 GOTO BEGIN hoek64 MOVF HOEKTELLER,0 SUBLW D'65' MOVWF TEST DECFSZ TEST,1 GOTO hoek63 GOTO BEGIN hoek63 MOVF HOEKTELLER,0 SUBLW D'64' MOVWF TEST DECFSZ TEST,1 GOTO hoek62 GOTO BEGIN hoek62 MOVF HOEKTELLER,0 SUBLW D'63' MOVWF TEST DECFSZ TEST,1 GOTO hoek61 GOTO BEGIN hoek61 MOVF HOEKTELLER,0 SUBLW D'62' MOVWF TEST DECFSZ TEST,1 GOTO hoek60 GOTO BEGIN hoek60 MOVF HOEKTELLER,0 SUBLW D'61' MOVWF TEST DECFSZ TEST,1 GOTO hoek59 GOTO BEGIN hoek59 MOVF HOEKTELLER,0 SUBLW D'60' MOVWF TEST DECFSZ TEST,1 GOTO hoek58 GOTO BEGIN hoek58 MOVF HOEKTELLER,0 SUBLW D'59' MOVWF TEST DECFSZ TEST,1 GOTO hoek57 GOTO BEGIN hoek57 MOVF HOEKTELLER,0 SUBLW D'58' MOVWF TEST DECFSZ TEST,1 GOTO hoek56 GOTO BEGIN hoek56 MOVF HOEKTELLER,0 SUBLW D'57' MOVWF TEST DECFSZ TEST,1 GOTO hoek55 GOTO BEGIN hoek55 MOVF HOEKTELLER,0 SUBLW D'56' MOVWF TEST DECFSZ TEST,1 GOTO hoek54 GOTO BEGIN hoek54 MOVF HOEKTELLER,0 SUBLW D'55' MOVWF TEST DECFSZ TEST,1 GOTO hoek53 GOTO BEGIN hoek53 MOVF HOEKTELLER,0 SUBLW D'54' MOVWF TEST DECFSZ TEST,1 GOTO hoek52 GOTO BEGIN hoek52 MOVF HOEKTELLER,0 SUBLW D'53' MOVWF TEST DECFSZ TEST,1 GOTO hoek51 GOTO BEGIN hoek51 MOVF HOEKTELLER,0 SUBLW D'52' MOVWF TEST DECFSZ TEST,1 GOTO hoek50 GOTO BEGIN hoek50 MOVF HOEKTELLER,0 SUBLW D'51' MOVWF TEST DECFSZ TEST,1 GOTO hoek49 GOTO BEGIN hoek49 MOVF HOEKTELLER,0 SUBLW D'50' MOVWF TEST DECFSZ TEST,1 GOTO hoek48 GOTO BEGIN hoek48 MOVF HOEKTELLER,0 SUBLW D'49' MOVWF TEST DECFSZ TEST,1 GOTO hoek47 GOTO BEGIN hoek47 MOVF HOEKTELLER,0 SUBLW D'48' MOVWF TEST DECFSZ TEST,1 GOTO hoek46 GOTO BEGIN hoek46 MOVF HOEKTELLER,0 SUBLW D'47' MOVWF TEST DECFSZ TEST,1 GOTO hoek45 GOTO BEGIN hoek45 MOVF HOEKTELLER,0 SUBLW D'46' MOVWF TEST DECFSZ TEST,1 GOTO hoek44 GOTO BEGIN hoek44 MOVF HOEKTELLER,0 SUBLW D'45' MOVWF TEST DECFSZ TEST,1 GOTO hoek43 GOTO BEGIN hoek43 MOVF HOEKTELLER,0 SUBLW D'44' MOVWF TEST DECFSZ TEST,1 GOTO hoek42 GOTO BEGIN hoek42 MOVF HOEKTELLER,0 SUBLW D'43' MOVWF TEST DECFSZ TEST,1 GOTO hoek41 GOTO BEGIN hoek41 MOVF HOEKTELLER,0 SUBLW D'42' MOVWF TEST DECFSZ TEST,1 GOTO hoek40 GOTO BEGIN hoek40 MOVF HOEKTELLER,0 SUBLW D'41' MOVWF TEST DECFSZ TEST,1 GOTO hoek39 GOTO BEGIN hoek39 MOVF HOEKTELLER,0 SUBLW D'40' MOVWF TEST DECFSZ TEST,1 GOTO hoek38 GOTO BEGIN hoek38 MOVF HOEKTELLER,0 SUBLW D'39' MOVWF TEST DECFSZ TEST,1 GOTO hoek37 GOTO BEGIN hoek37 MOVF HOEKTELLER,0 SUBLW D'38' MOVWF TEST DECFSZ TEST,1 GOTO hoek36 GOTO BEGIN hoek36 MOVF HOEKTELLER,0 SUBLW D'37' MOVWF TEST DECFSZ TEST,1 GOTO hoek35 GOTO BEGIN hoek35 MOVF HOEKTELLER,0 SUBLW D'36' MOVWF TEST DECFSZ TEST,1 GOTO hoek34 GOTO BEGIN hoek34 MOVF HOEKTELLER,0 SUBLW D'35' MOVWF TEST DECFSZ TEST,1 GOTO hoek33 GOTO BEGIN hoek33 MOVF HOEKTELLER,0 SUBLW D'34' MOVWF TEST DECFSZ TEST,1 GOTO hoek32 GOTO BEGIN hoek32 MOVF HOEKTELLER,0 SUBLW D'33' MOVWF TEST DECFSZ TEST,1 GOTO hoek31 GOTO BEGIN hoek31 MOVF HOEKTELLER,0 SUBLW D'32' MOVWF TEST DECFSZ TEST,1 GOTO hoek30 GOTO BEGIN hoek30 MOVF HOEKTELLER,0 SUBLW D'31' MOVWF TEST DECFSZ TEST,1 GOTO hoek29 GOTO BEGIN hoek29 MOVF HOEKTELLER,0 SUBLW D'30' MOVWF TEST DECFSZ TEST,1 GOTO hoek28 GOTO BEGIN hoek28 MOVF HOEKTELLER,0 SUBLW D'29' MOVWF TEST DECFSZ TEST,1 GOTO hoek27 GOTO BEGIN hoek27 MOVF HOEKTELLER,0 SUBLW D'28' MOVWF TEST DECFSZ TEST,1 GOTO hoek26 GOTO BEGIN hoek26 MOVF HOEKTELLER,0 SUBLW D'27' MOVWF TEST DECFSZ TEST,1 GOTO hoek25 GOTO BEGIN hoek25 MOVF HOEKTELLER,0 SUBLW D'26' MOVWF TEST DECFSZ TEST,1 GOTO hoek24 GOTO BEGIN hoek24 MOVF HOEKTELLER,0 SUBLW D'25' MOVWF TEST DECFSZ TEST,1 GOTO hoek23 GOTO BEGIN hoek23 MOVF HOEKTELLER,0 SUBLW D'24' MOVWF TEST DECFSZ TEST,1 GOTO hoek22 GOTO BEGIN hoek22 MOVF HOEKTELLER,0 SUBLW D'23' MOVWF TEST DECFSZ TEST,1 GOTO hoek21 GOTO BEGIN hoek21 MOVF HOEKTELLER,0 SUBLW D'22' MOVWF TEST DECFSZ TEST,1 GOTO hoek20 GOTO BEGIN hoek20 MOVF HOEKTELLER,0 SUBLW D'21' MOVWF TEST DECFSZ TEST,1 GOTO hoek19 GOTO BEGIN hoek19 MOVF HOEKTELLER,0 SUBLW D'20' MOVWF TEST DECFSZ TEST,1 GOTO hoek18 GOTO BEGIN hoek18 MOVF HOEKTELLER,0 SUBLW D'19' MOVWF TEST DECFSZ TEST,1 GOTO hoek17 GOTO BEGIN hoek17 MOVF HOEKTELLER,0 SUBLW D'18' MOVWF TEST DECFSZ TEST,1 GOTO hoek16 GOTO BEGIN hoek16 MOVF HOEKTELLER,0 SUBLW D'17' MOVWF TEST DECFSZ TEST,1 GOTO hoek15 GOTO BEGIN hoek15 MOVF HOEKTELLER,0 SUBLW D'16' MOVWF TEST DECFSZ TEST,1 GOTO hoek14 GOTO BEGIN hoek14 MOVF HOEKTELLER,0 SUBLW D'15' MOVWF TEST DECFSZ TEST,1 GOTO hoek13 GOTO BEGIN hoek13 MOVF HOEKTELLER,0 SUBLW D'14' MOVWF TEST DECFSZ TEST,1 GOTO hoek12 GOTO BEGIN hoek12 MOVF HOEKTELLER,0 SUBLW D'13' MOVWF TEST DECFSZ TEST,1 GOTO hoek11 GOTO BEGIN hoek11 MOVF HOEKTELLER,0 SUBLW D'12' MOVWF TEST DECFSZ TEST,1 GOTO hoek10 GOTO BEGIN hoek10 MOVF HOEKTELLER,0 SUBLW D'11' MOVWF TEST DECFSZ TEST,1 GOTO hoek9 GOTO BEGIN hoek9 MOVF HOEKTELLER,0 SUBLW D'10' MOVWF TEST DECFSZ TEST,1 GOTO hoek8 GOTO BEGIN hoek8 MOVF HOEKTELLER,0 SUBLW D'9' MOVWF TEST DECFSZ TEST,1 GOTO hoek7 GOTO BEGIN hoek7 MOVF HOEKTELLER,0 SUBLW D'8' MOVWF TEST DECFSZ TEST,1 GOTO hoek6 GOTO BEGIN hoek6 MOVF HOEKTELLER,0 SUBLW D'7' MOVWF TEST DECFSZ TEST,1 GOTO hoek5 GOTO BEGIN hoek5 MOVF HOEKTELLER,0 SUBLW D'6' MOVWF TEST DECFSZ TEST,1 GOTO hoek4 GOTO BEGIN hoek4 MOVF HOEKTELLER,0 SUBLW D'5' MOVWF TEST DECFSZ TEST,1 GOTO hoek3 GOTO BEGIN hoek3 MOVF HOEKTELLER,0 SUBLW D'4' MOVWF TEST DECFSZ TEST,1 GOTO hoek2 GOTO BEGIN hoek2 MOVF HOEKTELLER,0 SUBLW D'3' MOVWF TEST DECFSZ TEST,1 GOTO hoek1 GOTO BEGIN hoek1 MOVF HOEKTELLER,0 SUBLW D'2' MOVWF TEST DECFSZ TEST,1 GOTO BEGIN GOTO BEGIN ;****************************************************************************** ;****************************************************************************** ;SUBROUTINES LEDSUIT MOVLW B'00000000' MOVWF PORTD MOVWF PORTB MOVWF PORTA MOVWF PORTC RETURN DELAY1 RETURN DELAY2 NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP RETURN DELAY3 NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP RETURN DELAY4 NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP RETURN ;****************************************************************************** ;****************************************************************************** ;INTERRUPT Int: movwf WREG_TEMP ;save WREG movf STATUS,W ;store STATUS in WREG clrf STATUS ;select file register bank0 movwf STATUS_TEMP ;save STATUS value movf PCLATH,W ;store PCLATH in WREG movwf PCLATH_TEMP ;save PCLATH value clrf PCLATH ;select program memory page0 movf FSR,W ;store FSR in WREG movwf FSR_TEMP ;save FSR value BTFSC INTCON,1 ;external interrupt OCCURED ? GOTO SENSOR ;YES: next position LEDs BTFSC PIR1,1 ;TIMER2 TO PR2 MATCH OCCURED ? GOTO POSITION GOTO END_INT ;NO: end interrupt SENSOR BCF STATUS,RP0 ; bank0 BCF STATUS,RP1 MOVLW D'100' MOVWF HOEKTELLER ; hoekteller resetten GOTO test115 test115 ;hoeveel hoeken geteld in vorige toer: moet 100 zijn MOVF PERIOD_COUNTER,0 SUBLW D'116' MOVWF TESTY DECFSZ TESTY GOTO test114 BSF STATUS,RP0 ;bank1 BCF STATUS,RP1 MOVLW D'100' MOVWF PR2 GOTO SENSOR2 test114 MOVF PERIOD_COUNTER,0 SUBLW D'115' MOVWF TESTY DECFSZ TESTY GOTO test113 GOTO PLUS test113 MOVF PERIOD_COUNTER,0 SUBLW D'114' MOVWF TESTY DECFSZ TESTY GOTO test112 GOTO PLUS test112 MOVF PERIOD_COUNTER,0 SUBLW D'113' MOVWF TESTY DECFSZ TESTY GOTO test111 GOTO PLUS test111 MOVF PERIOD_COUNTER,0 SUBLW D'112' MOVWF TESTY DECFSZ TESTY GOTO test110 GOTO PLUS test110 MOVF PERIOD_COUNTER,0 SUBLW D'111' MOVWF TESTY DECFSZ TESTY GOTO test109 GOTO PLUS test109 MOVF PERIOD_COUNTER,0 SUBLW D'110' MOVWF TESTY DECFSZ TESTY GOTO test108 GOTO PLUS test108 MOVF PERIOD_COUNTER,0 SUBLW D'107' MOVWF TESTY DECFSZ TESTY GOTO test105 GOTO PLUS test107 MOVF PERIOD_COUNTER,0 SUBLW D'106' MOVWF TESTY DECFSZ TESTY GOTO test105 GOTO PLUS test106 MOVF PERIOD_COUNTER,0 SUBLW D'107' MOVWF TESTY DECFSZ TESTY GOTO test105 GOTO PLUS test105 MOVF PERIOD_COUNTER,0 SUBLW D'106' MOVWF TESTY DECFSZ TESTY GOTO test104 GOTO PLUS test104 MOVF PERIOD_COUNTER,0 SUBLW D'105' MOVWF TESTY DECFSZ TESTY GOTO test103 GOTO PLUS test103 MOVF PERIOD_COUNTER,0 SUBLW D'104' MOVWF TESTY DECFSZ TESTY GOTO test102 GOTO PLUS test102 MOVF PERIOD_COUNTER,0 SUBLW D'103' MOVWF TESTY DECFSZ TESTY GOTO test101 GOTO PLUS test101 MOVF PERIOD_COUNTER,0 SUBLW D'102' MOVWF TESTY DECFSZ TESTY GOTO test100 GOTO PLUS test100 MOVF PERIOD_COUNTER,0 SUBLW D'101' MOVWF TESTY DECFSZ TESTY GOTO test99 GOTO SENSOR2 test99 MOVF PERIOD_COUNTER,0 SUBLW D'100' MOVWF TESTY DECFSZ TESTY GOTO test98 GOTO MIN test98 MOVF PERIOD_COUNTER,0 SUBLW D'99' MOVWF TESTY DECFSZ TESTY GOTO test97 GOTO PLUS test97 MOVF PERIOD_COUNTER,0 SUBLW D'98' MOVWF TESTY DECFSZ TESTY GOTO test96 GOTO MIN test96 MOVF PERIOD_COUNTER,0 SUBLW D'97' MOVWF TESTY DECFSZ TESTY GOTO test95 GOTO MIN test95 MOVF PERIOD_COUNTER,0 SUBLW D'96' MOVWF TESTY DECFSZ TESTY GOTO test94 GOTO MIN test94 MOVF PERIOD_COUNTER,0 SUBLW D'95' MOVWF TESTY DECFSZ TESTY GOTO test93 GOTO MIN test93 MOVF PERIOD_COUNTER,0 SUBLW D'94' MOVWF TESTY DECFSZ TESTY GOTO test92 GOTO MIN test92 MOVF PERIOD_COUNTER,0 SUBLW D'93' MOVWF TESTY DECFSZ TESTY GOTO test91 GOTO MIN test91 MOVF PERIOD_COUNTER,0 SUBLW D'92' MOVWF TESTY DECFSZ TESTY GOTO test90 GOTO MIN test90 MOVF PERIOD_COUNTER,0 SUBLW D'91' MOVWF TESTY DECFSZ TESTY GOTO test89 GOTO MIN test89 MOVF PERIOD_COUNTER,0 SUBLW D'90' MOVWF TESTY DECFSZ TESTY GOTO test88 GOTO MIN test88 MOVF PERIOD_COUNTER,0 SUBLW D'89' MOVWF TESTY DECFSZ TESTY GOTO test87 GOTO MIN test87 MOVF PERIOD_COUNTER,0 SUBLW D'88' MOVWF TESTY DECFSZ TESTY GOTO test86 GOTO MIN test86 MOVF PERIOD_COUNTER,0 SUBLW D'87' MOVWF TESTY DECFSZ TESTY GOTO test85 GOTO MIN test85 MOVF PERIOD_COUNTER,0 BSF STATUS,RP0 ;bank1 BCF STATUS,RP1 MOVLW D'100' MOVWF PR2 GOTO SENSOR2 MIN BSF STATUS,RP0 ;bank1 BCF STATUS,RP1 DECF PR2,1 GOTO SENSOR2 PLUS BSF STATUS,RP0 ;bank1 BCF STATUS,RP1 INCF PR2,1 GOTO SENSOR2 SENSOR2 BCF STATUS,RP0 ;bank0 BCF STATUS,RP1 MOVLW D'0' MOVWF PERIOD_COUNTER ;reset period counter BCF INTCON,1 ;external interrupt finished GOTO END_INT POSITION BCF STATUS,RP0 ;bank0 BCF STATUS,RP1 MOVLW D'1' MOVWF HOEKVERANDERD DECF HOEKTELLER,1 ;next position LEDs BCF PIR1,1 ;T2-interrupt finished INCF PERIOD_COUNTER,1 GOTO END_INT END_INT EndInt: BCF STATUS,RP0 ;select bank 0 BCF STATUS,RP1 movf FSR_TEMP,W ;get saved FSR value movwf FSR ;restore FSR movf PCLATH_TEMP,W ;get saved PCLATH value movwf PCLATH ;restore PCLATH movf STATUS_TEMP,W ;get saved STATUS value movwf STATUS ;restore STATUS swapf WREG_TEMP,F ;prepare WREG to be restored swapf WREG_TEMP,W ;restore WREG without affecting STATUS retfie ;return from interrupt END ;end of code BY OSMANOVIC MIRZA & TALAL ABDOULAHI