亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lcd.vhd

?? 改VHDL程序通過簡單算法實現 宮殿顯示 可供初學者參考
?? VHD
字號:

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all; 
use ieee.std_logic_unsigned.all;


entity lcd is 
	generic ( asciiwidth : positive := 8);
	
	port (	clk       : in std_logic;
			reset      : in std_logic;  -- active low
			data_valid : in std_logic;  -- enables lcd to start new write cycle when high

		    ------interface to LCM----------------------------------------------
			lcd_data   : out std_logic_vector(asciiwidth-1 downto 0);
			lcd_select : out std_logic;  -- selects data(0) or instruction(1)
			lcd_rw,tt     : out std_logic;  -- read (1) or write (0) data
			lcd_enable : out std_logic;  -- must be pulsed at clock frequency
			
			---------------------------------------------------------------------
			
			done       : out std_logic);  -- set low during write cycle, high if ready for new data
end lcd;                                  

architecture behavioural of lcd is

constant countwidth : positive := 3;

type state_type is (warmup, setfunc, dispoff, clear,clear1, setmode, home, idle, write1,write2,write3,setadd);

signal state : state_type;
signal rw_int, enable_int : std_logic;
signal count : std_logic_vector(countwidth downto 0);
signal count1 :std_logic_vector (5 downto 0);
signal write_mode : std_logic;       -- stores whether to enter write cycle after clearing display
signal last_data_valid : std_logic;  -- used to track rising edge on valid


begin
	tt<='0';
	lcd_rw <= rw_int;
	lcd_enable <= enable_int;
	enable_int <= not clk;  -- this is very important! if enable is not pulsed, lcd will not write
	

	state_set: process (clk, reset)
	begin
		if reset = '0' then
			count <= (others => '0');
			write_mode <= '1';
			state <= warmup;
			
		elsif (clk'event and clk = '1') then
			case state is
				when warmup =>
					
					lcd_select <= '0';
					rw_int <= '0';
					done <= '0';  
					lcd_data <= "00000000";  -- do nothing
					if count = "0111" then
						count <= (others => '0');
						state <= setfunc;
					else
						count <= count + '1';
						state <= warmup;
					end if;
					
				when setfunc =>
					lcd_data <= "00010000";
					if count = "1111" then
						state <= dispoff;
					else
						count <= count + '1';
						state <= setfunc;
					end if;
					
				when dispoff =>
					lcd_data <= "00001000";
					count <= (others => '0');
					state <= clear;
					
				when clear =>
					lcd_data <= "00000001";  -- clear display
					if count = "0101" then
						state <= setmode;
					else
						count <= count + '1';
						state <= clear;
					end if;
					
				when setmode =>
					lcd_data <= "00000110";
					count <= (others => '0');
					state <= home;
					
				when home =>
					lcd_data <= "00001100";
					if count = "0100" then
						if write_mode = '0' then
						  done <= '1';
						  state <= idle;
						else
						  done <= '0';
						  count <= (others => '0');
						  state <= setadd;
						end if;
					else
						count <= count + '1';
						state <= home;
					end if;	
					
				when setadd=>
					lcd_data <= "01000000";
					count <= (others => '0');
					state <= write1;
            
				when idle =>
					
					if data_valid = '1' and last_data_valid = '0' then
						last_data_valid <= '1';
						count <= (others => '0');
						done <= '0';
						write_mode <= '1';
						state <= clear;
					else
						if data_valid = '0' then
							last_data_valid <= '0';
						end if;
						lcd_data <= (others => '0');
						done <= '1';
						state <= idle;
					end if;
					
					
				when write1 =>
							if count1="111111" then
							 state <= clear1;
							else
							CASE count1 IS
								WHEN "000000" =>
						    		lcd_data <= "00000000";  -- 'H'						    		
								WHEN "000001" =>
							    	lcd_data <= "00000000";  -- 'e'
							    WHEN "000010" =>
							    	lcd_data <= "00000000";  -- 'l'
							    WHEN "000011" =>
						    		lcd_data <= "00000000";  -- 'l'
							    WHEN "000100" =>
							    	lcd_data <= "00000001";  -- 'o'
							    WHEN "000101" =>
							    	lcd_data <= "00000011";  -- 'W'
							    WHEN "000110" =>
							    	lcd_data <= "00000011";  -- 'u'
							    WHEN "000111" =>
							    	lcd_data <= "00100000";  -- 'k'
							------------------------------------------------
							    WHEN "001000" =>
							    	lcd_data <= "00000100";  -- 'e'
							    WHEN "001001" =>
							    	lcd_data <= "00000100";  -- 'M'
							    WHEN "001010" =>
							    	lcd_data <= "00001110";  -- 'o'
							    WHEN "001011" =>
							    	lcd_data <= "00011111";  -- 'r'
							    WHEN "001100" =>
							    	lcd_data <= "00011111";  -- 'n'
							    WHEN "001101" =>
							    	lcd_data <= "00011111";  -- 'i'
							    WHEN "001110" =>
							    	lcd_data <= "00001010";  -- 'n'
							    WHEN "001111" =>
							     	lcd_data <= "00100000";  -- 'g'
							--------------------------------------------
							    WHEN "010000" =>
						    		lcd_data <= "00000000";  -- 'H'						    		
								WHEN "010001" =>
							    	lcd_data <= "00000000";  -- 'e'
							    WHEN "010010" =>
							    	lcd_data <= "00000000";  -- 'l'
							    WHEN "010011" =>
						    		lcd_data <= "00000000";  -- 'l'
							    WHEN "010100" =>
							    	lcd_data <= "00010000";  -- 'o'
							    WHEN "010101" =>
							    	lcd_data <= "00011000";  -- 'W'
							    WHEN "010110" =>
							    	lcd_data <= "00011000";  -- 'u'
							    WHEN "010111" =>
							    	lcd_data <= "00100000";  -- 'k'
							------------------------------------------
							    WHEN "011000" =>
							    	lcd_data <= "00000000";  -- 'e'
							    WHEN "011001" =>
							    	lcd_data <= "00000000";  -- 'M'
							    WHEN "011010" =>
							    	lcd_data <= "00000000";  -- 'o'
							    WHEN "011011" =>
							    	lcd_data <= "00010111";  -- 'r'
							    WHEN "011100" =>
							    	lcd_data <= "00010000";  -- 'n'

							    WHEN "011101" =>
							    	lcd_data <= "00010111";  -- 'i'
							    WHEN "011110" =>
							    	lcd_data <= "00010111";  -- 'n'
							    WHEN "011111" =>
							     	lcd_data <= "00100000";  -- 'g'
							--------------------------------------------
			                    WHEN "100000" =>
						    		lcd_data <= "00000111";  -- 'H'						    		
								WHEN "100001" =>
							    	lcd_data <= "00001010";  -- 'e'
							    WHEN "100010" =>
							    	lcd_data <= "00010101";  -- 'l'
							    WHEN "100011" =>
						    		lcd_data <= "00000011";  -- 'l'
							    WHEN "100100" =>
							    	lcd_data <= "00011100";  -- 'o'
							    WHEN "100101" =>
							    	lcd_data <= "00011111";  -- 'W'
							    WHEN "100110" =>
							    	lcd_data <= "00011111";  -- 'u'
							    WHEN "100111" =>
							    	lcd_data <= "00100000";  -- 'k'
							-------------------------------------------
							    WHEN "101000" =>
							    	lcd_data <= "00011111";  -- 'e'
							    WHEN "101001" =>
							    	lcd_data <= "00011111";  -- 'M'
							    WHEN "101010" =>
							    	lcd_data <= "00001110";  -- 'o'
							    WHEN "101011" =>
							    	lcd_data <= "00011111";  -- 'r'
							    WHEN "101100" =>
							    	lcd_data <= "00001110";  -- 'n'

							    WHEN "101101" =>
							    	lcd_data <= "00011111";  -- 'i'
							    WHEN "101110" =>
							    	lcd_data <= "00011111";  -- 'n'
							    WHEN "101111" =>
							     	lcd_data <= "00100000";  -- 'g'
							----------------------------------------
							    WHEN "110000" =>
						    		lcd_data <= "00011100";  -- 'H'						    		
								WHEN "110001" =>
							    	lcd_data <= "00001010";  -- 'e'
							    WHEN "110010" =>
							    	lcd_data <= "00010101";  -- 'l'
							    WHEN "110011" =>
						    		lcd_data <= "00011111";  -- 'l'
							    WHEN "110100" =>
							    	lcd_data <= "00000111";  -- 'o'
							    WHEN "110101" =>
							    	lcd_data <= "00011111";  -- 'W'
							    WHEN "110110" =>
							    	lcd_data <= "00011111";  -- 'u'
							    WHEN "110111" =>
							    	lcd_data <= "00100000";  -- 'k'
							
							    WHEN "111000" =>
							    	lcd_data <= "00000000";  -- 'e'
							    WHEN "111001" =>
							    	lcd_data <= "00000000";  -- 'M'
							    WHEN "111010" =>
							    	lcd_data <= "00000000";  -- 'o'
							    WHEN "111011" =>
							    	lcd_data <= "00011101";  -- 'r'
							    WHEN "111100" =>
							    	lcd_data <= "00000001";  -- 'n'

							    WHEN "111101" =>
							    	lcd_data <= "00011101";  -- 'i'
							    WHEN "111110" =>
							    	lcd_data <= "00011101";  -- 'n'
							    WHEN "111111" =>
							     	lcd_data <= "00100000";  -- 'g'
							    when others =>  null;
							
						end case;	
						lcd_select <= '1';
						count1 <= count1 + '1';
					    state <= write1;
					end if; 
					
			when clear1 =>
					lcd_data <= "10000000";
					count <= (others => '0');
					lcd_select <= '0';
					state <= write2;
									
		-------------------------------------------------------	
		    when write2 => 	
							
							CASE count IS
								WHEN "0000" =>
						    		lcd_data <= "01000001";  -- 'H'						    		
								WHEN "0001" =>
							    	lcd_data <= "11111110";  -- 'e'
							    WHEN "0010" =>
							    	lcd_data <= "11111110";  -- 'l'
							    WHEN "0011" =>
						    		lcd_data <= "11111110";  -- 'l'
							    WHEN "0100" =>
							    	lcd_data <= "11111110";  -- 'o'
							    WHEN "0101" =>
							    	lcd_data <= "11111110";  -- 'W'
							    WHEN "0110" =>
							    	lcd_data <= "00000111";  -- 'u'
							    WHEN "0111" =>
							    	lcd_data <= "00001000";  -- 'k'
							    WHEN "1000" =>
							    	lcd_data <= "00001001";  -- 'e'
							   
								WHEN "1001" =>
							    	lcd_data <= "11111110";  -- 'e'
							    WHEN "1010" =>
							    	lcd_data <= "11111110";  -- 'l'
							    WHEN "1011" =>
						    		lcd_data <= "11111110";  -- 'l'
							    WHEN "1100" =>
							    	lcd_data <= "11111110";  -- 'o'
							    WHEN "1101" =>
							    	lcd_data <= "11111110";  -- 'W'
							    WHEN "1110" =>
							    	lcd_data <= "11111110";  -- 'u'
							    WHEN "1111" =>
							    	lcd_data <= "11111110";  -- 'k'
							    WHEN others =>
							    	null;  -- 'e'
							   
							END CASE;
			
							lcd_select <= '1';
							count <= count + '1';
						    state <= write2;
				when others => null;		
					
			end case;
		end if;
	end process;
	
	
	
end behavioural;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合中文久久一本| 久久精品国产99久久6| 欧美www视频| 色婷婷久久99综合精品jk白丝| 日韩二区三区在线观看| **网站欧美大片在线观看| 91精品国产一区二区三区| 91丨九色丨黑人外教| 国产精品亚洲人在线观看| 日韩福利电影在线观看| 亚洲午夜精品17c| 国产精品人妖ts系列视频| 精品日韩在线一区| 欧美精品v日韩精品v韩国精品v| 不卡在线视频中文字幕| 国产伦理精品不卡| 麻豆精品一区二区三区| 午夜一区二区三区视频| 日韩一区在线免费观看| 国产午夜三级一区二区三| 日韩午夜激情av| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲午夜激情网站| 亚洲精品成人精品456| 国产喷白浆一区二区三区| 日韩一级在线观看| 555夜色666亚洲国产免| 欧美日韩在线观看一区二区 | 精品视频一区 二区 三区| 99亚偷拍自图区亚洲| 91在线精品一区二区| 夜夜精品视频一区二区| 午夜精品久久久久久久久久久| 91.com在线观看| 欧美色男人天堂| 欧美色男人天堂| 91福利精品视频| 91久久久免费一区二区| 91玉足脚交白嫩脚丫在线播放| 成人午夜大片免费观看| 国产1区2区3区精品美女| 国产精品羞羞答答xxdd| 国产精品一品视频| 国产成人自拍网| 丁香激情综合国产| 成人一道本在线| 91尤物视频在线观看| 在线精品亚洲一区二区不卡| 在线中文字幕一区二区| 欧美专区日韩专区| 欧美一区二区视频免费观看| 日韩一级黄色片| 久久先锋影音av鲁色资源| 国产清纯白嫩初高生在线观看91| 国产亲近乱来精品视频| 亚洲日本一区二区三区| 亚洲国产一区二区视频| 日韩在线a电影| 国产在线精品一区二区夜色 | 国精产品一区一区三区mba桃花| 六月丁香综合在线视频| 国产福利一区二区三区| 91在线视频播放地址| 欧美性猛片xxxx免费看久爱| 欧美一区二区成人| 国产欧美一区二区三区沐欲| 亚洲欧洲99久久| 水野朝阳av一区二区三区| 久久www免费人成看片高清| 成人免费观看av| 欧美日韩国产在线观看| 久久久久久久久久久电影| 亚洲三级在线观看| 日本成人在线电影网| 国产不卡在线一区| 欧美日韩你懂的| 欧美激情一区在线观看| 亚洲小说春色综合另类电影| 精品一区二区影视| 97超碰欧美中文字幕| 欧美变态口味重另类| 一区二区三区四区乱视频| 久久草av在线| 欧美色爱综合网| 国产欧美一区二区在线| 日精品一区二区三区| 不卡的看片网站| 精品日韩在线一区| 亚洲观看高清完整版在线观看| 韩国女主播一区二区三区| 欧美性受xxxx黑人xyx| 久久久不卡影院| 视频一区二区中文字幕| 99r国产精品| 久久中文字幕电影| 三级欧美在线一区| 一本色道久久综合亚洲91| 精品国产91乱码一区二区三区| 亚洲精品va在线观看| 成人激情小说乱人伦| 精品国产免费视频| 性欧美大战久久久久久久久| 国产成人亚洲精品狼色在线| 在线不卡中文字幕| 亚洲免费观看高清完整版在线观看熊| 精品在线一区二区| 欧美卡1卡2卡| 亚洲女同女同女同女同女同69| 国产美女主播视频一区| 欧美大片在线观看一区| 亚洲一区二区不卡免费| 99久久精品国产一区二区三区| 久久综合九色综合97婷婷| 日韩**一区毛片| 欧美手机在线视频| 亚洲精品五月天| av电影在线观看一区| 亚洲国产成人私人影院tom| 麻豆久久久久久| 日韩欧美一区二区三区在线| 五月综合激情日本mⅴ| 日本黄色一区二区| 亚洲欧洲综合另类在线| 99视频超级精品| 国产精品白丝在线| 成人动漫中文字幕| 中文字幕在线不卡| 成人av资源在线| 国产精品不卡在线| 91在线精品一区二区三区| 中文字幕亚洲视频| 91网址在线看| 亚洲免费观看高清完整版在线 | 日本一区二区视频在线| 狠狠久久亚洲欧美| 久久精品网站免费观看| 国产精品一二三在| 国产女同性恋一区二区| 福利一区二区在线| 国产精品第五页| 欧美最新大片在线看| 午夜婷婷国产麻豆精品| 欧美丰满嫩嫩电影| 日韩av网站在线观看| 日韩欧美国产一区二区三区| 久久av资源站| 国产亚洲人成网站| 成人av资源下载| 亚洲国产精品久久久久婷婷884| 欧美日韩免费电影| 奇米精品一区二区三区四区| 精品国产sm最大网站免费看| 国产精品1区2区3区在线观看| 国产精品入口麻豆原神| 在线日韩国产精品| 日本亚洲视频在线| 久久久精品中文字幕麻豆发布| 成人免费视频一区| 一区二区久久久久| 制服丝袜在线91| 国产精品影视天天线| 最近日韩中文字幕| 在线不卡的av| 国产精品一区二区久久不卡 | 91成人免费在线视频| 日韩不卡手机在线v区| 久久久三级国产网站| 91在线porny国产在线看| 日韩精品1区2区3区| 久久精品一区二区三区四区 | 26uuu精品一区二区三区四区在线| 国产精品一区免费在线观看| 综合av第一页| 91精品国产日韩91久久久久久| 国产精品一区免费在线观看| 一区二区在线观看视频| 精品久久久久久久久久久久久久久| 国产成人精品网址| 亚洲成人激情自拍| 国产精品久久综合| 69久久99精品久久久久婷婷 | 91精品国产一区二区| 国产一区二区三区av电影| 一区二区三区免费看视频| 精品99999| 欧美日韩在线免费视频| 东方aⅴ免费观看久久av| 婷婷久久综合九色国产成人| 久久精品网站免费观看| 欧美日韩一本到| 高清久久久久久| 青青草91视频| 亚洲美女免费在线| 久久久久99精品一区| 欧美日韩一区 二区 三区 久久精品| 国产精品一级片| 日本中文在线一区| 一区二区三区日韩欧美| 国产欧美日韩亚州综合| 欧美一区二区三区喷汁尤物|