601 Experimento 3 Kit De2

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View 601 Experimento 3 Kit De2 as PDF for free.

More details

  • Words: 816
  • Pages: 6
ETN-601

Guía de Laboratorio FPGA 3 EXPERIMENTO 3 CONTROLADOR - LCD

Objetivos: -

Implementar funciones y códigos VHDL de sistemas secuenciales digitales aplicados a controlar y manipular mensajes en el LCD de la tarjeta DE2

Desarrollo: La tarjeta DE2 consta de un LCD de 16X2 caracteres cuyo código del chip controlador es el HD44780, las hojas técnicas van adjuntas a esta guía.

7 CONTADOR SISTEMA SECUENCIAL

La siguiente tabla muestra la relación de los pines del LCD y los pines de la FPGA a los cuales van conectados.

ROC-JLV

1/6

ETN-601

Guía de Laboratorio FPGA 3

Como se aprecia, EL LCD tiene pines tanto de DATOS como pines de CONTROL, para poder gestionar los datos a desplegarse, se debe seguir el siguiente orden de instrucciones:

ROC-JLV

2/6

ETN-601

Guía de Laboratorio FPGA 3

RS = 0 RW = 0 DATA = 38 hex

RS = 0 RW = 0 DATA = 38 hex

RS = 0 RW = 0 DATA = 38 hex

RS = 0 RW = 0 DATA = 38 hex

RS = 0 RW = 0 DATA = 06 hex

RS = 0 RW = 0 DATA = 0E hex

RS = 0 RW = 0 DATA = 01 hex

RS = 1 RW = 0 DATA = código de letras

Para mayor referencia de los comandos de control del LCD el alumno deberá remitirse al manual técnico del LCD adjunto a esta guía.

ROC-JLV

3/6

ETN-601

Guía de Laboratorio FPGA 3

En el software Quartus II crear un nuevo proyecto, crear una nueva fuente VHDL e introducir el siguiente código VHDL: LIBRARY ieee; USE ieee.std_logic_1164.all; --CONTROLADOR DE LCD --UMSA Facultad de Ingenieria, Carrera de Electrónica --Electronica Digital I, ETN-601 --Docente: Ing. Roberto Oropeza ENTITY LCD is port ( --pines del LCD LCD_DATA: out std_logic_vector(7 downto 0); LCD_RW,LCD_E,LCD_RS,LCD_ON: out std_logic; --pin del oscilador 25Mhz clock:in std_logic); end LCD; --------------------------------------------------------------------------architecture behavior of LCD is --señales auxiliares-----------------------------------------------------signal contador: integer range 0 to 14:=0; signal contador1: integer range 0 to 55001:=0; begin -----------------------------------------------------------Proceso 1: Maquina de estados para el LCD ---------------------------------------------------------proc_contador: process (clock) begin if clock'event and clock ='1' then if contador1 = 55000 then contador1 <= 0; if contador = 14 then contador <= 14; else contador <= contador +1; --end if; case contador is when 0 => LCD_E <= '1'; LCD_RS <= '0'; LCD_RW <= '0'; LCD_DATA <= X"38"; LCD_ON <= '1'; when 1 => LCD_E <= '1'; LCD_RS <= '0'; LCD_RW <= '0'; LCD_DATA <= X"38"; when 2 => LCD_E <= '1'; LCD_RS <= '0'; LCD_RW <= '0'; LCD_DATA <= X"38"; when 3 => LCD_E <= '1'; LCD_RS <= '0'; LCD_RW <= '0'; LCD_DATA <= X"38"; when 4 => LCD_E <= '1'; LCD_RS <= '0'; LCD_RW <= '0'; LCD_DATA <= X"06"; when 5 => LCD_E <= '1'; LCD_RS <= '0'; LCD_RW <= '0';

ROC-JLV

4/6

ETN-601

Guía de Laboratorio FPGA 3 LCD_DATA <= X"0E"; when 6 => LCD_E <= '1'; LCD_RS <= '0'; LCD_RW <= '0'; LCD_DATA <= X"01"; when 7 => LCD_E <= '1'; LCD_RS <= '1'; LCD_RW <= '0'; LCD_DATA <= X"45"; --letra "E" when 8 => LCD_E <= '1'; LCD_RS <= '1'; LCD_RW <= '0'; LCD_DATA <= X"54"; --letra "T" when 9 => LCD_E <= '1'; LCD_RS <= '1'; LCD_RW <= '0'; LCD_DATA <= X"4E"; --letra "N" when 10 => LCD_E <= '1'; LCD_RS <= '1'; LCD_RW <= '0'; LCD_DATA <= X"2D"; --letra "-" when 11 => LCD_E <= '1'; LCD_RS <= '1'; LCD_RW <= '0'; LCD_DATA <= X"36"; --letra "6" when 12 => LCD_E <= '1'; LCD_RS <= '1'; LCD_RW <= '0'; LCD_DATA <= X"30"; --letra "0" when 13 => LCD_E <= '1'; LCD_RS <= '1'; LCD_RW <= '0'; LCD_DATA <= X"31"; --letra "1" when 14 => LCD_E <= '1'; LCD_RS <= '1'; LCD_RW <= '0'; LCD_DATA <= X"31"; --letra " " when others => null; end case;

end if; else contador1 <= contador1+1; end if; end if; end process; end behavior;

CONSIDERACIONES:

ROC-JLV

5/6

ETN-601

Guía de Laboratorio FPGA 3

-

En este caso el divisor de frecuencia se lo implemento dentro del proceso principal y no aparte como en el laboratorio 2. El valor 55000 corresponde a que según las hojas técnicas del LCD este requiere como máximo 2 milisegundos para ejecutar una operación.

-

El alumno notará que no es necesario implementar un comando para hacer recorrer el cursor una posición a la derecha. El controlador del LCD automáticamente avanza una posición.

PREINFORME 1. En base al programa vhdl de ejemplo, modificarlo y obtener el mismo mensaje pero deslizable hacia la izquierda. INFORME 1. Escriba sus conclusiones acerca de la implementación del ejemplo de la guía y del preinforme. 2. Realice una simulación en el software MODELSIM-ALTERA del ejemplo de la guía y verifique en las gráficas de tiempos el funcionamiento correcto del sistemas, imprima una captura de imagen de la simulación para el estado 10 y 11 de la maquina de estados finitos.

ROC-JLV

6/6

Related Documents

601 Experimento 3 Kit De2
November 2019 9
601 Experimento 2 Kit De2
November 2019 7
Experimento
October 2019 36
Experimento
June 2020 16
Experimento
October 2019 21
Experimento
November 2019 22