LIST p=16F628 ;tell assembler what chip we are using
include "P16F628.inc" ;include the defaults for the chip
ERRORLEVEL 0, -302 ;suppress bank selection messages
__config 0x3D18
cblock
CNT
endc
ORG 0x00
goto MAIN
ORG 0x04
goto ISR
MAIN
bsf STATUS, RP0 ; Sets up PORTB for OUTPUT to LED
clrf TRISB
movlw b'10000101' ; PRESCALLER to 1:64
movwf OPTION_REG
bcf STATUS, RP0
clrf PORTB
bsf INTCON, T0IE ; sets up interrupt... I guess
movlw .178 ;(256-178)=78*64us = 4.992ms tick
movwf TMR0
bsf INTCON,GIE
clrf CNT
LOOP
goto LOOP
ISR
movlw .178
movwf TMR0
bcf INTCON, T0IF
incf CNT, F
movlw .200 ;200 * 4.992ms = 1sec.
subwf CNT,W
btfss STATUS, Z
retfie
comf PORTB, f
clrf CNT
retfie
END