Бесконечное зеркало

Бесконечное зеркало
В очередной раз, копаясь в сети, набрел на интересную штуковину, так называемое бесконечное зеркало. Эта конструкция из зеркал и светодиодов создающая эффект бесконечного светового туннеля в пространстве. Смотрелось это красиво, и я решил повторить данную конструкцию. Сам эффект возникает в результате многократного отражения света между двумя зеркалами, одно из которых является полупрозрачным.

Изготовить данную конструкцию несложно, потребуется обычное зеркало, а также полупрозрачное, светодиоды, ну и конструкционные материалы для того чтобы собрать все вместе. (далее…)

Продолжить чтение Бесконечное зеркало

Арифметические операции. Сложение и вычитание

Сложение и вычитание
Иногда при написании программ требуется выполнить простые арифметические операции с многобайтными числами. С однобайтными числами все просто, сложение и вычитание выполняются стандартными командами addwf, addlw, subwf, sublw, для многобайтных чисел придется писать небольшие подпрограммы. Я буду рассказывать только про целочисленные операции, без дробных частей.
В тексте статьи и в коде я буду использовать приставки к названиям регистров, чтобы легче разобрать старшие и младшие регистры чисел. Ограничусь четырехбайтными числами, соответствующие приставки, начиная от старшего регистра до младшего: HH, HL, LH, LL. (далее…)

Продолжить чтение Арифметические операции. Сложение и вычитание

Таблица данных

Таблица данных применяется для задания большого количества констант (чисел) в памяти программ. Например, требуется получить сигнал заданной формы с помощью ШИМ или резистивного ЦАП (R-2R), для этого необходимо загнать в таблицу заранее рассчитанные коэффициенты, и считывать их через определенные промежутки времени, как это сделано в статье про регулировку яркости светодиода. Также таблица данных используется для реализации знакогенератора при выводе символов на жидкокристаллический индикатор (например, дисплей мобильного телефона). (далее…)

Продолжить чтение Таблица данных

Подключение кнопки к микроконтроллеру

Кнопка и микроконтроллер
Кнопку к микроконтроллеру можно подключить двумя основными способами, с подтяжкой линии порта к высокому логическому уровню или низкому через резистор, как показано на картинке ниже.
Я обычно использую первый вариант подключения, можно конечно использовать внутренние подтягивающие резисторы на входах PORTB, но мне еще не доводилось применять такой способ. (далее…)

Продолжить чтение Подключение кнопки к микроконтроллеру

Директивы ассемблера, “шапка” программы

“Шапка” программы начинается с подключения специального файла с расширением INC, в виде строчки #include , где include – директива подключения дополнительного файла. Эти файлы для каждого типа микроконтроллера хранятся в папке программы MPLAB. В этих файлах адресам регистров специального назначения присвоены их названия, а также названия битов, это сделано для удобного написания программы. Если этот файл не подключать, то придется вручную присваивать соответствующие названия, иначе MPLAB выдаст ошибки. (далее…)

Продолжить чтение Директивы ассемблера, “шапка” программы

Микроконтроллеры PIC16, общие сведения, организация памяти

микроконтроллер
Здесь и в следующих статьях я расскажу про семейство микроконтроллеров PIC16, а также примеры программирования на языке ассемблер. Про элементарные понятия писать не буду, так как ориентируюсь на читателя, предварительно ознакомленного с минимумом информации по микроконтроллерам.

В общем, микроконтроллер представляет собой небольшой универсальный процессор, с помощью которого можно реализовать решение обширного круга задач, необходимо лишь написать программу под требуемые условия задачи. (далее…)

Продолжить чтение Микроконтроллеры PIC16, общие сведения, организация памяти

Регулировка яркости светодиода

Зрительное ощущение яркости
Наверное, многие кто делал регулировку яркости свечения светодиодов посредством ШИМ, замечали, что при линейном увеличении коэффициента заполнения, яркость светодиода вначале растет быстро, а затем почти не изменяется, вплоть до максимального значения. А связано это явление с тем что, интенсивность зрительного ощущения имеет нелинейную зависимость от интенсивности излучения источника. Это утверждение справедливо не только для зрительного восприятия, но и для ряда других ощущений (слух, обоняние и т.д.). (далее…)

Продолжить чтение Регулировка яркости светодиода

Подключение двигателя HDD к микроконтроллеру

Двигатель HDD
В жестких дисках, как правило, применяются трехфазные бесколлекторные двигатели. Обмотки двигателя соединены звездой, то есть получаем 3 вывода (3 фазы). Некоторые двигатели имеют 4 вывода, в них дополнительно выведена средняя точка соединения всех обмоток.

Чтобы раскрутить бесколлекторный двигатель, нужно в правильном порядке и в определенные моменты времени, в зависимости от положения ротора, подавать напряжение на обмотки. Для определения момента переключения на двигатель устанавливают датчики холла, которые играют роль обратной связи. (далее…)

Продолжить чтение Подключение двигателя HDD к микроконтроллеру