**************************************** ;routine to set 5S time out, use Timer 1 ;**************************************** Tout5SOn: movlw 0x67 movwf TMR1H movlw 0x6A movwf TMR1L goto SetToutTMR ;**************************************** ;routine to set 3S time out, use Timer 1 ;**************************************** Tout3SOn: movlw 0xA4 ;[1/(250000/4/8)]*23435=3S movwf TMR1H movlw 0x73 movwf TMR1L SetToutTMR: call SetBank1 bcf PIE1,TMR1IE ;disable TMR1 int call SetBank0 movlw b'00110100' movwf T1CON bsf T1CON,TMR1ON ;turn on timer 1 ClrTMR1F: bcf PIR1,TMR1IF ;clear TMR1 overflow flag return Tout3SOff: bcf T1CON,TMR1ON ;turn off timer 1 goto ClrTMR1F ;**************************************** ;routine to set 500ms time out with no LED ;**************************************** Tout500msOn: movlw 0xF0 movwf TMR1H movlw 0xBE movwf TMR1L SetToutNoLED: call SetBank1 bcf PIE1,TMR1IE ;disable TMR1 int call SetBank0 movlw b'00110100' movwf T1CON bsf T1CON,TMR1ON ;turn on timer 1 bcf PIR1,TMR1IF ;clear TMR1 overflow flag return Tout100msOn: movlw 0xFC movwf TMR1H movlw 0xF3 movwf TMR1L goto SetToutNoLED **************************************** ;routine to set 1S time out **************************************** Tout1SOn: movlw 0xE1 ;[1/(250000/4/8)]*7811=1S movwf TMR1H movlw 0x7D movwf TMR1L goto SetToutTMR Tout1S5On: movlw 0xD2 ;[1/(250000/4/8)]*11715=1S5 movwf TMR1H movlw 0x3D movwf TMR1L goto SetToutTMR ;**************************************** ;routine to set 2S time out ;**************************************** Tout2SOn: movlw 0xC2 ;[1/(250000/4/80]*15624=2S movwf TMR1H movlw 0xF8 movwf TMR1L goto SetToutTMR ;**************************************** ;set 6S time out ;**************************************** Tout6SOn: movlw 0x48 movwf TMR1H movlw 0xEE movwf TMR1L goto SetToutTMR ;**************************************** ;set 8S time out ;**************************************** Tout8SOn: movlw 0x0B movwf TMR1H movlw 0xB8 movwf TMR1L goto SetToutTMR