; Точка входу в програму після RESET
ORG 0
GOTO INMK
ORG 100H
; Процедура ініціалізації МК
; Заборона переривань
INMK BCF INTCON, 7 ; Скидання 7-го біта в регістрі INTCON.
; Завантаження регістра
; керування портом В
MOVLW B'1111 1111’ ; Переслати константу W в
; регістр TRIS 6 і призначити
; всі лінії порту В на введення.
; Завантаження регістра
; керування портом A
MOVLW B'0000 0000’ ; Переслати константу в
TRIS 5 ; регістр W і призначити всі
; лінії порту А на виведення
BCF PORTA, 0 ; Скидання 0-го біта в регістрі порту А
; Опитування стану датчика і процедура "очікування події"
M1 BTFSS PORTB, 0 ; Аналіз 0-го біта в регістрі
; порту В. Якщо датчик
; дорівнює ²1², то пропустити
; наступну команду, інакше – чекати
GOTO М1
; Видавання імпульсу заданої тривалості (IMPULS)
BSF PORTA, 0
; Затримка (DELAY)
MOVLW B'0000 1111’ ; Завантаження лічильника
; затримки
MOVWF CTD
; Цикл затримки
M2 DECFSZ CTD ; Декремент CTD, пропустити
; команду, якщо 0 (якщо регістр CTD онулився)
GOTO M2
; Припинити видавання сигналу
BCF PORTA, 0
GOTO M1