Stap 9: Zeven Segment Decoder
De zeven-segment decoder module worden weergegeven voor de gebruiker welke spanningen is het lezen van het zonnepaneel. Duurt in de waarde van de ADC als input en en uitgangen twee signalen die de macht van de sever segment weergeven op het bord. Het eerste signaal is een 4-bits nummer dat is een actieve laag inschakelen die wordt gebruikt om te bepalen welke van de vier zones van de weergave moet worden ingeschakeld om de waarde weer te geven. Het andere signaal is een 8-bits getal dat ook een actieve laag inschakelen is. Het wordt gebruikt voor het activeren van de segmenten aan de individuele zone.
De manier waarop die de Raad van bestuur is ontworpen maakt het zo dat slechts één zone tegelijk kan worden ingeschakeld. Dit maakt het zodat u wilt snel wijzigen welke zone is wordt ingeschakeld. Als u dit met de juiste snelheid, zal het lijken doet alsof de displays alle op is tegelijkertijd wanneer echt ze zijn gewoon draaien op en af zo snel dat het imperceivable.
Hier is de beschrijving van de entiteit voor de zeven segment decoder.
entiteit sseg_dec is
Poort (ALU_VAL: in std_logic_vector (9 downto 0);
: Inloggen std_logic;
GELDIG: in std_logic;
CLK: in std_logic;
DISP_EN: uit std_logic_vector (3 downto 0);
SEGMENTEN: uit std_logic_vector (7 downto 0));
einde sseg_dec;
Zoals de servo-bestuurder, de zeven segment decoder ook structureel vastgelegd met twee andere componenten. Het eerste onderdeel is het werkpaard van de module. Het is de binair naar decimaal converter. Dit kost de 10-bits ALU_VAL en uitgangen 4 signalen die corresponderen met de binaire waarden van de decimale getallen die deel van de ALU_VAL uitmaken. Bijvoorbeeld, als ALU_VAL = 110001011 = 395, dan de binair naar decimaal converter zou de uitgang 0000, 0011, 1001 en 0101. Deze komen overeen met 0, 3, 9 en 5 respectievelijk. Omdat ALU_VAL een 10-bits getal is, is de maximumwaarde die het kan vertegenwoordigen 1023. De tweede component is een klok-verdeler die wordt gebruikt voor de weergave in een tempo dat het lijkt maakt alsof er meer dan één segment op multiplex.
Deze module werd oorspronkelijk gemaakt door Prof Bryan Mealy. Het oorspronkelijk weergegeven tot een 8-bits getal (0-255), maar we het zodanig aangepast dat het kon worden weergegeven tot een 10-bits getal (0-1023).