bcf GPIO, 2 ; погасить желтый светодиод
bcf GPIO, 4 ; погасить зеленый светодиод
bsf GPIO, 0 ; зажечь первый красный светодиод
;******* Сбросить признак принятия посылки **************************************
bcf MBC,7
;********* Сбросить флаг прерываний и выйти *************************************
exit bcf INTCON,0
retfie
;******** КОНФИГУРИРОВАНИЕ КОНТРОЛЛЕРА *********************************************
;*** Необходимо помнить, что калибровочные константы стираются при программировании, **********
;*** поэтому их надо сохранять, OSCCAL хранится по адресу 03FFh, биты калибровки схемы BOR - *
;*** 12-й,13-й биты слова конфигурации (в моем случае BOR - 01, OSCCAL - 346C)*****************
;****** Калибровка Генератора *****************************************************************
start bsf Status,5
Call 3FFh ; Загрузить калибровочную константу в w
movwf OSCCAL
;******** Установка направления работы GP5 - на вход, а GP4-GP0 - на выход ********************
bcf Status,5 ; перейти в банк 0
clrf GPIO ; инициализация защелок (нули на всех защелках, кроме GP5)
movlw .7 ; биты 0..2 поднять
movwf Cmcon ; компаратор выключен, GP0, GP1, GP2 - цифровые вх/вых
clrf LBC
clrf MBC
bsf Status,5 ; Перейти в 1-й банк (установить в 1 5-й бит регистра Status).
movlw .40 ; Пишем конф-ю GPIO в аккум. (W) .40=00 101000 GP0, GP1, GP2, GP4 - выходы, остальные - входы
movwf TrisIO ; Скопировать конфигурацию GPIO из W в регистр TrisIO.
;****** Разрешить прерывания на входе GP5 *****************************************************
movlw .32 ; .32 = 00100000
movwf IOCB ; разрешить прерывание на входе GP5, на остальных - нет
bcf Status,5 ; Перейти в 0-й банк (установить в 0 5-й бит регистра Status).
movlw .8 ; .8 = 00001000
movwf INTCON ; разрешить прерывание от GPIO
bsf INTCON,7 ; разрешить прерывания
nop
;****** Сканирование наличия принятой информации ***********************************************
Scan btfsc MBC,7 ; если start бит (7-й) в регистре MBC = 1, то была принята информация (первый старт бит = 1)
goto rab_chast ;
goto Scan
;******* РАБОЧАЯЧАСТЬ ***************************************************************
;******* Проверка номера системы **********************************************************
rab_chast movf MBC,0
andlw .31 ; побитное "И" с 00011111 - отрезаем стартовые и управляющий биты
xorlw Sys
btfss Status,2 ; если Z=1, то следующая инстр-я не выполняется (номер совпадает с заданным)
goto nosys ;
;******* Проверка номера команды *********************************************************
movlw CMD_1
xorwf LBC,0
btfss Status,2 ; если Z=1, то следующая инструкция не выполняется
goto nocom
;****** Погасить все, зажечь зеленый *******************************************************
bcf GPIO, 0 ; погасить первый красный светодиод
bcf GPIO, 1 ; погасить второй красный светодиод
bcf GPIO, 2 ; погасить желтый светодиод
bsf GPIO, 4 ; зажечь зеленый светодиод
goto out
;****** Погасить все, зажечь второй красный ***********************************************
nosys bcf GPIO, 0 ; погасить первый красный светодиод
bcf GPIO, 2 ; погасить желтый светодиод
bcf GPIO, 4 ; погасить зеленый светодиод
bsf GPIO, 1 ; зажечь второй красный светодиод
goto out
;******* Погасить все, зажечь желтый ********************************************************
nocom bcf GPIO, 0 ; погасить первый красный светодиод
bcf GPIO, 1 ; погасить второй красный светодиод
bcf GPIO, 4 ; погасить зеленый светодиод
bsf GPIO, 2 ; зажечь желтый светодиод
;******* Сбросить признак принятия посылки и флаг прерывания ******************************
out bcf MBC,7 ; сбрасываем признак принятия посылки
bcf INTCON,0 ; сбрасываем флаг прерывания
;******* Пауза ****************************************************************************
movlw TP
movwf Counter
pause nop
nop
decfsz Counter,1
goto pause
;******* Разрешитьпрерывания **************************************************************
bsf INTCON,7
nop
goto Scan
end
;------------------------------------------------------------------------------------------------------------------------------
Приложение Д
Рисунок 1 - Схема принципиальная электрическая ИК пульта дистанционного управления
Рисунок 2 - Схема принципиальная электрическая ИК приемника дистанционного управления
Приложение Ж
Расчет стоимости основных элементов ИК – пульта
Приложение К
Расчет стоимости основных элементов ИК – приемника