Hjelp behov for LCD-skjermen på spartansk 3E FPGA Board

Y

yousuf14

Guest
koden i er under for programmering LCD å vise ved hjelp av den spartanske 3E stedet for pico flammene:Code:

library IEEE;

bruk IEEE.STD_LOGIC_1164.ALL;

bruk IEEE.STD_LOGIC_ARITH.ALL;

bruk IEEE.STD_LOGIC_UNSIGNED.ALL;enhet LCD erport (

LCD_RS: out std_logic;

LCD_RW: out std_logic;

LCD_E: out std_logic;

CLK: in std_logic;

SF_D: out std_logic_vector (3 downto 0);

S: in std_logic

);end LCD;architecture Behavioral of LCD ersignal substate, stat, klokke, clk1: integer: = 0;begynneprocess (clk)

begynne

clk1 <= clk1 1;

hvis clk1 (= 0) then

Klokken <= klokke 1;- SKRIV FUCNTION SET-kommandoen SF_D <= 0x28

if (state = 0) then

if (substate = 0 og klokke = 0) then

LCD_RS <= '0 ';

LCD_RW <= '0 ';

SF_D <= "0010";

Klokke <= 0;

substate <= 1;

elsif (substate = 1 og klokke = 2) then

LCD_E <= '1 ';

Klokke <= 0;

substate <= 2;

elsif (substate = 2 og klokke = 12) så

LCD_E <= '0 ';

substate <= 3;

Klokke <= 0;

elsif (substate = 3 og klokke = 498) og

SF_D <= "1000";

Klokke <= 0;

substate <= 4;

elsif (substate = 4 og klokke = 2) then

LCD_E <= '1 ';

Klokke <= 0;

substate <= 5;

elsif (substate = 5 og klokke = 12) så

LCD_E <= '0 ';

substate <= 0;

state <= 1;

Klokke <= 0;

end if;

- Vent 2000 CLOCK

elsif (state = 1 og klokke = 2000) så

state <= 2;

Klokken <= 0;

- SKRIV ENTRY MODE SET-kommandoen SF_D <= 0x06

elsif (state = 2) then

if (substate = 0 og klokke = 0) then

LCD_RS <= '0 ';

LCD_RW <= '0 ';

SF_D <= "0000";

Klokke <= 0;

substate <= 1;

elsif (substate = 1 og klokke = 2) then

LCD_E <= '1 ';

Klokke <= 0;

substate <= 2;

elsif (substate = 2 og klokke = 12) så

LCD_E <= '0 ';

substate <= 3;

Klokke <= 0;

elsif (substate = 3 og klokke = 498) og

SF_D <= "0110";

Klokke <= 0;

substate <= 4;

elsif (substate = 4 og klokke = 2) then

LCD_E <= '1 ';

Klokke <= 0;

substate <= 5;

elsif (substate = 5 og klokke = 12) så

LCD_E <= '0 ';

substate <= 0;

state <= 3;

Klokke <= 0;

end if;

- Vent 2000 CLOCK

elsif (stat = 3 og klokke = 2000) så

state <= 4;

Klokken <= 0;

- SKRIV DISPLAY AV / PÅ KOMMANDO SF_D <= 0x0C

elsif (state = 4) og deretter

if (substate = 0 og klokke = 0) then

LCD_RS <= '0 ';

LCD_RW <= '0 ';

SF_D <= "0000";

Klokke <= 0;

substate <= 1;

elsif (substate = 1 og klokke = 2) then

LCD_E <= '1 ';

Klokke <= 0;

substate <= 2;

elsif (substate = 2 og klokke = 12) så

LCD_E <= '0 ';

substate <= 3;

Klokke <= 0;

elsif (substate = 3 og klokke = 498) og

SF_D <= "1100";

Klokke <= 0;

substate <= 4;

elsif (substate = 4 og klokke = 2) then

LCD_E <= '1 ';

Klokke <= 0;

substate <= 5;

elsif (substate = 5 og klokke = 12) så

LCD_E <= '0 ';

substate <= 0;

state <= 5;

Klokke <= 0;

end if;

- Vent til 2000 KLOKKE

elsif (stat = 5 og klokke = 2000) så

state <= 6;

Klokken <= 0;

- Skrive klare DISPLAY KOMMANDO SF_D <= 0x HA for å løse dette

elsif (state = 6) så

if (substate = 0 og klokke = 0) then

LCD_RS <= '0 ';

LCD_RW <= '0 ';

SF_D <= "0000"; - Jeg har faste IT

Klokke <= 0;

substate <= 1;

elsif (substate = 1 og klokke = 2) then

LCD_E <= '1 ';

Klokke <= 0;

substate <= 2;

elsif (substate = 2 og klokke = 12) så

LCD_E <= '0 ';

substate <= 3;

Klokke <= 0;

elsif (substate = 3 og klokke = 498) og

SF_D <= "0001"; - Jeg har faste IT

Klokke <= 0;

substate <= 4;

elsif (substate = 4 og klokke = 2) then

LCD_E <= '1 ';

Klokke <= 0;

substate <= 5;

elsif (substate = 5 og klokke = 12) så

LCD_E <= '0 ';

substate <= 0;

state <= 7;

Klokke <= 0;

end if;

- Vent til 82000 KLOKKE

elsif (stat = 7 og klokke = 82000) så

state <= 8;

Klokken <= 0;

- SKRIV SET DD RAM ADD SF_D <= 0x HA for å løse dette

elsif (state = 8) og

if (substate = 0 og klokke = 0) then

LCD_RS <= '0 ';

LCD_RW <= '0 ';

SF_D <= "1000"; - It has been fixed

Klokke <= 0;

substate <= 1;

elsif (substate = 1 og klokke = 2) then

LCD_E <= '1 ';

Klokke <= 0;

substate <= 2;

elsif (substate = 2 og klokke = 12) så

LCD_E <= '0 ';

substate <= 3;

Klokke <= 0;

elsif (substate = 3 og klokke = 498) og

SF_D <= "0000"; - It has been fixed

Klokke <= 0;

substate <= 4;

elsif (substate = 4 og klokke = 2) then

LCD_E <= '1 ';

Klokke <= 0;

substate <= 5;

elsif (substate = 5 og klokke = 12) så

LCD_E <= '0 ';

substate <= 0;

state <= 9;

Klokke <= 0;

end if;

- Vent til 2000 KLOKKE

elsif (stat = 9 og klokke = 2000) så

state <= 10;

Klokken <= 0;

- SKRIV DD RAM ADD SF_D <= 0x HA for å løse dette

elsif (delstat = 10) så

if (substate = 0 og klokke = 0) then

LCD_RS <= '1 ';

LCD_RW <= '0 ';

SF_D <= "1000"; - It has been fixed

Klokke <= 0;

substate <= 1;

elsif (substate = 1 og klokke = 2) then

LCD_E <= '1 ';

Klokke <= 0;

substate <= 2;

elsif (substate = 2 og klokke = 12) så

LCD_E <= '0 ';

substate <= 3;

Klokke <= 0;

elsif (substate = 3 og klokke = 498) og

SF_D <= "0000"; - It has been fixed

Klokke <= 0;

substate <= 4;

elsif (substate = 4 og klokke = 2) then

LCD_E <= '1 ';

Klokke <= 0;

substate <= 5;

elsif (substate = 5 og klokke = 12) så

LCD_E <= '0 ';

substate <= 0;

state <= 11;

Klokke <= 0;

end if;

elsif (delstat = 11) så

state <= 11;

Klokken <= 0;

end if;elsif (clk1 = 1) then

clk1 <= 0;

end if;

end process;

end Behavioral;
 

Welcome to EDABoard.com

Sponsor

Back
Top