Отладочная плата ADuC7024. Система ввода/вывода.

В статье я опишу реализацию диалоговой системы моей макетной платы Eval Board ADuC7024. В качестве устройства вывода текстовой информации служит индикатор LCD стандарта HD44780 2 строки по 16 символов, в качестве устройства ввода – энкодер с кнопкой. Таким образом, мы сможем изменять и вводить данные энкодером, наблюдая их на ЖКИ. Потом, после обработки, результаты операций также сможем выводить на индикатор. Задача существенно упрощается по той причине, что библиотеки по обработке как энкодера, так и ЖКИ у меня давным-давно отработаны и вылизаны. Адаптация этих библиотек под микроконтроллер ADuC7024 заняла десять минут и две извилины 🙂 . Работу с ЖКИ я организовал по 4-м информационным линиям с проверкой бита занятости BUSY. Такой способ допускается, и, более того, рекомендуется производителем для экономии выводов управляющего контроллера. Питание ЖК?? требует 5 В, но он может вполне работать и при 3,6 В, по крайней мере мой экземпляр. Однако же при таком питании (3,6 В) проблема вылазит в виде недостаточной контрастности изображения символов. Чтобы не городить узел отрицательного напряжения (один из способов достижения контрастности при пониженном питании), я пошёл по пути наименьшего сопротивления и запитал ЖК?? напрямую 5 В. Чтение бита занятости BUSY не приведёт к выходу из строя МК ADuC7024, т.к его выводы толерантны к 5 В., о чём я уже упоминал. Некоторые коллеги мне скажут, что и чтение бита занятости также излишество, т.к. можно положить линию RW на «землю» и обходится программными задержками, и будут совершенно правы. Но, мой опыт работы с такими ЖКИ показывает значительную экономию процессорного времени за счёт исключения таких задержек, и, кроме того, сильного дефицита «ног» в описываемом проекте не наблюдается.
В обработке энкодера  также нет особенностей, кроме как вывод P0.6 пришлось аккуратненько подтянуть к питанию через резистор 100 кОм (причины читайте в прошлой статье). В библиотеке энкодера у меня можно выбирать любые ноги любых портов, а также выбирать, сколько изменений состояний приходится на один «щелчок» поворота ручки энкодера — это весьма удобная и полезная фича.
Отмечу, что после реализации полнофункциональной системы ввода/вывода информации дальнейшая работа с контроллером существенно облегчиться. Поясню, что имею в виду. Новые примеры в изучении периферии и ядра можно будет организовать уже через эту самую систему. Т.е для проверки, допустим, ЦАП, не нужно будет всякий раз менять исходник, компилировать и заливать заново прошивку, а просто на экране ЖКИ выбирать нужный регистр, вводит в него новые данные и наблюдать за изменением режима работы или реакцией на таковое изменение. Вот так господа! Зацените новый подход. Правда придётся хорошо обдумать программную реализацию вышеуказанного. Но это мелочи! Ведь творческий процесс настоящим тру-эмбеддерам приносит немало удовольствия.
Тестовая программа очень проста и предполагает следующий режим работы. После сброса на экране дисплея вы увидите табло “Set”, а под. ним “Memory”. Вращением движка энкодера вправо или влево напротив табло “Set” – «Установка» выбирается число от 0 до 9. При нажатии на кнопку энкодера, установленное число запишется в ОЗУ и высветится напротив табло “Memory” «Память» . Программа, конечно же, максимально упрощена, но позволяет убедится в правильной реализации функций обработки ЖКИ и энкодера. Смотрим коротенькое видео работы.

Проект в Keil выкладываю в архиве. Если не будет компилироваться на вашем компе – проверяйте пути подключения файлов.  Для усвоения процесса внимательно читайте комментарии – они всё поясняют. В следующей статье мы разберёмся  системой тактирования микроконтроллера ADuC7024.

Запись опубликована в рубрике ARM, Микроконтроллерный конструктор с метками , , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.