Читать «Как проектировать электронные схемы» онлайн - страница 85

Клод Галле

Существуют эквивалентные команды и для других микроконтроллеров, что дает возможность «подгонять» программы для устройств различных типов. Для управления встроенными устройствами входа/выхода при необходимости применяются специальные команды в двоичных кодах. При использовании независимых периферийных устройств эти команды заменяются эквивалентными инструкциями, хранящимися в ячейках памяти по определенному адресу. Такие инструкции обычно представляют собой подпрограммы, заканчивающиеся командой возврата в точку основной программы, которая следует за точкой вызова.

Используемые переменные, указанные в начале листинга подпрограммы, должны быть объявлены в основной программе, как и функции управления для коммуникационных портов. Тактовая частота кварцевого генератора для модели 6805 составляет, как правило, 4 МГц.

Последовательный ввод данных

Приведенная ниже подпрограмма позволяет принять байт информации в формате RS232, приведенном к уровню сигнала 0–5 В (5 В в режиме отсутствия сигнала), со скоростью 9600 бод. Особенности последовательной передачи данных также рассматриваются в главе 2, раздел «Последовательный интерфейс».

Слово поступает на вход прерывания микроконтроллера, используемый в данном случае для считывания информации (при отключенном режиме прерывания). Результат операции содержится в переменной <pushrs>. Подпрограмма начинается с цикла ожидания (rsin 1), из которого невозможно выйти без изменения состояния линии прерывания. Основными операциями являются задание длительности выполнения команд и логический сдвиг влево (lsl), позволяющий заполнять байт последовательно, бит за битом, по мере прихода сигналов. Подпрограмма temprs2 осуществляет задержку на 76,5 мкс, откалиброванную с помощью кварцевого генератора с рабочей частотой 4 МГц. Имеется возможность производить подстройку как по частоте кварцевого генератора, так и по скорости передачи данных. Ниже приведен листинг подпрограммы.

Используемые переменные: pushrs и pushrs2.

Следует отметить, что в двух рассмотренных выше случаях подпрограммам не всегда нужна адаптация к уровням напряжения, соответствующим стандарту RS232, особенно когда они должны лишь обеспечить коммуникацию между двумя процессорами, расположенными на одной плате. Однако в этом случае могут понадобиться дополнительные линии для ведения диалога, чтобы четко определить, какой из процессоров ведущий, какой — ведомый или они равноправны.

Аналого-цифровой преобразователь с RC-цепочкой

Эта короткая подпрограмма необходима для работы аналого-цифрового преобразователя, описанного в главе 2, раздел «Аналого-цифровое преобразование».