Очень простое устройство Если нажать первую кнопку, то последовательно включаются гирлянды 1-2-3 с интервалом в одну секунду затем, если нажать вторую кнопку, то гирлянды выключаются в последовательности 3-2-1 Программа для микроконтроллера такого устройства крайне проста:
Программа, собранная что называется «в лоб», проста: опрашиваем кнопку, соединённую со входом В0, подразумевая, что она подключает вывод к земле, и, если кнопка нажата, то включаем последовательно три вывода
Нажимая вторую кнопку, обозначенную как backward, запускаем обратный процесс выключения с интервалами в одну секунду
Всё это, конечно, в бесконечном цикле while
Даже проверять программу не хочется Хотя подводный камень может обнаружиться: чтобы входы были подтянуты к питающему напряжению, возможно, придётся сделать запись в регистр
Собрать такую программу, оттранслировать её в hex-файл и загрузить в микросхему – дело, скорее, минут, чем часов
Создавая такую простую программу, можно продумать несколько вариантов исполнения, что мы и сделаем ниже
Рис 361 Программа переключателя гирлянд
В первую очередь используем приём программирования, который оказывается полезен, когда вы не знаете, например, какое значение должна (в данном случае) иметь пауза Достаточно ли одной секунды Может быть, две секунды Или три
Исправить все элементы Задержка тоже не самая сложная работа, но можно избежать и её Создадим новую переменную, которую назовём pause Присвоим ей значение в начале программы:
В данном случае особенного выигрыша можно и не ощутить Но если вы используете паузу раз десять, если выбираете её несколько раз, то, согласитесь, удобнее изменить значение только в одном месте
Рис 362 Использование переменной для задания значения
Вид программ, выполняющих одинаковую работу, может быть разным Выбор того или иного подхода определяется многими факторами: объем программы, наличие готовых модулей программы, быстродействие программы и тд Вот ещё одна разновидность предыдущей программы:
Рис 363 Ещё одна разновидность программы
Значения, которые мы отправляем в порт А, мы в виде данных записываем в массив output[i] Массив – это набор значений, который, как правило, хранится в последовательных ячейках памяти, доступ к которым осуществляется по индексу массива (он в квадратных скобках) В программе Flowcode используется название строка (данные типа STRING), но это не меняет сущности При создании переменной типа STRING мы указываем количество элементов в массиве, позже мы можем эти элементы прописать в массив: output[0] = 0, output[1] = 1 и тд Индекс, заметьте, начинается с нуля Подготовив всё для выполнения программы, мы по нажатию первой кнопки переписываем значения из массива в порт, меняя индекс массива
Первый элемент программы нужен для того, чтобы включить внутренние подтягивающие резисторы Его можно было записать и так: option_reg = option_reg & 0x7F
Я использовал другое написание операции, чтобы напомнить, в языке Си есть много сокращений, которые ускоряют написание текста В данном случае это не нужно, но помнить об этом следует
Если не подтянуть входы контроллера к плюсу с помощью резисторов, то входы находятся в неопределённом состоянии, а помехи могут эти входы произвольно переключать из одного состояния в другое Если входы не подтянуты к плюсу питания (или к земле), то при проверке в программе ISIS (Proteus) вы увидите, что квадратики, иллюстрирующие состояние входов, остаются серыми, показывая – не забудьте придать достоверности входам
Если бы это был реальный переключатель гирлянд, то после последовательного зажигания гирлянд, после паузы в несколько секунд, можно было также последовательно гасить гирлянды Кнопки, пожалуй, были бы лишними Но такой вариант мне удобнее для того, чтобы показать, как можно сделать такое же устройство без микроконтроллера
Источник: Гололобов ВН,- Самоучитель игры на паяльнике (Об электронике для школьников и не только), – Москва 2012
- Предыдущая запись: Радиоприёмник, гетеродин – для новичков в радиоделе
- Следующая запись: HiAsm вместо VB или Gambas
- ПРЕОБРАЗОВАТЕЛЬ ПОСТОЯННОГО НАПРЯЖЕНИЯ I (0)
- СВЕТОДИОДНАЯ ГИРЛЯНДА C БЕГУЩИМИ ОГНЯМИ (0)
- "Шмель" - прибор для рефлексотерапии (0)
- ПРОГРАММИРУЕМОЕ ЛАЗЕРНОЕ ШОУ (0)
- Конфигурирование микроконтроллеров стиральных машин (0)
- Сервисный вход в технологические меню телевизоров (0)
- Сервисный вход в технологические меню телевизоров-2 (0)