Клод Галле - Как проектировать электронные схемы
- Название:Как проектировать электронные схемы
- Автор:
- Жанр:
- Издательство:ДМК Пресс
- Год:2009
- Город:Москва
- ISBN:2-10-043880-Х (фр.); 978%5-94074-528-0 (рус.)
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Клод Галле - Как проектировать электронные схемы краткое содержание
Большое внимание уделено особенностям использования разнообразных электронных компонентов, вопросам разработки и изготовления печатных плат и корпусов, методике испытания устройств и поиска неисправностей. Приведено большое количество сравнительно простых цифровых и аналоговых схем. Отдельная глава посвящена решению типовых задач по программированию микропроцессоров и микроконтроллеров, представлены примеры полезных подпрограмм.
Книга адресована как начинающим любителям электроники и радиотехники, так и профессионалам.
Как проектировать электронные схемы - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Используемая переменная: А (имя регистра).

Управление символьным индикатором
Речь идет об управлении алфавитно-цифровым индикатором с одной или двумя строками с помощью восьмибитного сигнала. Различные специальные команды уже рассматривались в главе 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.
Использование 16-битных адресов
Восьмибитные микропроцессоры и микроконтроллеры по определению могут оперировать только байтами и не способны использовать более длинные слова. Расширение их возможностей обеспечивает так называемый индексный регистр, который в сочетании с накопителем позволяет осуществлять перемещение по устройству памяти, ограниченному 256 адресами. Иногда этот предел достигается очень быстро, когда необходимо найти одно значение или блок данных в большой таблице. Однако обычно в оперативной памяти существует свободная область. В нее можно записать подпрограмму, один из параметров которой в нужный момент будет изменяться.
Применение команды Ida table в расширенном виде позволяет считывать содержимое любого адреса размером 16 бит. Для ее записи требуется три байта. Первый байт задает код команды (записанный в регистре А), в данном случае D6H на языке Motorola. Два других байта содержат собственно адрес (в первом указывается старший разряд адреса, во втором — младший или наоборот, согласно стандартам изготовителя). Подпрограмма считывания адреса, расположенного в ячейке с именем Rout , имеет следующую структуру:

Если адресуемая ячейка расположена в ОЗУ, необходимо предварительно заполнить соответствующую область памяти. Данная процедура выполняется следующими командами:
Ida #06
sta Rout
Ida #00
sta Rout+1
sta Rout+2
Ida #81
sta Rout+3
Эти команды записываются в программу инициализации устройства. В дальнейшем их использование сводится к вызову подпрограммы с нужными параметрами. Например, при считывании содержимого адреса 0178Н процедура будет иметь следующий вид:
Ida 01
sta Rout+1
Ida 78
sta Rout+2
jsr Rout
После возврата в основную программу регистр А содержит требуемые данные. При считывании таблицы нужно давать приращение сначала младшему разряду адреса, а затем, если нужно, старшему (при обнулении младшего разряда). Такую процедуру может существенно облегчить использование команды с переменным индексом типа Ida table + х .
Читать дальшеИнтервал:
Закладка: