Чтение онлайн

на главную - закладки

Жанры

Как проектировать электронные схемы
Шрифт:

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

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

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

Слово поступает на вход прерывания микроконтроллера, используемый в данном случае для считывания

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

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

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

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

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

Выход компаратора соединен со входом прерывания, в то время как по линии, соответствующей седьмому биту порта А, выдается импульс переменной ширины. Здесь для увеличения ширины импульса снова используется длительность выполнения команд add #0 и bra in1. При появлении ошибки измерения (слишком высокое напряжение) выдается сообщение в виде кода FFH. Результат преобразования помещается в регистр А. Ниже приведен листинг подпрограммы.

Используемая переменная: А (имя регистра).

Управление символьным индикатором

Речь идет об управлении алфавитно-цифровым индикатором с одной или двумя строками с помощью восьмибитного сигнала. Различные специальные команды уже рассматривались в главе 2.

Контроль за тремя управляющими сигналами Е, RW и RS обеспечивается по линиям 0, 1 и 2 порта В, в то время как данные проходят через порт А. Последовательность поступления сигналов соответствует инструкциям разработчиков. Для некоторых команд она имеет увеличенную временную задержку. Код отправляемой команды должен быть размещен в регистре А перед вызовом подпрограммы. Ниже приведен листинг подпрограммы.

Используемая переменная: push3.

Эта подпрограмма предназначена для отправки

единичного символа, а не команды.

Данная подпрограмма, напротив, нужна для отправки целого слова, в конце которого стоит код FFH.

На данном этапе полезно возвратиться к разделу «Световые индикаторы» главы 2, чтобы просмотреть список наиболее распространенных команд управления алфавитно-цифровым индикатором.

Цифровая система фазовой автоподстройки частоты

Данная подпрограмма прекрасно иллюстрирует возможности информатики: она используется для решения схемотехнической задачи скорее аналоговой, чем цифровой по своей сути.

Задача состоит в генерировании прямоугольного сигнала частотой 50 Гц, синхронизированного с внешним опорным сигналом (с напряжением сети) или, если опорный сигнал отсутствует, не синхронизированного. Для этого каждый полупериод сетевого напряжения длительностью 10 мс делится на 16 частей по 625 мкс. Основная программа представляет собой последовательность временных задержек на 625 мкс, в которую вставлены импульсы, управляющие счетчиком генерирования сигнала. Временная задержка может изменяться в пределах 625±10 мкс с шагом 2 мкс. Каждые 20 мс на спаде опорного сигнала генерируется импульс прерывания. В этот момент счетчик (переменная per) должен находиться в 16-й позиции. Таким способом корректируется длительность задержки для синхронизации сигнала генератора с напряжением сети.

Используемые переменные: Push2, per, echant.

Ниже приведен листинг подпрограммы прерывания, вызываемой каждые 20 мс.

Далее приведена часть подпрограммы формирования временной задержки. В начале основной программы переменная echant имеет значение 5. При выполнении программы она изменяется в диапазоне от 0 до 0АН (10D), что соответствует значениям частоты от 49,2 до 50,8 Гц с минимальной длительностью удержания частоты 400 мс.

Умножение и деление в микроконтроллерах

В список выполняемых команд для некоторых микроконтроллеров входят умножение и деление. Их выполнение сводится к логическому сдвигу вправо или влево, иногда при необходимости также производится сложение или вычитание. Если регистр А содержит величину 08Н, то она удвоится (то есть достигнет 10Н) после выполнения следующей операции:

lsla;а х 2

Второй сдвиг влево приведет к новому умножению на 2 и, следовательно, к умножению на 4.

По аналогии с этим деление содержимого регистра А на 2 сводится к сдвигу вправо с помощью следующей команды:

lsra: а / 2

Если второй операнд является нечетным, то основную операцию необходимо дополнить сложением или вычитанием. Например, выражение 8x5, можно преобразовать следующим образом: 8 х (4 + 1) или (8 х 4) + (8 х 1). Эти действия выполняются простым циклом операций:

lsla: a x 2

lsla;a x 4

inca;a x 5

В рассмотренных процедурах необходимо использовать логические операции не циклического, а линейного сдвига состояний в регистре. При каждой операции сдвига на одном конце регистра происходит выход бита, а на другом конце — вход. При этом значение входящего бита должно всегда равняться 0.

Поделиться:
Популярные книги

Свет во мраке

Михайлов Дем Алексеевич
8. Изгой
Фантастика:
фэнтези
7.30
рейтинг книги
Свет во мраке

Целитель. Книга вторая

Первухин Андрей Евгеньевич
2. Целитель
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Целитель. Книга вторая

Мое ускорение

Иванов Дмитрий
5. Девяностые
Фантастика:
попаданцы
альтернативная история
6.33
рейтинг книги
Мое ускорение

Инферно

Кретов Владимир Владимирович
2. Легенда
Фантастика:
фэнтези
8.57
рейтинг книги
Инферно

Тринадцатый

NikL
1. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
6.80
рейтинг книги
Тринадцатый

Шведский стол

Ланцов Михаил Алексеевич
3. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Шведский стол

Объединитель

Астахов Евгений Евгеньевич
8. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Объединитель

Кровь и Пламя

Михайлов Дем Алексеевич
7. Изгой
Фантастика:
фэнтези
8.95
рейтинг книги
Кровь и Пламя

Герцогиня в ссылке

Нова Юлия
2. Магия стихий
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Герцогиня в ссылке

Столичный доктор. Том II

Вязовский Алексей
2. Столичный доктор
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Столичный доктор. Том II

Последний попаданец 11. Финал. Часть 1

Зубов Константин
11. Последний попаданец
Фантастика:
фэнтези
юмористическое фэнтези
рпг
5.00
рейтинг книги
Последний попаданец 11. Финал. Часть 1

Новый Рал

Северный Лис
1. Рал!
Фантастика:
фэнтези
попаданцы
5.70
рейтинг книги
Новый Рал

Горькие ягодки

Вайз Мариэлла
Любовные романы:
современные любовные романы
7.44
рейтинг книги
Горькие ягодки

Разведчик. Заброшенный в 43-й

Корчевский Юрий Григорьевич
Героическая фантастика
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.93
рейтинг книги
Разведчик. Заброшенный в 43-й