Триггеры — различия между версиями
(→Триггеры) |
(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 | Инвертированное предыдущее |