Azotirovanie.ru

Инженерные системы и решения
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Иллюстрированный самоучитель по Turbo Pascal

Иллюстрированный самоучитель по Turbo Pascal

В МП 8086/8088 имеется 14 регистров. В функциональном отношении они делятся на группы:

  • регистры общего назначения (АХ, ВХ, СХ, DX); предназначены для хранения операндов и выполнения основных команд; любой из них может использоваться как совокупность двух независящих друг от друга 8-разрядных регистров: старшего байта регистра (АН, ВН, СН, DH) и младшего байта (AL, BL, CL, DL); например, АХ состоит из АН и AL;
  • сегментные регистры (CS, DS, SS, ES); используются для указания сегмента при адресации памяти;
  • регистры-указатели (SP, BP, IP); используются для указания смещения при адресации памяти;
  • индексные регистры (SI, DI); применяются для индексной адресации;
  • регистр флагов; используется для хранения признаков состояния процессора.

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

Регистр АХ.

Является основным сумматором. Используется во всех арифметических операциях (сложить, умножить и т.п.). Только с помощью АХ и его полурегистров AHIAL возможен обмен данными с портами ввода/вывода.

Регистр ВХ.

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

Регистр СХ.

В основном используется как счетчик при выполнении операций повторения и сдвига. Может также участвовать в арифметических операциях.

Регистр DX.

Используется как регистр данных в операциях ввода/вывода, а также как сумматор при обработке длинных целых чисел (32-разрядных).

Регистр CS.

Содержит номер сегмента памяти (сегмента кода), в котором располагается текущая машинная инструкция. Для получения полного адреса следующей команды его содержимое сдвигается влево на 4 разряда и складывается с регистром-указателем IP. Содержимое CS автоматически изменяется в командах дальнего (межсегментного) перехода и вызова процедур.

Регистр IP.

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

Регистр DS.

Содержит номер сегмента памяти (сегмента данных), в котором располагаются данные (константы и переменные). Все глобальные переменные и типизированные константы программы Турбо Паскаля всегда располагаются в единственном сегменте, адресуемом этим регистром.

Регистр SS.

Содержит номер сегмента стека. Стек – это участок автоадресуемой памяти, предназначенный для временного хранения операндов. С помощью стека ТурбоПаскаль организует обмен данными между программой и процедурами, кроме того, в нем он размещает все локальные переменные (т.е. переменные, объявленные внутри процедуры). Память стека используется по правилу "последним пришел – первым ушел": самый последний помещенный в стек операнд будет первым извлекаться из него.

Регистр SP.

Указывает на вершину стека, т.е. совместно с регистром 55 адресует ячейку памяти, куда будет помещаться операнд или откуда он будет извлекаться. Содержимое этого регистра автоматически уменьшается после размещения в стеке очередного операнда и увеличивается после извлечения операнда из стека.

Регистры общего назначения AVR

Регистры общего назначения (РОН) есть в любом процессоре, микропроцессоре и микроконтроллере. Их ещё называют “рабочие регистры”. Эти регистры используются для хранения промежуточных итогов вычислений (также как и внутренняя память).

По сравнению с памятью у РОН есть два основных преимущества:

  • Обращение к регистрам выполняется намного быстрее, чем к памяти.
  • При обращении к регистрам не нужно указывать адрес (как в случае с памятью).

Файл регистров общего назначения

В документации AVR регистры общего назначения объединены в так называемый файл регистров общего назначения — General Purpose Register File (можно, пожалуй, ещё перевести как “Регистровый файл общего назначения”).

Слово файл перевести с английского можно ещё и как “массив”.

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

В микроконтроллерах серии AVR всего 32 регистра общего назначения. Для использования РОН в программе, каждый такой регистр имеет собственное уникальное имя: от R0 до R31.

Схемы ввода-вывода и размещение регистров в памяти

Массив РОН наилучшим образом приспособлен для для набора команд архитектуры AVR Enhanced RISC. Для того, чтобы достичь необходимой производительности и гибкости, следующие схемы ввода-вывода поддерживаются файлом регистров:

  • Один 8-разрядный выходной операнд и один 8-разрядный входной операнд результата.
  • Два 8-разрядных выходных операнда и один 8-разрядный входной операнд результата.
  • Два 8-разрядных выходных операнда и один 16-разрядный входной операнд результата.
  • Один 16-разрядный выходной операнд и один 16-разрядный входной операнд результата.
Читайте так же:
Жкх индивидуальные счетчики общедомовые

На рисунке показана структура 32 рабочих регистров общего назначения процессора.

Структура 32 рабочих регистров общего назначения процессора

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

Как показано на рисунке выше, каждый регистр также связан с адресом в памяти данных. Этот адрес отражает размещение регистра непосредственно в первых 32 ячейках пользовательского пространства данных. Хотя эта память физически не находится в SRAM, такая организация памяти обеспечивает большую гибкость доступа к регистрам, потому как указатель регистра X-, Y- и Z- может быть установлен для индексации любого регистра в файле регистров.

Некоторые команды не могут использовать определённые регистры (подробнее об этом в описании набора команд).

Х-регистр, Y-регистр и Z-регистр

Все регистры общего назначения в AVR являются восьми разрядными. Однако шесть последних регистров (R26. R31) имеют некоторые дополнительные функции для их использования в качестве регистров общего назначения. Эти регистры являются 16-битными указателями адреса для косвенной адресации в области памяти данных. Три косвенных адреса регистров Х, Y и Z определены, как показано на рисунке ниже.

X-, Y- и Z-регистры AVR

В различных режимах адресации эти адресные регистры имеют функции фиксированного смещения, автоматический инкремент и автоматический декремент (более подробно об этом в описании инструкций).

Таким образом, эти регистры могут быть объединены в пары (см. рис. выше) и использоваться для 16-разрядных операций. При этом остаётся возможность чтения каждого регистра пары отдельно.

Учебный компьютер E97. Структура процессора и памяти.
Способы адресации данных. Система команд

В состав E97 входят центральный процессор, оперативное и постоянное запоминающие устройства (ОЗУ и ПЗУ), дисплей и клавиатура.

Основным устройством в E97, построенном на основе неймановской архитектуры, является шестнадцатиразрядный процессор E97. Его система команд позволяет обрабатывать двухбайтовые машинные слова и отдельные байты.

Процессор содержит программно доступные регистры: четыре регистра общего назначения (R0-R3), указатель стека (SP — stack pointer); служебные регистры: счетчик адреса команд (PC — programm counter), регистр состояния процессора (PS); и программно недоступные (внутренние), которые процессор использует в своих целях: регистр команд (РК), регистры операндов (Рг1, Рг2) и сумматор (См).

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

  1. считывается команда из оперативной памяти по адресу, указанному в счетчике команд, и записывается в регистр команд;
  2. счетчик команд автоматически увеличивается так, чтобы он содержал адрес следующей команды (в E97 автоматически увеличивается на 2);
  3. содержимое регистра команд дешифруется, из памяти выбираются необходимые данные, и выполняется указанное действие. В случае необходимости результат записывается в ОЗУ;
  4. осуществляется переход к п. 1.

Согласно этому алгоритму процессор исполняет программу до тех пор, пока не встретится команда СТОП.

Указатель стека SP чаще всего используется при организации подпрограмм, о чем речь пойдет ниже.

Регистр словосостояния (точнее говоря, отдельные его биты) анализируются при организации переходов, прерываний и т.д. Реально мы будем использовать только два бита: Z и N . Значения этих битов при возможных значениях результатов операций указаны ниже в таблице.

РезультатЗначение бита ZРезультатЗначение бита N
Нулевой (=0)1Отрицательный ( = 0)

При работе программы в регистр команд считывается очередная команда для дешифрирования и дальнейшего выполнения; в регистры операндов считываются согласно выполняемой команде операнды из регистров общего назначения или из оперативной памяти; в сумматоре выполняется действие, и сохраняется его результат до тех пор, пока не будет выполнено следующее действие. Последние четыре регистра доступны лишь для наблюдения, их содержимое программист изменить не может (в отличие от программно доступных).

Минимальной адресуемой ячейкой памяти в микрокомпьютере E97, как и в любой современной персональной ЭВМ, является байт. Номера байтов (адреса) лежат в диапазоне от 0000(16) до FFFF(16). Гораздо чаще приходится работать с машинными словами (в E97 они двухбайтовые — напомним, что это связано с разрядностью процессора). Адрес машинного слова совпадает с номером младшего байта, входящего в слово, поэтому адреса всех машинных слов четные.

Для размещения программы и данных в распоряжении программиста ОЗУ (с адреса 0000 до адреса 00FE включительно). Программа и данные записываются в память E97 (в том числе и в регистры) в шестнадцатеричном коде. При этом целые числа задаются в дополнительном коде.

ПЗУ содержит полезные подпрограммы автора E97 и размещается с адреса 4000 по адрес 4106.

Рассмотрим способы адресации данных в E97. Основных здесь два — прямой регистровый, когда данные для обработки содержатся в регистрах, и косвенный регистровый, когда данные расположены в ОЗУ, а их адреса находятся в регистрах общего назначения. Указанные способы адресации кодируются следующим образом:

Код операнда
РегистрРегистровая адресацияКосвенная адресация
R04
R115
R226
R337

Условным обозначением косвенной адресации, в отличие от регистровой, служит название регистра, заключенное в круглые скобки. Например (R2).

Кроме рассмотренных способов адресации имеется еще адресация по командному счетчику PC. Если в качестве операнда указано значение D , то соответствующий операнд входит непосредственно в команду и расположен в ОЗУ по следующему за командой адресу; если — E , то по следующему за командой адресу указан адрес, где хранится величина. Более подробно об этих способах адресации — в примерах.

Познакомимся с некоторыми командами процессора E97. Все их можно разделить на безадресные (без операндов), одноадресные (с одним операндом) и двухадресные (с двумя операндами).

Безадресная команда имеет формат

Третий полубайт (отсчет ведется справа налево), как и в других командах, занимает код операции (КОП) — то действие, которое необходимо выполнить. Другие полубайты могут содержать все, что угодно, так как они не задействованы; по традиции туда записывают нули.

  • 0000 (нет операции);
  • 0F00 (стоп).

Всякую программу обязательно должна завершать команда СТОП.

Двухадресная команда имеет формат

На приведенной схеме модификатор (МОД) — некоторый вспомогательный код; ОП1 и ОП2 — операнды в команде.

Вот список таких команд

КомандаКодКомандаКод
Переписать1Логическое И (AND)7
Сложить2Логическое ИЛИ (OR)8
Вычесть3ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR)9
Сравнить4Ввести в портA
Умножить5Вывести из портаB
Разделить6

Действия выполняются по схеме ОП2 операция ОП1 ==> ОП2 . Как видно из схемы, конечный результат операции всегда помещается во второй операнд.

Особое место занимает операция сравнения: при ее выполнении содержимое операндов не изменяется, а действие ОП2 — ОП1 выполняется лишь для установления значений управляющих битов Z и N регистра состояния PS.

В каждой из указанных здесь команд значение МОД (модификатора) равно нулю. Модификатор может быть отличен от нуля, об этом — позднее.

Приведем примеры использования команд.

1) 0123 — переслать содержимое регистра R2 в регистр R3, содержимое R2 сохраняется;

2) 0534 — умножить содержимое регистра R3 на содержимое ячейки памяти, адрес которой указан в регистре R0, результат поместить в эту ячейку памяти.

  1. разработать план решения задачи (составить алгоритм решения);
  2. распределить память для аргументов, результатов и промежуточных величин, которые будут использованы при работе программы;
  3. подобрать набор тестовых данных для последующей проверки правильности программы;
  4. составить программу согласно плану решения (алгоритму);
  5. ввести программу и исходные данные в память E97;
  6. проверить правильность алгоритма и программы с помощью тестов. Если результаты тестирования окажутся положительными, программа пригодна для проведения расчетов по ней. В противном случае следует приступить к ее отладке с целью выявления алгоритмических либо других ошибок, после чего вернуться к тестированию.

Примеры решения задач с помощью E97

Пример 1. В регистрах R0, R1 содержатся целые числа. Получить сумму этих чисел в регистре R3, не изменяя содержимого R0, R1.

  1. Переслать R0 в R3.
  2. Сложить R1 с R3.

Распределять память в этой задаче уже не требуется, т.к. это сделано согласно условию.

Тест

R0R1R2R3
FFFE53

При решении задачи использовалась только регистровая адресация.

Пример 2. В последовательных ячейках памяти расположены пять целых чисел. Получить произведение этих чисел. Содержимое памяти не изменять.

Идея решения. Поскольку величины хранятся в памяти последовательно, в одном из регистров будем изменять адреса от адреса первого числа до последнего, а в другом — накапливать произведение.

Распределение памяти

R0R1R2R3
Адрес очередного числаP

Заданные числа будем хранить с адреса 0050.

Тест

Адрес00500052005400560058
Величина0002FFFE000AFFFF0003

Замечание. Целые числа записываются в память в дополнительном коде.

При решении задачи использованы способы адресации: регистровая, косвенная и по счетчику команд.

Пример 3. Дано трехзначное натуральное число, записанное в десятичной системе счисления. Получить число, записанное теми же цифрами, но расположенными в обратном порядке.

Идея решения. Пусть данное число имеет вид N = abc , тогда ответ должен быть M = cba = c × 100 + b × 10 + a . Из исходного числа N цифры могут быть получены так: a = N div 100; b = ( N — a × 100) div 10; c = N — a × 100 — b × 10

Здесь через div обозначена операция целочисленного деления одного целого числа на другое, которая и используется в E97.

  1. Запомнив исходное число N , разделить его на 100, полученную цифру a запомнить.
  2. Получить часть числа M : M := a.
  3. Вычесть из числа N произведение a × 100, результат запомнить.
  4. Разделить разность N — a × 100 на 10, полученную цифру b запомнить.
  5. Добавить к числу M очередную его часть: M := M + b * 10.
  6. Вычесть из разности N — a × 100 число b × 10, получим цифру c .
  7. Добавить к числу M последнюю его часть: M := M + c * 100.
  8. Стоп.

Распределение памяти

R0R1R2R3
NцифрыM
и разностии произведения

При разработке программы были использованы регистровая и адресация по PC.

Регистры общего назначения

Регистры АХ, ВХ, СХ и DX входят в группу регистров общего назначения. Первый регистр в этой группе, АХ, называется регистром-сумматором. Он применяется для накапливания результатов вычислений и часто выступает в роли приемника результатов выполнения различных команд. Хотя каждый регистр способен решать множество разнообразных задач, результаты выполнения некоторых команд (в частности, команд умножения) отправляются в регистр АХ по умолчанию.

Второй регистр этой группы, ВХ, называется базовым регистром. По назначению он во многом аналогичен регистру АХ, но есть и одно существенное отличие. В ВХ можно записать адрес памяти, а затем выполнить команду, операнд которой располагается по этому адресу памяти. Другими словами, ВХ может содержать указатель на область памяти, а АХ — не может. Чтобы проиллюстрировать это утверждение, сравним две команды. Первая команда:

Эта команда копирует содержимое ВХ в АХ. Вторая команда:

Эта команда копирует в АХ содержимое слова памяти, адрес которого содержится в ВХ. В первом примере исходный операнд содержится в регистре ВХ; во втором примере фигурирует указатель на исходный операнд. В обоих примерах, как видите, для команды M0V заданы оба операнда: исходный (источник) и целевой (приемник). При этом целевой операнд указывается перед исходным.

Следующий регистр общего назначения, СХ, называется регистром-счетчиком. Помимо прочего, он применяется для хранения значений счетчиков при выполнении циклов. Во время обработки команды LOOP значение в этом регистре автоматически уменьшается на единицу. Как правило, циклы завершаются в тот момент, когда значение в регистре СХ достигает нуля.

Четвертым регистром в группе регистров общего назначения является регистр данных (DX). Совместно с регистром АХ он задействуется при выполнении команд со словами двойной длины (32-разрядными). В этом случае в DX сохраняются старшие 16 бит, а в АХ — младшие 16 бит. Здесь нужно оговориться, что обычно 32-разрядные целые числа называются длинными. Термин двойные чаще применяется по отношению к 64-разрядным значениям с плавающей точкой, но иногда так называют и 32-разрядные целочисленные значения. В нашем контексте путаницы не возникнет, так как числа с плавающей точкой мы обсуждать не собираемся.

Каждый регистр общего назначения можно рассматривать либо как один 16-разрядный регистр, либо как пару 8-разрядных регистров. Таким образом, в процессоре 8088 предусмотрено восемь 8-разрядных регистров, применяемых при выполнении команд с байтами и символами. Регистры, входящие во все остальные группы, нельзя разделить на две 8-разрядные части. Одни команды задействуют целый регистр (например, АХ), другие — только одну его часть (например, AL или АН). Согласно общему правилу, те команды, которые выполняют арифметические операции, обычно используют целые 16-разрядные регистры, а те, что имеют дело с символами, чаще всего довольствуются 8-разрядными регистрами. Следует иметь в виду, что AL и АН — не что иное, как имена двух половин регистра АХ. При записи в АХ нового 16-разрядного числа в AL и АН размещаются его нижняя и верхняя половины, соответственно. Взаимодействие регистров АХ, АН и AL можно проиллюстрировать следующей командой:

Она загружает в регистр АХ десятичное значение 258. После завершения этой команды в байтовом регистре АН оказывается значение 1, а в байтовом регистре AL — значение 2. Пусть следом за этой командой следует другая:

В этом случае к значению байтового регистра АН прибавляется значение AL (то есть 2), и результирующее значение становится равным 3. В результате этой операции в регистр АХ записывается новое значение — 770, эквивалентное значению 00000011 00000010 в двоичной системе счисления или значению 0x03 0x02 в шестнадцатеричной системе счисления. Как правило, два регистра по 8 байт взаимозаменяемы. Исключение составляет лишь команда MULB, при выполнении которой один из операндов всегда сохраняется в регистре AL, который вместе с АН является в этом случае приемником. При выполнении команды DIVB в паре регистров АН и AL сохраняется делимое. Нижний байт регистра-счетчика CL применяется для хранения числа циклов при выполнении команд обычного и циклического сдвига.

РЕГИСТРЫ. СЧЕТЧИКИ

Регистры.Регистры – самые распространенные элементы цифровых устройств. Они оперируют с множеством связанных переменных, составляющих слово. Слово – это двоичный код (чаще 8-разрядный), представляющий собой или данные, или команды (если устройство программируемое). В микроконтроллерах (МК), например, в МК AVR фирмы Atmel, имеются 32 8-разрядных регистра общего назначения (для хранения данных и адресов) и до 128 специальных регистров (для хранения команд и слов инициализации). Регистры называют СОЗУ – супероперативными запоминающими устройствами.

Регистры состоят из разрядных схем, в которых имеются триггеры и логические элементы. Пример параллельного регистра и таблица истинности приведены на рисунке 9.13. Схема регистра приведена на рисунке 9.2.

Типы регистров.Главным классификационным признаком регистров является способ приема и выдачи информации. По этому признаку различают параллельные регистры, последовательные и параллельно-последовательные. В параллельных регистрах прием и выдача информации производится по всем разрядам параллельно. В них хранятся слова, которые могут быть подвергнуты поразрядным логическим преобразованиям.

В последовательных регистрах слова принимаются и выдаются последовательно, разряд за разрядом. Их называют сдвигающими, поскольку они передвигают информацию по разрядной сетке.

Параллельно-последовательные регистры имеют входы-выходы одновременно и последовательные и параллельные. В параллельных регистрах разряды информацией не обмениваются, общими для разрядов являются цепи управления.

Для современной схемотехники характерно построение регистров на D –триггерах, с тактируемым по фронту входом; многие регистры имеют выходы с тремя состояними («0», «1» и z –состоянием – высокого сопротивления, как на рисунке 9.2). Некоторые регистры выполняют функции буферов, то есть имеют повышенную нагрузочную способность.

Примерыотечественных параллельных регистров стандартных серий (155, 1533), срабатывающих по фронту, приведены на рисунке 9.14, где ТМ8 – четырехразрядный регистр, остальные – восьмиразрядные.

Рис. 9.14. Примеры отечественных параллельных регистров

Рассмотрим подробнее регистр К155ИР27. Запись информации осуществляется по переднему фронту синхросигнала (0→1) при отрицательном активном уровне сигнала WE (write enable –разрешение записи, таблица 9.4).

Таблица 9.4. Таблица истинности регистра ИР27

Сдвиговые регистры.Регистры сдвига представляют собой последовательно соединенную цепочку D-триггеров (рисунок 9.15) Основной режим их работы – это сдвиг разрядов кода, записанного в эти триггеры, то есть по тактовому сигналу содержимое каждого предыдущего триггера переписывается в следующий по порядку в цепочке триггер. Код, хранящийся в регистре, с каждым тактом сдвигается на один разряд в сторону старших разрядов. На рисунке 9.15 слева расположены младшие разряды и сдвиг информации осуществляется вправо.

Рис. 9.15. Сдвиговый регистр

Многофункциональные регистры(параллельно- последовательые) обладают свойствами и параллельных, и последовательных регистров. На рисунке 9.16 представлены несколько вариантов универсальных регистров. В таких регистрах вход может быть параллельным, а выход – последовательным (ИР9) или наоборот: вход последовательным, а выход параллельным (ИР8). В регистре ИР13 при различных сочетаниях управляющих сигналов входы и выходы могут быть и параллельными , и последовательными.

В регистре ИР9 запись входного кода в регистр производится по нулевому сигналу на входе WR (активный уровень – нулевой, см. таблицу истинности 2), Сдвиг осуществляется по положительному фронту сигналов на одном из входов С1 и С2, объединенных по функции 2ИЛИ.

Имеется также вход расширения DR, сигнал с которого в режиме сдвига перезаписывается в младший разряд сдвигового регистра

Таблица 3. Таблица истинности сдвигового регистра ИР9

СЧЕТЧИКИ. Счетчики предназначены для подсчета входных импульсов, то есть с приходом каждого нового входного импульса содержимое суммирующего счетчика увеличивается на единицу (или уменьшается на единицу в случае вычитающего счетчика).

Режим счета обеспечивается использованием триггеров, работающих в счетном режиме. Счетчики бывают синхронными и асинхронными.

В асинхронных счетчикахсинхронизирующие входы триггеровсоединяются с выходами соседних триггеров(рисунок 9.17,а). Асинхронным он называется потому, что триггеры с приходом счетного импульса опрокидываются последовательно,а не в соответствии с поступающими счетными импульсами. Если, например, все четыре триггера в счетчике находятся в единице, то очередной входной импульс опрокинет первый триггер, изменение потенциала на его выходе приведет к опрокидыванию второго триггера; выходной сигнал второго триггера в свою очередь опрокинет третий, и уж после этого опрокинется четвертый триггер.

Рис. 9.17. Схема двоичного счетчика К155ИЕ5

Недостатком асинхронных триггеров является задержка в установлении выходного кода после прихода счетного импульса

Для счетчика К155ИЕ5 выход первого триггера и вход второго триггера не соединены, так что есть возможность их соединить и получить четырехразрядный счетчик; или же использовать их по отдельности: одноразрядный и трехразрядный счетчики.

Все триггеры счетчика К155ИЕ5 имеют общую цепь начальной установки триггеров в нуль, которая управляется через вентиль И.

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

Вариантсинхронного счетчикана базе JK — триггеров приведен на рисунке 9.16.. Это счетчик со сквозным переносом. На вход первого триггера подается сигнал разрешения Р, На входы J и K следующих триггеров подаются конъюнкции (И) сигналов разрешения и сигналов с прямых выходов предыдущих триггеров.

Конъюнкции выполняются как в самом триггере (2 и 3 триггеры), так и с помощью внешних цепей (4-й триггер). Триггер срабатывает, если предыдущие триггеры установлены в «1» и есть сигнал разрешения счета.

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

В составе микропроцессоров и микроконтроллеров (МК) тоже много счетчиков: счетчик команд микропроцессора (суммирующий счетчик), указатель стека (вычитающий счетчик), многочисленные таймеры-счетчики. На базе программно-аппаратных средств МК легко строятся различные измерительные устройства. Рассмотрим аппаратный вариант измерителя длительности импульсов (рисунок 9.19). Временная диаграмма работы измерителя длительности импульсов приведена на рисунке 9.20. .

Работа схемы начинается по короткому управляющему импульсу «Старт», который сбрасывает счетчик в нуль и переводит всю схему в режим счета, разрешая прохождение сигнала с тактового генератора на на вход +1 счетчика при положительном входном сигнале.

В течение входного сигнала счетчик считает эти импульсы, а по окончании входного сигнала поступление импульсов на вход счетчика прекращается, триггер перебрасывается в исходное состояние и сообщает отрицательным фронтом о готовности выходного кода (сигнал «Готовность»).

Работа схемы возобновится по следующему импульсу «Старт». Выходной код N измерителя связан с длительностью входного сигнала соотношением

где T – период тактового сигнала. Абсолютная погрешность измерения не превышает ±T.

studopedia.org — Студопедия.Орг — 2014-2021 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.004 с) .

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector