Робоча секція

; Точка входу в програму після 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