;V1
; PIC16F1823 Configuration Bit Settings
	LIST P=16F1823
	INCLUDE P16F1823.INC
;-------------------------------------------------------------------------------
;Configuration bits
;----
; CONFIG1
; __config 0xCFE4
 __CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
; CONFIG2
; __config 0xDFFF
 __CONFIG _CONFIG2, _WRT_OFF & _PLLEN_ON & _STVREN_ON & _BORV_LO & _LVP_OFF
;-------------------------------------------------------------------------------
    CODE
    ORG 0x0000
    GOTO INI
    ORG 0x0004
    GOTO MAIN
    ORG 0x0005


;initialization
INI
;Bank 1
    banksel OSCCON
    MOVLW B'11110000'
    MOVWF OSCCON
    MOVLW B'01000111'
    MOVWF OPTION_REG
    CLRF ADCON0
    MOVLW B'11001100'
    MOVWF TRISA
    MOVLW B'11000000'
    MOVWF TRISC
;Bank 2
    banksel CM1CON0
    CLRF CM1CON0
    CLRF CM2CON0
;Bank3
    banksel ANSELA
    CLRF ANSELA
    CLRF ANSELC
    CLRF INTCON
;Bank 4
    banksel WPUA
    CLRF WPUA
    CLRF WPUC
;Bank 7
    banksel MDCON
    CLRF MDCON
;Bank 0
    banksel PORTA
    CLRF PORTA
    CLRF PORTC
    MOVLW B'00110100'
    MOVWF T1CON
    MOVLW B'11000001'
    MOVWF T1GCON
    BCF PIR1, TMR1IF
    CLRF TMR1L
    CLRF TMR1H
    NOP




;-------------------------------------------------------------------------------
; The main function looks for a pulse in on pin 2 (RA5) pulses an output,
; increments to the next port, and waits for another pulse in.
;-----------------------------------------   
MAIN
;--------------------
FIRE1
    BTFSC PIR1, TMR1IF
    CALL STOP
    BTFSS INTCON, INTF
    GOTO FIRE1
    BCF INTCON, INTF
    ;--
    NOP
    BSF PORTA, RA0
    BCF PORTA, RA0
    NOP
    ;--
    BSF PORTA, RA5
    CLRF TMR1L
    CLRF TMR1H
    BSF T1CON, TMR1ON
    CLRF TMR0
;--------------------
FIRE2
    BTFSC PIR1, TMR1IF
    CALL STOP
    BTFSS INTCON, INTF
    GOTO FIRE2
    BCF INTCON, INTF
    ;--
    NOP
    BCF PORTA, RA1
    BSF PORTA, RA1
    NOP
    ;--
    BSF PORTA, RA5
    CLRF TMR1L
    CLRF TMR1H
    BSF T1CON, TMR1ON
    CLRF TMR0
;--------------------
FIRE3
    BTFSC PIR1, TMR1IF
    CALL STOP
    BTFSS INTCON, INTF
    GOTO FIRE3
    BCF INTCON, INTF
    ;--
    NOP
    BSF PORTC, RC0
    BCF PORTC, RC0
    NOP
    ;--
    BSF PORTA, RA5
    CLRF TMR1L
    CLRF TMR1H
    BSF T1CON, TMR1ON
    CLRF TMR0
;--------------------
FIRE4
    BTFSC PIR1, TMR1IF
    CALL STOP
    BTFSS INTCON, INTF
    GOTO FIRE4
    BCF INTCON, INTF
    ;--
    NOP
    BSF PORTC, RC1
    BCF PORTC, RC1
    NOP
    ;--
    BSF PORTA, RA5
    CLRF TMR1L
    CLRF TMR1H
    BSF T1CON, TMR1ON
    CLRF TMR0
;--------------------
FIRE5
    BTFSC PIR1, TMR1IF
    CALL STOP
    BTFSS INTCON, INTF
    GOTO FIRE5
    BCF INTCON, INTF
    ;--
    NOP
    BSF PORTC, RC2
    BCF PORTC, RC2
    NOP
    ;--
    BSF PORTA, RA5
    CLRF TMR1L
    CLRF TMR1H
    BSF T1CON, TMR1ON
    CLRF TMR0
;--------------------
FIRE6
    BTFSC PIR1, TMR1IF
    CALL STOP
    BTFSS INTCON, INTF
    GOTO FIRE6
    BCF INTCON, INTF
    ;--
    NOP
    BSF PORTC, RC3
    BCF PORTC, RC3
    NOP
    ;--
    BSF PORTA, RA5
    CLRF TMR1L
    CLRF TMR1H
    BSF T1CON, TMR1ON
    CLRF TMR0
;--------------------
FIRE7
    BTFSC PIR1, TMR1IF
    CALL STOP
    BTFSS INTCON, INTF
    GOTO FIRE7
    BCF INTCON, INTF
    ;--
    NOP
    BSF PORTC, RC4
    BCF PORTC, RC4
    NOP
    ;--
    BSF PORTA, RA5
    CLRF TMR1L
    CLRF TMR1H
    BSF T1CON, TMR1ON
    CLRF TMR0
;--------------------
FIRE8
    BTFSC PIR1, TMR1IF
    CALL STOP
    BTFSS INTCON, INTF
    GOTO FIRE8
    BCF INTCON, INTF
    ;--
    NOP
    BSF PORTC, RC5
    BCF PORTC, RC5
    NOP
    ;--
    BSF PORTA, RA5
    CLRF TMR1L
    CLRF TMR1H
    BSF T1CON, TMR1ON
    CLRF TMR0
;--------------------
FIRE9
    BTFSC PIR1, TMR1IF
    CALL STOP
    BTFSS INTCON, INTF
    GOTO FIRE9
    BCF INTCON, INTF
    ;--
    NOP
    BSF PORTA, RA4
    BCF PORTA, RA4
    NOP
    ;--
    BSF PORTA, RA5
    CLRF TMR1L
    CLRF TMR1H
    BSF T1CON, TMR1ON
    CLRF TMR0
;--------------------
    GOTO FIRE1

STOP
    BCF PIR1, TMR1IF
    BCF T1CON, TMR1ON
    BCF PORTA, RA5
    CLRF TMR1L
    CLRF TMR1H
    CLRF TMR0
    RETURN
  END