Триггеры — различия между версиями
(→Триггеры) |
(Added RS, RS_sync, JK triggers.) |
||
Строка 1: | Строка 1: | ||
− | + | '''Триггеры''' (англ. <i>flip-flop</i>) {{---}} класс электронных устройств, имеющих свойство долго находиться в одном из двух устойчивых состояний и чередовать их под воздействием внешних сигналов. | |
− | '''Триггеры''' | ||
− | Основной особенностью триггеров является способность запоминать двоичную информацию. Триггер имеет два состояния и, приняв одно за " | + | Основной особенностью триггеров является способность запоминать двоичную информацию. Триггер имеет два состояния и, приняв одно за "0", а другое за "1", появляется возможность хранить один разряд двоичного числа. Таким образом, используя несколько триггеров, возможно хранить многоразрядные числа, а, значит, и любую двоичную информацию, ограниченную лишь количеством триггеров. |
− | |||
− | |||
== Типы триггеров == | == Типы триггеров == | ||
− | + | [[Файл:Rs.jpg|250px|thumb|right|RS-триггер]] | |
− | {| | + | === RS-триггер === |
− | + | ||
− | + | Простейшим триггером является RS-триггер. Он имеет два входа: <tex>R</tex> (reset) и <tex>S</tex> (set). При подаче <tex>1</tex> на <tex>R</tex>, <tex>0</tex> на <tex>S</tex> выходное значение триггера становится нулем (происходит сброс значения), при подаче <tex>0</tex> на <tex>R</tex>, <tex>1</tex> на <tex>S</tex> выходное значение триггера становится единицей (происходит установка нового значения). При подаче двух нулей триггер свое состояние не меняет, выходное значение при подаче двух единиц не определено. На <tex>Q</tex> подается выходное значение, <tex>\overline{Q}=\neg Q</tex>. | |
− | ! | + | |
− | ! | + | {| class="wikitable" align="center" style="color: black; background-color:white;" cellpadding="10" |
+ | !<tex>R</tex> | ||
+ | !<tex>S</tex> | ||
+ | !<tex>Q</tex> | ||
+ | |- | ||
+ | |0 | ||
+ | |0 | ||
+ | !|Предыдущее значение | ||
|- | |- | ||
− | |0|| | + | |0 |
+ | |1 | ||
+ | !|1 | ||
|- | |- | ||
− | |0 | + | |1 |
+ | |0 | ||
+ | !|0 | ||
|- | |- | ||
− | | | + | |1 |
+ | |1 | ||
+ | !|Не определено | ||
|- | |- | ||
− | | | + | |} |
+ | |||
+ | === Синхронный RS-триггер === | ||
+ | [[Файл:Rs_sync.jpg|280px|thumb|right|Синхронный RS-триггер]] | ||
+ | Существенным недостатком RS-триггера является то, что если один из сигналов на вход придет раньше другого, триггер примет неправильное состояние. Для того, чтобы избежать этой проблемы, вводится еще один входной сигнал: сигнал синхронизации. Синхронный RS-триггер будет как-либо реагировать на входные сигналы только в том случае, когда на вход <tex>C</tex> подана единица. В остальном синхронный RS-триггер не отличается от обычного RS-триггера. | ||
+ | |||
+ | {| class="wikitable" align="center" style="color: black; background-color:white;" cellpadding="10" | ||
+ | !<tex>C</tex> | ||
+ | !<tex>R</tex> | ||
+ | !<tex>S</tex> | ||
+ | !<tex>Q</tex> | ||
|- | |- | ||
− | | | + | |0 |
+ | |0 | ||
+ | |0 | ||
+ | !|Предыдущее значение | ||
|- | |- | ||
− | | | + | |0 |
+ | |0 | ||
+ | |1 | ||
+ | !|Предыдущее значение | ||
|- | |- | ||
− | | | + | |0 |
+ | |1 | ||
+ | |0 | ||
+ | !|Предыдущее значение | ||
|- | |- | ||
− | |1||1||1|| | + | |0 |
+ | |1 | ||
+ | |1 | ||
+ | !|Предыдущее значение | ||
+ | |- | ||
+ | |1 | ||
+ | |0 | ||
+ | |0 | ||
+ | !|Предыдущее значение | ||
+ | |- | ||
+ | |1 | ||
+ | |0 | ||
+ | |1 | ||
+ | !|1 | ||
+ | |- | ||
+ | |1 | ||
+ | |1 | ||
+ | |0 | ||
+ | !|0 | ||
+ | |- | ||
+ | |1 | ||
+ | |1 | ||
+ | |1 | ||
+ | !|Не определено | ||
|- | |- | ||
|} | |} | ||
− | == | + | === JK-триггер === |
+ | [[Файл:Jk.jpg|500px|thumb|right|JK-триггер]] | ||
+ | JK-триггер по принципу работы похож на синхронный RS-триггер. <tex>J</tex> (jump) является аналогом <tex>S</tex> (set), <tex>K</tex> (kill) является аналогом <tex>R</tex> (reset). При подаче единицы на бит синхронизации и при подаче единицы на <tex>J</tex> и нуля на <tex>K</tex> на выходе единица, при подаче нуля на <tex>J</tex> и единицы на <tex>K</tex> на выходе ноль. При обоих нулях выдается предыдущее значение. Существенным отличием JK-триггера от RS-триггеров является то, что состояние с двумя единицами на входе определено. При обоих единицах на выход подается инвертированное предыдущее значение. Стоит заметить, что JK-триггер существует только с синхронизацией, потому что без синхронизации при подаче на входы двух единиц, триггер бы постоянно переключался и не остановился бы в каком-то конкретном значении, а, если есть синхронизация, при подаче двух единиц, триггер меняет значение только при изменении сигнала синхронизации. | ||
+ | |||
+ | {| class="wikitable" align="center" style="color: black; background-color:white;" cellpadding="10" | ||
+ | !<tex>C</tex> | ||
+ | !<tex>J</tex> | ||
+ | !<tex>K</tex> | ||
+ | !<tex>Q</tex> | ||
+ | |- | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | !|Предыдущее значение | ||
+ | |- | ||
+ | |0 | ||
+ | |0 | ||
+ | |1 | ||
+ | !|Предыдущее значение | ||
+ | |- | ||
+ | |0 | ||
+ | |1 | ||
+ | |0 | ||
+ | !|Предыдущее значение | ||
+ | |- | ||
+ | |0 | ||
+ | |1 | ||
+ | |1 | ||
+ | !|Предыдущее значение | ||
+ | |- | ||
+ | |1 | ||
+ | |0 | ||
+ | |0 | ||
+ | !|Предыдущее значение | ||
+ | |- | ||
+ | |1 | ||
+ | |0 | ||
+ | |1 | ||
+ | !|0 | ||
+ | |- | ||
+ | |1 | ||
+ | |1 | ||
+ | |0 | ||
+ | !|1 | ||
+ | |- | ||
+ | |1 | ||
+ | |1 | ||
+ | |1 | ||
+ | !|Инвертированное предыдущее | ||
+ | |- | ||
+ | |} |
Версия 22:49, 26 февраля 2016
Триггеры (англ. flip-flop) — класс электронных устройств, имеющих свойство долго находиться в одном из двух устойчивых состояний и чередовать их под воздействием внешних сигналов.
Основной особенностью триггеров является способность запоминать двоичную информацию. Триггер имеет два состояния и, приняв одно за "0", а другое за "1", появляется возможность хранить один разряд двоичного числа. Таким образом, используя несколько триггеров, возможно хранить многоразрядные числа, а, значит, и любую двоичную информацию, ограниченную лишь количеством триггеров.
Типы триггеров
RS-триггер
Простейшим триггером является RS-триггер. Он имеет два входа:
(reset) и (set). При подаче на , на выходное значение триггера становится нулем (происходит сброс значения), при подаче на , на выходное значение триггера становится единицей (происходит установка нового значения). При подаче двух нулей триггер свое состояние не меняет, выходное значение при подаче двух единиц не определено. На подается выходное значение, .0 | 0 | Предыдущее значение |
---|---|---|
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | Не определено |
Синхронный RS-триггер
Существенным недостатком RS-триггера является то, что если один из сигналов на вход придет раньше другого, триггер примет неправильное состояние. Для того, чтобы избежать этой проблемы, вводится еще один входной сигнал: сигнал синхронизации. Синхронный RS-триггер будет как-либо реагировать на входные сигналы только в том случае, когда на вход
подана единица. В остальном синхронный RS-триггер не отличается от обычного RS-триггера.0 | 0 | 0 | Предыдущее значение |
---|---|---|---|
0 | 0 | 1 | Предыдущее значение |
0 | 1 | 0 | Предыдущее значение |
0 | 1 | 1 | Предыдущее значение |
1 | 0 | 0 | Предыдущее значение |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | Не определено |
JK-триггер
JK-триггер по принципу работы похож на синхронный RS-триггер.
(jump) является аналогом (set), (kill) является аналогом (reset). При подаче единицы на бит синхронизации и при подаче единицы на и нуля на на выходе единица, при подаче нуля на и единицы на на выходе ноль. При обоих нулях выдается предыдущее значение. Существенным отличием JK-триггера от RS-триггеров является то, что состояние с двумя единицами на входе определено. При обоих единицах на выход подается инвертированное предыдущее значение. Стоит заметить, что JK-триггер существует только с синхронизацией, потому что без синхронизации при подаче на входы двух единиц, триггер бы постоянно переключался и не остановился бы в каком-то конкретном значении, а, если есть синхронизация, при подаче двух единиц, триггер меняет значение только при изменении сигнала синхронизации.0 | 0 | 0 | Предыдущее значение |
---|---|---|---|
0 | 0 | 1 | Предыдущее значение |
0 | 1 | 0 | Предыдущее значение |
0 | 1 | 1 | Предыдущее значение |
1 | 0 | 0 | Предыдущее значение |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | Инвертированное предыдущее |