Смекни!
smekni.com

Разработка инфракрасного пульта и приемника дистанционного управления (стр. 14 из 14)

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 - Схема принципиальная электрическая ИК приемника дистанционного управления


Приложение Ж

Расчет стоимости основных элементов ИК – пульта


Приложение К

Расчет стоимости основных элементов ИК – приемника