Johnson-koodi on eräänlainen binäärilukujärjestelmä , jossa kaksi vierekkäistä koodia eroavat toisistaan vain yhdellä binäärinumerolla.
Vuonna 1953 Robert Royce Johnson kehitti useita erilaisia laskureita, jotka perustuivat vaihteleviin tilojen siirtorekistereihin yksinkertaisella takaisinkytkentälogiikalla ja haki patenttia [1] . Johnsonin koodissa toimiva laskuri on yksinkertaisin niistä.
N | bittiä | |||
---|---|---|---|---|
neljä | 3 | 2 | yksi | |
0 | 0 | 0 | 0 | 0 |
yksi | 0 | 0 | 0 | yksi |
2 | 0 | 0 | yksi | yksi |
3 | 0 | yksi | yksi | yksi |
neljä | yksi | yksi | yksi | yksi |
5 | yksi | yksi | yksi | 0 |
6 | yksi | yksi | 0 | 0 |
7 | yksi | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 |
yksi | 0 | 0 | 0 | yksi |
Kuvassa on kaavio Johnson-koodissa toimivasta 4-bittisestä binäärilaskurista . Muutokset tämän laskurin bittien tilassa vastaavat taulukossa annettuja. Kun pulssi on syötetty "Reset"-riville, kaikki laskurin numerot asetetaan loogiseen 0-tilaan, kun taas looginen 1 on läsnä ensimmäisen D-liipaisimen D-tulossa, koska tämä tulo vastaanottaa signaalin. neljännen liipaisimen käänteislähdöstä. Kellopulssin "Count" nousevalla reunalla ensimmäinen liipaisin asetetaan tilaan looginen 1, joka välitetään toisen liipaisimen D-tuloon. Seuraava kellopulssi siirtää tämän liipaisimen Logic 1 -tilaan jne. Kun 4 kellopulssia on käytetty, kaikki liipaisimet siirtyvät Logic 1 -tilaan ja logiikka 0 asetetaan ensimmäisen liipaisimen sisääntuloon, sitten liipaisimet ottaa peräkkäin loogisen tilan 0, kunnes kaikkia laukaisuja ei aseteta loogisen nollan tilaan, alkutilaan.