User Tools

Site Tools


projects:maps21:s:fr:vhdl

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;
projects/maps21/s/fr/vhdl.txt · Last modified: 2022/01/15 19:44 by carsten