Самодельный ИК-пульт дистанционного управления (PIC12F629)

Здесь обсуждаем устройства на МК и программы для них
sshost
Читатель
Читатель
Сообщения: 23
Зарегистрирован: 01 янв 2013, 19:01

Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение sshost »

Подскажите кусочек кода, плиз
--
P. S. Если линию MCLR сконфигурировать в качестве порта ввода-вывода и включить встроенные подтягивающие резисторы на входах контроллера (для этого нужно чуток изменить программу), то схему пульта можно упростить и уменьшить:
--

вот эта фраза в asm как выглядит? :)
гуглил тучу - все декодеры на 629м, а кодеров совсем мало


ну и toggle bit не инвертируется при повторном нажатии - это вообще не найти как вставить и что вставить
тоже если кто знает - подскажите
--
с наступившим 13м всех!
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение rhf-admin »

Выбор режима работы 4-й ноги контроллера осуществляется в слове конфигурации. Если 5-й бит=0, то 4-я нога - это GP3, если 5-й бит =1, то 4-я нога - это MCLR.
То есть директиву __config 01FE4h надо заменить на __config 01FС4h
Подтягивающие резисторы управляются регистром WPU и битом 7 регистра OPTION. В регистре WPU по умолчанию выбраны подтягивающие резисторы на всех входах, так что остаётся только включить их все установкой в ноль 7-го бита регистра OPTION. Где-нить при конфигурировании контроллера, находясь в первом банке, надо выполнить bcf 01h,7
С уважением, администрация сайта.
sshost
Читатель
Читатель
Сообщения: 23
Зарегистрирован: 01 янв 2013, 19:01

Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение sshost »

так не работает, резисторы все равно просит внешние:

bcf Status,5 ; перейти в банк 0
clrf GPIO ; инициализация защелок (нули на всех защелках)
movlw .7 ; биты 0..2 поднять
movwf Cmcon ; компаратор выключен, GP0, GP1, GP2 - цифровые вх/вых
bsf Status,5 ; Перейти в 1-й банк (установить в 1 5-й бит регистра Status)
bcf 01h,7 ;
movlw .62 ; Записать конфигурацию GPIO в аккумулятор (W) .62=00 111110 GP0 - выход, остальные - входы
movwf TrisIO ; Скопировать конфигурацию GPIO из W в регистр TrisIO.
bcf Status,5 ; Перейти в 0-й банк (установить в 0 5-й бит регистра Status)

не туда вставил?
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение rhf-admin »

Хм, ну попробуй после movwf TrisIO поставить, но вроде и так должно работать.
А что значит "просит внешние"? Как это "просит"?
С уважением, администрация сайта.
sshost
Читатель
Читатель
Сообщения: 23
Зарегистрирован: 01 янв 2013, 19:01

Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение sshost »

генерит сразу по включении, едениц то на входах нет = кнопки нажаты
sshost
Читатель
Читатель
Сообщения: 23
Зарегистрирован: 01 янв 2013, 19:01

Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение sshost »

так же сразу моргает диод
sshost
Читатель
Читатель
Сообщения: 23
Зарегистрирован: 01 янв 2013, 19:01

Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение sshost »

вот так выставляет лог1 на входах
--
bcf Status,5 ; перейти в банк 0
clrf GPIO ; инициализация защелок (нули на всех защелках)
movlw .7 ; биты 0..2 поднять
movwf Cmcon ; компаратор выключен, GP0, GP1, GP2 - цифровые вх/вых
bsf Status,5 ; Перейти в 1-й банк (установить в 1 5-й бит регистра Status)
movlw .62 ; Записать конфигурацию GPIO в аккумулятор (W) .62=00 111110 GP0 - выход, остальные - входы
movwf TrisIO ; Скопировать конфигурацию GPIO из W в регистр TrisIO.
bcf 0x81,7 ; pull-up
bcf Status,5 ; Перейти в 0-й банк (установить в 0 5-й бит регистра Status)
--
но перестает реагировать на кнопки (те, на выходе 7 (gp0) ничего нет)
наверное нужно добавить где то что на gp0 pull up не нужен
или не в этом дело?
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение rhf-admin »

Что-то я не пойму, ты в железе это всё проверяешь или в каком-нить протеусе?
В железе записи bcf 0x81,7 и bcf 0x01,7 должны быть идентичны (компилятор либо 80h от первой записи отрежет, либо ругнётся), для того и банки придумали.
Если нога переключается на "выход" - подтягивающий резистор от неё автоматически отключается.
С уважением, администрация сайта.
sshost
Читатель
Читатель
Сообщения: 23
Зарегистрирован: 01 янв 2013, 19:01

Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение sshost »

сразу в железе, есть анализатор ir кода, и собранное устройство на atmega8, код сменил - в программатор - ир анализатор (времянки и тп проверить) и если все красиво - вместо натурального rc5 пульта - самоделку тут же испытать
sshost
Читатель
Читатель
Сообщения: 23
Зарегистрирован: 01 янв 2013, 19:01

Re: Самодельный ИК-пульт дистанционного управления (PIC12F629)

Сообщение sshost »

вот так все работает
http://dr-shost.com/files/ikrc5.asm
кнопки на gp5 - ch-, gp4 - ch+ (и 10к на пит), gp0 - через 4к на ключ и ифк диод, gp2 - volume+ и
gp1 volume-
(это все на атмегу8 упр переменником rk128 als (громкость) и 5 входов в унч (ch) по кругу (из электора, тока перебил там код устройсва на 0й (а то в дефолте там тьюнер) и кнопы под громкость и чаннел +- поменять (исходник у автора выложен)

пит от cr2032
есть много в простое, ок 500 мкА (бо в цикле крутит опрос клавиатуры 12f629)

нужно sleep изучать теперь
Ответить

Вернуться в «Устройства на микроконтроллерах»