You are on page 1of 6

Introduccin La pantalla LCD (Liquid Crystal Display) en cuestin se incluye en el Spartan-3E Starter Kit Junta vendidos por tanto

Digilent. LCD en general ofrecen una forma econmica y conveniente para entregar informacin de los dispositivos electrnicos. De hecho, es que la comodidad que ha llevado a la pantalla LCD, cerca de la ubicuidad en el mundo electrnico de hoy. Operacin de la informacin relevante de la pantalla LCD que se encuentra en el tutorial anterior, en la pantalla LCD se utiliz para visualizar "FPGA". Adems de la alteracin de la mquina principal estado, esta prctica es una cerca duplicado de la anterior. Escribir los nmeros en la pantalla LCD es sorprendentemente simple. La tabla en el laboratorio anterior o manual especifica que para los nmeros 0-9 el nibble de datos superior es siempre 3. Adems, los datos ms bajos nibble se corresponde exactamente con el nmero. As, el nmero 8, es "0011" concatenado con "1000", o 0x38. Objetivo Para utilizar S3e arranque Junta de la pantalla LCD para mostrar los nmeros consecutivos de un contador de hasta a 9, y aprender ms sobre el diseo digital de la lgica en el proceso. Proceso 1. Poner en prctica de hardware para controlar la pantalla LCD. 2. Compruebe el hardware en el software (ModelSim). 3. Programa el Starter Kit de S3e Junta Aplicacin Una vez ms, este proyecto requiere de 3 mquinas de estado. Uno para la alimentacin secuencia de inicializacin, una a transmitir comandos y datos a la pantalla LCD y, por ltimo, uno para iniciar la alimentacin de inicializacin secuencia, a continuacin, configurar y escribir en la pantalla LCD. En este caso, la mquina principal estado que controla los dems no tendr fin. En su lugar, se repetir para siempre, estableciendo la direccin de DD-RAM a 0x00, y a continuacin, escribir el carcter que corresponde al nmero de un contador. Para controlar un mdulo LCD, necesita 11 pines de E / S de disco de 8-bits de bus de datos y 3 seales de control. Las tres seales de control son: E: habilitar o "LCD de seleccin". alta activa. R / W: lectura / escritura. 0 a escribir, para leer un. RS: seleccin de registro, 0 bytes de comando, uno de los bytes de datos. La mayora de los mdulos LCD se basan en el chip HD44780 o compatible. Una buena pgina de informacin est disponible aqu . DD RAM La pantalla de datos de memoria RAM (DD RAM) almacena el cdigo de carcter que se exhibir en la pantalla. La mayora de las aplicaciones interactan principalmente con DD RAM. El cdigo de caracteres almacenados en un DD RAM referencias ubicacin de un mapa de bits almacenado carcter especfico, ya sea en el centro de gravedad predefinidos ROM de carcter conjunto o en el carcter CG RAM definido por el usuario.

Figura 5-3shows la direccin por defecto para las 32 localidades de caracteres en la pantalla. La lnea superior de los caracteres se almacena entre las direcciones 0x00 y 0x0F. La segunda lnea de caracteres se almacena entre las direcciones 0x40 y 0x4F.

Aqu, la mquina principal estado inicializa la pantalla tal como se detalla anteriormente, pero luego se desva por continuo ajuste de la direccin de 0x00 y la escritura un carcter actualizada por un contador implementado como un proceso independiente. Vase la figura 1

CG ROM La ROM generador de caracteres (CG ROM) Contiene el mapa de bits de fuentes para cada uno de los personajes predefinidos que la pantalla LCD puede mostrar, como se muestra en la Figura 5-4. El carcter cdigo almacenado en DD RAM para cada lugar de caracteres

posteriormente hace referencia a una posicin con la ROM del CG. Por ejemplo, un cdigo de carcter hexadecimal de 0x53 almacenados en una memoria RAM de DD muestra la ubicacin de "S" del personaje. El nibble superior del 0x53 equivale a DB [07:04] = "0101" binarios y el nibble inferior equivale a DB [3:0] = "0011" binario. Como se muestra en la Figura 5-4,'S' el personaje aparece en la pantalla. Ingls / caracteres latinos se almacenan en la memoria ROM del CG en su direccin equivalente cdigo ASCII ..

Command Set
Tabla resume los comandos disponibles LCD de control y definiciones poco. Debido a que la pantalla est configurado para la operacin de 4 bits, cada comando de 8 bits se enviar en dos mordiscos de 4 bits. El nibble superior se transfiere en primer lugar, seguido por el nibble inferior.

Ejemplo de programacin ------------------- LCD proceso de inicializacin ---------------------------- --caso (recuento (25 downto 20)) es cuando "000000" => ossz <= "000011", - X "03" cuando "000001" => ossz <= "000011", - X "03" cuando "000010" => ossz <= "000000", - X "03" cuando "000011" => ossz <= "000010", - X "02" cuando "000100" => ossz <= "000010", - X "02" funcin de conjunto cuando "000101" => ossz <= "001000", - X "08" cuando "000110" => ossz <= "000000", - X "00" modo de entrada cuando "000111" => ossz <= "000110", - X "06" cuando "001000" => ossz <= "000000", - pantalla de encendido / apagado cuando "001001" => ossz <= "001100"; cuando "001010" => ossz <= "000000", - visualizacin clara cuando "001011" => ossz <= "000001"; cuando "001100" => ossz <= "000000", - Llvate a casa el cursor cuando "001101" => ossz <= "001111"; ------------- Datos de operacin para el LCD --------------------------------- cuando "001110" => ossz <= "100011", - la unidad con el contador o / p cuando "001111" => ossz (5 downto 4) <= "10"; ossz (3 downto 0) <= Q3; cuando "010000" => ossz <= "100011"; cuando "010001" => ossz (5 downto 4) <= "10"; ossz (3 downto 0) <= Q2;

cuando "010010" => ossz <= "100011"; cuando "010011" => ossz (5 downto 4) <= "10"; ossz (3 downto 0) <= 1T; cuando "010100" => ossz <= "101011"; cuando "010101" => ossz <= "100000"; - Ossz (3 downto 0) <= 1T; cuando "010110" => ossz <= "100100", - bytes nibble superior cuando "010111" => ossz <= "101000", - H menor nibble bytes cuando "011000" => ossz <= "100100", - bytes nibble superior cuando "011001" => ossz <= "100101", - E menor nibble bytes cuando "011010" => ossz <= "100100", - bytes nibble superior cuando "011011" => ossz <= "101100", - L ms bajos mordisco bytes cuando "011100" => ossz <= "100100", - bytes nibble superior cuando "011101" => ossz <= "101100", - L ms bajos mordisco bytes cuando "011110" => ossz <= "100100", - bytes nibble superior cuando "011111" => ossz <= "101111", - O byte inferior nibble cuando "100000" => ossz <= "101010", - bytes nibble superior cuando "100001" => ossz <= "100000", - byte inferior nibble cuando "100010" => ossz <= "100101", - bytes nibble superior cuando "100011" => ossz <= "100111", - W menor nibble bytes cuando "100100" => ossz <= "100100", - bytes nibble superior cuando "100101" => ossz <= "101111", - O byte inferior nibble cuando "100110" => ossz <= "100101", - bytes nibble superior cuando "100111" => ossz <= "100010", - R menor nibble bytes cuando "101000" => ossz <= "100100", - bytes nibble superior cuando "101001" => ossz <= "101100", - L ms bajos mordisco bytes cuando "101010" => ossz <= "100100", - bytes nibble superior cuando "101011" => ossz <= "100100", - D ms bajos mordisco bytes cuando "101100" => ossz <= "100100", - superior nibble cuando "101101" => ossz <= "100100", - D ms bajos mordisco bytes cuando otros => ossz <= "010000"; caso extremo; si ora = '1 'y luego ora <= '0 '; ms ora <= '1 '; end if; b <= cuenta (19) o cuenta (18); lcd_stb <= b y ossz NO (4); lcd_stuff (6) <= lcd_stb; lcd_stuff (5 downto 0) <= ossz; (En, rs, rw, out3, OUT2, OUT1, OUT0) <= lcd_stuff; end if;

final del proceso; final del comportamiento;

You might also like