65
правок
Изменения
Триггеры
,D and T added
=== Синхронный 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"
=== 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"
|1
!|Инвертированное предыдущее
|-
|}
JK-триггер является универсальным триггером, на его основе можно построить множество других триггеров, например RS-триггер.
[[Файл:Rs_through_jk.jpg|150px|thumb|left|RS-триггер через JK-триггер]]
=== T-триггер ===
[[Файл:T.jpg|200px|thumb|right|T-триггер]]
T(toggle)-триггер является триггером, изменяющим свое выходное значение на противоположное на каждом такте, когда на входы <tex>T</tex> и <tex>C</tex> поданы единицы. На основе нескольких T-триггеров можно построить счетчик. T-триггер тоже строится на основе JK-триггера.
{| class="wikitable" align="center" style="color: black; background-color:white;" cellpadding="10"
!<tex>C</tex>
!<tex>T</tex>
!<tex>Q</tex>
|-
|0
|0
!|Предыдущее значение
|-
|0
|1
!|Предыдущее значение
|-
|1
|0
!|Предыдущее значение
|-
|1
|1
!|Значение меняется на каждом такте
|-
|}
=== D-триггер ===
[[Файл:D.jpg|200px|thumb|right|D-триггер]]
D(delay)-триггер позволяет сохранять предыдущее значение. При подаче единицы на бит синхронизации идет запись значения, которое подается на вход <tex>D</tex>. Когда на бит синхронизации подается ноль, значение на выходе равно записанному раньше значению. С помощью восьми D-триггеров можно построить простейшую восьмибитную ячейку памяти.
{| class="wikitable" align="center" style="color: black; background-color:white;" cellpadding="10"
!<tex>C</tex>
!<tex>D</tex>
!<tex>Q</tex>
|-
|0
|0
!|Записанное ранее значение
|-
|0
|1
!|Записанное ранее значение
|-
|1
|0
!|Запись <tex>0</tex>
|-
|1
|1
!|Запись <tex>1</tex>
|-
|}