Трёхкомандное ДУ с программой из 290 16-битных слов

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.


Устройство на ATtiny13, управляемое программой из 290 16-разрядных слов, написанной на ассемблере, запоминает коды шести кнопок пульта ДУ и включает/выключает три нагрузки. Схема:



Стандартный ИК-приёмник TSOP1740 использует инверсную логику, и это учтено в программе. Принимаемые сигналы вызывают прерывание INT0. Резистор нужен для отвязки ИК-приёмника от микроконтроллера во время заливки прошивки.

Порядок обучения устройства кодам кнопок следующий. Включаем питание при нажатой кнопке на входе PB3 (затем её можно отпустить). Первая нагрузка кратковременно включится и тут же выключится. Нажимаем на пульте кнопку, которой желаем включать первую нагрузку. Как только пульт отправит один и тот же код два раза (это происходит, если держать кнопку нажатой хотя бы пару секунд), первая нагрузка включится на пять секунд и отключится. А вторая включится кратковременно и тоже тут же отключится. Обучаем устройство коду кнопки включения второй нагрузки. Затем третьей. Теперь последовательно проделываем то же с кодами кнопок, которыми желаем отключать нагрузки. Программа запишет коды в ЭСППЗУ, теперь надо выключить и включить питание, но кнопку на входе PB3 не нажимать. Устройство перейдёт в рабочий режим, в котором можно управлять нагрузками.

При проверке нагрузками служат светодиоды, включённые через резисторы. Убедившись, что всё работает, подключаем к выходам ключи, управляющие реле. Как видно из схемы любого из трёх ключей, индикаторные светодиоды с резисторами для удобства оставлены на месте:



Вообще-то, там должны быть NPN-транзисторы, включённые эмиттерами к общему проводу, но у автора работает и так. Нагрузками могут служить, например, светодиодные лампы с цветовыми температурами в 2700, 4000 и 6400 К. Вы сможете переключать их вручную согласно циркадным ритмам, не полагаясь на автоматику.

Код на ассемблере: без HTML-форматирования и с таковым.

Подтверждение, что удалось уложиться в 290 16-битных слов:

gavrasm Gerd's AVR assembler version 3.5 (C)2015 by DG4FAC
----------------------------------------------------------
Source file: 12_IR-Rx_Switch.asm
Hex file:    12_IR-Rx_Switch.hex
Eeprom file: 12_IR-Rx_Switch.eep
Compiled:    23.11.2016, 23:23:05
Pass:        2
     1: ;
     2: ; ***************************************
     3: ; * IR-Switch 3-Channel with ATtiny13   *
     4: ; * (C)2016 by www.avr-asm-tutorial.net *
     5: ; ***************************************
...
Program             :      290 words.
Constants           :        0 words.
Total program memory:      290 words.
Eeprom space        :       13 bytes.
Data segment        :       29 bytes.
Compilation completed, no errors.
Compilation ended 23.11.2016, 23:23:05
Источник: https://habr.com/ru/post/455006/


Интересные статьи

Интересные статьи

Не одно тысячелетие математиков интересовал вопрос существования нечётных совершенных чисел. В процессе его изучения они составили невероятный список ограничений для этих гипотетическ...
В стародавние времена я работал айтишником в одной фирме и в какое-то время возникла задача поиска по локальному хранилищу документов. Искать желательно было не только по названию фай...
Меня зовут Александр Явтушенко и уже 4 года я работаю в сфере IT права. Последнее время все чаще сайты и приложения, которые я сопровождаю по части правового обеспечения их деятельности, начинают...
Михаил Коновалов, руководитель направления отдела сопровождения интеграционных проектов ИТ-дирекции МКБ День добрый, хабровчане! Цель Систематизированный подход к управлению загрузками. Мы...
История маленькой трагедии и больших побед очень хорошего разработчика, которому нужна помощь В Дальневосточном Федеральном Университете есть центр проектной деятельности — там магистры и ба...