- •Перечень сокращений
- •Предисловие
- •Введение
- •Часть 1. Архитектура и аппаратные средства микроконтроллера LPC214x
- •1.1 Общие сведения о микроконтроллерах LPC214x
- •1.2 Программистская модель процессорного ядра ARM7TDMI
- •1.2.1 Режимы работы ядра ARM7
- •1.2.2 Система регистров
- •1.2.3 Слово состояния программы
- •1.2.4 Организация памяти
- •1.3 Система команд
- •1.3.1 Команды арифметической и логической обработки
- •1.3.2 Команды умножения
- •1.3.3 Команды регистровой пересылки
- •1.3.4 Команды загрузки и сохранения регистров
- •1.3.5 Команды пакетного обмена с памятью
- •1.3.6 Команды передачи управления
- •1.3.7 Команды обращения к слову состояния программы
- •1.4 Методы адресации
- •1.4.1 Непосредственная адресация
- •1.4.2 Регистровая адресация
- •1.4.3 Косвенная адресация
- •1.4.4 Индексная адресация
- •1.5 Процедура начальной загрузки и режимы отображения памяти
- •1.6 Обработка исключительных ситуаций
- •1.7 Система тактирования
- •1.7.1 Выбор тактовой частоты микроконтроллера
- •1.7.2 Настройка тактирования периферийных устройств
- •1.8 Модуль ускорения памяти
- •1.9 Внешние выводы микроконтроллера
- •1.9.1 Служебные контакты
- •1.9.2 Программно-управляемые линии ввода-вывода
- •1.9.3 Альтернативные функции линий ввода вывода
- •1.10 Цифровые порты ввода-вывода
- •1.10.1 Управление портом через низкоскоростную шину
- •1.10.2 Управление портом через высокоскоростную шину
- •1.11 Система прерываний
- •1.11.1 Назначение системы прерываний
- •1.11.2 Процесс обработки прерываний IRQ
- •1.11.3 Процесс обработки быстрых прерываний FIQ
- •1.11.4 Регистры управления системой прерываний
- •1.11.5 Порядок настройки прерывания IRQ
- •1.11.6 Порядок настройки быстрого прерывания FIQ
- •1.11.7 Процедура обработки прерывания
- •1.11.8 Задержка обработки прерывания
- •1.12 Внешние прерывания
- •1.12.1 Регистры управления блоком внешних прерываний
- •1.12.2 Порядок настройки блока внешних прерываний
- •1.13 Таймеры-счетчики
- •1.13.1 Режим таймера и схема совпадения
- •1.13.2 Режим счетчика
- •1.13.3 Схема захвата
- •1.13.4 Управляющие регистры
- •1.13.5 Формирование интервалов времени через систему прерываний
- •1.13.6 Измерение периода и длительности импульса с помощью устройства захвата
- •1.13.7 Подсчет числа импульсов в единицу времени
- •1.14 Широтно-импульсный модулятор
- •1.14.1 Основы функционирования
- •1.14.2 Дополнительные возможности
- •1.14.3 Регистры управления ШИМ
- •1.14.4 Порядок настройки ШИМ
- •1.15 Аналого-цифровые преобразователи
- •1.15.1 Краткие сведения о встроенных АЦП
- •1.15.2 Общие рекомендации по использованию АЦП
- •1.15.3 Управляющие регистры
- •1.15.4 Порядок настройки АЦП
- •1.15.5 Программный запуск аналого-цифрового преобразователя
- •1.15.6 Запуск аналого-цифрового преобразователя по таймеру
- •1.15.7 Программный опрос готовности АЦП
- •1.15.8 Опрос готовности АЦП по прерыванию
- •1.15.9 Считывание и масштабирование результата АЦП
- •1.16 Цифро-аналоговый преобразователь
- •1.16.1 Регистр управления ЦАП
- •1.16.2 Рекомендации по применению ЦАП
- •1.17 Последовательный синхронный приемо-передатчик SPI
- •1.17.1 Назначение и основы функционирования интерфейса SPI
- •1.17.2 Управляющие регистры
- •1.17.3 Передача и прием данных в режиме ведущего
- •1.17.4 Передача и прием данных в режиме ведомого
- •1.18 Последовательный синхронный приемо-передатчик I2С
- •1.18.1 Назначение и основы функционирования интерфейса I2С
- •1.18.2 Управляющие регистры
- •1.18.3 Настройка модуля I2C
- •1.18.4 Типовые циклы обмена данными по шине I2C
- •1.19 Последовательный асинхронный приемопередатчик UART
- •1.19.1 Назначение и основы функционирования порта UART
- •1.19.2 Управляющие регистры
- •1.19.3 Настройка порта UART
- •1.19.4 Прием байта с опросом флага
- •1.19.5 Передача байта с опросом флага
- •1.19.6 Прием и передача данных с использованием прерываний
- •1.19.7 Прием и передача пакетов данных
- •1.19.8 Диагностика ошибок
- •1.19.9 Автоматическая настройка скорости
- •1.20 Часы реального времени
- •1.20.1 Основные возможности часов реального времени
- •1.20.2 Управляющие регистры
- •1.20.3 Рекомендации по применению
- •1.21 Управление питанием и идентификация источников сброса
- •1.21.1 Краткие сведения о мониторе питания
- •1.21.2 Управляющие регистры
- •Часть 2. Разработка и отладка программ с помощью современных инструментальных средств
- •2.1 Форматы представления чисел
- •2.1.1 Основные коды представления целых чисел
- •2.1.2 Форматы представление целых чисел, приятные в языке Си
- •2.1.3 Форматы чисел c плавающей точкой стандарта IEEE754
- •2.2 Основы программирования на языке Си
- •2.2.1 Структура программы
- •2.2.2 Числовые константы
- •2.2.3 Переменные и именованные константы
- •2.2.4 Оператор присваивания, выражения и операции
- •2.2.5 Условный оператор
- •2.2.6 Приведение и преобразование типов
- •2.2.7 Массивы
- •2.2.8 Строки символов
- •2.2.9 Структуры
- •2.2.10 Объединения
- •2.2.11 Указатели
- •2.2.12 Ветвление
- •2.2.13 Множественное ветвление
- •2.2.14 Цикл со счетчиком
- •2.2.15 Циклы с предусловием и постусловием
- •2.2.16 Функции
- •2.2.17 Некоторые директивы компилятора
- •2.2.18 Библиотека математических функций MATH.h
- •2.2.19 Функция создания форматированных строк SNPRINTF
- •2.2.20 Ассемблер в Си-программах
- •2.3 Интегрированная среда разработки Keil µVision 4
- •2.3.1 Создание проекта
- •2.3.2 Создание файла программы
- •2.3.3 Настройка проекта
- •2.3.4 Набор текста программы
- •2.3.5 Компиляция программы
- •2.3.6 Отладка программы
- •2.3.7 Основные отладочные инструменты среды Keil µVision 4
- •2.3.8 Управление распределением памяти
- •2.4 Методика отладки программ
- •2.4.1 Быстрый поиск ошибок
- •2.4.2 Ввод и вывод дискретных сигналов
- •2.4.3 Таймер-счетчик. Формирование интервалов времени
- •2.4.4 Таймер-счетчик. Формирование внешних сигналов совпадения
- •2.4.5 Таймер-счетчик. Счетчик внешних событий
- •2.4.6 Таймер-счетчик. Устройство захвата
- •2.4.7 Широтно-импульсный модулятор
- •2.4.8 Аналого-цифровой преобразователь
- •2.4.9 Цифро-аналоговый преобразователь
- •2.4.10 Приемопередатчик SPI
- •2.4.11 Приемопередатчик I2C
- •2.4.12 Приемопередатчик UART
- •2.4.13 Часы реального времени
- •2.5 О программировании ARM7 на ассемблере
- •2.5.1 Основные правила записи программ на ассемблере
- •2.5.2 Псевдокоманды
- •2.5.3 Директивы ассемблера
- •2.5.4 Макросы
- •2.5.5 Пример простой программы
- •2.6 Распространенные средства разработки и отладки
- •2.6.1 Демонстрационные платы EA-EDU-001 и EA-EDU-011
- •2.6.2 Внутрисхемный отладчик J-Link
- •2.6.3 Утилиты программирования ПЗУ LPC Flash Utility и FlashMagic
- •2.6.4 Программа-терминал 232Analyzer
- •2.6.5 Низкоуровневый редактор диска DMDE
- •Часть 3. Решение типовых задач локального управления
- •3.1 Формирование временной задержки с помощью цикла
- •3.1.1 Задание
- •3.1.2 Общие рекомендации
- •3.1.3 Алгоритм программы
- •3.1.4 Отладка
- •3.1.5 Дополнительные сведения о формировании временной задержки
- •3.2 Формирование дискретного сигнала с помощью таймера
- •3.2.1 Задание
- •3.2.2 Общие рекомендации
- •3.2.3 Алгоритм программы
- •3.3 Опрос дискретного датчика или кнопки
- •3.3.1 Задание
- •3.3.2 Общие рекомендации
- •3.3.3 Алгоритм программы
- •3.3.4 Отладка
- •3.4 Опрос состояния механических контактов с подавлением дребезга
- •3.4.1 Задание
- •3.4.2 Общие рекомендации
- •3.4.3 Алгоритм программы
- •3.4.4 Отладка
- •3.5 Опрос клавиатуры с автоповтором
- •3.5.1 Задание
- •3.5.2 Общие рекомендации
- •3.5.3 Алгоритм программы
- •3.5.4 Отладка
- •3.6 Формирование импульсного управляющего сигнала с помощью модуля ШИМ
- •3.6.1 Задание
- •3.6.2 Общие сведения
- •3.6.3 Алгоритм программы
- •3.6.4 Отладка
- •3.6.5 Синхронизация внешним сигналом
- •3.7 Формирование сигналов специальной формы с помощью ЦАП
- •3.7.1 Задание
- •3.7.2 Основы
- •3.7.3 Алгоритм программы
- •3.7.4 Повышение точности генерирования частоты
- •3.7.5 Выбор числа дискрет
- •3.8 Управление двухфазным шаговым двигателем
- •3.8.1 Задание
- •3.8.2 Общие сведения
- •3.8.3 Алгоритм программы
- •3.9 Применение ШИМ для формирования низкочастотных аналоговых сигналов
- •3.9.1 Задание
- •3.9.2 Основные сведения
- •3.9.3 Алгоритм основной программы
- •3.9.4 Алгоритм процедуры обработки прерывания
- •3.10 Управление символьным жидкокристаллическим индикатором
- •3.10.1 Задание
- •3.10.2 Управление модулем жидкокристаллической индикации
- •3.10.3 Разработка функции управления ЖКИ с ожиданием готовности
- •3.10.4 Функция вывода строки символов
- •3.10.5 Разработка функции инициализации модуля ЖКИ
- •3.10.6 Разработка тестовой программы
- •3.10.7 Управление ЖКИ с опросом флага готовности
- •3.10.8 Программирование произвольных символов
- •3.11 Управление матричным светодиодным индикатором
- •3.11.1 Задание
- •3.11.2 Основные рекомендации
- •3.11.3 Алгоритм основной программы
- •3.11.4 Алгоритм процедуры обработки прерывания
- •3.11.5 Реализация движения строки
- •3.12 Управление матричным жидкокристаллическим дисплеем
- •3.12.1 Управление дисплеем на основе контроллера PCF8833
- •3.12.2 Построение простейших геометрических фигур
- •3.13 Измерение постоянного напряжения
- •3.13.1 Задание
- •3.13.2 Основные рекомендации
- •3.13.3 Алгоритм основной программы
- •3.13.4 Алгоритм процедуры обработки прерывания от АЦП
- •3.13.5 АЦП с циклическим опросом нескольких каналов
- •3.13.6 Автоматический выбор пределов измерения
- •3.14 Измерение параметров уровня переменного напряжения
- •3.14.1 Задание
- •3.14.2 Основные рекомендации
- •3.14.3 Алгоритм основной программы
- •3.14.4 Алгоритм процедуры обработки прерывания
- •3.15 Измерение ускорения с помощью трехосевого акселерометра
- •3.16 Измерение интервалов времени с помощью таймера
- •3.16.1 Задание
- •3.16.2 Общие рекомендации
- •3.16.3 Алгоритм основной программы
- •3.16.4 Алгоритм процедуры обработки прерывания
- •3.16.5 Повышение разрешающей способности путем усреднения
- •3.16.6 Введение поправок
- •3.17 Измерение частоты с помощью счетчика
- •3.17.1 Задание
- •3.17.2 Основные рекомендации
- •3.17.3 Алгоритм программы
- •3.17.4 Повышение точности измерений
- •3.18 Опрос цифрового датчика температуры. Интерфейс I2C
- •3.18.1 Задание
- •3.18.2 Общие рекомендации
- •3.18.3 Алгоритм программы
- •3.20 Обмен данными с электрически перепрограммируемым ПЗУ
- •3.20.1 Задание
- •3.20.2 Общие сведения о микросхемах EEPROM
- •3.20.3 Адресация в микросхемах EEPROM
- •3.20.4 Порядок чтения EEPROM
- •3.20.5 Порядок записи EEPROM
- •3.20.6 Разработка программы чтения EEPROM
- •3.20.7 Разработка функции записи блока данных в EEPROM
- •3.21 Интерфейс RS-232. Прием и передача простых команд
- •3.21.1 Задание
- •3.21.2 Алгоритм программы
- •3.21.3 Автоматическая настройка скорости
- •3.22.1 Задание
- •3.22.2 Основные рекомендации
- •3.22.3 Алгоритм программы
- •3.23 Интерфейс RS-232. Прием пакета переменной длины
- •3.23.1 Задание
- •3.23.2 Основы реализации
- •3.23.3 Алгоритм программы
- •3.24 Обмен данными с картой памяти Secure Digital
- •3.24.1 Задание
- •3.24.2 Общие сведения о карах FLASH-памяти SD/MMC
- •3.24.3 Команды SD/MMC
- •3.24.4 Процедура инициализации карты
- •3.24.5 Чтение и запись данных
- •3.24.6 Обработка ошибок
- •3.24.7 Комментарии к алгоритму и программе
- •Алфавитный указатель управляющих регистров
- •Список литературы
- •Содержание
PWMMR2=u[k++];
3. Разрешить обновление защелки пороговых значений в начале следующего периода. Для этого установить единицу в разряд регистра PWMLER, соответствующий второму каналу ШИМ.
4–5. Реализовать проверку равенства счетчика предельному числу , обнулить k в случае равенства.
6. Сброс флага прерывания и инициализация адреса обсуждалась в практическом занятии № 2.
3.10 Управление символьным жидкокристаллическим индикатором
3.10.1 Задание
Разработать библиотеку подпрограмм управления жидкокристаллическим символьным индикатором. Библиотека должна содержать функции: инициализации, очистки экрана, перемещения курсора, вывода строки символов. Программу необходимо протестировать путем отображения произвольного текста на индикаторе.
3.10.2 Управление модулем жидкокристаллической индикации
На плате EA-EDU-001 установлен символьный жидкокристаллический индикатор типа LMB162A производства фирмы Topway. Индикатор состоит из двух строк, в каждой из которых имеется 16 знакомест. Каждое знакоместо представляет собой матрицу из 5x7 точек. Индикатор является знакосинтезирующим. Это значит, что изображение символа формируется аппаратными и программными средствами самого индикатора в соответствии с кодом символа. Кодировка в основном соответствует стандарту ASCII. Имеется возможность программирования восьми произвольных символов.
Интерфейс взаимодействия с индикатором фактически стандартизован. Поэтому подпрограммы управления индикатором, которые предстоит разработать, будут совместимы с множеством подобных жидкокристаллических модулей, в том числе, производства отечественной фирмы МЭЛТ. Здесь будут рассмотрены только основные операции управления индикатором. Для подробного изучения рекомендуется обратиться к русскоязычной документации фирмы МЭЛТ.
Интерфейс (рисунок 3.10.1) состоит из 8-разрядной шины данных DB0–DB7; сигнала RS, определяющего передается ли в настоящее время команда или данные; сигнала RW, задающего направление передачи данных по шине; стробирующего сигнала E, по срезу которого индикатор воспринимает остальные сигналы.
Система команд индикатора представлена в таблице 3.10.1. Индикатор имеет память для хранения кодов символов, поэтому сформированное однажды изображение останется без изменения, если не поступит соответствующей команды от микроконтроллера.
Для подачи управляющей команды индикатору необходимо вывести байт на шину данных и установить сигналы RS и RW в соответствии-с таблицей 1. Выполнение команды инициируется сигналом по спадающему фронту
189
Таблица 3.10.1 – Система команд символьного ЖКИ на основе контролера совместимого с KS0066
|
Команда ЖКИ |
|
RS |
RW |
|
|
|
|
|
DB7 – DB0 |
|
|
|
|
|
|
|
Комментарии |
|||||||||
|
Clear Display |
|
0 |
0 |
0 |
|
0 |
|
|
0 |
|
0 |
|
0 |
|
|
0 |
|
|
0 |
|
|
1 |
|
Очистить дисплей |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
Очистка дисплея |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Return Home |
|
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
|
0 |
|
1 |
|
|
x |
|
Установить курсор на нулевую позицию |
||||||||
|
Возврат курсора |
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Entry Mode Set |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
— дисплей неподвижен/сдвигается |
|
|
|
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
|
1 |
|
|
ID |
|
S |
|
|
— сдвиг курсора (и дисплея) |
||||||||
|
Режим сдвига дисплея или курсора |
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
вправо/влево |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
Display ON/OFF |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
— дисплей выключен/включен |
|
|
|
0 |
0 |
0 |
|
0 |
|
|
0 |
|
0 |
|
1 |
|
|
D |
|
|
C |
|
|
B |
|
|
— курсор выключен/включен |
|
|
|
Включение дисплея и режим курсора |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
0 |
|
|
0 |
|
|
— мигание курсора выкл./вкл. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
Shift Display |
|
0 |
0 |
0 |
0 |
|
0 |
1 |
|
SC RL |
|
x |
|
x |
|
|
— сдвинуть курсор/дисплей |
|||||||||
|
Сдвиг дисплея или курсора |
|
|
|
|
|
|
|
— сдвинуть влево/вправо |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
Function Set |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
— 4-/8-разрядный интерфейс |
|
|
|
0 |
0 |
0 |
|
0 |
|
|
1 |
|
DL |
|
N |
|
|
F |
|
|
x |
|
|
x |
|
|
— 1/2 строки |
|
|
|
Настройка |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
1 |
|
1 |
|
|
0 |
|
|
|
|
|
|
|
|
— шрифт 5×8/5×11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
Set CGRAM Address |
|
0 |
0 |
0 |
1 |
|
|
A5 A4 A3 A2 A1 A0 |
|
A0–A6 текущий адрес в таблице знакогене- |
||||||||||||||||
|
Установить адрес в таблице знакоген. |
|
|
|
|
ратора |
|||||||||||||||||||||
|
Set DDRAM Address |
|
0 |
0 |
1 |
|
A6 A5 A4 A3 A2 A1 A0 |
|
A0–A6 текущий адрес в памяти символов |
||||||||||||||||||
|
Установить адрес в памяти символов |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(позиция курсора) |
||
|
Read Busy Flag and Address |
|
0 |
1 |
BF A6 A5 A4 A3 A2 A1 A0 |
|
|
— модуль готов/занят; |
|||||||||||||||||||
|
Чтение флага готовности и адреса |
|
|
A0–A6 текущий адрес |
|||||||||||||||||||||||
|
Write Data |
|
1 |
0 |
D7 D6 D5 D4 D3 D2 D1 D0 |
D0–D7 данные |
|||||||||||||||||||||
|
Запись данных |
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Read Data |
|
1 |
1 |
D7 D6 D5 D4 D3 D2 D1 D0 |
D0–D7 данные |
|||||||||||||||||||||
|
Чтение данных |
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
190
импульса на линии E. Время выполнения команд очистки экрана (Display Clear) и возврата курсора (Return Home) составляет 1,71 мс; остальных команд — 41 мкс. Эти характеристики приведены для модуля LMB162; для других аналогичных устройств могут отличаться. Прежде чем подавать очередную команду необходимо выдержать паузу или циклически опрашивать флаг готовности модуля индикации. Взаимодействие с опросом флага сложнее в программной реализации, но минимизирует величину задержки и гарантирует работу с любым аналогичным модулем. Далее будет рассмотрены оба способа взаимодействия.
Рисунок 3.10.1 – Схема подключения модуля ЖКИ к микроконтроллеру
Для инициализации индикатора в большинстве случаев достаточно трех команд: Function Set, Display On и Clear Display (в таблице выделены се-
рым цветом). В дальнейшем необходимы еще две команды для перемещения курсора (Set DDRAM Address) и вывода символа (Write Data).
Схема адресов символьных позиций показана на рисунке 3.10.2.
|
Поз. 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Поз. 15 |
|
Строка 1 |
0x00 |
0x01 |
0x02 |
0x03 |
0x04 |
0x05 |
0x06 |
0x07 |
0x08 |
0x09 |
0x0A |
0x0B |
0x0C |
0x0D |
0x0E |
0x0F |
Строка 2 |
0x40 |
0x41 |
0x42 |
0x43 |
0x44 |
0x45 |
0x46 |
0x47 |
0x48 |
0x49 |
0x4A |
0x4B |
0x4C |
0x4D |
0x4E |
0x4F |
Рисунок 3.10.2 – Схема адресов символьных позиций ЖКИ
3.10.3 Разработка функции управления ЖКИ с ожиданием готовности
Рекомендуется все функции управления ЖКИ поместить в отдельный файл с именем LCD.c. Кроме того, в библиотеку войдет функции формирования временной задержки, рассмотренную в разделе 3.1.5. В дальнейшем при необходимости файл библиотеки будет подключаться к программам директивой #include.
Алгоритм функции вывода команды LCDWrite показан на рисунке
3.10.3, а).
191
Функция выполнения команды
Начало
1 Ввод Data, RS
2
RW=0
3
Вывод RS
4
Вывод Data
5
Формирования
импульса 575 нс
6 Задержка 1,71 мс
Возврат
Функция вывода строки Начало
1 Ввод Sym, Pos
2
k=0
3
Перевести курсор в
|
позицию Pos |
|
(Set DDRAM Address) |
Нет |
4 |
|
Sym[k]>0 |
|
Да |
|
5 |
|
Вывод символа Sym[k] |
|
(Write Data) |
Функция инициализации ЖКИ
Начало
1 Настроить режим и
направление портовых линий
2 Вкл. подсветку
3
Задержка 50 мс
4
Function Set
(DL=1, N=1, F=0)
5 Display On
(D=1, C=0, B=0)
6 Clear Display
|
|
Возврат |
|
Возврат |
|
а) |
б) |
в) |
Рисунок 3.10.3 – Схемы алгоритмов функций управления модулем ЖКИ
1.Входные параметры функции: байт Data, выставляемый на шину данных индикатора; сигнал RS, принимающий два значения 0 и 1. Оба параметра должны иметь тип unsigned char.
2.Установить низкий уровень на линии RW, что соответствует режиму отправки данных. Рекомендуется использовать обращение к порту вводавывода в режиме байта (регистр FIO0CLR2). Схема подключения входов индикатора к портовым линиям микроконтроллера показана на рисунке 3.10.4.
3.Установить на линии RS (регистр FIO1PIN3) логический уровень в соответствии со значением одноименного параметра функции. Типовая задача вывода бита в порт рассмотрена в разделе 1.10.1 (пример 3).
4.Вывести байт Data на шину данных (регистр FIO1PIN2).
FIO1PIN3 – третий байт порта 1 |
FIO1PIN2 – второй байт порта 1 |
31 |
28 |
27 |
25 |
24 |
23 |
||
|
|
|
E |
S |
|
|
y |
|
|
|
|
s |
|||
|
|
|
|
R |
u |
|
|
|
|
|
|
B |
|
|
Строб |
Данные (1) |
|
16
DB7:DB0
Шина данных
FIO0PIN3 – третий байт порта 0 |
FIO0PIN2 – второй байт порта 0 |
||||||||||
31 |
30 |
29 |
28 |
27 |
24 |
23 |
22 |
21 |
20 |
19 |
16 |
|
L |
|
|
|
|
|
/W |
|
|
|
|
|
B |
|
|
|
|
|
R |
|
|
|
|
Подсветка |
|
|
|
Чтение (1) |
|
|
|
Рисунок 3.10.4 – Схема портовых линий МК, используемых для управления ЖКИ
192