besoin d'aide pour le LCD sur FPGA Spartan 3E

Y

yousuf14

Guest
le code est inférieur à la programmation de l'écran ACL pour afficher l'aide du Spartan 3E au lieu de l'incendie pico:Code:

Bibliothèque IEEE;

utilisation ieee.std_logic_1164.all;

utilisation IEEE.STD_LOGIC_ARITH.ALL;

utilisation IEEE.STD_LOGIC_UNSIGNED.ALL;entité LCD estport (

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

);fin LCD;Behavioral architecture du LCD estsubstate signal, l'état, l'horloge, CLK1: integer: = 0;commencerprocess (clk)

commencer

CLK1 <= CLK1 1;

if (CLK1 = 0) alors

clock <= clock 1;- NOTER FUCNTION commande SET SF_D <= 0x28

if (state = 0) alors

if (substate = 0 et clock = 0) alors

LCD_RS <= '0 ';

LCD_RW <= '0 ';

SF_D <= "0010";

Horloge <= 0;

substate <= 1;

elsif (substate = 1 et clock = 2) puis

LCD_E <= '1 ';

Horloge <= 0;

substate <= 2;

elsif (substate = 2 et clock = 12) puis

LCD_E <= '0 ';

substate <= 3;

Horloge <= 0;

elsif (substate = 3 et l'horloge = 498), alors

SF_D <= "1000";

Horloge <= 0;

substate <= 4;

elsif (substate = 4 et clock = 2) puis

LCD_E <= '1 ';

Horloge <= 0;

substate <= 5;

elsif (substate = 5 et clock = 12) puis

LCD_E <= '0 ';

substate <= 0;

State <= 1;

Horloge <= 0;

End If;

- WAIT 2000 Horloge

elsif (state = 1 et l'horloge = 2000) puis

State <= 2;

clock <= 0;

- NOTER entrée Mode commande SET SF_D <= 0x06

elsif (état = 2) puis

if (substate = 0 et clock = 0) alors

LCD_RS <= '0 ';

LCD_RW <= '0 ';

SF_D <= "0000";

Horloge <= 0;

substate <= 1;

elsif (substate = 1 et clock = 2) puis

LCD_E <= '1 ';

Horloge <= 0;

substate <= 2;

elsif (substate = 2 et clock = 12) puis

LCD_E <= '0 ';

substate <= 3;

Horloge <= 0;

elsif (substate = 3 et l'horloge = 498), alors

SF_D <= "0110";

Horloge <= 0;

substate <= 4;

elsif (substate = 4 et clock = 2) puis

LCD_E <= '1 ';

Horloge <= 0;

substate <= 5;

elsif (substate = 5 et clock = 12) puis

LCD_E <= '0 ';

substate <= 0;

State <= 3;

Horloge <= 0;

End If;

- WAIT 2000 Horloge

elsif (state = 3 et l'horloge = 2000) puis

State <= 4;

clock <= 0;

- NOTER DISPLAY ON / OFF COMMANDEMENT SF_D <= 0x0C

elsif (state = 4) puis

if (substate = 0 et clock = 0) alors

LCD_RS <= '0 ';

LCD_RW <= '0 ';

SF_D <= "0000";

Horloge <= 0;

substate <= 1;

elsif (substate = 1 et clock = 2) puis

LCD_E <= '1 ';

Horloge <= 0;

substate <= 2;

elsif (substate = 2 et clock = 12) puis

LCD_E <= '0 ';

substate <= 3;

Horloge <= 0;

elsif (substate = 3 et l'horloge = 498), alors

SF_D <= "1100";

Horloge <= 0;

substate <= 4;

elsif (substate = 4 et clock = 2) puis

LCD_E <= '1 ';

Horloge <= 0;

substate <= 5;

elsif (substate = 5 et clock = 12) puis

LCD_E <= '0 ';

substate <= 0;

State <= 5;

Horloge <= 0;

End If;

- ATTENDRE POUR 2000 HORLOGE

elsif (state = 5 et clock = 2000) puis

State <= 6;

clock <= 0;

- NOTER CLEAR commande display SF_D <= 0x ONT afin de résoudre ce

elsif (state = 6), puis

if (substate = 0 et clock = 0) alors

LCD_RS <= '0 ';

LCD_RW <= '0 ';

SF_D <= "0000", - je l'ai FIXE

Horloge <= 0;

substate <= 1;

elsif (substate = 1 et clock = 2) puis

LCD_E <= '1 ';

Horloge <= 0;

substate <= 2;

elsif (substate = 2 et clock = 12) puis

LCD_E <= '0 ';

substate <= 3;

Horloge <= 0;

elsif (substate = 3 et l'horloge = 498), alors

SF_D <= "0001", - je l'ai FIXE

Horloge <= 0;

substate <= 4;

elsif (substate = 4 et clock = 2) puis

LCD_E <= '1 ';

Horloge <= 0;

substate <= 5;

elsif (substate = 5 et clock = 12) puis

LCD_E <= '0 ';

substate <= 0;

State <= 7;

Horloge <= 0;

End If;

- ATTENDRE POUR HORLOGE 82000

elsif (state = 7 et clock = 82000), puis

State <= 8;

clock <= 0;

- SET ECRITURE DD RAM ADD SF_D <= 0x ONT afin de résoudre ce

elsif (état = 8) puis

if (substate = 0 et clock = 0) alors

LCD_RS <= '0 ';

LCD_RW <= '0 ';

SF_D <= "1000", - qu'il a été fixé

Horloge <= 0;

substate <= 1;

elsif (substate = 1 et clock = 2) puis

LCD_E <= '1 ';

Horloge <= 0;

substate <= 2;

elsif (substate = 2 et clock = 12) puis

LCD_E <= '0 ';

substate <= 3;

Horloge <= 0;

elsif (substate = 3 et l'horloge = 498), alors

SF_D <= "0000", - qu'il a été fixé

Horloge <= 0;

substate <= 4;

elsif (substate = 4 et clock = 2) puis

LCD_E <= '1 ';

Horloge <= 0;

substate <= 5;

elsif (substate = 5 et clock = 12) puis

LCD_E <= '0 ';

substate <= 0;

State <= 9;

Horloge <= 0;

End If;

- ATTENDRE 2000 POUR HORLOGE

elsif (state = 9 et clock = 2000) puis

State <= 10;

clock <= 0;

- NOTER DD RAM ADD SF_D <= 0x ONT afin de résoudre ce

elsif (état = 10) puis

if (substate = 0 et clock = 0) alors

LCD_RS <= '1 ';

LCD_RW <= '0 ';

SF_D <= "1000", - qu'il a été fixé

Horloge <= 0;

substate <= 1;

elsif (substate = 1 et clock = 2) puis

LCD_E <= '1 ';

Horloge <= 0;

substate <= 2;

elsif (substate = 2 et clock = 12) puis

LCD_E <= '0 ';

substate <= 3;

Horloge <= 0;

elsif (substate = 3 et l'horloge = 498), alors

SF_D <= "0000", - qu'il a été fixé

Horloge <= 0;

substate <= 4;

elsif (substate = 4 et clock = 2) puis

LCD_E <= '1 ';

Horloge <= 0;

substate <= 5;

elsif (substate = 5 et clock = 12) puis

LCD_E <= '0 ';

substate <= 0;

State <= 11;

Horloge <= 0;

End If;

elsif (état = 11) puis

State <= 11;

clock <= 0;

End If;elsif (CLK1 = 1) then

CLK1 <= 0;

End If;

Terminer le processus;

fin de comportement;
 

Welcome to EDABoard.com

Sponsor

Back
Top