
- •Установка и подготовка к работе mplab
- •Создание проекта и подключение файла с программой
- •Структура текста программы
- •Правила оформления программы
- •Особенности сопоставления имен и чисел. Прямая и косвенная адресация
- •Циклическая концепция программы
- •Модульная структура программы
- •Понятие о времени исполнения программы
- •Задержки в программе и их расчёт
- •Компиляция и устранение ошибок
- •Глава 4. Макетная плата. Программатор
- •Обозначение ножек микроконтроллера
- •Функциональное назначение ножек
- •Назначение ножек
- •Макетная плата и её назначение
- •Инструкция по прошивке микроконтроллера
- •Глава 5. Элементарные базовые проекты
- •Теория и практика работы портов мк
- •1 (Input) – работа на вход
- •0 (Output) – работа на выход
- •Пример 1. Мигающие светодиоды
- •Пример 2. "Бегущий огонь" и "бегущая тень"
- •Пример 3. Включение символов на индикаторе
- •Пример 4. Отслеживание нажатия кнопки
- •Пример 5. Кнопка в режиме переключателя. Антидребезг
Назначение ножек
Обозначения ножек и их функциональное назначение
Обозначение |
Нормальный режим |
Режим записи EEPROM |
RA0 – RA3 |
Двунаправленные линии ввода/вывода. Входные уровни ТТЛ |
|
RA4/T0CKI |
Вход через триггер Шмитта. Ножка порта ввода/вывода с открытым стоком или вход частоты для таймера/счетчика TMR0 |
|
RB0/INT |
Двунаправленная линия порта ввода/ вывода или внешний вход прерывания Уровни ТТЛ |
|
RB1 – RB5 |
Двунаправленные линии ввода/ вывода. Уровни ТТЛ |
|
RB6 |
Двунаправленные линии ввода/ вывода. Уровни ТТЛ. |
Вход тактовой частоты для EEPROM |
RB7 |
Двунаправленные линии ввода/ вывода. Уровни ТТЛ. |
Вход/выход EEPROM данных. |
/Vрр |
Низкий уровень на этом входе генерирует сигнал сброса для контроллера. Активный низкий. |
Сброс контроллера Для режима EEPROM- подать Vрр. |
OSC1/CLKIN |
Для подключения кварца, RC или вход внешней тактовой частоты |
|
OSC2/CLKOUT |
Генератор, выход тактовой частоты в режиме RC генератора, в остальных случаях - для подкл.кварц |
|
Vdd |
Напряжение питания |
Напряжение питания |
Vss |
Общий(земля) |
Общий |
Макетная плата и её назначение
Макетная плата будет использована нами для закрепления навыков практического программирования под готовое устройство. Будучи "интеллектуальным" лабораторным инструментом, макетная плата сможет найти самое разнообразное применение при тестировании, проведении экспериментов и организации обмена данными.
Кроме этого, в отдельных проектах нашу макетную плату необходимо будет оснастить несложными дополнительными модулями, которые будут рассмотрены в соответствующих проектах.
Дополнительно вы можете в несколько шагов за 30 минут освоить программу Протеус (Proteus) для синтетического моделирования ваших проектов. Рекомендую акцент сделать на реальное железо.
Схема макетной платы
Макетная плата и рассматриваемые проекты разработаны под микроконтроллер типа PIC16F84A. Это микроконтроллер с флэш-памятью (индекс F), что позволяет его гарантировать перепрограммировать 100000 раз, т.е. он не одноразовый. Этот МК нельзя назвать "навороченным", но, тем не менее, для обучения и для повторения интересных и полезных проектов его можно и нужно использовать (можно использовать PIC16F628A как совместимый, распространенный и более дешевый).
Схема рисовалась после того, как была разведена печатная плата. Нам гораздо проще сначала оптимально развести навесные элементы под имеющиеся выводы портов, а лишь затем написать программу к "навешенным" элементам. Действительно, нет серьезных препятствий в программе активировать тот или иной вывод порта, а вот компактно и симпатично расположить элементы на плате гораздо сложнее.
Эта схема нам пригодится для программирования МК под имеющиеся электрические соединения.
По номиналам детали могут отличаться на +/–20%. Транзистор любой кремниевый с похожей цоколевкой и проводимостью. Кварц строго на 4 МГц. В макете могут быть использованы сопротивления любых типов, подходящих по габаритам; электролитические конденсаторы общего применения типа К50-6, К50-16 и подобные; неполярные конденсаторы типа КМ, КД, К10-17 и аналогичные. Для коммутирования могут быть использованы тактовые кнопки подходящих посадочных габаритов, например, TS-A1PS-130, TS-A6PS-130 и пр. Электромагнитный излучатель звука со встроенным генератором типа hcm1206x или аналогичный со схожими габаритами.
Мы не советуем использовать другие семисегментные индикаторы с общим катодом, например, типа отечественных АЛС(ххх), т.к. рекомендованный рисунок печатной платы либо потребуется изменить, либо в рассмотренных программах придется изменить код, что будет отвлекать внимание от сути. Не забудьте о панели под МК.
Как видно, схема легка в понимании и доступна для повторения, но за этой легкостью и доступностью скрывается великая сила. В макете под будущие проекты запланировано два порта ввода-вывода (I/O), сгруппированных с цепями питания. Имеется четыре отдельных порта вывода (Out) с общим проводом (Gnd). Макет содержит "спартанский" набор навесных элементов: три кнопки, семисегментный индикатор с общим катодом, звуковой излучатель со встроенным генератором (соблюдайте полярность его включения).
Рекомендуем повторить рисунок печатной платы макета, т.к. он тщательно проработан и позволяет легко проследить цепи электрических соединений. (Внимание! Контакты 3 и 8 в семисегментном индикаторе между собой закорочены; на плате электрически соединена только одна ножка).
Рисунок печатной платы макета в формате Sprint-Layout можно скачать здесь. Далее фото готовой макетной платы.
Для изготовления печатной платы вы можете воспользоваться лазерно-утюжной технологией (ЛУТ).
Для справки. Приводим схему бузера (buzzer) – звукового излучателя со встроенным генератором (источник: Радiоаматор, № 10, 2006 г., стр. 34). Трёхвыводной пьезоизлучатель в нашей практике мы не встречали..
Питание макетной платы
В макетной плате предусмотрен 5-вольтовый стабилизатор напряжения. В связи с этим схему можно подключать к любому блоку питания с постоянным напряжением от 6 до 9 вольт. Можно использовать компактный блок питания, например, от игровой приставки. Не забывайте соблюдать полярность. В дальнейшем будут рассмотрены альтернативные схемы питания МК.
Схема JDM-совместимого NTV-программатора
В качестве элементарного программатора предлагаем вам собрать по авторской схеме JDM совместимый программатор, который мы назвали NTV программатор. Ниже схема NTV программатора (используется розетка DB9; не путать с вилкой).
Собранный по данный схеме программатор многократно и безошибочно прошивал контроллеры PIC16F84, PIC16F84A, PIC16F628A (и ряд других) и может быть рекомендован для повторения начинающим радиолюбителям.
Данный программатор НЕ РАБОТАЕТ при подключении к ноутбукам, т.к. уровни сигналов интерфейса RS-232 (COM-порт) в мобильных системах занижены. Также он может не работать на современных ПК, где аппаратно экономится ток на порту. Так что не обессудьте, собирайте и проверяйте на всех попавшихся под руку компьютерах.
Конструктивно плата программатора вставляется между контактами разъема DB-9, которые подпаиваются к контактным площадкам печатной платы. Ниже рисунок платы и фотография собранного программатора.