⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd_control_rtl_v3.vhd

📁 LCD display driver for xilinx fpga
💻 VHD
📖 第 1 页 / 共 3 页
字号:
		   state_lcd <= init19;		   count     <= 0;		   		 elsif (count = t_pulse_c) then		                      lcd_rw    <= '1';   		   count     <= count + 1;		   		 elsif (count = (t_pulse_c - t_hold_c)) then		   lcd_e     <= '0';		   		   count     <= count + 1;		   		 elsif (count = t_setup_c) then		   lcd_e     <= '1';   		   count     <= count + 1;		   		 else		   count     <= count + 1;		 end if;	       when init19 => -- wait for 1 祍		 if(count = (t_pulse_c + t_upper_lower_c)) then		   lcd_data  <= set_ddram_address_c2(3 downto 0);                   lcd_rw    <= '0';		   		   state_lcd <= init20;		   count     <= 0;		   		 elsif (count = t_pulse_c) then		                      lcd_rw    <= '1';   		   count     <= count + 1;		   		 elsif (count = (t_pulse_c - t_hold_c)) then		   lcd_e     <= '0';		   		   count     <= count + 1;		   		 elsif (count = t_setup_c) then		   lcd_e     <= '1';   		   count     <= count + 1;		   		 else		   count     <= count + 1;		 end if;	       when init20 => -- wait for 40 祍		 if(count = (t_pulse_c + t_next_pulse_c)) then		   lcd_data  <= data_3_c(7 downto 4);                   lcd_rw    <= '0';		                      lcd_rs    <= '1';		   		   state_lcd <= init21;		   count     <= 0;		   		 elsif (count = t_pulse_c) then		                      lcd_rw    <= '1';   		   count     <= count + 1;		   		 elsif (count = (t_pulse_c - t_hold_c)) then		   lcd_e     <= '0';		   		   count     <= count + 1;		   		 elsif (count = t_setup_c) then		   lcd_e     <= '1';   		   count     <= count + 1;		   		 else		   count     <= count + 1;		 end if;	       when init21 => -- wait for 1 祍		 if(count = (t_pulse_c + t_upper_lower_c)) then		   lcd_data  <= data_3_c(3 downto 0);                   lcd_rw    <= '0';		   		   state_lcd <= init22;		   count     <= 0;		   		 elsif (count = t_pulse_c) then		                      lcd_rw    <= '1';   		   count     <= count + 1;		   		 elsif (count = (t_pulse_c - t_hold_c)) then		   lcd_e     <= '0';		   		   count     <= count + 1;		   		 elsif (count = t_setup_c) then		   lcd_e     <= '1';   		   count     <= count + 1;		   		 else		   count     <= count + 1;		 end if;	       when init22 => -- wait for 40 祍		 if(count = (t_pulse_c + t_next_pulse_c)) then		   lcd_data  <= data_4_c(7 downto 4);                   lcd_rw    <= '0';		   		   state_lcd <= init23;		   count     <= 0;		   		 elsif (count = t_pulse_c) then		                      lcd_rw    <= '1';   		   count     <= count + 1;		   		 elsif (count = (t_pulse_c - t_hold_c)) then		   lcd_e     <= '0';		   		   count     <= count + 1;		   		 elsif (count = t_setup_c) then		   lcd_e     <= '1';   		   count     <= count + 1;		   		 else		   count     <= count + 1;		 end if;	       when init23 => -- wait for 1 祍		 if(count = (t_pulse_c + t_upper_lower_c)) then		   lcd_data  <= data_4_c(3 downto 0);                   lcd_rw    <= '0';		   		   state_lcd <= init24;		   count     <= 0;		   		 elsif (count = t_pulse_c) then		                      lcd_rw    <= '1';   		   count     <= count + 1;		   		 elsif (count = (t_pulse_c - t_hold_c)) then		   lcd_e     <= '0';		   		   count     <= count + 1;		   		 elsif (count = t_setup_c) then		   lcd_e     <= '1';   		   count     <= count + 1;		   		 else		   count     <= count + 1;		 end if;		 	       when init24 => -- wait for 40 祍		 if(count = (t_pulse_c + t_next_pulse_c)) then		   lcd_data  <= data_5_c(7 downto 4);                   lcd_rw    <= '0';		   		   state_lcd <= init25;		   count     <= 0;		   		 elsif (count = t_pulse_c) then		                      lcd_rw    <= '1';   		   count     <= count + 1;		   		 elsif (count = (t_pulse_c - t_hold_c)) then		   lcd_e     <= '0';		   		   count     <= count + 1;		   		 elsif (count = t_setup_c) then		   lcd_e     <= '1';   		   count     <= count + 1;		   		 else		   count     <= count + 1;		 end if;	       when init25 => -- wait for 1 祍		 if(count = (t_pulse_c + t_upper_lower_c)) then		   lcd_data  <= data_5_c(3 downto 0);                   lcd_rw    <= '0';		   		   state_lcd <= init26;		   count     <= 0;		   		 elsif (count = t_pulse_c) then		                      lcd_rw    <= '1';   		   count     <= count + 1;		   		 elsif (count = (t_pulse_c - t_hold_c)) then		   lcd_e     <= '0';		   		   count     <= count + 1;		   		 elsif (count = t_setup_c) then		   lcd_e     <= '1';   		   count     <= count + 1;		   		 else		   count     <= count + 1;		 end if;		 	       when init26 => -- wait for 40 祍		 if(count = (t_pulse_c + t_next_pulse_c)) then		   lcd_data  <= data_6_c(7 downto 4);                   lcd_rw    <= '0';		   		   state_lcd <= init27;		   count     <= 0;		   		 elsif (count = t_pulse_c) then		                      lcd_rw    <= '1';   		   count     <= count + 1;		   		 elsif (count = (t_pulse_c - t_hold_c)) then		   lcd_e     <= '0';		   		   count     <= count + 1;		   		 elsif (count = t_setup_c) then		   lcd_e     <= '1';   		   count     <= count + 1;		   		 else		   count     <= count + 1;		 end if;	       when init27 => -- wait for 1 祍		 if(count = (t_pulse_c + t_upper_lower_c)) then		   lcd_data  <= data_6_c(3 downto 0);                   lcd_rw    <= '0';		   		   state_lcd <= init28;		   count     <= 0;		   		 elsif (count = t_pulse_c) then		                      lcd_rw    <= '1';   		   count     <= count + 1;		   		 elsif (count = (t_pulse_c - t_hold_c)) then		   lcd_e     <= '0';		   		   count     <= count + 1;		   		 elsif (count = t_setup_c) then		   lcd_e     <= '1';   		   count     <= count + 1;		   		 else		   count     <= count + 1;		 end if;		 	       when init28 => -- wait for 40 祍		 if(count = (t_pulse_c + t_next_pulse_c)) then		   lcd_data  <= data_7_c(7 downto 4);                   lcd_rw    <= '0';		   		   state_lcd <= init29;		   count     <= 0;		   		 elsif (count = t_pulse_c) then		                      lcd_rw    <= '1';   		   count     <= count + 1;		   		 elsif (count = (t_pulse_c - t_hold_c)) then		   lcd_e     <= '0';		   		   count     <= count + 1;		   		 elsif (count = t_setup_c) then		   lcd_e     <= '1';   		   count     <= count + 1;		   		 else		   count     <= count + 1;		 end if;	       when init29 => -- wait for 1 祍		 if(count = (t_pulse_c + t_upper_lower_c)) then		   lcd_data  <= data_7_c(3 downto 0);                   lcd_rw    <= '0';		   		   state_lcd <= init30;		   count     <= 0;		   		 elsif (count = t_pulse_c) then		                      lcd_rw    <= '1';   		   count     <= count + 1;		   		 elsif (count = (t_pulse_c - t_hold_c)) then		   lcd_e     <= '0';		   		   count     <= count + 1;		   		 elsif (count = t_setup_c) then		   lcd_e     <= '1';   		   count     <= count + 1;		   		 else		   count     <= count + 1;		 end if;		 		 	       when init30 => -- wait for 40 祍		 if(count = (t_pulse_c + t_next_pulse_c)) then		   lcd_data  <= data_8_c(7 downto 4);                   lcd_rw    <= '0';		   		   state_lcd <= init31;		   count     <= 0;		   		 elsif (count = t_pulse_c) then		                      lcd_rw    <= '1';   		   count     <= count + 1;		   		 elsif (count = (t_pulse_c - t_hold_c)) then		   lcd_e     <= '0';		   		   count     <= count + 1;		   		 elsif (count = t_setup_c) then		   lcd_e     <= '1';   		   count     <= count + 1;		   		 else		   count     <= count + 1;		 end if;		 	       when init31  => null; -- wait for 1 祍	       when others =>		 state_lcd  <= lcdreset;	     end case;	  end if;				end process;	 end rtl;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -