Электронная записная книжка |
Страница 8 из 9
РАЗРАБОТКА АЛГОРИТМА РАБОТЫ СИСТЕМЫ И ПРОГРАММЫ Рисунок 12 - Блок схема программы Программный код приведён в приложении А. Представленный выше алгоритм включает в себя следующие шаги:
Описание хода разработки программного обеспечения Текст программы с комментариями представлен в Приложении А. Далее будет представлено описание и назначение некоторых функций программы. Функция wait_lcd() представляет собой проверку состояния дисплея (проверяется бит D7 ЖКИ). При занятом устройстве бит 7 будет установлен, поэтому нужно дождаться, пока этот бит станет равным 0 ,чтобы послать следующую команду. Перед выводом символов на дисплей необходимо выполнить инициализацию и очистку дисплея, послав устройству соответствующие команды. Инициализацию и очистку дисплея выполняют функции init_lcd() и clr_lcd() соответственно. При инициализации линия Enable устанавливается в 1 – это линия, фиксирующая начало передачи команды в дисплей, затем линия Register Select устанавливается в 0 – это означает, что данные на линиях D0-D7 должны интерпретироваться как команда, и линия Read/Write d 0 – это означает запись. После этого по линиям D0-D7 передается команда 00111000 (0x38), означающая начальные установки ЖКИ (разрядность шины интерфейса 8-бит, количества строк на дисплее – две, и размера символов 5×8 точек). Далее линия Enable устанавливается в 0, т.е. фиксируется окончание передачи команды. Таким же образом посылаются еще 2 команды: 00001110 (0x0E) – включение дисплея и отображение курсора и 00000100 (0x04) – задание режима ввода (направление перемещения курсора вправо). Функция очистки clr_lcd() посылает дисплею команду 00000001 (0х01), означающую что во все ячейки DDRAM записывается код 0х20 (пробел) и счетчик адреса DDRAM устанавливается в 0x00. Функция write_char() производит вывод байта данных на дисплей, при этом Register Select устанавливается в 1 – это означает, что данные на линиях D0-D7 должны отображаться на экране. В функции main() реализован цикл, ожидающий нажатия пользователем клавиши. После нажатия клавиши функция write_char() выводит символ на дисплей и программа после выполнения функции wait_lcd() снова переходит в режим ожидания. Переменая flag_simv служит флагом клавиатурной раскладки. При flag_simv=1 доступна английская раскладка клавиатуры, при flag_simv=0 – русская. ЗАКЛЮЧЕНИЕ В данной работе разработана электронная записная книжка на микроконтроллере, написана программа для неё, рассмотрены вопросы программирования МК. В ходе выполнения работы был проведён анализ задачи, на основе которого были сформулированы требования к конечной системе. Была построена структурная схема. В ходе выполнения проекта были подобраны соответствующие устройства для реализации функций, возложенных на элементы системы. Далее, с использованием выбранных устройств была построена функциональная схема. Разработка завершилась составлением блок-схемы алгоритма и написанием исходного кода программы для микроконтроллера.
|