【正文】
o 0)。 signal div_counter : integer range 0 to 15。 constant divss : integer :=15。 signal data_in : std_logic_vector(7 downto 0)。 data : out std_logic_vector(7 downto 0) )。 signal clk_int: std_logic。 constant divt: std_logic_vector(18 downto 0):=1111001110001000000。 signal tc_clkt: std_logic。039。 elsif(clk39。139。 else clkt=clkt+1。 end if。 tc_clkt=39。 when clkt=divt else 39。 process(tc_clkt,reset) begin if(reset=39。)then clkdiv=39。 elsif(tc_clkt39。139。 end if。 clk_out=clk_int。039。039。event and clkdiv=39。)then clk_int= not clk_int。 end process。039。039。event and clkdiv=39。)then lcd_e= not lcd_e。 end process。 lcd_rs = 39。 when state =writeram or state = readram else 39。 lcd_rw = 39。 when state =clear or state = returncursor or state=setmode or state=switchmode or state=shift or state= setfunction or state=setcgram or state =setddram or state =writeram else 39。 data =00000001 when state =clear else 00000010 when state =returncursor else 000001amp。 cur_noshift when state = setmode else 00001 amp。open_cur amp。 shift_display amp。00 when state = shift else 001 amp。 twoline amp。 00 when state=setfunction else 01000000 when state =setcgram else 10000000 when state =setddram and counter =0 else 11000000 when state =setddram and counter /=0 else data_in when state = writeram else zzzzzzzz。 process(clk_int,reset) begin if(reset=39。)then state=idle。 flag=39。 div_counter=0。event and clk_int=39。)then case state is when idle = if(flag=39。)then state=setfunction。139。 div_counter=0。 state=idle。 state =shift。 end i