- •Содержание
- •Список сокращений
- •Введение
- •Структура микроконтроллера
- •Процессор микроконтроллера
- •Адресное пространство микроконтроллера
- •Подключение erom и eram к микроконтроллеру
- •Периферийные устройства микроконтроллера
- •Параллельные порты ввода-вывода
- •Таймер-счетчик т/с0
- •Таймер-счетчик т/с1
- •Последовательный порт
- •Контроллер прерываний
- •Система команд микроконтроллера
- •Общие сведения о языке Ассемблер для микроконтроллеров стандарта mcs-51 и о программном пакете фирмы 2500 a.D.
- •Синтаксис языка Ассемблер
- •Определители основания системы счисления
- •Макроопределения
- •Сообщения о некоторых ошибках ассемблирования
- •Рекомендуемая процедура инициализации микроконтроллера
- •Типичные применения микроконтроллеров
- •Ввод информации с датчиков
- •Опрос двоичного датчика
- •Ожидание события
- •Ожидание импульсного сигнала
- •Устранение дребезга контактов
- •Подсчет числа импульсов
- •Подсчет числа импульсов за интервал времени между двумя событиями
- •Подсчет числа импульсов за заданный промежуток времени
- •Опрос группы двоичных датчиков
- •Ввод информации с матричной клавиатуры
- •Вывод управляющих сигналов из микроконтроллера
- •Формирование статических сигналов
- •Формирование импульсных сигналов
- •Генерация меандра
- •Формирование сигнала с заданной скважностью
- •Вывод и отображение информации
- •Динамический вывод информации на дисплей из семисегментных индикаторов
- •Реализация функций реального времени
- •Программное формирование временной задержки
- •Формирование временной задержки с использованием таймеров
- •Измерение временных интервалов
- •Преобразование кодов
- •Преобразование унитарного кода в двоичный позиционный
- •Преобразование двоичного позиционного кода в унитарный
- •Преобразование кодов из одной системы счисления в другую
- •Преобразование данных из параллельного кода в последовательный и обратно
- •Цифро-аналоговое преобразование
- •Аналого-цифровое преобразование
- •Метод последовательного приближения
- •Метод двойного интегрирования
- •Операции с памятью
- •Тестирование озу
- •Программа тестирования пзу
- •Обмен данными по шине i2с
- •Общие положения и введение в логику работы шины i2с
- •Пример обмена данными по шине i2c
- •Приём данных по протоколу Centronics
- •Литература
Формирование импульсных сигналов
Управляющее воздействие типа «импульс» можно получить последовательной выдачей сигналов «включить» и «отключить» с промежуточным вызовом подпрограммы временной задержки (листинг 4.19).
Листинг 4.19 – Программа формирования импульсного воздействия
; Программа предполагает, что ИМ подключен к разряду 0 порта P1.
|
.ORG 0000h |
; Адрес начала программы |
|
SETB P1.0 CALL DELAY
CLR P1.0 … |
; Включение ИМ ; Вызов подпрограммы ; временной задержки ; (см. листинг 4.7) ; Отключение ИМ |
Генерация меандра
Для генерации меандра (рисунок 4.12) необходимо выдавать на выход сигналы логической единицы и логического нуля с одинаковой длительностью (листинг 4.20).
Рисунок 4.12 – Меандр
Листинг 4.20 – Программа, реализующая меандр на выходе Р1.0
|
.ORG 0000h |
; Адрес начала программы |
|
SETB P1.0 CALL DELAY CLR P1.0 CALL DELAY JMP 0 |
; Выдача логической единицы ; Временная задержка ; Выдача логического нуля ; Временная задержка ; Переход на начало программы |
Формирование сигнала с заданной скважностью
Пример импульсного сигнала с произвольной скважностью показан на рисунке 4.13.
Рисунок 4.13 – Импульсный сигнал с произвольной скважностью
Скважность – это отношение длительности единичного импульса к периоду сигнала, выраженное в процентах.
Последовательность импульсных сигналов с произвольной скважностью может быть получена путем чередования процедур выдачи изменяемого значения сигнала (0 или 1) и вызова подпрограмм временных задержек различных длительностей (листинг 4.21).
Листинг 4.21 – Программа, формирующая сигнал с заданной скважностью
|
.ORG 0000h |
; Адрес начала программы |
|
SETB P1.0 CALL DELAY1
CLR P1.0 CALL DELAY0
JMP 0 |
; Выдача логической единицы ; Временная задержка, ; определяющая длительность ; единицы ( ) ; Выдача логического нуля ; Временная задержка, ; определяющая длительность ; ноля ( ) ; Переход на начало программы |
Вывод и отображение информации
Многие микроконтроллерные устройства требуют вывода информации на устройства индикации. Для отображения информации используют следующие типы индикаторов:
– светодиоды используют в тех случаях, когда требуется индикация типа ДА/НЕТ (рисунок 4.14);
– семисегментные индикаторы (ССИ) широко используются для отображения цифровой и буквенной информации (рисунок 4.15).
Рисунок 4.14 – Схема подключения светодиодов
Рисунок 4.15 – Структура и схема подключения семисегментного индикатора
Семь отображающих элементов позволяют высвечивать десятичные и шестнадцатеричные цифры, некоторые буквы русского и латинского алфавитов, а также некоторые специальные знаки.
Низкая нагрузочная способность МК не допускает прямого соединения с ССИ. В качестве промежуточных усилителей тока могут использоваться интегральные схемы преобразователей кодов для управления ССИ.
Преобразование двоичных кодов в коды для ССИ может осуществляться либо программно, либо аппаратно с использованием дешифраторов для семисегментных индикаторов.
Матричные светодиодные индикаторы (МСИ) используются для отображения алфавитно-цифровой информации (рисунок 4.16).
Каждый из таких МСИ, выполненный в виде интегральной микросхемы, представляет собой матрицу светодиодов размерностью , где N – число колонок, M – число строк матрицы.
Для включения одного светодиода матрицы необходимо обеспечить протекание через него тока 10–15 мА при напряжении 2,0–2,5 В. Подключение матричного индикатора к МК осуществляется через управляемые схемы формирования тока колонок и строк (см. рисунок 4.16) .
Рисунок 4.16 – Структура и схема подключения матричного светодиодного индикатора |
Для отображения многосимвольной информации используются линейные дисплеи. Такие дисплеи представляют собой «линейку», смонтированную из отдельных ССИ или МСИ. Число знакомест дисплея определяется в соответствии с требованиями к микроконтроллерной системе.
Существует два способа организации интерфейса МК с линейным дисплеем: статический и динамический.
Первый требует наличия на входах каждого индикатора специальных буферных регистров для хранения кодов выводимых символов. Естественно, что с увеличением разрядности дисплея возрастает число дополнительных микросхем, а следовательно, и стоимость микроконтроллерной системы.
Второй способ (динамический) основан на инерциальности человеческого глаза, которому отображаемая на дисплее информация, если ее обновлять с частотой не менее 20 раз в секунду, представляется неизменяемой. Динамический способ вывода информации на дисплей требует значительно меньших аппаратурных затрат, но более сложного программного обеспечения. Именно этот способ организации вывода информации получил преимущественное распространение в микроконтроллерных системах.