Выбрать главу

На линии RD устанавливается высокий уровень (команда sbi PORTC,Rd), контакты микросхемы памяти IO0…IO7 переводятся в высокоимпедансное состояние.

Данные из регистра tm переносятся в ячейку внутреннего ОЗУ микроконтроллера, адрес которой хранится в регистре Z, после чего содержимое Z увеличивается на единицу, теперь регистр Z указывает на следующую ячейку ОЗУ, в которую будет произведена запись в следующем цикле (команда stZ+,tm).

Порт В переводится в режим вывода данных (все контакты порта — выходы).

Возврат из подпрограммы.

Переводить порт В из режима передачи данных (выход) в режим приема (вход) только на время выполнения подпрограммы DataLd удобно, так как в других подпрограммах порт В должен всегда находиться в режиме передачи.

При отладке подпрограммы DataLd перед командой in tm,PINB для имитации ввода данных установите какие-нибудь флажки в строке Input pins для окна Ю | Port В, тогда соответствующие данные будут занесены в ячейку внутреннего ОЗУ микроконтроллера.

В заключение следует заметить, что приведенные программы адаптированы для лучшего понимания работы устройства, программы и отладчика. Однако считать их завершенными, а файлы hex, полученные при их ассемблировании, загружать в микроконтроллер не следует. В реальной рабочей программе сторожевой таймер (Watch dog timer) должен периодически программно сбрасываться командами wdr, размещенными по всей программе, иначе программа будет регулярно сбрасываться этим таймером, возвращаясь на метку RESET. В приведенных примерах программ не размещены векторы прерываний, являющиеся неотъемлемой частью практически любой программы. Перечисленные темы в этой главе не рассматриваются.

Автор: Баранов Вадим Николаевич (E-maiclass="underline" bvnl23@bk.ru).

Глава 7

Идеи для проектов

В этой главе описываются интересные идеи конструкций на микроконтроллерах.

Автор сразу хотел бы ответить на вопрос о некоторых из конструкций, описанных здесь: «А зачем это делать на микроконтроллерах?» или: «А кому это устройство нужно?» и т. д. Описанные здесь идеи конструкций предназначены в первую очередь для приобретения практического опыта проектирования и изготовления различных схем на микроконтроллерах. Преимущества — многие устройства достаточно простые, что позволяет их быстро изготовить. При этом, однако, в каждом есть своя изюминка — где-то придется разобраться, как микроконтроллер может определять положение переменного резистора, где-то приобрести полную ясность, что такое дребезг контактов, и т. д. И самое главное, каждая схема — простейшее, но законченное устройство. А сделать что-то работающее и имеющее определенное назначение обычно интереснее, чем просто решить задачку.

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

Самодельный калькулятор с реализацией вычисления специфических функций для какой-либо специальности (например, расчеты с комплексными числами или расчет значений для записи в регистры микроконтроллеров семейства AVR для формирования заданного временного интервала с помощью таймера и т. д.).

Счетчик витков с автоматическим определением направления вращения.

Электронная записная книжка с ЖКИ-индикатором.

Универсальный контроллер для управления различными устройствами — 8 дискретных входных и 8 дискретных выходных линий.

Усовершенствованный автомат световых эффектов — увеличено число управляемых линий, усложнены реализуемые эффекты.

Прибор для проверки цифровых микросхем — увеличено число типов проверяемых микросхем.

Электронные часы-будильник — введена возможность заводить его на несколько времен (например, на 6, 8 и 10 часов).

Электронные измерительные приборы — омметр, амперметр, вольтметр.

Электронный частотомер с расширенным диапазоном измеряемых частот.

Управляющий микрокомпьютер для детской игрушки, позволяющий задать с помощью специальной клавиатуры с названиями действий и цифрами последовательность действий и их количество, после чего запустить их на выполнение. Пример управляющей последовательности: вперед 4, включить фары, звуковой сигнал 2, погасить фары.

Цифровой ПИД-регулятор — ввод параметров регулятора с помощью клавиатуры, они записываются во флэш-память данных и сохраняются при выключении регулятора. Индикация текущего состояния и сообщений при вводе параметров регулятора — с помощью символьного ЖКИ-индикатора 2 строчки по 16 символов.