☚ [[projects:maps21:s:fr:front#entwurf_ansteuerung|Zurück]] ★ ====== VHDL-Code "Displaycontrol ====== * Einlesen Trafosteuerwort aktiver Trafo auf ms-Takt 14 (Erfassung) * Einlesen Klemmpuls aktiver Trafo auf ms-Takt [15..19] (Erfassung) * Ausgabe Vorgabe LEDs drün, rot auf ms-Takt [1..14] (Dartstellung) entity Displaycontrol is port( Clock, ms-Takt, Balken: in bit; T0, T1, T2, T3, T4, T5, T6, T7: in bit_vector(5 downto 0); -- 5 Bit Trafosteuerwort K0, K1, K2, K3, K4, K5, K6, K7: in bit; -- 5 Bit Trafosteuerwort, 1 Bit grün, rot: out bit_vector(2 downto 0) ); -- 7 Bit LED grün, 7 Bit LED rot end Displaycontrol; architecture Erfassung of Displaycontrol signal Takt: bit_vector(4 downto 0); -- Takt 0 .. 19 signal Dekade: bit_vector(3 downto 0); -- Dekade 0 .. 9 -- zehn 20ms Zyklen (Zeilen Display) signal Tr0, Tr1, Tr2, Tr3, Tr4, Tr5, Tr6, Tr7, Vg, EK: bit_vector(4 downto 0); -- Steuerbits Trafos signal Kl0, Kl1, Kl2, Kl3, Kl4, Kl5, Kl6, Kl7, Kl8, Kl9: bit_vector(2 downto 0); -- Klemmpulse signal Ausst: bit_vector(6 downto 0); -- dekodierter Rangebalken begin v-Änderung? Tr0 <= T0 NOT ("01110" XOR Takt) -- Erfassung bei 14ms Tr1 <= T1 XOR "01110" XOR Takt Tr2 <= T2 XOR "01110" XOR Takt Tr3 <= T3 XOR "01110" XOR Takt Tr4 <= T4 XOR "01110" XOR Takt Tr5 <= T5 XOR "01110" XOR Takt Tr6 <= T6 XOR "01110" XOR Takt Tr7 <= T7 XOR "01110" XOR Takt with Balken&'0'&Deakade select -- Steuerwort eines Trafos ... Ausst <= (T0(1),T0(2),T0(3)) when "00000", -- ...zur Ausgabe gewählt binär oder als Aussteuerbalken! (T1(1),T1(2),T1(3)) when "00001", (T2(1),T2(2),T2(3)) when "00010", (T3(1),T3(2),T3(3)) when "00011", (T4(1),T4(2),T4(3)) when "00100", (T5(1),T5(2),T5(3)) when "00101", (T6(1),T6(2),T6(3)) when "00110", (T7(1),T7(2),T7(3)) when "00111", "00000" when "10000", "10000" when "10001", "11000" when "10010", (T3(1),T3(2),T3(3)) when "10011", (T4(1),T4(2),T4(3)) when "10100", (T5(1),T5(2),T5(3)) when "10101", (T6(1),T6(2),T6(3)) when "10110", (T7(1),T7(2),T7(3)) when "10111", end Erfassung;