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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Крестики-нолики на микроконтроллере

Крестики-нолики
Думаю все знают эту игру и каждый из нас играл в нее, вот и я как-то вспомнил о ней, и задумался над электронным вариантом игры. Первоначально я рассчитывал сделать вариант только для двух игроков, но потом добавил вариант игры против “электронного интеллекта” микроконтроллера. Игровое поле размером 3х3 состоит из двухцветных светодиодов, красный цвет свечения для крестиков и зеленый соответственно для ноликов. Читать далее »