Kodér: Porovnání verzí

Smazaný obsah Přidaný obsah
W.Rebel (diskuse | příspěvky)
W.Rebel (diskuse | příspěvky)
Řádek 84:
 
=== Řízený kodér ===
[[Soubor:Calc Keyboard Coder.png|thumb|right|Příklad kodéru pro klávesnici jednoduché kalkulačky. Při maticovém zapojení je potřeba pouze 10 signálů, při použití pasivního kodéru by bylo nutno použít 23 signálů.]]
Řízený dekodér je použit ve spojení s maticovou klávesnicí, tedy takovou klávesnicí, kde jsou tlačítka zapojena mezi řádkové a sloupcové vodiče v tzv. matici. Každé tlačítko, při stisku, propojí tytoodpovídající vodiče, nad kterými je umístěno. V porovnání s předchozím příkladem je toto zapojení úspornější v počtu potřebných vodičů a odporů. Zapojení pro svoji funkci potřebuje [[demultiplexor]] repektive [[dekodér]] s [[otevřený kolektor|otevřeným kolektorem]], který řídí stavové signály řádků a spíná je na společný potenciál, tedy kna definovanou definovanéhodnotu log. 0. Řídící signály jsou zapojeny najen na řádkový dekodér, ale i na vstupy kodéru, aby mohl pracovat s informací o tom, který řádek je aktuálně zvolen a podle změny stavu signálu ve sloupci mohl generovat správný kód. Na vstupních signálech A<sub>0</sub> a A<sub>1</sub> se cyklicky mění stav 0-3<sub>D</sub> ([[dekadická soustava]]), tj. 00-11<sub>B</sub> ([[binární soustava]]) v poměrně vysoké frekvenci, aby nedocházelo k čekání na vyhodnocení stavu. Dekodér během cyklu, kdy jsou aktivovány jednotlivé řádky Q<sub>0</sub>-Q<sub>3</sub>, sleduje stav na řádkových I<sub>0</sub>-I<sub>1</sub> a sloupcových I<sub>2</sub>-I<sub>4</sub> vstupechvstupů. Na konci cyklu vyhodnotí stav signálů a podle výsledku přiřadí výstupním signálům kódovou informaci, kterou potvrdí ''impulsem'' na výstupu S. Vyhodnocování až na konci cyklu je nutné z toho důvodu, aby bylo možno detekovat stav stisknutí více tlačítek, který je zpravidla nežádoucí. Stejně jako v předchozím případě je využíváno pouze 12 tlačítek ze 16 možných. Opět je možno jednomu z tlačítek přiřadit funkci přepínače a využít všech 16 kombinací na výstupu. V příkladu je jako přepínače použito tlačítko "#" a tlačítka v pravém sloupci (detekuje se pouze 15 stavů). Logika kodéru dále vyhodnocuje zakázané stavy současného stisknutí více tlačítek v řádku i ve sloupci a v takovém případě není generován impuls na výstupu S, pro použití tlačítka "#" jako přepínače platí, že musí být stisknuto jako první a následně k němu stisknuto jedno ze zvolenách tlačítek "OK", "3", "6", "9" (obdobně jako se používá například klávesa SHIFT na PC klávesnici).
 
{| class="wikitable" align="center" style="text-align: center;"
|+ Funkční tabulka kodéru
!rowspan="3"|schema zapojení||colspan="6"|&nbsp;řádkový dekodér&nbsp;||rowspan="17"| ||colspan="10"|&nbsp;výstupní kodér&nbsp;||rowspan="17"| ||rowspan="3"|stisknuté<br />tlačítko
|-
!colspan="2"|adresa||colspan="4"|řádky||colspan="2"|adresa||colspan="3"|sloupce||colspan="4"|kód||rowspan="2"|&nbsp;S&nbsp;
Řádek 94 ⟶ 95:
!A<sub>1</sub>||A<sub>0</sub>||Q<sub>3</sub>||Q<sub>2</sub>||Q<sub>1</sub>||Q<sub>0</sub>||I<sub>0</sub>||I<sub>1</sub>||&nbsp;I<sub>2</sub>&nbsp;||&nbsp;I<sub>3</sub>&nbsp;||&nbsp;I<sub>4</sub>&nbsp;||Q<sub>3</sub>||Q<sub>2</sub>||Q<sub>1</sub>||Q<sub>0</sub>
|- bgcolor="white"
|rowspan="2823"|[[File:Lock Keyboard Coder.png|275px]]
|- bgcolor="white"
|X||X ||X||X||X||X ||X||X ||1||1||1 ||X||X||X||X ||0||žádné
|-
|rowspan="3"|0||rowspan="3"|0 ||rowspan="3"|H||rowspan="3"|H||rowspan="3"|H||rowspan="3"|'''<big>0</big>''' ||rowspan="3"|0||rowspan="3"|0 ||'''<big>0</big>'''||1||1 ||1||0||1||1 ||°'''↑'''||#
|-
|0||0 ||H||H||H||0 ||0||0 ||1||'''<big>0</big>'''||1 ||0||0||0||0 ||°'''↑'''||0
|-
|0||0 ||H||H||H||0 ||0||0 ||1||1||'''<big>0</big>''' ||1||0||1||0 ||°'''↑'''||OK
|- bgcolor="white"
|rowspan="3"|0||rowspan="3"|1 ||rowspan="3"|H||rowspan="3"|H||rowspan="3"|'''<big>0</big>'''||rowspan="3"|H ||rowspan="3"|1||rowspan="3"|0 ||'''<big>0</big>'''||1||1 ||0||0||0||1 ||°'''↑'''||1
|- bgcolor="white"
|0||1 ||H||H||0||H ||1||0 ||1||'''<big>0</big>'''||1 ||0||0||1||0 ||°'''↑'''||2
|- bgcolor="white"
|0||1 ||H||H||0||H ||1||0 ||1||1||'''<big>0</big>''' ||0||0||1||1 ||°'''↑'''||3
|-
|rowspan="3"|1||rowspan="3"|0 ||rowspan="3"|H||rowspan="3"|'''<big>0</big>'''||rowspan="3"|H||rowspan="3"|H ||rowspan="3"|0||rowspan="3"|1 ||'''<big>0</big>'''||1||1 ||0||1||0||0 ||°'''↑'''||4
|-
|1||'''<big>0 ||H||0||H||H ||0||1 ||1||0</big>'''||1 ||0||1||0||1 ||°'''↑'''||5
|-
|1||0 ||H||0||H||H ||0||1 ||1||1||'''<big>0</big>''' ||0||1||1||0 ||°'''↑'''||6
|- bgcolor="white"
|rowspan="3"|1||rowspan="3"|1 ||rowspan="3"|'''<big>0</big>'''||rowspan="3"|H||rowspan="3"|H||rowspan="3"|H ||rowspan="3"|1||rowspan="3"|1 ||'''<big>0</big>'''||1||1 ||0||1||1||1 ||°'''↑'''||7
|- bgcolor="white"
|1||1 ||0||H||H||H ||1||1 ||1||'''<big>0</big>'''||1 ||1||0||0||0 ||°'''↑'''||8
|- bgcolor="white"
|1||1 ||0||H||H||H ||1||1 ||1||1||'''<big>0</big>''' ||1||0||0||1 ||°'''↑'''||9
|-
|!colspan="1719"|chybovés použitím "#" jako stavypřepínače
|- bgcolor="white"
|X||X ||X||X||X||X ||X||X ||0||0||1 ||XH||XH||XH||X'''<big>0</big>''' ||0||1+1
!rowspan="8"|
|0||0 ||H||H||H||'''<big>0 </big>'''||0||0 ||01||1||0 ||1X||0X||1X||1X ||°0
!rowspan="8"|
|rowspan="2"|(#)<br /># + OK
|- bgcolor="white"
|X0||X0 ||XH||XH||XH||X'''<big>0</big>''' ||X0||X0 ||'''<big>0</big>'''||1||'''<big>0</big>''' ||X1||X0||X1||X1 ||0||1+1'''↑'''
|- bgcolor="white"
|X||X ||X||X||X||X ||X||X ||1||0||0 ||X||X||X||X ||0||1+1
|- bgcolor="white"
|X||X ||X||X||X||X ||X||X ||0||0||0 ||X||X||X||X ||0||1+2
|-
|0||0 ||H||H||H||'''<big>0</big>''' ||0||0 ||'''<big>0</big>'''||1||1 ||X||X||X||X ||0||rowspan="2"|(#)<br /># + OK3
|colspan="17"|s použitím "#" jako přepínače
|- bgcolor="white"
|0||0 ||H||H||H||0 ||0||0 ||0||1||1 ||X||X||X||X ||0||rowspan="2"|(#)<br /># + OK
|- bgcolor="white"
|0||0 ||H||H||H||0 ||0||0 ||0||1||0 ||1||0||1||1 ||°
|-
|0||01 ||H||H||H'''<big>0</big>'''||0H ||01||0 ||01||1||1'''<big>0</big>''' ||X1||X1||X0||X0 ||0||rowspan="2"|(#)<br /># + 3'''↑'''
|-
|0||1 ||H||H||0||H ||1||0 ||1||1||0 ||1||1||0||0 ||°
|- bgcolor="white"
|0||0 ||H||H||H||'''<big>0</big>''' ||0||0 ||'''<big>0</big>'''||1||1 ||X||X||X||X ||0||rowspan="2"|(#)<br /># + 6
|- bgcolor="white"
|1||0 ||H||'''<big>0</big>'''||H||H ||0||01 ||1||1||'''<big>0</big>''' ||1||1||0||1 ||°'''↑'''
|-
|0||0 ||H||H||H||'''<big>0</big>''' ||0||0 ||'''<big>0</big>'''||1||1 ||X||X||X||X ||0||rowspan="2"|(#)<br /># + 9
|-
|1||1 ||'''<big>0</big>'''||H||H||H ||1||1 ||1||1||'''<big>0</big>''' ||1||1||1||0 ||°'''↑'''
 
|}
{|
|- bgcolor="white"
|valign="top" align="right" rowspan="43"|Vysvětlivky:
|X ||colspan="1718" align="left"|libovolný stav, log. 0 nebo log. 1
|- bgcolor="white"
|H||colspan="1718" align="left"|stav vysoké impedance
|- bgcolor="white"
|#+x||colspan="1718" align="left"|libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5impuls
|- bgcolor="white"
|1+#||colspan="17" align="left"|libovolná kombinace stisknutí více tlačítek mimo #+1 … #+5
|}
 
V dnešní praxi je pro obsluhu klávesnice místo kodéru používán [[řadič]] [[klávesnice]], který sdružuje všechny potřebné funkce a ošetření stavů včetně opakování znaků.
 
== Související články ==