12864显示程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
entity LCD12864 is
port ( clk :in std_logic;
lcd_rs:out std_logic;
lcd_rw:out std_logic;
lcd_e: out std_logic;
data:out std_logic_vector(7 downto 0)
);
end LCD12864;
architecture one of LCD12864 is
signal bcd: std_logic_vector(5 downto 0);
signal cnt: std_logic_vector(9 downto 0);
--signal count:std_logic_vector(7 downto 0):="00110000";
begin
process(clk)
begin
if clk'event and clk='1' then
bcd<=bcd+1;
cnt<=cnt+1;
--count<=count+1;
case bcd is
when "000100"=>
lcd_rs<='0';
lcd_e<='1';
data<="10000001";
when "000101"=>
lcd_rs<='0';
lcd_e<='0';
when "000110"=> --xian E
lcd_rs<='1';
lcd_e<='1';
data<="01000101";
when "000111"=>
lcd_rs<='1';
lcd_e<='0';
when "001010"=> --xian E
lcd_rs<='1';
lcd_e<='1';
data<="01000101";
when "001011"=>
lcd_rs<='1';
lcd_e<='0';
when "001110"=> --xian P
lcd_rs<='1';
lcd_e<='1';
data<="01010000";
when "001111"=>
lcd_rs<='1';
lcd_e<='0';
when "010010"=> --xian W
lcd_rs<='1';
lcd_e<='1';
data<="01010111";
when "010011"=>
lcd_rs<='1';
lcd_e<='0';
when "100100"=>
lcd_rs<='0';
lcd_e<='1';
data<="10010010";
when "100101"=>
lcd_rs<='0';
lcd_e<='0';
when "100110"=> --显示
lcd_rs<='1';
lcd_e<='1';
data<="10110111";
when "100111"=>
lcd_rs<='1';
lcd_e<='0';
when "101000"=>
lcd_rs<='1';
lcd_e<='1';
data<="11100111";
when "101001"=>
lcd_rs<='1';
lcd_e<='0';
when "101010"=>
lcd_rs<='1';
lcd_e<='1';
data<="11010011";
when "101011"=>
lcd_rs<='1';
lcd_e<='0';
when "101100"=>
lcd_rs<='1';
lcd_e<='1';
data<="11101111";
when "101101"=>
lcd_rs<='1';
lcd_e<='0';
when "101110"=>
lcd_rs<='1';
lcd_e<='1';
data<="11010101";
when "101111"=>
lcd_rs<='1';
lcd_e<='0';
when "110000"=>
lcd_rs<='1';
lcd_e<='1';
data<="11011111";
when "110001"=>
lcd_rs<='1';
lcd_e<='0';
when "110010"=> --xian 1
lcd_rs<='1';
lcd_e<='1';
data<="00110001";
when "110011"=>
lcd_rs<='1';
lcd_e<='0';
when "110100"=> --xian 9
lcd_rs<='1';
lcd_e<='1';
data<="00111001";
when "110101"=>
lcd_rs<='1';
lcd_e<='0';
when "110110"=> --xian 9
lcd_rs<='1';
lcd_e<='1';
data<="00111001";
when "110111"=>
lcd_rs<='1';
lcd_e<='0';
when "111000"=> --xian 1
lcd_rs<='1';
lcd_e<='1';
data<="00110001";
when "111001"=>
lcd_rs<='1';
lcd_e<='0';
when others=>null;
end case;
end if;
end process;
end ;