Итак, хрон я все таки сделал

немного подправив прошивку все отлично заработало
Так как остался еще один мк 16f628a продолжаю его изучение, обучаюсь так скать написанию прошивок.
Вот накатал простенький код, который мигает свеодиодом. в коде задана частота и скважность импульсов.
Пожалуйста, посмотрите его, и если есть ошибки/недочеты укажите. Вроде все правильно.
Код:
list p=16f628A
#include <P16F628.inc>
__CONFIG _PWRTE_ON & _WDT_OFF & _XT_OSC & _BODEN_OFF & _LVP_OFF
;****************************************************************************;
; Блок переменных
;****************************************************************************;
cblock 70H
SecL ; Младший разряд счетчика таймера
SecM ; Средний разряд счетчика таймера
SecH ; Старший разряд счетчика таймера
endc
;****************************************************************************;
; Блок дефайнов
;****************************************************************************;
#define Port_Led PORTB ; Порт светодиода
#define Tris_Led TRISB ; TRIS порта светодиода
#define Bit_Num_Led 0 ; № бита порта леда
;****************************************************************************;
;****************************************************************************;
;****************************************************************************;
;****************************************************************************;
org 0 ; Вектор сброса
goto main ; Переход на начало программы
;****************************************************************************;
; delay
; Подпрограмма паузы
;
; Входные параметры :
; SecL, SecM, SecH
;****************************************************************************;
delay
decfsz SecL,F ; Декремент SecL до 0
goto delay
decfsz SecM,F ; Декремент SecM до 0
goto delay
decfsz SecH,F ; Декремент SecH до 0
goto delay
return ; Возврат из ПП
;****************************************************************************;
; Начало программы
;****************************************************************************;
main
bcf STATUS, RP0 ; 0-ой банк
movlw .7 ; Отключаем компараторы
movwf CMCON ; В CMCON запысываем .7
banksel Tris_Led ; Настраиваем ПИН светодиода на выход
bcf Tris_Led, Bit_Num_Led ;
banksel Port_Led ; Сбрасываем ПИН светодиода
bcf Port_Led, Bit_Num_Led ;
;----------;
; Основной цикл
;----------;
main_loop:
movlw .50 ; Загрузка счетчика
movwf SecL ; SecL
movlw .50 ; Загрузка счетчика
movwf SecM ; SecМ
movlw .2 ; Загрузка счетчика
movwf SecH ; SecH
call delay
bsf Port_Led, Bit_Num_Led ; Зажечь светодиод
movlw .100 ; Загрузка счетчика
movwf SecL ; SecL
movlw .100 ; Загрузка счетчика
movwf SecM ; SecМ
movlw .4 ; Загрузка счетчика
movwf SecH ; SecH
call delay
bcf Port_Led, Bit_Num_Led ; Погасить светодиод
goto main_loop
;----------;
;
;----------;
;****************************************************************************;
end
;****************************************************************************;
Некст задача: теперь хочу его заставить мигать только по нажатию кнопки. Постает вопрос: как мне нужно организвать код для такого действия?