Pavel Bobkov

    Благодаря низкой цене и простому интерфейсу, символьные ЖК-дисплеи находят широкое применение в различного рода устройствах, начиная от радиолюбительских поделок и заканчивая промышленной аппаратурой. В интернете довольно много примеров и описаний работы с символьными ЖКД, но из маркетинговых соображений, а также, потому что мне есть, что сказать, я решил написать эту статью.
   С помощью описанной в предыдущей статье простой библиотеки программных таймеров, можно легко организовать управление подсветкой LCD дисплея. Учитывая ее большое энергопотребление, неплохо бы включать подсветку только на время работы с устройством. Давишь на кнопки  - подсветка горит, перестаешь - она гаснет. Реализовать это можно следующим образом. Нажатие на любую кнопку - зажигает подсветку и запускает таймер. Пока таймер считает, нажатия на кнопки вызывают его перезапуск. Если в течении заданного времени ни одна кнопка не была нажата, таймер срабатывает и гасит подсветку.
Воскресенье, 25 октября 2009 21:50

Программные таймеры. Часть 1

    Аппаратные таймеры/счетчики микроконтроллеров AVR ценный и ходовой ресурс. Чаще всего при их использовании возникает две проблемы – нехватка количества таймеров и невозможность получить временные интервалы большой длительности. Обе эти проблемы можно решить с помощью программных таймеров. Вариантов реализации программных таймеров существует довольно много. Один из них описан в этой статье.

   Память программ микроконтроллеров AVR, помимо своего прямого предназначения может быть использована для хранения константных данных. Для этого в AVR ассемблере есть специальные директивы .db и .dw. Первая определяет константный байт или несколько байтов, вторая константное слово или несколько слов. (слово - это 2 байта). Для того чтобы указать, что заданные константы расположены во flash памяти микроконтроллера,  используется директива .cseg 

Понедельник, 19 октября 2009 09:36

USB to UART bridge

   Все микроконтроллеры AVR семейства MEGA имеют в своем составе модуль UART/USART. Он позволяет связывать микроконтроллер и компьютер по интерфейсу RS-232. Для этого необходим компьютер с COM портом, преобразователь уровней, ну и соответствующий микроконтроллер. Проблема в том, что современные компьютеры перестают оснащать COM портами, потому что на смену им приходит (или уже пришла) USB. На наше счастье ряд фирм выпускает специализированные микросхемы преобразующие USB в  RS232 без всякой головной боли. Им требуется минимальная "обвязка" внешних компонентов, и для них доступны готовые драйвера. Одна из таких микросхем - FT232BM фирмы FTDI.  Чтобы вы не тратили свое время на изучение документации, рисование схемы и разводку платы, предлагаю вам готовое решение на ее основе.

   Таймеры/счетчики микроконтроллеров AVR имеют несколько режимов работы. Один из них, СТС  - сброс при совпадении, мы уже использовали. Давайте разберемся  с другим режимом - Fast PWM.
   PWM (Pulse-width modulation или по-русски широтно-импульсная модуляция) – это вид модуляции цифровых сигналов, при котором частота сигнала остается  постоянной, а длительность меняется. С помощью ШИМ можно регулировать мощность в нагрузке, а также генерировать аналоговые сигналы. 

Понедельник, 12 октября 2009 11:06

Подключение lcd от телефона Nokia3310

   В интернете довольно много микроконтроллерных проектов с применением LCD от телефона Nokia3310. Причина большой популярности дисплея в его дешевизне и простоте использования. Вдохновившись удачным опытом работы с мотороловским экраном, я решил взяться за lcd от Nokia. Вот что из этого получилось.
Пятница, 09 октября 2009 23:28

Трюк с #define

   Один из наиболее частых способов применения директивы #define –  создание макроопределений замаскированных под функции. Для макросов состоящих из одной инструкции, это легко. Просто определяем макрос без  точки с запятой.

   Начальный код мы разобрали, самое время приступить ко второй части нашей задачи -  распознаванию нажатой кнопки. Разберемся, какие напряжения будут на входе АЦП при нажатии кнопок, и какой цифровой код получится после аналого-цифрового преобразования.

   В прошлый раз мы научились пользоваться таймером Т0 и заставили микроконтроллер подавать голос. Хоть мы и использовали при этом прерывания, суть программы мало чем отличалась от программы моргающего светодиода. Предлагаю усложнить задачу и заставить микроконтроллер играть мелодию. Попутно познакомимся с массивом и научимся его использовать.
Страница 9 из 10