Thursday, December 24, 2020

oled keypad enter cdt time from keypad included v1.5 working modal

 ---- Company: aujus technology pvt.ltd 

---- Engineer: arun chaudhary 

---- 

---- Create Date: 31.08.2020 13:24:34

---- Design Name: raystar oled cotrol -- timming dissimination 

---- Module Name: oled_module_controllerv1 - Behavioral

---- Project Name:  timming dissimination

---- Target Devices: zynq ,zedboard 

---- Tool Versions: vivado 2018.3

---- Description: 

---- 

---- Dependencies: 

---- 

---- Revision:

---- Revision 0.01 - File Created

---- Additional Comments:

---- 

----------------------------------------------------------------------------------

----------------starting  code -----------------


library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

USE  IEEE.STD_LOGIC_ARITH.all;

USE  IEEE.STD_LOGIC_UNSIGNED.all;


entity oled_module_controllerv1 is

    Port ( clk : in STD_LOGIC;

           rst : in STD_LOGIC;

           preset : in std_logic ; 

           key_in: in std_logic_vector (0 to 15)   ;

           adt_sec10 : in std_logic_vector(3 downto 0)   ;

            status_reg :  in std_logic_vector( 1 downto 0) ; 

            led : out std_logic_vector(1 downto 0)  ; 

            cdt_hour10 , cdt_hour1, cdt_min10 ,cdt_min1, cdt_sec10  ,cdt_sec1  : in std_logic_vector (3 downto 0) ; 

             adt_day100,adt_day10 ,adt_day1   :  in std_logic_Vector ( 3 downto 0) ;       

           adt_sec1 : in std_logic_vector( 3 downto 0) ; 

           adt_min10, adt_min1 : in std_logic_vector( 3 downto 0) ; 

           adt_hour10,adt_hour1:in std_logic_vector( 3 downto 0) ;         

           data_out : inout STD_LOGIC_vector( 7 downto 0) ;

           rs : out STD_LOGIC;

           rw : out STD_LOGIC;

           e : out STD_LOGIC;

           dac_a0 , dac_scl, dac_sda : out std_logic );

end oled_module_controllerv1;

architecture Behavioral of oled_module_controllerv1 is

signal clock_count : unsigned ( 23 downto 0) :=(others=>'0') ; 

signal clk_enable400 : std_logic :='0' ; 

type state_type is (power_up,reset1, reset2,

                       reset3,  func_set, display_on, mode_set,

                      line2, return_home, drop_lcd_e,  display_off, display_clear ,line2_data,char_mode, cursor_shift,

                       line3,line3_data,line4,line4_data,adt_state,sec10,sec1 ,min10,min1,coln1,coln2, hour10 , hour1,day100,day10 ,day1 ,dcoln,

                          cdth10 ,cdth1, cdtm10,cdtm1 ,cdts10,cdts1, status ,coln3,coln4,coln5,

                          adt_space1,adt_space2 , 

                          cdt_c,cdt_d,cdt_t ,cdt_coln, cdt_space1, cdt_space2,st1,st2,st3,st4,st5,dram_address,read_addr,rst1,rst2,func,   clear_screen ,disp_on, MODE ,ADDR,  message_enter ,

                          second_line,second_linedata, input_data , delay_state,time_save);

                        

--                         -- ,,CURSOR_LEFT,CURSOR_RIGHT,OVERIDE_C);

                       

 signal state, next_command         : state_type;

signal data_bus : std_logic_vector ( 7 downto 0) ; 

signal lcd_e, lcd_rs, lcd_rw_int : std_Logic ; 


type character_string is array ( 0 to 15 ) of STD_LOGIC_VECTOR( 7 downto 0 );


  signal lcd_display_string          : character_string;

  signal lcd_display_string_01       : character_string;

 signal lcd_display_string_02       : character_string;

 

 signal lcd_display_string_03       : character_string;

  signal  next_char   : STD_LOGIC_VECTOR(7 downto 0);

  signal char_count                  : STD_LOGIC_VECTOR(4 downto 0);

  signal counter : unsigned ( 26 downto 0) :=( others=>'0') ; 

  signal sec_bcd: unsigned( 3 downto 0) :=( others=>'0') ; 

  signal sec_en: std_logic ;

  signal sec_out : std_logic_vector( 7 downto 0) ;

  

------------------adt ------------

type str1 is array ( 0 to 5) of std_logic_Vector ( 7 downto 0) ;

signal adt_string,cdt_string  : str1;

signal adt :std_logic_vector ( 7 downto 0) ;

signal cdt: std_logic_vector( 7 downto 0) ;


signal str_count  : std_logic_vector( 3 downto 0)  :="0000" ;

signal message_count : std_Logic_vector( 3 downto 0) ; 

signal wait_count : std_logic_vector( 19 downto 0) := (others=>'0') ; 




signal adt_d1s: std_logic_vector ( 7 downto 0) ; 

signal adt_d10s : std_logic_vector ( 7 downto 0) ; 

signal adt_d100s: std_logic_vector ( 7 downto 0) ; 


signal adt_sec1s: std_logic_vector ( 7 downto 0) ; 

signal adt_sec10s : std_logic_vector ( 7 downto 0) ; 

signal adt_min1s: std_logic_vector ( 7 downto 0) ; 

signal adt_min10s : std_logic_vector ( 7 downto 0) ; 

signal adt_hour1s: std_logic_vector ( 7 downto 0) ; 

signal adt_hour10s : std_logic_vector ( 7 downto 0) ; 


--------------------------cdt--------------------------------


signal cdt_sec1s: std_logic_vector ( 7 downto 0) ; 

signal cdt_sec10s : std_logic_vector ( 7 downto 0) ; 

signal cdt_min1s: std_logic_vector ( 7 downto 0) ; 

signal cdt_min10s : std_logic_vector ( 7 downto 0) ; 

signal cdt_hour1s: std_logic_vector ( 7 downto 0) ; 

signal cdt_hour10s : std_logic_vector ( 7 downto 0) ; 

---------------------xxxxxxxxxxxxxxxx----------

signal key_stored, fkey_stored:  std_logic_vector( 7 downto 0) ; 

signal key_q    : std_logic_vector( 0 to 15 )   ; 



-------status -register ---------

signal  sts_reg : std_logic_vector ( 1 downto 0) ; 

 signal wait_1sec : integer range 0 to  239999 := 0 ;  


signal space_count  : integer range  0  to 19 := 0 ; 




--type state_machine is ( idle , clear_screen ,drop_enable , message_enter ,  time_enter , time_save, exit_state ) ; 

--signal  state_reg , state_next : state_machine; 

signal jump2_preset : std_logic ; 



signal one_mscounter : natural range 0 to 835 :=0 ; -------counter for 10 mhz clock    enable for 10 mhz checking 

signal f1khz : std_logic ; 



attribute mark_debug : string ; 

attribute mark_debug  of  key_q : signal is "true" ; 

attribute mark_debug  of  lcd_e : signal is "true" ; 

attribute mark_debug  of  lcd_rs : signal is "true" ; 

--attribute mark_debug  of  lcd_rw_int : signal is "true" ; 

attribute mark_debug  of  data_bus : signal is "true" ; 

 

attribute mark_debug  of  preset : signal is "true" ;

 

begin




 dac_a0<=lcd_rs ; 

  dac_scl<= lcd_rw_int;

  dac_sda<=lcd_e ; 

  

---------------=============================

lcd_display_string <=( X"45" , X"6E" , X"74" ,X"65" ,  X"72" , X"20" ,X"63" , X"64" , X"74" , X"20" , X"54" , X"69" , X"6D" , X"65" , X"20", X"20") ;

 

next_char<= lcd_display_string( conv_integer( message_count)) ;




---------===============================


process(clk ) 

 begin


   if rising_edge ( clk ) then 

    if (clk_enable400='1') then

      key_q <= key_in ; 

      end if ; 

  end if ; 

end process ;


--process( key_in) 

-- begin 

--  case key_in is 

    

--   when x"4000" => 

--           key_stored<=x"30" ; 

--   when x"2000"=>

--          key_stored<=x"31" ; 

--   when x"1000"=> 

--             key_stored <=x"32" ;

-- when x"0020"=> 

--        key_stored<=x"33" ; 

-- when x"0800"=>

--     key_stored <=x"34" ; 

-- when x"0400"=> 

--        key_stored <=x"35" ;

-- when x"0200"=> 

--        key_stored<=x"36" ; 

-- when x"0010"=>

--     key_stored <=x"37" ; 

-- when x"0100"=> 

--       key_stored <=x"38" ;

-- when  x"0080"=> 

--       key_stored <=x"39" ;

  

--  when  x"0040"=> 

--              key_stored <=x"40" ;

-- when  x"0008"=> 

--                     key_stored <=x"41" ;

-- when  x"8000"=> 

--                            key_stored <=x"42" ;

--   when  x"0001"=> 

--                                   key_stored <=x"43" ;

--    when  x"0002"=> 

--                                          key_stored <=x"44" ;

    

--    when  x"0004"=> 

--    key_stored <=x"45" ;

    

         

--  when others => 

--          key_stored <= x"20" ; 

-- end case ;

-- end process ; 


-----------------xxxxxxxxx----------------------------

-----------adt day---------------------------------

--------------------------------------------

process ( adt_day1) begin 

    case adt_day1 is 

       when "0000" => 

          adt_d1s<=x"30" ;  

  when "0001"=>

         adt_d1s<=x"31" ; 

  when "0010"=> 

            adt_d1s <=x"32" ;

when "0011"=> 

       adt_d1s<=x"33" ;

     when "0100"=>

    adt_d1s <=x"34" ; 

when "0101"=> 

       adt_d1s <=x"35" ;

  

 when others=>

          adt_d1s <=x"30" ; 

  end case ; 

end process ; 


process ( adt_day10) begin 

    case adt_day10 is 

       when "0000" => 

          adt_d10s<=x"30" ;  

  when "0001"=>

         adt_d10s<=x"31" ; 

  when "0010"=> 

            adt_d10s <=x"32" ;

when "0011"=> 

       adt_d10s<=x"33" ;  

       

     when "0100"=>

    adt_d10s <=x"34" ; 

when "0101"=> 

       adt_d10s <=x"35" ;

when "0110"=> 

       adt_d10s<=x"36" ;   

 when others=>

          adt_d10s <=x"30" ; 

  end case ; 

end process ; 


process ( adt_day100) begin 

    case adt_day100 is 

       when "0000" => 

          adt_d100s<=x"30" ;  

  when "0001"=>

         adt_d100s<=x"31" ; 

  when "0010"=> 

            adt_d100s <=x"32" ;

when "0011"=> 

       adt_d100s<=x"33" ;  

   

 when others=>

          adt_d100s <=x"30" ; 

  end case ; 

end process ; 



----------------------------XXXXXXXXXXXXXXXXXX---------------------------------

------------------ADT HOUR ---------------------------------------------------

----------=============================================


process ( adt_hour10) 

begin 


    case adt_hour10 is 

  when "0000" => 

          adt_hour10s<=x"30" ; 

  when "0001"=>

         adt_hour10s<=x"31" ; 

  when "0010"=> 

            adt_hour10s <=x"32" ;

when "0011"=> 

       adt_hour10s<=x"33" ; 

when "0100"=>

    adt_hour10s <=x"34" ; 

when "0101"=> 

       adt_hour10s <=x"35" ;

when "0110"=> 

       adt_hour10s<=x"36" ; 

when "0111"=>

     adt_hour10s <=x"37" ; 

when "1000"=> 

      adt_hour10s <=x"38" ;

when  "1001"=> 

      adt_hour10s <=x"39" ;

 when others => 

         adt_hour10s <= x"30" ; 

end case ;


end process ; 



process ( adt_hour1) 

begin 


    case adt_hour1 is 

  when "0000" => 

          adt_hour1s<=x"30" ; 

  when "0001"=>

          adt_hour1s <=x"31" ; 

  when "0010"=> 

            adt_hour1s<=x"32" ;

when "0011"=> 

      adt_hour1s <=x"33" ; 

when "0100"=>

      adt_hour1s <=x"34" ; 

when "0101"=> 

        adt_hour1s <=x"35" ;

when "0110"=> 

       adt_hour1s <=x"36" ; 

when "0111"=>

    adt_hour1s <=x"37" ; 

when "1000"=> 

      adt_hour1s <=x"38" ;

when  "1001"=> 

     adt_hour1s <=x"39" ;

 when others => 

         adt_hour1s <= x"30" ; 

end case ;


end process ; 


----------------------XXXXXXXXXXXXXXXXX-------------------------------

--------------------ADT MIN-------------------------------------------------

------------------======================================




process ( adt_min10) 

begin 


    case adt_min10  is 

  when "0000" => 

          adt_min10s<=x"30" ; 

  when "0001"=>

          adt_min10s <=x"31" ; 

  when "0010"=> 

            adt_min10s <=x"32" ;

when "0011"=> 

        adt_min10s <=x"33" ; 

when "0100"=>

      adt_min10s <=x"34" ; 

when "0101"=> 

        adt_min10s <=x"35" ;

when "0110"=> 

       adt_min10s <=x"36" ; 

when "0111"=>

     adt_min10s <=x"37" ; 

when "1000"=> 

       adt_min10s <=x"38" ;

when  "1001"=> 

      adt_min10s <=x"39" ;

 when others => 

          adt_min10s <= x"30" ; 

end case ;


end process ; 



process ( adt_min1) 

begin 


    case adt_min1 is 

  when "0000" => 

          adt_min1s<=x"30" ; 

  when "0001"=>

          adt_min1s <=x"31" ; 

  when "0010"=> 

            adt_min1s <=x"32" ;

when "0011"=> 

        adt_min1s <=x"33" ; 

when "0100"=>

      adt_min1s <=x"34" ; 

when "0101"=> 

        adt_min1s <=x"35" ;

when "0110"=> 

       adt_min1s <=x"36" ; 

when "0111"=>

     adt_min1s <=x"37" ; 

when "1000"=> 

       adt_min1s <=x"38" ;

when  "1001"=> 

      adt_min1s <=x"39" ;

 when others => 

          adt_min1s <= x"30" ; 

end case ;


end process ; 



----------------------xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-----------------------------

---------------ADT SEC-------------------------------------------------

-------===============================================


            process ( adt_sec1) 

            begin

            case (adt_sec1  ) is 

            when "0000" => 

                  adt_sec1s <=x"30" ; 

                  

            when "0001"=>

                  adt_sec1s <=x"31" ; 

         

                

            when "0010"=> 

                adt_sec1s <=x"32" ;

                    

            when "0011"=> 

                adt_sec1s <=x"33" ; 

            when "0100"=>

            adt_sec1s <=x"34" ;

           when "0101"=> 

            adt_sec1s <=x"35" ;

            when "0110"=> 

            adt_sec1s <=x"36" ; 

                

            when "0111"=>

            adt_sec1s <=x"37" ; 

           when "1000"=> 

            adt_sec1s <=x"38" ;

            when  "1001"=> 

            adt_sec1s <=x"39" ;

            when others => 

            adt_sec1s <= x"30" ; 

           end case ;

            end process ; 

            


 process ( adt_sec10) 

 begin

  case adt_sec10  is 

  when "0000" => 

          adt_sec10s <=x"30" ; 

  when "0001"=>

          adt_sec10s <=x"31" ; 

  when "0010"=> 

            adt_sec10s <=x"32" ;

when "0011"=> 

        adt_sec10s <=x"33" ; 

when "0100"=>

      adt_sec10s <=x"34" ; 

when "0101"=> 

         adt_sec10s <=x"35" ;

when "0110"=> 

        adt_sec10s <=x"36" ; 

when "0111"=>

     adt_sec10s <=x"37" ; 

when "1000"=> 

       adt_sec10s <=x"38" ;

when  "1001"=> 

      adt_sec10s <=x"39" ;

 when others => 

           adt_sec10s <= x"30" ; 

end case ;

end process ; 



--------------=============================cdt=======================

----============================================================



----------------------------XXXXXXXXXXXXXXXXXX---------------------------------

------------------CDT HOUR ---------------------------------------------------

----------=============================================


process ( cdt_hour10) 

begin 


    case cdt_hour10  is 

  when "0000" => 

          cdt_hour10s<=x"30" ; 

  when "0001"=>

         cdt_hour10s<=x"31" ; 

  when "0010"=> 

            cdt_hour10s <=x"32" ;

when "0011"=> 

       cdt_hour10s<=x"33" ; 

when "0100"=>

    cdt_hour10s <=x"34" ; 

when "0101"=> 

       cdt_hour10s <=x"35" ;

when "0110"=> 

       cdt_hour10s<=x"36" ; 

when "0111"=>

     cdt_hour10s <=x"37" ; 

when "1000"=> 

      cdt_hour10s <=x"38" ;

when  "1001"=> 

      cdt_hour10s <=x"39" ;

 when others => 

         cdt_hour10s <= x"30" ; 

end case ;


end process ; 



process ( cdt_hour1) 

begin 


    case cdt_hour1 is 

  when "0000" => 

          cdt_hour1s<=x"30" ; 

  when "0001"=>

          cdt_hour1s <=x"31" ; 

  when "0010"=> 

            cdt_hour1s<=x"32" ;

when "0011"=> 

      cdt_hour1s <=x"33" ; 

when "0100"=>

      cdt_hour1s <=x"34" ; 

when "0101"=> 

        cdt_hour1s <=x"35" ;

when "0110"=> 

       cdt_hour1s <=x"36" ; 

when "0111"=>

    cdt_hour1s <=x"37" ; 

when "1000"=> 

      cdt_hour1s <=x"38" ;

when  "1001"=> 

     cdt_hour1s <=x"39" ;

 when others => 

         cdt_hour1s <= x"30" ; 

end case ;


end process ; 


----------------------XXXXXXXXXXXXXXXXX-------------------------------

--------------------ADT MIN-------------------------------------------------

------------------======================================




process ( cdt_min10) 

begin 


    case cdt_min10  is 

  when "0000" => 

          cdt_min10s<=x"30" ; 

  when "0001"=>

          cdt_min10s <=x"31" ; 

  when "0010"=> 

            cdt_min10s <=x"32" ;

when "0011"=> 

        cdt_min10s <=x"33" ; 

when "0100"=>

      cdt_min10s <=x"34" ; 

when "0101"=> 

        cdt_min10s <=x"35" ;

when "0110"=> 

       cdt_min10s <=x"36" ; 

when "0111"=>

     cdt_min10s <=x"37" ; 

when "1000"=> 

       cdt_min10s <=x"38" ;

when  "1001"=> 

      cdt_min10s <=x"39" ;

 when others => 

          cdt_min10s <= x"30" ; 

end case ;


end process ; 



process ( cdt_min1) 

begin 


    case cdt_min1 is 

  when "0000" => 

          cdt_min1s<=x"30" ; 

  when "0001"=>

          cdt_min1s <=x"31" ; 

  when "0010"=> 

            cdt_min1s <=x"32" ;

when "0011"=> 

        cdt_min1s <=x"33" ; 

when "0100"=>

      cdt_min1s <=x"34" ; 

when "0101"=> 

        cdt_min1s <=x"35" ;

when "0110"=> 

       cdt_min1s <=x"36" ; 

when "0111"=>

     cdt_min1s <=x"37" ; 

when "1000"=> 

       cdt_min1s <=x"38" ;

when  "1001"=> 

      cdt_min1s <=x"39" ;

 when others => 

          cdt_min1s <= x"30" ; 

end case ;


end process ; 



----------------------xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-----------------------------

---------------ADT SEC-------------------------------------------------

-------===============================================


            process ( cdt_sec1) 

            begin

            case (cdt_sec1  ) is 

            when "0000" => 

                  cdt_sec1s <=x"30" ; 

                  

            when "0001"=>

                  cdt_sec1s <=x"31" ; 

         

                

            when "0010"=> 

                cdt_sec1s <=x"32" ;

                    

            when "0011"=> 

                cdt_sec1s <=x"33" ; 

            when "0100"=>

            cdt_sec1s <=x"34" ;

           when "0101"=> 

            cdt_sec1s <=x"35" ;

            when "0110"=> 

            cdt_sec1s <=x"36" ; 

                

            when "0111"=>

            cdt_sec1s <=x"37" ; 

           when "1000"=> 

            cdt_sec1s <=x"38" ;

            when  "1001"=> 

            cdt_sec1s <=x"39" ;

            when others => 

            cdt_sec1s <= x"30" ; 

           end case ;

            end process ; 

            


 process ( cdt_sec10) 

 begin

  case cdt_sec10  is 

  when "0000" => 

          cdt_sec10s <=x"30" ; 

  when "0001"=>

          cdt_sec10s <=x"31" ; 

  when "0010"=> 

            cdt_sec10s <=x"32" ;

when "0011"=> 

        cdt_sec10s <=x"33" ; 

when "0100"=>

      cdt_sec10s <=x"34" ; 

when "0101"=> 

         cdt_sec10s <=x"35" ;

when "0110"=> 

        cdt_sec10s <=x"36" ; 

when "0111"=>

     cdt_sec10s <=x"37" ; 

when "1000"=> 

       cdt_sec10s <=x"38" ;

when  "1001"=> 

      cdt_sec10s <=x"39" ;

 when others => 

           cdt_sec10s <= x"30" ; 

end case ;

end process ; 


------------------------xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-----------------------


adt_string  <=(  x"41"  ,x"44" ,x"54" , x"3a",x"20" ,x"20" ) ;


adt <= adt_string (conv_integer ( str_count ) ) ; 


                                      

cdt_string <=(x"43" , x"44" , x"54" ,x"3a",x"20" ,x"20" );

cdt <= cdt_string ( conv_integer ( str_count)) ; 




-- BIDIRECTIONAL TRI STATE LCD DATA BUS

   data_out <= data_bus when lcd_rw_int = '0' else "ZZZZZZZZ";

   

-- LCD_RW PORT is assigned to it matching SIGNAL 

 rw <= lcd_rw_int;

  e<=lcd_e ; 

  rs <=lcd_rs ; 

  


process ( clk ) 

begin

 if rising_edge ( clk) then 

  if ( rst='1') then 

       clock_count <=(others=>'0') ; 

       clk_enable400<='0' ; 

  else 

            if ( clock_count <= 416) then    -----------240 khz enable signal     for zedboard  working   100 mhz   

--                if ( clock_count <= 99999) then    -----------240 khz enable signal     for zedboard  working   100 mhz     

--                      if ( clock_count <= 99999) then    -----------240 khz enable signal     for zedboard  working   100 mhz  

--                      if ( clock_count <= 24999) then    -----------  working   4khz   final 

          clock_count <= clock_count +1 ; 

          clk_enable400 <='0' ; 

     else       

        clock_count<=(others=>'0') ; 

         clk_enable400 <='1'; 

    end if ; 

 end if ; 

 end if ;

 end process ; 





------------xx-------------------------

process ( clk, rst  ) 

 begin 

  if (rst='1') then 

      one_mscounter <=0; 

       f1khz <='0';  

  elsif rising_edge( clk) then

     

        if ( one_mscounter =835) then    ---- for zedboard    default   120 khz 

--      if ( one_mscounter =4999) then    -------for 10 mhz clock 

--           if ( one_mscounter =62499) then    -------for 1khz clock  for zybo   ----working 

--               if ( one_mscounter =10) then    -------for testing pupose only 

            one_mscounter <=0;

            f1khz <= not (f1khz) ; 

         else 

            one_mscounter <= one_mscounter +1 ; 

        end if ; 

   end if ; 

   end process; 




------------------------------------------------------------------

---------------statemachine cotnrol-----------------------------

--------------------------------------------------------------------


process ( f1khz,rst) 

begin

    if (rst='1') then 

       

           state <= power_up;

           data_bus <= x"38"; -- RESET   ---default 

--          data_bus <= x"01"; -- ---  x"01";   -- clearing the display 

--           next_command <= reset2;

          next_command <=   reset1;

           lcd_e <= '1';  ------------enableing data in 120 khz half of the clk_enable 

           lcd_rs <= '0';

           lcd_rw_int <= '0';  

          str_count <= "0000" ; 

            wait_count <=(others=>'0') ; 

          space_count <=0; 

          message_count<=(others=>'0') ; 

        elsif rising_edge(f1khz) then

--             if clk_enable400 = '1' then  

          

              case (state )  is 

              

              when power_up =>

                        

                             lcd_e <= '1';

                            lcd_rs <= '0';

                            lcd_rw_int <= '0';

                            data_bus <= x"38"; -- EXTERNAL RESET

                            state <= drop_lcd_e;                           

                                   if ( wait_count =512) then ------ testing 

                             

                                  wait_count <=(others=>'0') ; 

                                  next_command <= reset1;   ----500 ms reached 

                              else 

                                wait_count <= wait_count +1 ; 

                                end if ; 

                            char_count <= "00000";

                             if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

--======================= INITIALIZATION START ============================--

                       when reset1 =>

                            lcd_e <= '1';

                            lcd_rs <= '0';

                            lcd_rw_int <= '0';

                            data_bus <= x"38"; -- EXTERNAL RESET

                            state <= drop_lcd_e;

--                             next_command <= reset2;

                       

--                              if ( wait_count =250) then ------ working  

                                   if ( wait_count =512) then ------ testing 

                             

                                  wait_count <=(others=>'0') ; 

                                  next_command <= reset2;   ----500 ms reached 

                              else 

                                wait_count <= wait_count +1 ; 

                                end if ; 

                            char_count <= "00000";

                                if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

                          

                       when reset2 =>

                            lcd_e <= '1';

                            lcd_rs <= '0';

                            lcd_rw_int <= '0';

                            data_bus <= x"38"; -- EXTERNAL RESET

                            state <= drop_lcd_e;

                            

                            next_command <= reset3;

                                 if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

                       when reset3 =>

                            lcd_e <= '1';

                            lcd_rs <= '0';

                            lcd_rw_int <= '0';

                            data_bus <= x"38"; -- EXTERNAL RESET

                            state <= drop_lcd_e;

                             

                            next_command <= func_set;

                             if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 


                       -- Function Set

                       --==============--

                       when func_set =>                

                            lcd_e <= '1';

                            lcd_rs <= '0';

                            lcd_rw_int <= '0';

                            data_bus <= x"38";  -- Set Function to 8-bit transfer, 2 line display and a 5x8 Font size

                            state <= drop_lcd_e;

                             

                            next_command <= display_off;   ---default working 

--                              next_command <= display_clear;

                                  if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

                       -- Turn off Display

                       --==============-- 

                       when display_off =>

                            lcd_e <= '1';

                            lcd_rs <= '0';

                            lcd_rw_int <= '0';

                            data_bus <= x"08"; -- Turns OFF the Display, Cursor OFF and Blinking Cursor Position OFF.......

--                                data_bus <= x"0D";                        -- (0F = Display ON and Cursor ON, Blinking cursor position ON)

                            state <= drop_lcd_e;

                            

                            next_command <= display_clear;

                                 if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

  

                       -- Clear Display 

                       --==============--

                       when display_clear =>

                            lcd_e <= '1';

                            lcd_rs <= '0';

                            lcd_rw_int <= '0';

                            data_bus <= x"01"; -- Clears the Display    

                            state <= drop_lcd_e;

                             

                            next_command <= display_on;

                               if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

                       -- Turn on Display and Turn off cursor

                       --===================================--

                       when display_on =>

                            lcd_e <= '1';

                            lcd_rs <= '0';

                            lcd_rw_int <= '0';

                            data_bus <= x"0C"; -- Turns on the Display (0E = Display ON, Cursor ON and Blinking cursor OFF) 

--                                 data_bus <= x"0D";                   


                            state <= drop_lcd_e;

                             

--                            next_command <= mode_set;

--                            next_command <= char_mode;

                              next_command <= dram_address;

                               if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 


-----------------enable while inputing from keypad 


             when cursor_shift  =>

                            lcd_e <= '1';

                            lcd_rs <= '0';

                            lcd_rw_int <= '0';

                            data_bus <= x"14"; 

                            state <= drop_lcd_e;

                             

                            next_command <= mode_set;

                                 if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

                         when char_mode  =>

                            lcd_e <= '1';

                            lcd_rs <= '0';

                            lcd_rw_int <= '0';

                            data_bus <= x"17"; 

                            state <= drop_lcd_e;

                               

                            next_command <= mode_set;    

                                 if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

           

             when dram_address  =>

                            lcd_e <= '1';

                            lcd_rs <= '0';

                            lcd_rw_int <= '0';

                            data_bus <= "10000001"; 

                            state <= drop_lcd_e;

                             

                            next_command <= mode_set;

                            if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

           

                       -- Set write mode to auto increment address and move cursor to the right

                       --====================================================================--

                       when mode_set =>

                            lcd_e <= '1';

                            lcd_rs <= '0';

                            lcd_rw_int <= '0';

                            data_bus <= x"06"; -- Auto increment address and move cursor to the right

--                          data_bus <= x"07";

                          

                            state <= drop_lcd_e;

                          

--                             next_command <=st1 ; 

--                                  next_command <=adt_a ; 

                             next_command <=adt_state ; 

                                  if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

                  

                    when adt_state => 

                                        

                                          state <= drop_lcd_e;

                                           lcd_e <= '1';

                                           lcd_rs <= '1';

                                           lcd_rw_int <= '0';

                                           ----------------------------added 

                                           data_bus <=adt ;

                                          if ( str_count ="0101") then 

                                              str_count <="0000" ;             

                                                next_command<=day100;

                                        else 

                                          str_count <= str_count +1 ; 

                                        end if ;        

                                        

                                      if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;

                                       

                                           if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ;   

                                        

                                             

                                            

                                        

                             ------------------------added code ------------------

                             

                               when day100=>                                     

                                state <= drop_lcd_e;

                                lcd_e <= '1';

                                lcd_rs <= '1';

                                lcd_rw_int <= '0';

                                ----------------------------added 

                                data_bus <=adt_d100s; 

                                   next_command<=day10;

                                

                               

                                 if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;

                                            if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

                                

                                      when day10=>                                     

                                state <= drop_lcd_e;

                                lcd_e <= '1';

                                lcd_rs <= '1';

                                lcd_rw_int <= '0';

                                ----------------------------added 

                                data_bus <=adt_d10s; 

                                  

                                next_command<=day1;

                               

                                    if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;    

                                            if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ;   

                                         

                                when day1=>                                     

                                state <= drop_lcd_e;

                                lcd_e <= '1';

                                lcd_rs <= '1';

                                lcd_rw_int <= '0';

                                ----------------------------added 

                                data_bus <=adt_d1s; 


                                next_command<=dcoln;

                                

                               if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;

                                            if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

                                             

                               when dcoln=>

                                    

                                                      

                                                state <= drop_lcd_e;

                                                lcd_e <= '1';

                                                lcd_rs <= '1';

                                                lcd_rw_int <= '0';

                                                ----------------------------added 

                                                data_bus <=x"3a"; 

                                                  

                                                next_command<=hour10;         

                                     

                                    if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;

                                       

                                            if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

                                             

                        when hour10=>                                     

                                state <= drop_lcd_e;

                                lcd_e <= '1';

                                lcd_rs <= '1';

                                lcd_rw_int <= '0';

                                ----------------------------added 

                                data_bus <=adt_hour10s; 

                                   

                                next_command<=hour1;

                                 

                                    if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;     

                                       

                                                  if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

                        when hour1=>

                        

                                state <= drop_lcd_e;

                                lcd_e <= '1';

                                lcd_rs <= '1';

                                lcd_rw_int <= '0';

                                ----------------------------added 

                                data_bus <=adt_hour1s; 

                                  

                                next_command<=coln2;

                               

                                  if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;    

                                            if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

                                               

                        

                         when coln2=>

                                    

                                                      

                                                state <= drop_lcd_e;

                                                lcd_e <= '1';

                                                lcd_rs <= '1';

                                                lcd_rw_int <= '0';

                                                ----------------------------added 

                                                data_bus <=x"3a"; 

                                                

                                                next_command<=min10;

                                         

                                              if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;

                                            if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

                                           when min10=>

                                                         

                                                         state <= drop_lcd_e;

                                                         lcd_e <= '1';

                                                         lcd_rs <= '1';

                                                         lcd_rw_int <= '0';

                                                         ----------------------------added 

                                                         data_bus <=adt_min10s; 

                                                          

                                                         next_command<=min1;

                                                              if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;

                                            if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

                                       

                                     when min1=>

                                     

                                             state <= drop_lcd_e;

                                             lcd_e <= '1';

                                             lcd_rs <= '1';

                                             lcd_rw_int <= '0';

                                             ----------------------------added 

                                             data_bus <=adt_min1s; 

                                             

                                             next_command<=coln1;

                                           if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;

                                          if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ;                              

                    -----------------------------------------------------

                         when  coln1=> 

                                      

                                state <= drop_lcd_e;

                                lcd_e <= '1';

                                lcd_rs <= '1';

                                lcd_rw_int <= '0';

                                ----------------------------added 

                                data_bus <=x"3a"; 

                               

                                next_command<=sec10;

                                        

                               if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;   

                                          if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ;               

            

                 when sec10=>

                             

                                      state <= drop_lcd_e;

                                       lcd_e <= '1';

                                       lcd_rs <= '1';

                                       lcd_rw_int <= '0';

                                       ----------------------------added 

                                       data_bus <=adt_sec10s; 

                                       

                                       next_command<=sec1;

                               

                                      if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;        

                                       

                                            if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

              

                when sec1=>

                                    

                                    state <= drop_lcd_e;

                                    lcd_e <= '1';

                                    lcd_rs <= '1';

                                    lcd_rw_int <= '0';

                                    ----------------------------added 

                                    data_bus <=adt_sec1s; 

                                      

                                    next_command<=line2;

--                                         next_command<=adt_space1;

                                 if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;

                                             

                                           if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ; 

                                            

           when adt_space1 => 

                                         state <= drop_lcd_e;

                                           lcd_e <= '1';

                                           lcd_rs <= '1';

                                           lcd_rw_int <= '0';                               

                                           data_bus <=x"20" ;     

                                           if ( space_count=5) then 

                                                                            

--                                         next_command<=adt_space2;    

                                           next_command<=line2;       

                                         else 

                                          space_count <= space_count +1 ; 

                                         end if ; 

                                         

                      when adt_space2 => 

                                         state <= drop_lcd_e;

                                           lcd_e <= '1';

                                           lcd_rs <= '1';

                                           lcd_rw_int <= '0';                               

                                           data_bus <=x"20" ;                                      

                                         next_command<=line2;       

    

                       when line2 =>

                            lcd_e <= '1';

                            lcd_rs <= '0';

                            lcd_rw_int <= '0';

                           

                            data_bus <= x"c0";   ---c0 default    ---working 

--                                 data_bus <= x"40"; 

                            state <= drop_lcd_e;

                      

                               

--                              next_command<=cdt_c;

                           next_command<=line2_data;

                        if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;

                                        if ( preset='1') then 

                                            next_command <= rst1 ; 

                                            end if ;     

                                       

                                       

                                       

                                             

             when cdt_c => 

                                         state <= drop_lcd_e;

                                           lcd_e <= '1';

                                           lcd_rs <= '1';

                                           lcd_rw_int <= '0';                               

                                           data_bus <=x"43" ;                                      

                                         next_command<=cdt_d;

                        when cdt_d => 

                                         state <= drop_lcd_e;

                                           lcd_e <= '1';

                                           lcd_rs <= '1';

                                           lcd_rw_int <= '0';                               

                                           data_bus <=x"44" ;                                      

                                         next_command<=cdt_t;            

                                         

                  when cdt_t => 

                                         state <= drop_lcd_e;

                                           lcd_e <= '1';

                                           lcd_rs <= '1';

                                           lcd_rw_int <= '0';                               

                                           data_bus <=x"54" ;                                      

                                         next_command<=cdt_coln;         

                    when cdt_coln => 

                                         state <= drop_lcd_e;

                                           lcd_e <= '1';

                                           lcd_rs <= '1';

                                           lcd_rw_int <= '0';                               

                                           data_bus <=x"3a" ;                                      

                                         next_command<=cdt_space1;         

                                        

           

            when line2_data=>

                                state <= drop_lcd_e;

                                    lcd_e <= '1';

                                    lcd_rs <= '1';

                                    lcd_rw_int <= '0';                           

                                    data_bus <= cdt ; 

                                  if ( str_count ="0101") then 

                                          str_count <="0000" ; 

                                       next_command<=cdth10;

--                                                 next_command<=line3;

                                 else 

                                   str_count <= str_count +1 ; 

                                 end if ; 

                                    

                                    if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;

                                

                                                                 if ( preset='1') then 

                                                             next_command <= rst1 ; 

                                                            end if ;     

                                 

                                 

            ----------------==========================cdt -timing 

               when cdth10=>

                                                 

                                                 ----------------------------

                                                state <= drop_lcd_e;

                                                lcd_e <= '1';

                                                lcd_rs <= '1';

                                                lcd_rw_int <= '0';

                                                data_bus <=cdt_hour10s;              

                                           

                                                next_command<=cdth1;

                                       if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;

                                      

                                                     if ( preset='1') then 

                                                             next_command <= rst1 ; 

                                                            end if ; 

                                       

                                                 --------------------------------

                                          

                                                 when cdth1=>

                                                 

                                                    state <= drop_lcd_e;

                                                    lcd_e <= '1';

                                                    lcd_rs <= '1';

                                                    lcd_rw_int <= '0';                                

                                                    data_bus <=cdt_hour1s; 

                                              

                                                    next_command<=coln3;

                                                 

                                           if ( key_in=x"0004") then

                                          next_command<=power_up;

                                        end if ;

                                    

                                          if ( preset='1') then 

                                             next_command <= rst1 ; 

                                              end if ; 

                                       

                                       

                                                         

                                  when coln3=>

                                             

                                                               

                                                         state <= drop_lcd_e;

                                                         lcd_e <= '1';

                                                         lcd_rs <= '1';

                                                         lcd_rw_int <= '0';                                            

                                                         data_bus <=x"3a";                                                        

                                                       

                                                         next_command<=cdtm10;

                               if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;

                                       

                                                                    if ( preset='1') then 

                                                             next_command <= rst1 ; 

                                                            end if ; 

                                       

                                       

                                                    when cdtm10=>

                                                                  

                                                                  state <= drop_lcd_e;

                                                                  lcd_e <= '1';

                                                                  lcd_rs <= '1';

                                                                  lcd_rw_int <= '0';

                                                                  ----------------------------added 

                                                                  data_bus <=cdt_min10s; 

                                                

                                                                  next_command<=cdtm1;

                                         

                                                 if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;

                                       

                                                             if ( preset='1') then 

                                                             next_command <= rst1 ; 

                                                            end if ; 

                                                                  

                                                                  when cdtm1=>

                                                                  

                                                                  state <= drop_lcd_e;

                                                                  lcd_e <= '1';

                                                                  lcd_rs <= '1';

                                                                  lcd_rw_int <= '0';

                                                                  ----------------------------added 

                                                                  data_bus <=cdt_min1s; 

                                                         

                                                                  next_command<=coln4;

                                       

                                                                    if ( key_in=x"0004") then

                                                                  next_command<=power_up;

                                                                   end if ;

                                                              if ( preset='1') then 

                                                             next_command <= rst1 ; 

                                                            end if ;           

                                                    

                                                    

                                                                                     

                                                 -----------------------------------------------------

                                  when  coln4=> 

                                               

                                         state <= drop_lcd_e;

                                         lcd_e <= '1';

                                         lcd_rs <= '1';

                                         lcd_rw_int <= '0';

                                         ----------------------------added 

                                         data_bus <=x"3a"; 

                                          

                                         next_command<=cdts10;

                                                 

                                        if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;

                                             if ( preset='1') then 

                                           next_command <= rst1 ; 

                                             end if ;           

                     

                          when cdts10=>

                                      

                                               state <= drop_lcd_e;

                                                lcd_e <= '1';

                                                lcd_rs <= '1';

                                                lcd_rw_int <= '0';

                                                ----------------------------added 

                                                data_bus <=cdt_sec10s; 

                                            

                                                next_command<=cdts1;

                         

                                                    if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;

                                        if ( preset='1') then 

                                              next_command <= rst1 ; 

                                    end if ;  

                                       

                                             

                         when cdts1=>

                                             

                                             state <= drop_lcd_e;

                                             lcd_e <= '1';

                                             lcd_rs <= '1';

                                             lcd_rw_int <= '0';

                                             ----------------------------added 

                                             data_bus <=cdt_sec1s; 

                                             

                                             next_command<=coln5 ;            

                                

                                      if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;

                                       if ( preset='1') then 

                                         next_command <= rst1 ; 

                                          end if ;   

                                       

                                       

                                       

                             when  coln5=> 

                                                                                           

                                    state <= drop_lcd_e;

                                    lcd_e <= '1';

                                    lcd_rs <= '1';

                                    lcd_rw_int <= '0';

                                    ----------------------------added 

                                    data_bus <=x"3a"; 

                                   

                                         next_command<=status;                 

                                     

                                     if ( key_in=x"0004") then

                                       next_command<=power_up;

                                       end if ;

                                       

                                                                    if ( preset='1') then 

                                                                  next_command <= rst1 ; 

                                                                  end if ;    

                                             

                          when status =>

                                                                                       

                                                            state <= drop_lcd_e;

                                                            lcd_e <= '1';

                                                            lcd_rs <= '1';

                                                            lcd_rw_int <= '0';

                                                            ----------------------------added 

                                                            if ( status_reg ="00" ) then 

                                                            data_bus <=x"30"; 

                                                            elsif ( status_reg="10" ) then 

                                                            data_bus<=x"55" ; 

                                                            elsif (status_reg="01" ) then 

                                                            data_bus <=x"44" ; 

                                                            

                                                            elsif (status_reg="11" ) then 

                                                            data_bus <=x"48" ;

                                                            else  

                                                            data_bus  <=x"55" ; 

                                                            end if ; 

                                                            next_command<=return_home;   

                                                            

                                                            

                                                            

                                                            

                                                                  

                                                                  

                                                                  if ( key_in=x"0004") then

                                                                  next_command<=power_up;

                                                                  end if ;            

                                                                  

                                                                  if ( preset='1') then 

                                                                  next_command <= rst1 ; 

                                                                  end if ; 

                                             

                                                      

                                                                     when cdt_space1 => 

                                         state <= drop_lcd_e;

                                           lcd_e <= '1';

                                           lcd_rs <= '1';

                                           lcd_rw_int <= '0';                               

                                           data_bus <=x"20" ;   

                                             if ( space_count=7) then                                                                          

                                           next_command<=line3;       

                                         else 

                                          space_count <= space_count +1 ; 

                                         end if ; 

                                                                             

--                                         next_command<=cdt_space2;       

                      when cdt_space2 => 

                                         state <= drop_lcd_e;

                                           lcd_e <= '1';

                                           lcd_rs <= '1';

                                           lcd_rw_int <= '0';                               

                                           data_bus <=x"20" ;                                      

                                         next_command<=RETURN_HOME;                                 

                                                                                           

                                                                                                                                

            ---------=====================================                     

          

                 when line3 =>

                                lcd_e <= '1';

                                lcd_rs <= '0';

                                lcd_rw_int <= '0';

                                data_bus <= x"94";   ---c0 default    ---working            

                                state <= drop_lcd_e;                            

                                next_command<=line3_data;       

                      when line3_data =>

                                     state <= drop_lcd_e;  

                                    lcd_e <= '1';

                                    lcd_rs <= '1';

                                    lcd_rw_int <= '0';

                                  data_bus <=x"20" ;    

                                      if ( space_count=19) then                                                                           

                                           next_command<=line4;    

                                         else 

                                          space_count <= space_count +1 ; 

                                         end if ;          

                                                            

--                                    next_command<=line4;       

                                    

             

                                    

                            when line4 =>

                            lcd_e <= '1';

                            lcd_rs <= '0';

                            lcd_rw_int <= '0';

                            data_bus <= x"d4";   ---c0 default    ---working            

                            state <= drop_lcd_e;                            

                            next_command<=line4_data;       

                            

                            when line4_data =>


                                        state <= drop_lcd_e;

                                           lcd_e <= '1';

                                           lcd_rs <= '1';

                                           lcd_rw_int <= '0';

                                       

                                         

                                            if ( space_count=19) then                                                                           

                                          next_command<=return_home;

                                         else 

                                          space_count <= space_count +1 ; 

                                         end if ;          

                                         

          

                                             -----------------added for keypad input ------------------



                                              when st1=>

                                                  lcd_e <= '1';

                                                  lcd_rs <= '1';

                                                  lcd_rw_int <= '0';

                                                  data_bus <=x"20";

                                    if ( key_q =x"0004" ) then    ------1 

                                       data_bus <= x"31" ;   ---c0 default    ---working    

                                         state <= drop_lcd_e;                            

                                      next_command<=st2;  

                                  end if ; 



                                   if ( key_q =x"0008") then ----- 2  

                                         lcd_e <= '1';

                                         data_bus <=x"32" ; 

                                         state <= drop_lcd_e;                            

                                         next_command<=st2;   

                                    end if  ; 

             

                                     if (key_q=x"0010" ) then    -------3

                                               data_bus  <= x"33" ; 

                                                 state <= drop_lcd_e;                            

                                      next_command<=st2;   

                                      end if ; 


                                      


                                          if (key_q=x"0002" ) then    -------4 

                                                 data_bus  <= x"34" ; 

                                                     state <= drop_lcd_e;                            

                                              next_command<=st2;   


                                      end if;  



                                          if (key_q=x"0040" ) then   ------5

                                                   data_bus  <= x"35" ; 

                                                       state <= drop_lcd_e;                            

                                      next_command<=st2;   

                                      end if  ;


                                      


                                          if (key_q=x"0200" ) then  --------------6  

                                                 data_bus  <= x"36" ; 

                                                     state <= drop_lcd_e;                            

                                      next_command<=st2;   


                                      end if ; 


                                      


                                          if (key_q=x"0001" ) then   ------ 7 

                                                 data_bus  <= x"37" ; 

                                              state <= drop_lcd_e;                            

                                      next_command<=st2;   

                                      end if ; 


                                     

                                        if (key_q=x"0080" ) then ----- 8

                                                 data_bus  <= x"38" ; 

                                            state <= drop_lcd_e;                            

                                      next_command<=st2;   


                                      end if ; 


                                      if (key_q=x"0400" ) then   ------ 9

                                                data_bus  <= x"39" ; 

                                                 state <= drop_lcd_e;                            

                                         next_command<=st2;   

                                

                                      end if ; 


                                                if (key_q=x"0100" ) then ------ 0 

                                                  data_bus  <= x"30" ; 

                                               state <= drop_lcd_e;                            

                                           next_command<=st2;   


                                      end if ; 


                                      


                                         if (key_q=x"0020" ) then   -----cursor left  a 

--                                                 data_bus  <= x"10" ; 

                                                     state <= drop_lcd_e;                            

                                      next_command<=read_addr;   

--                                           next_command<=st3;   


                                      end if ; 


                                          if (key_q=x"1000" ) then ------cursor right b 

                                                 data_bus  <= x"1C" ;

                                              state <= drop_lcd_e;                            

                                      next_command<=st4;   


                                      end if ;


                                      

                                          if (key_q=x"2000" ) then  ---------clear all c  

                                                data_bus  <= x"01" ; 

                                              state <= drop_lcd_e;                            

                                      next_command<=display_clear;   

                                      end if ; 


                                                     if (key_q=x"4000" ) then  -------return home d 

                                                 data_bus  <= x"02" ; 

                                              state <= drop_lcd_e;                            

                                      next_command<=RETURN_HOME;   

                                      end if ; 


                                          if (key_q=x"0800" ) then  -------enter time # 

                                                data_bus  <= x"01" ; 

                                                    state <= drop_lcd_e;                            

                                              next_command<=ST5;   


                                      end if ; 

                                      

                                       if (key_q=x"8000" ) then  -------save and exit  * 

                                                data_bus  <= x"02" ; 

                                                    state <= drop_lcd_e;                            

                                              next_command<=RETURN_HOME;   


                                      end if ; 


                                     when st2=>

                                             lcd_e <= '1';

                                            lcd_rs <= '1';

                                           lcd_rw_int <= '0';

                                        wait_1sec <= wait_1sec+1 ; 

                                         data_bus <=x"20"; 


                                            if ( wait_1sec=119617) then    ---- .5 sec wait 

--                                              if ( wait_1sec=169617) then    ---- .5 sec wait 

--                                            if ( wait_1sec=11000) then    ---- .5 sec wait 

                                            wait_1sec <=0 ; 

                                            state<=st1 ; 

--                                            state <= line4_data ; 

                                         end if ; 


                                         when st3=>     ----CURSOR LEFT 

                                    lcd_e <= '1';

                                    lcd_rs <= '0';

                                    lcd_rw_int <= '0';

                                

                                    data_bus <= x"10"  ;   

                                      state <= drop_lcd_e;           

                                       next_command<=ST1;    


                                


                                         when st4=>    ---CURSOR RIGHT

                                    lcd_e <= '1';

                                    lcd_rs <= '0';

                                    lcd_rw_int <= '0';

                               

                                   data_bus <= x"1C" ;   

                                        state <= drop_lcd_e;  

                                      next_command<=st1;          

                                  


                                         when st5 =>

                                    lcd_e <= '1';

                                    lcd_rs <= '1';

                                    lcd_rw_int <= '0';

                                      data_bus <= x"41" ; 

                               

                                        state <= drop_lcd_e;      

                                      next_command<=return_home;     

                                              

                                             

                                                       when read_addr=>    

                                    lcd_e <= '1';

                                    lcd_rs <= '1';

                                    lcd_rw_int <= '1';

                               

                           

                                        state <= drop_lcd_e;  

                                      next_command<=read_addr;       

                                       if (key_q=x"1000" ) then ------ when pressed b go to the state st1 

                                                                     

                                      next_command<=st1;  

                                     end if ; 

                                        

                                        

                                            if ( preset='1') then 

                                          next_command <= clear_screen ; 

                                          end if ; 

                                                                               

                                             -------------------xxxxxxxxx---------------------------------      

                                  

                                     

                       when return_home =>

                            lcd_e <= '1';

                            lcd_rs <= '0';

                            lcd_rw_int <= '0';

--                            data_bus <= x"80";  ---working 

                              data_bus <= x"02";     ----just now  commented 


                            state <= drop_lcd_e;

                           

                           next_command <=adt_state ; 

--                           next_command <=st1 ; 

                                    if ( preset='1') then 

                                next_command <= rst1 ; 

                             end if ;                  

                    

                       -- The next states occur at the end of each command or data transfer to the LCD

                       -- Drop LCD E line - falling edge loads inst/data to LCD controller

                       --============================================================================-----

                       when drop_lcd_e =>

                            state <= next_command;

                            lcd_e <= '0';

--                           if ( preset='1') then 

--                                next_command <= rst1 ; 

--                             end if ; 

                             

                             

                             

                                     when rst1=>

                                        state <= drop_lcd_e;

                                        lcd_e <= '1';

                                        lcd_rs <= '0';

                                        lcd_rw_int <= '0';

                                        data_bus <= x"01";

                                       if ( wait_count =312) then ------ testing 

                             

                                    wait_count <=(others=>'0') ; 

--                                    next_command <= rst2;  ----500 ms reached 

                                  next_command <= func; 

                              else 

                                wait_count <= wait_count +1 ; 

                                end if ; 

                                

                                   when rst2=>

                                        state <= drop_lcd_e;

                                        lcd_e <= '1';

                                        lcd_rs <= '0';

                                        lcd_rw_int <= '0';

                                        data_bus <= x"38";

                                       if ( wait_count =312) then ------ testing 

                             

                                    wait_count <=(others=>'0') ; 

                                    next_command <= func;  ----500 ms reached 

                              else 

                                wait_count <= wait_count +1 ; 

                                end if ; 

                                

                                   when func=>

                                        state <= drop_lcd_e;

                                        lcd_e <= '1';

                                        lcd_rs <= '0';

                                        lcd_rw_int <= '0';

                                        data_bus <= x"38";

                                       if ( wait_count =512) then ------ testing 

                             

                                    wait_count <=(others=>'0') ; 

                                    next_command <= clear_screen;  ----500 ms reached 

                              else 

                                wait_count <= wait_count +1 ; 

                                end if ; 

                                

                             

                                  

                                      when clear_screen=>

                                        state <= drop_lcd_e;

                                        lcd_e <= '1';

                                        lcd_rs <= '0';

                                        lcd_rw_int <= '0';

                                        data_bus <= x"01";

                                       if ( wait_count =100) then ------ testing 

                             

                                    wait_count <=(others=>'0') ; 

                                    next_command <= disp_on;  ----500 ms reached 

                                      

                                       

                              else 

                                wait_count <= wait_count +1 ; 

                                end if ; 

                                                 

                   

                    

                    

                                        

                     when disp_on => 

                            state <= drop_lcd_e;  

                            lcd_e <= '1';

                            lcd_rs <= '0';

                            lcd_rw_int <= '0';

                            data_bus <= x"0C"; -- Turns on the Display (0E = Display ON, Cursor ON and Blinking cursor OFF) 

                            next_command <= MODE;

                            

                            

                           when MODE => 

                            state <= drop_lcd_e;  

                            lcd_e <= '1';

                            lcd_rs <= '0';

                            lcd_rw_int <= '0';

                            data_bus <= x"06";


                            next_command <= ADDR;          

--                                     next_command <=  message_enter;

                          when ADDR => 

                            state <= drop_lcd_e;  

                            lcd_e <= '1';

                            lcd_rs <= '0';

                            lcd_rw_int <= '0';

                            data_bus <= "10000001";

--                              data_bus <= "10000000";


                            next_command <= message_enter;

--                      next_command <=    input_data;

                                     

                                                  

                     when message_enter=> 

                                     state <= drop_lcd_e;

                                    lcd_e <= '1';

                                    lcd_rs <= '1';

                                    lcd_rw_int <= '0';                           

                                    data_bus <= next_char; 

                                    if ( message_count ="1111") then 

                                          message_count <="0000" ; 

                                  

                                        next_command<=time_save;       

--                                        next_command<=second_line;          

                          

                                 else 

                                   message_count <= message_count +1 ; 

                                 end if ; 

                                     IF ( PRESET='0') THEN 

                                                       next_command<=second_line; 

                                                       data_bus <= x"c0"; 

                                                END IF ; 

                                  

                                          

                    when second_line=> 

                                        lcd_e <= '1';

                                        lcd_rs <= '0';

                                        lcd_rw_int <= '0';

--                                        data_bus <= x"c0";   ---c0 default    ---working 

                                              data_bus <= x"c0"; 

                                        state <= drop_lcd_e;                                                                                 

--                                    next_command<=second_linedata;

                                     next_command<=input_data;   ------ input numbe in the second line  when the  preset  button is make zero 

                                    

                            

                  when second_linedata=> 

                                               state <= drop_lcd_e;          

                                                lcd_e <= '1';

                                                  lcd_rs <= '1';

                                                  lcd_rw_int <= '0';

                                                  data_bus <=x"41";

                                                next_command<=time_save;

                                         

                                                

                  

          

               when input_data=> 

                                                lcd_e <= '1';

                                                  lcd_rs <= '1';

                                                  lcd_rw_int <= '0';

                                                  data_bus <=x"20";

                                    

                                                

                                    if ( key_q =x"0004" ) then    ------1 

                                       data_bus <= x"31" ;   

                                         state <= drop_lcd_e;                            

                                      next_command<=delay_state;  

                                  end if ; 



                                   if ( key_q =x"0008") then ----- 2                            

                                         data_bus <=x"32" ; 

                                         state <= drop_lcd_e;                            

                                         next_command<=delay_state;   

                                    end if  ; 

             

                                     if (key_q=x"0010" ) then    -------3

                                               data_bus  <= x"33" ; 

                                                 state <= drop_lcd_e;                            

                                      next_command<=delay_state;   

                                      end if ; 


                                      


                                          if (key_q=x"0002" ) then    -------4 

                                                 data_bus  <= x"34" ; 

                                                     state <= drop_lcd_e;                            

                                              next_command<=delay_state;   


                                      end if;  



                                          if (key_q=x"0040" ) then   ------5

                                                   data_bus  <= x"35" ; 

                                                       state <= drop_lcd_e;                            

                                      next_command<=delay_state;   

                                      end if  ;


                                      


                                          if (key_q=x"0200" ) then  --------------6  

                                                 data_bus  <= x"36" ; 

                                                     state <= drop_lcd_e;                            

                                      next_command<=delay_state;   


                                      end if ; 


                                      


                                          if (key_q=x"0001" ) then   ------ 7 

                                                 data_bus  <= x"37" ; 

                                              state <= drop_lcd_e;                            

                                      next_command<=delay_state;   

                                      end if ; 


                                     

                                        if (key_q=x"0080" ) then ----- 8

                                                 data_bus  <= x"38" ; 

                                            state <= drop_lcd_e;                            

                                      next_command<=delay_state;   


                                      end if ; 


                                      if (key_q=x"0400" ) then   ------ 9

                                                data_bus  <= x"39" ; 

                                                 state <= drop_lcd_e;                            

                                         next_command<=delay_state;   

                                

                                      end if ; 


                                                if (key_q=x"0100" ) then ------ 0 

                                                  data_bus  <= x"30" ; 

                                               state <= drop_lcd_e;                            

                                           next_command<=delay_state;   


                                      end if ; 



                                          if (key_q=x"8000" ) then  -------save and exit  * 

                                                data_bus  <= x"02" ; 

                                                    state <= drop_lcd_e;                            

                                              next_command<=power_up;   


                                      end if ; 

                                      

                                           if (key_q=x"0800" ) then   ----# go to rst1 state 

                                                 data_bus  <= x"02" ;  

                                                    state <= drop_lcd_e;                                

                                           next_command<=rst1;   

                                      end if ; 


--                                         if (key_q=x"0020" ) then ----A   SHIFT THE CURSOR TO THE LIFT

--                                                 data_bus  <= x"10" ; 

--                                                     state <= drop_lcd_e;                            

--                                               next_command<=CURSOR_LEFT;   


--                                           end if ; 


--                                          if (key_q=x"1000" ) then  ---B  SHIFT THE DISPLAY AND CURSOR POSITION TO RIGHT 

--                                                 data_bus  <= x"1C" ;

--                                              state <= drop_lcd_e;                            

--                                            next_command<=CURSOR_RIGHT;   


--                                      end if ;


                                      

--                                          if (key_q=x"2000" ) then    ----C WORTE  WJATEVER PRESENT AT LAST IN PLAE OF C

--                                                data_bus  <= x"43" ; 

--                                              state <= drop_lcd_e;                            

--                                            next_command<=OVERIDE_C;   

--                                      end if ; 


--                                                     if (key_q=x"0800" ) then   ----# SAVE AND EXIT 

--                                                 data_bus  <= x"02" ;                            

--                                         next_command<=time_save;   

--                                      end if ; 


--                                          if (key_q=x"8000" ) then    ---*   CLEAR A DISPLAY 

--                                                data_bus  <= x"01" ; 

--                                                    state <= drop_lcd_e;                            

--                                              next_command<=clear_screen;   


--                                      end if ; 

                                      

--                                       if (key_q=x"4000" ) then    ---D    

--                                                data_bus  <= x"38" ; 

--                                                    state <= drop_lcd_e;                            

--                                              next_command<=reset2;   


--                                      end if ; 

                                      

                                      

--                              when OVERIDE_C=>

--                                    lcd_e <= '1';

--                                    lcd_rs <= '1';

--                                    lcd_rw_int <= '0';

                                

--                                    data_bus <= x"43"  ;   

--                                      state <= drop_lcd_e;           

--                                     next_command<=second_linedata;   

                                      

--                                        when CURSOR_LEFT=>

--                                    lcd_e <= '1';

--                                    lcd_rs <= '0';

--                                    lcd_rw_int <= '0';

                                

--                                    data_bus <= x"10"  ;   

--                                      state <= drop_lcd_e;           

--                                     next_command<=second_linedata;   


                                 


--                                         when CURSOR_RIGHT=>

--                                    lcd_e <= '1';

--                                    lcd_rs <= '0';

--                                    lcd_rw_int <= '0';

                               

--                                   data_bus <= x"1C" ;  

--                                        state <= drop_lcd_e;  

--                                      next_command<=second_linedata;          

                               


                                     when delay_state=>

                                             lcd_e <= '1';

                                            lcd_rs <= '1';

                                           lcd_rw_int <= '0';

                                            data_bus <=x"20"; 

                                        wait_1sec <= wait_1sec+1 ; 


--                                            if ( wait_1sec=119617) then    ---- .5 sec wait 

                                               if ( wait_1sec=110000) then    ---- .5 sec wait 

                                            wait_1sec <=0 ; 

--                                            state<=second_linedata ;    

                                        state<=     input_data    ;                             

                                         end if ;                

                      when time_save=> 

                                     state <= drop_lcd_e;

                                     lcd_e <= '1';

                                   lcd_rs <= '0';

                                 lcd_rw_int <= '0';

                              data_bus <= x"02";     ----just now  commented 

                        next_command<=message_enter;   

--                              next_command<=input_data;   

                        

                    

                      end case ; 

                        end if ; 

--                     end if ; 

                        

              

end process  ;

end Behavioral;-- Company: 







--------------------------xxxx-------------------------------new -----------------------------------------updated---------------



------ Company: aujus technology pvt.ltd 

------ Engineer: arun chaudhary 

------ 

------ Create Date: 31.08.2020 13:24:34

------ Design Name: raystar oled cotrol -- timming dissimination 

------ Module Name: oled_module_controllerv1 - Behavioral

------ Project Name:  timming dissimination

------ Target Devices: zynq ,zedboard 

------ Tool Versions: vivado 2018.3

------ Description: 

------ 

------ Dependencies: 

------ 

------ Revision:

------ Revision 0.01 - File Created

------ Additional Comments:

------ 

------------------------------------------------------------------------------------

------------------starting  code -----------------


--library IEEE;

--use IEEE.STD_LOGIC_1164.ALL;

--USE  IEEE.STD_LOGIC_ARITH.all;

--USE  IEEE.STD_LOGIC_UNSIGNED.all;


--entity oled_module_controllerv1 is

--    Port ( clk : in STD_LOGIC;

--           rst : in STD_LOGIC;

--           preset : in std_logic ; 

--           key_in: in std_logic_vector (0 to 15)   ;

--           adt_sec10 : in std_logic_vector(3 downto 0)   ;

--            status_reg :  in std_logic_vector( 1 downto 0) ; 

--            led : out std_logic_vector(1 downto 0)  ; 

--            cdt_hour10 , cdt_hour1, cdt_min10 ,cdt_min1, cdt_sec10  ,cdt_sec1  : in std_logic_vector (3 downto 0) ; 

--             adt_day100,adt_day10 ,adt_day1   :  in std_logic_Vector ( 3 downto 0) ;       

--           adt_sec1 : in std_logic_vector( 3 downto 0) ; 

--           adt_min10, adt_min1 : in std_logic_vector( 3 downto 0) ; 

--           adt_hour10,adt_hour1:in std_logic_vector( 3 downto 0) ;         

--           data_out : inout STD_LOGIC_vector( 7 downto 0) ;

--           rs : out STD_LOGIC;

--           rw : out STD_LOGIC;

--           e : out STD_LOGIC;

--           dac_a0 , dac_scl, dac_sda : out std_logic );

--end oled_module_controllerv1;


--architecture Behavioral of oled_module_controllerv1 is

 


--type state_type is (  power_up,reset1,  func_set,display_clear, display_on, dram_address,mode_set, adt_state,day100,day10 ,day1,dcoln,hour10 , hour1,coln2,min10,min1 ,  

--   coln1,   sec10,sec1 ,

-- line2,  line2_data,  cdth10 ,cdth1, coln3,cdtm10,cdtm1, coln4,cdts10,cdts1, coln5,status , rst1,func,   clear_screen ,disp_on, MODE ,ADDR,  message_enter ,

--                          second_line,second_linedata, input_data , delay_state,time_save,return_home, drop_lcd_e );


                       

-- signal state_reg, state_next  ,next_command        : state_type;

--signal data_bus : std_logic_vector ( 7 downto 0) ; 

--signal lcd_e, lcd_rs, lcd_rw_int : std_Logic ; 

--signal lcd_e_reg  , lcd_e_next , lcd_rs_reg , lcd_rs_next , lcd_rw_int_reg , lcd_rw_int_next : std_logic ; 


--signal clk_enable400 : std_logic :='0' ; 


--type character_string is array ( 0 to 13 ) of STD_LOGIC_VECTOR( 7 downto 0 );


--  signal lcd_display_string          : character_string;

  

--  signal  next_char   : STD_LOGIC_VECTOR(7 downto 0);


  

--------------------adt ------------

--type str1 is array ( 0 to 5) of std_logic_Vector ( 7 downto 0) ;

--signal adt_string,cdt_string  : str1;

--signal adt :std_logic_vector ( 7 downto 0) ;

--signal cdt: std_logic_vector( 7 downto 0) ;


--signal str_count_reg , str_count_next   : std_logic_vector( 3 downto 0)  :="0000" ;

--signal wait_count_reg , wait_count_next : std_logic_vector( 19 downto 0) := (others=>'0') ; 




--signal adt_d1s: std_logic_vector ( 7 downto 0) ; 

--signal adt_d10s : std_logic_vector ( 7 downto 0) ; 

--signal adt_d100s: std_logic_vector ( 7 downto 0) ; 


--signal adt_sec1s: std_logic_vector ( 7 downto 0) ; 

--signal adt_sec10s : std_logic_vector ( 7 downto 0) ; 

--signal adt_min1s: std_logic_vector ( 7 downto 0) ; 

--signal adt_min10s : std_logic_vector ( 7 downto 0) ; 

--signal adt_hour1s: std_logic_vector ( 7 downto 0) ; 

--signal adt_hour10s : std_logic_vector ( 7 downto 0) ; 


----------------------------cdt--------------------------------


--signal cdt_sec1s: std_logic_vector ( 7 downto 0) ; 

--signal cdt_sec10s : std_logic_vector ( 7 downto 0) ; 

--signal cdt_min1s: std_logic_vector ( 7 downto 0) ; 

--signal cdt_min10s : std_logic_vector ( 7 downto 0) ; 

--signal cdt_hour1s: std_logic_vector ( 7 downto 0) ; 

--signal cdt_hour10s : std_logic_vector ( 7 downto 0) ; 

-----------------------xxxxxxxxxxxxxxxx----------

--signal key_stored, fkey_stored:  std_logic_vector( 7 downto 0) ; 

--signal key_q    : std_logic_vector( 0 to 15 )   ; 



---------status -register ---------


-- signal wait_1sec_reg, wait_1sec_next :std_logic_vector (14 downto 0 )  :=(others=>'0') ;      ----- integer range 0 to  239999 := 0 ;  

--signal one_mscounter : natural range 0 to 49999 :=0 ; -------counter for 10 mhz clock    enable for 10 mhz checking 

--signal f1khz : std_logic ; 


--signal message_count_reg , message_count_next :  std_logic_Vector ( 3 downto 0) :=(others=>'0') ; 


--signal data_bus_reg , data_bus_next : std_logic_vector ( 7 downto 0) ; 



--attribute mark_debug : string ; 

--attribute mark_debug  of  key_q : signal is "true" ; 

----attribute mark_debug  of  lcd_e : signal is "true" ; 

----attribute mark_debug  of  lcd_rs : signal is "true" ; 

----attribute mark_debug  of  lcd_rw_int : signal is "true" ; 

----attribute mark_debug  of  data_bus : signal is "true" ; 

 

--attribute mark_debug  of  preset : signal is "true" ;

 

--begin




---- dac_a0<=lcd_rs ; 

----  dac_scl<= lcd_rw_int;

----  dac_sda<=lcd_e ; 

  

-----------------=============================

--lcd_display_string <=( X"45" , X"6E" , X"74" ,X"65" ,  X"72" , X"20" ,X"63" , X"64" , X"74" , X"20" , X"54" , X"69" , X"6D" , X"65" ) ;

 

--next_char <= lcd_display_string( conv_integer( message_count_reg)) ;




-----------===============================


--process(clk ) 

-- begin


--   if rising_edge ( clk ) then 

--    if (clk_enable400='1') then

--      key_q <= key_in ; 

--      end if ; 

--  end if ; 

--end process ;


----process( key_in) 

---- begin 

----  case key_in is 

    

----   when x"4000" => 

----           key_stored<=x"30" ; 

----   when x"2000"=>

----          key_stored<=x"31" ; 

----   when x"1000"=> 

----             key_stored <=x"32" ;

---- when x"0020"=> 

----        key_stored<=x"33" ; 

---- when x"0800"=>

----     key_stored <=x"34" ; 

---- when x"0400"=> 

----        key_stored <=x"35" ;

---- when x"0200"=> 

----        key_stored<=x"36" ; 

---- when x"0010"=>

----     key_stored <=x"37" ; 

---- when x"0100"=> 

----       key_stored <=x"38" ;

---- when  x"0080"=> 

----       key_stored <=x"39" ;

  

----  when  x"0040"=> 

----              key_stored <=x"40" ;

---- when  x"0008"=> 

----                     key_stored <=x"41" ;

---- when  x"8000"=> 

----                            key_stored <=x"42" ;

----   when  x"0001"=> 

----                                   key_stored <=x"43" ;

----    when  x"0002"=> 

----                                          key_stored <=x"44" ;

    

----    when  x"0004"=> 

----    key_stored <=x"45" ;

    

         

----  when others => 

----          key_stored <= x"20" ; 

---- end case ;

---- end process ; 


-------------------xxxxxxxxx----------------------------

-------------adt day---------------------------------

----------------------------------------------

--process ( adt_day1) begin 

--    case adt_day1 is 

--       when "0000" => 

--          adt_d1s<=x"30" ;  

--  when "0001"=>

--         adt_d1s<=x"31" ; 

--  when "0010"=> 

--            adt_d1s <=x"32" ;

--when "0011"=> 

--       adt_d1s<=x"33" ;

--     when "0100"=>

--    adt_d1s <=x"34" ; 

--when "0101"=> 

--       adt_d1s <=x"35" ;

  

-- when others=>

--          adt_d1s <=x"30" ; 

--  end case ; 

--end process ; 


--process ( adt_day10) begin 

--    case adt_day10 is 

--       when "0000" => 

--          adt_d10s<=x"30" ;  

--  when "0001"=>

--         adt_d10s<=x"31" ; 

--  when "0010"=> 

--            adt_d10s <=x"32" ;

--when "0011"=> 

--       adt_d10s<=x"33" ;  

       

--     when "0100"=>

--    adt_d10s <=x"34" ; 

--when "0101"=> 

--       adt_d10s <=x"35" ;

--when "0110"=> 

--       adt_d10s<=x"36" ;   

-- when others=>

--          adt_d10s <=x"30" ; 

--  end case ; 

--end process ; 


--process ( adt_day100) begin 

--    case adt_day100 is 

--       when "0000" => 

--          adt_d100s<=x"30" ;  

--  when "0001"=>

--         adt_d100s<=x"31" ; 

--  when "0010"=> 

--            adt_d100s <=x"32" ;

--when "0011"=> 

--       adt_d100s<=x"33" ;  

   

-- when others=>

--          adt_d100s <=x"30" ; 

--  end case ; 

--end process ; 



------------------------------XXXXXXXXXXXXXXXXXX---------------------------------

--------------------ADT HOUR ---------------------------------------------------

------------=============================================


--process ( adt_hour10) 

--begin 


--    case adt_hour10 is 

--  when "0000" => 

--          adt_hour10s<=x"30" ; 

--  when "0001"=>

--         adt_hour10s<=x"31" ; 

--  when "0010"=> 

--            adt_hour10s <=x"32" ;

--when "0011"=> 

--       adt_hour10s<=x"33" ; 

--when "0100"=>

--    adt_hour10s <=x"34" ; 

--when "0101"=> 

--       adt_hour10s <=x"35" ;

--when "0110"=> 

--       adt_hour10s<=x"36" ; 

--when "0111"=>

--     adt_hour10s <=x"37" ; 

--when "1000"=> 

--      adt_hour10s <=x"38" ;

--when  "1001"=> 

--      adt_hour10s <=x"39" ;

-- when others => 

--         adt_hour10s <= x"30" ; 

--end case ;


--end process ; 



--process ( adt_hour1) 

--begin 


--    case adt_hour1 is 

--  when "0000" => 

--          adt_hour1s<=x"30" ; 

--  when "0001"=>

--          adt_hour1s <=x"31" ; 

--  when "0010"=> 

--            adt_hour1s<=x"32" ;

--when "0011"=> 

--      adt_hour1s <=x"33" ; 

--when "0100"=>

--      adt_hour1s <=x"34" ; 

--when "0101"=> 

--        adt_hour1s <=x"35" ;

--when "0110"=> 

--       adt_hour1s <=x"36" ; 

--when "0111"=>

--    adt_hour1s <=x"37" ; 

--when "1000"=> 

--      adt_hour1s <=x"38" ;

--when  "1001"=> 

--     adt_hour1s <=x"39" ;

-- when others => 

--         adt_hour1s <= x"30" ; 

--end case ;


--end process ; 


------------------------XXXXXXXXXXXXXXXXX-------------------------------

----------------------ADT MIN-------------------------------------------------

--------------------======================================




--process ( adt_min10) 

--begin 


--    case adt_min10  is 

--  when "0000" => 

--          adt_min10s<=x"30" ; 

--  when "0001"=>

--          adt_min10s <=x"31" ; 

--  when "0010"=> 

--            adt_min10s <=x"32" ;

--when "0011"=> 

--        adt_min10s <=x"33" ; 

--when "0100"=>

--      adt_min10s <=x"34" ; 

--when "0101"=> 

--        adt_min10s <=x"35" ;

--when "0110"=> 

--       adt_min10s <=x"36" ; 

--when "0111"=>

--     adt_min10s <=x"37" ; 

--when "1000"=> 

--       adt_min10s <=x"38" ;

--when  "1001"=> 

--      adt_min10s <=x"39" ;

-- when others => 

--          adt_min10s <= x"30" ; 

--end case ;


--end process ; 



--process ( adt_min1) 

--begin 


--    case adt_min1 is 

--  when "0000" => 

--          adt_min1s<=x"30" ; 

--  when "0001"=>

--          adt_min1s <=x"31" ; 

--  when "0010"=> 

--            adt_min1s <=x"32" ;

--when "0011"=> 

--        adt_min1s <=x"33" ; 

--when "0100"=>

--      adt_min1s <=x"34" ; 

--when "0101"=> 

--        adt_min1s <=x"35" ;

--when "0110"=> 

--       adt_min1s <=x"36" ; 

--when "0111"=>

--     adt_min1s <=x"37" ; 

--when "1000"=> 

--       adt_min1s <=x"38" ;

--when  "1001"=> 

--      adt_min1s <=x"39" ;

-- when others => 

--          adt_min1s <= x"30" ; 

--end case ;


--end process ; 



------------------------xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-----------------------------

-----------------ADT SEC-------------------------------------------------

---------===============================================


--            process ( adt_sec1) 

--            begin

--            case (adt_sec1  ) is 

--            when "0000" => 

--                  adt_sec1s <=x"30" ; 

                  

--            when "0001"=>

--                  adt_sec1s <=x"31" ; 

         

                

--            when "0010"=> 

--                adt_sec1s <=x"32" ;

                    

--            when "0011"=> 

--                adt_sec1s <=x"33" ; 

--            when "0100"=>

--            adt_sec1s <=x"34" ;

--           when "0101"=> 

--            adt_sec1s <=x"35" ;

--            when "0110"=> 

--            adt_sec1s <=x"36" ; 

                

--            when "0111"=>

--            adt_sec1s <=x"37" ; 

--           when "1000"=> 

--            adt_sec1s <=x"38" ;

--            when  "1001"=> 

--            adt_sec1s <=x"39" ;

--            when others => 

--            adt_sec1s <= x"30" ; 

--           end case ;

--            end process ; 

            


-- process ( adt_sec10) 

-- begin

--  case adt_sec10  is 

--  when "0000" => 

--          adt_sec10s <=x"30" ; 

--  when "0001"=>

--          adt_sec10s <=x"31" ; 

--  when "0010"=> 

--            adt_sec10s <=x"32" ;

--when "0011"=> 

--        adt_sec10s <=x"33" ; 

--when "0100"=>

--      adt_sec10s <=x"34" ; 

--when "0101"=> 

--         adt_sec10s <=x"35" ;

--when "0110"=> 

--        adt_sec10s <=x"36" ; 

--when "0111"=>

--     adt_sec10s <=x"37" ; 

--when "1000"=> 

--       adt_sec10s <=x"38" ;

--when  "1001"=> 

--      adt_sec10s <=x"39" ;

-- when others => 

--           adt_sec10s <= x"30" ; 

--end case ;

--end process ; 



----------------=============================cdt=======================

------============================================================



------------------------------XXXXXXXXXXXXXXXXXX---------------------------------

--------------------CDT HOUR ---------------------------------------------------

------------=============================================


--process ( cdt_hour10) 

--begin 


--    case cdt_hour10  is 

--  when "0000" => 

--          cdt_hour10s<=x"30" ; 

--  when "0001"=>

--         cdt_hour10s<=x"31" ; 

--  when "0010"=> 

--            cdt_hour10s <=x"32" ;

--when "0011"=> 

--       cdt_hour10s<=x"33" ; 

--when "0100"=>

--    cdt_hour10s <=x"34" ; 

--when "0101"=> 

--       cdt_hour10s <=x"35" ;

--when "0110"=> 

--       cdt_hour10s<=x"36" ; 

--when "0111"=>

--     cdt_hour10s <=x"37" ; 

--when "1000"=> 

--      cdt_hour10s <=x"38" ;

--when  "1001"=> 

--      cdt_hour10s <=x"39" ;

-- when others => 

--         cdt_hour10s <= x"30" ; 

--end case ;


--end process ; 



--process ( cdt_hour1) 

--begin 


--    case cdt_hour1 is 

--  when "0000" => 

--          cdt_hour1s<=x"30" ; 

--  when "0001"=>

--          cdt_hour1s <=x"31" ; 

--  when "0010"=> 

--            cdt_hour1s<=x"32" ;

--when "0011"=> 

--      cdt_hour1s <=x"33" ; 

--when "0100"=>

--      cdt_hour1s <=x"34" ; 

--when "0101"=> 

--        cdt_hour1s <=x"35" ;

--when "0110"=> 

--       cdt_hour1s <=x"36" ; 

--when "0111"=>

--    cdt_hour1s <=x"37" ; 

--when "1000"=> 

--      cdt_hour1s <=x"38" ;

--when  "1001"=> 

--     cdt_hour1s <=x"39" ;

-- when others => 

--         cdt_hour1s <= x"30" ; 

--end case ;


--end process ; 


------------------------XXXXXXXXXXXXXXXXX-------------------------------

----------------------ADT MIN-------------------------------------------------

--------------------======================================




--process ( cdt_min10) 

--begin 


--    case cdt_min10  is 

--  when "0000" => 

--          cdt_min10s<=x"30" ; 

--  when "0001"=>

--          cdt_min10s <=x"31" ; 

--  when "0010"=> 

--            cdt_min10s <=x"32" ;

--when "0011"=> 

--        cdt_min10s <=x"33" ; 

--when "0100"=>

--      cdt_min10s <=x"34" ; 

--when "0101"=> 

--        cdt_min10s <=x"35" ;

--when "0110"=> 

--       cdt_min10s <=x"36" ; 

--when "0111"=>

--     cdt_min10s <=x"37" ; 

--when "1000"=> 

--       cdt_min10s <=x"38" ;

--when  "1001"=> 

--      cdt_min10s <=x"39" ;

-- when others => 

--          cdt_min10s <= x"30" ; 

--end case ;


--end process ; 



--process ( cdt_min1) 

--begin 


--    case cdt_min1 is 

--  when "0000" => 

--          cdt_min1s<=x"30" ; 

--  when "0001"=>

--          cdt_min1s <=x"31" ; 

--  when "0010"=> 

--            cdt_min1s <=x"32" ;

--when "0011"=> 

--        cdt_min1s <=x"33" ; 

--when "0100"=>

--      cdt_min1s <=x"34" ; 

--when "0101"=> 

--        cdt_min1s <=x"35" ;

--when "0110"=> 

--       cdt_min1s <=x"36" ; 

--when "0111"=>

--     cdt_min1s <=x"37" ; 

--when "1000"=> 

--       cdt_min1s <=x"38" ;

--when  "1001"=> 

--      cdt_min1s <=x"39" ;

-- when others => 

--          cdt_min1s <= x"30" ; 

--end case ;


--end process ; 



------------------------xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-----------------------------

-----------------ADT SEC-------------------------------------------------

---------===============================================


--            process ( cdt_sec1) 

--            begin

--            case (cdt_sec1  ) is 

--            when "0000" => 

--                  cdt_sec1s <=x"30" ; 

                  

--            when "0001"=>

--                  cdt_sec1s <=x"31" ; 

         

                

--            when "0010"=> 

--                cdt_sec1s <=x"32" ;

                    

--            when "0011"=> 

--                cdt_sec1s <=x"33" ; 

--            when "0100"=>

--            cdt_sec1s <=x"34" ;

--           when "0101"=> 

--            cdt_sec1s <=x"35" ;

--            when "0110"=> 

--            cdt_sec1s <=x"36" ; 

                

--            when "0111"=>

--            cdt_sec1s <=x"37" ; 

--           when "1000"=> 

--            cdt_sec1s <=x"38" ;

--            when  "1001"=> 

--            cdt_sec1s <=x"39" ;

--            when others => 

--            cdt_sec1s <= x"30" ; 

--           end case ;

--            end process ; 

            


-- process ( cdt_sec10) 

-- begin

--  case cdt_sec10  is 

--  when "0000" => 

--          cdt_sec10s <=x"30" ; 

--  when "0001"=>

--          cdt_sec10s <=x"31" ; 

--  when "0010"=> 

--            cdt_sec10s <=x"32" ;

--when "0011"=> 

--        cdt_sec10s <=x"33" ; 

--when "0100"=>

--      cdt_sec10s <=x"34" ; 

--when "0101"=> 

--         cdt_sec10s <=x"35" ;

--when "0110"=> 

--        cdt_sec10s <=x"36" ; 

--when "0111"=>

--     cdt_sec10s <=x"37" ; 

--when "1000"=> 

--       cdt_sec10s <=x"38" ;

--when  "1001"=> 

--      cdt_sec10s <=x"39" ;

-- when others => 

--           cdt_sec10s <= x"30" ; 

--end case ;

--end process ; 


--------------------------xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-----------------------


--adt_string  <=(  x"41"  ,x"44" ,x"54" , x"3a",x"20" ,x"20" ) ;


--adt <= adt_string (conv_integer ( str_count_reg ) ) ; 


                                      

--cdt_string <=(x"43" , x"44" , x"54" ,x"3a",x"20" ,x"20" );

--cdt <= cdt_string ( conv_integer ( str_count_reg)) ; 




---- BIDIRECTIONAL TRI STATE LCD DATA BUS

----   data_out <= data_bus when lcd_rw_int = '0' else "ZZZZZZZZ";

--  data_out <= data_bus_next  when lcd_rw_int_next = '0' else "ZZZZZZZZ";

--    rw <= lcd_rw_int_next;

--  e<=lcd_e_next ; 

--  rs <=lcd_rs_next ;  


   

   

-------- LCD_RW PORT is assigned to it matching SIGNAL 

---- rw <= lcd_rw_int;

----  e<=lcd_e ; 

----  rs <=lcd_rs ; 

  





--------------xx-------------------------

--process ( clk, rst  ) 

-- begin 

--  if (rst='1') then 

--      one_mscounter <=0; 

--       f1khz <='0';  

--  elsif rising_edge( clk) then  

--        if ( one_mscounter =4999) then    ---- for zedboard    default 

----      if ( one_mscounter =4999) then    -------for 10 mhz clock 

--            one_mscounter <=0;

--            f1khz <= not (f1khz) ; 

--         else 

--            one_mscounter <= one_mscounter +1 ; 

--        end if ; 

--   end if ; 

--   end process; 



-- process (f1khz,rst) 

--  begin

--     if ( rst='1') then 

--        state_reg <=power_up ; 

--        str_count_reg <=(others=>'0') ; 

--         wait_count_reg <=(others=>'0') ; 

--         message_count_reg<=(others=>'0') ; 

--         data_bus_reg<=x"38";

--         lcd_rs_reg <='0'; 

--         lcd_e_reg <='1' ; 

--         lcd_rw_int_reg <='0' ; 

         

         

        

--     elsif rising_edge (f1khz) then

--        state_reg <= state_next;

--            str_count_reg <=str_count_next;

--         wait_count_reg <=wait_count_next;

--             message_count_reg<=message_count_next ; 

--                data_bus_reg<=data_bus_next  ; 

--                lcd_rs_reg <= lcd_rs_next ; 

--                   lcd_e_reg <=lcd_e_next ; 

--               lcd_rw_int_reg <=lcd_rw_int_next ; 

                

--       end if ; 

--  end process ; 

  

  

--  process( state_reg, str_count_reg,wait_count_reg,next_command,key_q,status_reg,preset,message_count_reg,data_bus_reg,lcd_rs_reg,lcd_e_reg  ,lcd_rw_int_reg  ) 

-- begin 

    

--  state_next <= state_reg ; 

--  str_count_next <= str_count_reg ; 

--  wait_count_next<=wait_count_reg ; 

--  message_count_next <= message_count_reg; 

--    data_bus_next  <= data_bus_reg;

--    lcd_rs_next <= lcd_rs_reg ; 

--    lcd_e_next <= lcd_e_reg ; 

--    lcd_rw_int_next <= lcd_rw_int_reg ; 

    

  

  

--  case state_reg is 

--     when power_up =>

                        

----                             lcd_e <= '1';

----                            lcd_rs <= '0';

----                            lcd_rw_int <= '0';

                            

                            

--                               lcd_e_next <= '1' ;

--                               lcd_rs_next <= '0'  ;                       

--                             lcd_rw_int_next <= '0' ;

                            

----                            data_bus <= x"38"; -- EXTERNAL RESET

--                            data_bus_next <= x"38";

--                            state_next<= drop_lcd_e;                           

--                                   if ( wait_count_reg =512) then ------ testing 

                             

--                                  wait_count_next <=(others=>'0') ; 

--                                  next_command <= reset1;   ----500 ms reached 

--                              else 

--                                wait_count_next <= wait_count_reg +1 ; 

--                                end if ; 

                          

--                             if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ; 

--                           when reset1 =>

----                            lcd_e <= '1';

----                            lcd_rs <= '0';

----                            lcd_rw_int <= '0';

                            

                             

--                               lcd_e_next <= '1' ;

--                               lcd_rs_next <= '0'  ;                       

--                             lcd_rw_int_next <= '0' ;

                            

----                            data_bus <= x"38"; -- EXTERNAL RESET

--                            data_bus_next <= x"38";

--                            state_next <= drop_lcd_e;

--                               if ( wait_count_reg =312) then ------ testing 

                             

--                                  wait_count_next <=(others=>'0') ; 

--                                  next_command <= func_set;   ----500 ms reached 

--                              else 

--                                wait_count_next <= wait_count_reg +1 ; 

--                                end if ; 

                         

--                                if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ;                  

         

--                       when func_set =>                

----                            lcd_e <= '1';

----                            lcd_rs <= '0';

----                            lcd_rw_int <= '0';

                             

--                               lcd_e_next <= '1' ;

--                               lcd_rs_next <= '0'  ;                       

--                             lcd_rw_int_next <= '0' ;

                            

----                            data_bus <= x"38";  -- Set Function to 8-bit transfer, 2 line display and a 5x8 Font size

--                        data_bus_next <= x"38";

--                            state_next <= drop_lcd_e;

--                              next_command <= display_clear;

--                                  if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ;  

                                                              

--                             when display_clear =>

----                            lcd_e <= '1';

----                            lcd_rs <= '0';

----                            lcd_rw_int <= '0';

                             

--                               lcd_e_next <= '1' ;

--                               lcd_rs_next <= '0'  ;                       

--                             lcd_rw_int_next <= '0' ;

                             

----                            data_bus <= x"01"; -- Clears the Display  

--                             data_bus_next <= x"01";

--                            state_next <= drop_lcd_e;                          

--                            next_command <= display_on;

--                               if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ;        

                                            

--                           when display_on =>

----                            lcd_e <= '1';

----                            lcd_rs <= '0';

----                            lcd_rw_int <= '0';

                             

--                               lcd_e_next <= '1' ;

--                               lcd_rs_next <= '0'  ;                       

--                             lcd_rw_int_next <= '0' ;

----                            data_bus <= x"0C"; -- Turns on the Display (0E = Display ON, Cursor ON and Blinking cursor OFF)       

--                          data_bus_next <= x"0C";

--                            state_next <= drop_lcd_e;

----                              next_command <= dram_address;

--                                  next_command <= mode_set;

--                               if ( preset='1') then 

--                                            next_command <= rst1      ;                 

--                                end if ;      

                                                    

--                      when dram_address  =>

----                            lcd_e <= '1';

----                            lcd_rs <= '0';

----                            lcd_rw_int <= '0';

                            

                             

--                               lcd_e_next <= '1' ;

--                               lcd_rs_next <= '0'  ;                       

--                             lcd_rw_int_next <= '0' ;

----                            data_bus <= "10000001"; 

--                            data_bus_next <= x"81";

--                            state_next <= drop_lcd_e;

                             

--                            next_command <= mode_set;

--                            if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ;

--                            when mode_set =>

----                            lcd_e <= '1';

----                            lcd_rs <= '0';

----                            lcd_rw_int <= '0';

                            

                             

--                               lcd_e_next <= '1' ;

--                               lcd_rs_next <= '0'  ;                       

--                             lcd_rw_int_next <= '0' ;

                            

----                            data_bus <= x"06"; -- Auto increment address and move cursor to the right

--                          data_bus_next <= x"06";

--                            state_next <= drop_lcd_e;

--                             next_command <=adt_state ; 

--                                  if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ;                                     

--                    when adt_state =>                                      

--                                          state_next<= drop_lcd_e;

----                                           lcd_e <= '1';

----                                           lcd_rs <= '1';

----                                           lcd_rw_int <= '0';

 

--                               lcd_e_next <= '1' ;

--                               lcd_rs_next <= '1'  ;                       

--                             lcd_rw_int_next <= '0' ;


--                                           ----------------------------added 

----                                           data_bus <=adt ;

--                                           data_bus_next <= adt;

--                                          if ( str_count_reg ="0101") then 

--                                              str_count_next <="0000" ;             

--                                                next_command<=day100;

----                                                       next_command<=return_home;

--                                        else 

--                                          str_count_next <= str_count_reg +1 ; 

--                                        end if ;                                     

--                                           if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ;  

                          

--                               when day100=>                                     

--                                state_next <= drop_lcd_e;

----                                lcd_e <= '1';

----                                lcd_rs <= '1';

----                                lcd_rw_int <= '0';

                                

--                                           lcd_e_next <= '1' ;

--                                   lcd_rs_next <= '1'  ;                       

--                             lcd_rw_int_next <= '0' ;

                                

--                                ----------------------------added 

----                                data_bus <=adt_d100s; 

--                                 data_bus_next <= adt_d100s;

--                                   next_command<=day10;

                                

                               

                             

--                                            if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ; 

                                

--                                      when day10=>                                     

--                                state_next<= drop_lcd_e;

----                                lcd_e <= '1';

----                                lcd_rs <= '1';

----                                lcd_rw_int <= '0';

                                

--                                           lcd_e_next <= '1' ;

--                               lcd_rs_next <= '1'  ;                       

--                             lcd_rw_int_next <= '0' ;

--                                ----------------------------added 

----                                data_bus <=adt_d10s; 

--                                 data_bus_next <= adt_d10s;  

--                                next_command<=day1;

                               

                                   

--                                            if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ;   

                                         

--                                when day1=>                                     

--                                state_next <= drop_lcd_e;

----                                lcd_e <= '1';

----                                lcd_rs <= '1';

----                                lcd_rw_int <= '0';

                                

--                                           lcd_e_next <= '1' ;

--                               lcd_rs_next <= '1'  ;                       

--                             lcd_rw_int_next <= '0' ;

--                                ----------------------------added 

----                                data_bus <=adt_d1s;

--                               data_bus_next <= adt_d1s;  

--                                next_command<=dcoln;                                                      

--                                            if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ;    

                                            

--                           when dcoln=>

                                                  

--                                                state_next <= drop_lcd_e;

----                                                lcd_e <= '1';

----                                                lcd_rs <= '1';

----                                                lcd_rw_int <= '0';


--                                      lcd_e_next <= '1' ;

--                               lcd_rs_next <= '1'  ;                       

--                             lcd_rw_int_next <= '0' ;

--                                                ----------------------------added 

----                                                data_bus <=x"3a"; 

--                                               data_bus_next <=x"3a";       

--                                                next_command<=hour10;         

                                     

--                                    if ( key_in=x"0004") then

--                                       next_command<=power_up;

--                                       end if ;

                                       

--                                            if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ; 

                                             

--                        when hour10=>                                     

--                                state_next <= drop_lcd_e;

----                                lcd_e <= '1';

----                                lcd_rs <= '1';

----                                lcd_rw_int <= '0';

                                

--                                           lcd_e_next <= '1' ;

--                               lcd_rs_next <= '1'  ;                       

--                             lcd_rw_int_next <= '0' ;

--                                ----------------------------added 

----                                data_bus <=adt_hour10s;       

--                                      data_bus_next <=adt_hour10s;                          

--                                next_command<=hour1;

--                                           if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ; 

--                        when hour1=>                        

--                                state_next <= drop_lcd_e;

----                                lcd_e <= '1';

----                                lcd_rs <= '1';

----                                lcd_rw_int <= '0';

                                

--                                           lcd_e_next <= '1' ;

--                               lcd_rs_next <= '1'  ;                       

--                             lcd_rw_int_next <= '0' ;

                                

--                                ----------------------------added 

----                                data_bus <=adt_hour1s; 

--                                    data_bus_next <=adt_hour1s;  

--                                next_command<=coln2;                        

--                                            if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ; 

                                               

                        

--                         when coln2=>

--                                           state_next<= drop_lcd_e;

----                                                lcd_e <= '1';

----                                                lcd_rs <= '1';

----                                                lcd_rw_int <= '0';

                                                

--                                                           lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

                                                

--                                                ----------------------------added 

----                                                data_bus <=x"3a";                                              

--                                            data_bus_next <=x"3a"; 

--                                                next_command<=min10;                                                                             

--                                            if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ; 

--                                           when min10=>                                                       

--                                                         state_next<= drop_lcd_e;

----                                                         lcd_e <= '1';

----                                                         lcd_rs <= '1';

----                                                         lcd_rw_int <= '0';

                                                         

                                                         

--                                                            lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                                                         ----------------------------added 

----                                                         data_bus <=adt_min10s;                                                       

--                                                         data_bus_next <=adt_min10s;

--                                                         next_command<=min1;                                                        

--                                            if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ;                   

                                            

--                                  when min1=>

                                     

--                                             state_next <= drop_lcd_e;

----                                             lcd_e <= '1';

----                                             lcd_rs <= '1';

----                                             lcd_rw_int <= '0';

                                             

--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

                                             

--                                             ----------------------------added 

----                                             data_bus <=adt_min1s;                                            

--                                             data_bus_next <=adt_min1s;

--                                             next_command<=coln1;                                    

--                                          if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ;                              

--                    -----------------------------------------------------

--                         when  coln1=> 

                                      

--                                state_next <= drop_lcd_e;

----                                lcd_e <= '1';

----                                lcd_rs <= '1';

----                                lcd_rw_int <= '0';



--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;



--                                ----------------------------added 

----                                data_bus <=x"3a";                           

--                                      data_bus_next <=x"3a";   

--                                next_command<=sec10;                                                           

--                                          if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ;               

            

--                 when sec10=>

                             

--                                      state_next <= drop_lcd_e;

----                                       lcd_e <= '1';

----                                       lcd_rs <= '1';

----                                       lcd_rw_int <= '0';


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                                       ----------------------------added 

----                                       data_bus <=adt_sec10s;                                     

--                                          data_bus_next <=adt_sec10s;   

--                                       next_command<=sec1;                              

--                                            if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ; 

              

--                when sec1=>

                                    

--                                    state_next <= drop_lcd_e;

----                                    lcd_e <= '1';

----                                    lcd_rs <= '1';

----                                    lcd_rw_int <= '0';

                                    

                                    

                                    

--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                                    ----------------------------added 

----                                    data_bus <=adt_sec1s;                                      

--                                  data_bus_next <=adt_sec1s;   

--                                    next_command<=line2;                       

--                                           if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ;                    

                          

--                  when line2 =>

----                            lcd_e <= '1';

----                            lcd_rs <= '0';

----                            lcd_rw_int <= '0';    

                            

                            

--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '0'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

                                                  

----                            data_bus <= x"c0";   ---c0 default    ---working  

--                         data_bus_next <=x"C0";   

--                            state_next <= drop_lcd_e;           

--                           next_command<=line2_data;               

--                                        if ( preset='1') then 

--                                            next_command <= rst1 ; 

--                                            end if ;     

                                       

           

           

--            when line2_data=>

--                                state_next <= drop_lcd_e;

----                                    lcd_e <= '1';

----                                    lcd_rs <= '1';

----                                    lcd_rw_int <= '0';          

                 

----                                    data_bus <= cdt ; 


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                                 data_bus_next <=cdt; 

--                                  if ( str_count_reg ="0101") then 

--                                          str_count_next <="0000" ; 

--                                       next_command<=cdth10;

--                                 else 

--                                   str_count_next <= str_count_reg +1 ; 

--                                 end if ; 

                 

--                                                                 if ( preset='1') then 

--                                                             next_command <= rst1 ; 

--                                                            end if ;              

                                            

--                   when cdth10=>

--                                                state_next <= drop_lcd_e;

----                                                lcd_e <= '1';

----                                                lcd_rs <= '1';

----                                                lcd_rw_int <= '0';

----                                                data_bus <=cdt_hour10s;   


           

--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                                               data_bus_next <=cdt_hour10s; 

--                                                next_command<=cdth1;

                                   

                                      

--                                                     if ( preset='1') then 

--                                                             next_command <= rst1 ; 

--                                                            end if ; 

                                       

--                                                 --------------------------------

                                          

--                                                 when cdth1=>

                                                 

--                                                    state_next <= drop_lcd_e;

----                                                    lcd_e <= '1';

----                                                    lcd_rs <= '1';

----                                                    lcd_rw_int <= '0';                                

----                                                    data_bus <=cdt_hour1s;           


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;                                 

--                                                     data_bus_next <=cdt_hour1s; 

--                                                    next_command<=coln3;                         

--                                          if ( preset='1') then 

--                                             next_command <= rst1 ; 

--                                              end if ; 

                                       

                                       

                                                         

--                                  when coln3=>

                                             

                                                               

--                                                         state_next <= drop_lcd_e;

----                                                         lcd_e <= '1';

----                                                         lcd_rs <= '1';

----                                                         lcd_rw_int <= '0';                                            

----                                                         data_bus <=x"3a";          


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;                                                                                                  

--                                                            data_bus_next <=x"3a";  

--                                                         next_command<=cdtm10;                  

--                                                                    if ( preset='1') then 

--                                                             next_command <= rst1 ; 

--                                                            end if ; 

                                       

                                       

--                                                    when cdtm10=>

                                                                  

--                                                                  state_next<= drop_lcd_e;

----                                                                  lcd_e <= '1';

----                                                                  lcd_rs <= '1';

----                                                                  lcd_rw_int <= '0';

--                                                                  ----------------------------added 

----                                                                  data_bus <=cdt_min10s;        


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;                                    

--                                                                   data_bus_next <=cdt_min10s; 

--                                                                  next_command<=cdtm1;                      

--                                                             if ( preset='1') then 

--                                                             next_command <= rst1 ; 

--                                                            end if ; 

                                                                  

--                                                                  when cdtm1=>

                                                                  

--                                                                  state_next <= drop_lcd_e;

----                                                                  lcd_e <= '1';

----                                                                  lcd_rs <= '1';

----                                                                  lcd_rw_int <= '0';

--                                                                  ----------------------------added 

----                                                                  data_bus <=cdt_min1s;     

--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;   

--                                                                     data_bus_next <=cdt_min1s; 

--                                                                  next_command<=coln4;                                    

--                                                              if ( preset='1') then 

--                                                             next_command <= rst1 ; 

--                                                            end if ;           

                                                    

                                                    

                                                                                     

--                                                 -----------------------------------------------------

--                                  when  coln4=> 

                                               

--                                         state_next <= drop_lcd_e;

----                                         lcd_e <= '1';

----                                         lcd_rs <= '1';

----                                         lcd_rw_int <= '0';

--                                         ----------------------------added 

----                                         data_bus <=x"3a";        


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;                                 

--                                            data_bus_next <=x"3a"; 

--                                         next_command<=cdts10;                                                                              

--                                             if ( preset='1') then 

--                                           next_command <= rst1 ; 

--                                             end if ;           

                     

--                          when cdts10=>

                                      

--                                               state_next<= drop_lcd_e;

----                                                lcd_e <= '1';

----                                                lcd_rs <= '1';

----                                                lcd_rw_int <= '0';


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                                                ----------------------------added 

----                                                data_bus <=cdt_sec10s;                                        

--                                             data_bus_next <=cdt_sec10s ;

--                                                next_command<=cdts1;

--                                        if ( preset='1') then 

--                                              next_command <= rst1 ; 

--                                    end if ;  

                                       

                                             

--                         when cdts1=>

                                             

--                                             state_next <= drop_lcd_e;

----                                             lcd_e <= '1';

----                                             lcd_rs <= '1';

----                                             lcd_rw_int <= '0';

--                                             ----------------------------added 

----                                             data_bus <=cdt_sec1s;      


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                                               data_bus_next <=cdt_sec1s ;                                      

--                                             next_command<=coln5 ;                                         

--                                       if ( preset='1') then 

--                                         next_command <= rst1 ; 

--                                          end if ;   

                                       

                                       

                                       

--                             when  coln5=> 

                                                                                           

--                                    state_next <= drop_lcd_e;

----                                    lcd_e <= '1';

----                                    lcd_rs <= '1';

----                                    lcd_rw_int <= '0';

--                                    ----------------------------added 

----                                    data_bus <=x"3a";                


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;                

--                                  data_bus_next <=x"3a";

--                                     next_command<=status;                                     

--                                            if ( preset='1') then 

--                                          next_command <= rst1 ; 

--                                          end if ;    

                                             

--                          when status =>

                                                                                       

--                                                            state_next <= drop_lcd_e;

----                                                            lcd_e <= '1';

----                                                            lcd_rs <= '1';

----                                                            lcd_rw_int <= '0';


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                                                            ----------------------------added 

--                                                            if ( status_reg ="00" ) then 

----                                                            data_bus <=x"30"; 

--                                                              data_bus_next <=x"30"; 

--                                                            elsif ( status_reg="10" ) then 

----                                                            data_bus<=x"55" ; 

--                                                             data_bus_next <=x"55"; 

--                                                            elsif (status_reg="01" ) then 

----                                                            data_bus <=x"44" ; 

--                                                                 data_bus_next <=x"44"; 

--                                                            elsif (status_reg="11" ) then 

----                                                            data_bus <=x"48" ;

--                                                            data_bus_next <=x"48"; 

--                                                            else  

----                                                            data_bus  <=x"55" ; 

--                                                              data_bus_next <=x"55"; 

--                                                            end if ; 

--                                                            next_command<=return_home;                                                                

--                                                                  if ( preset='1') then 

--                                                                  next_command <= rst1 ; 

--                                                                  end if ; 

                                                              

                                               

                                               

--                                   when return_home =>

----                            lcd_e <= '1';

----                            lcd_rs <= '0';

----                            lcd_rw_int <= '0';

----                              data_bus <= x"02";     ----just now  commented


--                                                         lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '0'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                        data_bus_next <= x"80"; 

--                            state_next <= drop_lcd_e;                        

--                           next_command <=adt_state ; 

----                           next_command <=st1 ; 

--                                    if ( preset='1') then 

--                                next_command <= rst1 ; 

--                             end if ;       

                                        

--                       when drop_lcd_e =>

--                            state_next <= next_command;

--                          lcd_e_next <= '0' ;

--                                     if ( preset='1') then 

--                                 next_command <= rst1 ; 

--                            end if ;            

                                 

                                

--                                   when rst1=>

                                       

----                                        lcd_e <= '1';

----                                        lcd_rs <= '0';

----                                        lcd_rw_int <= '0';

----                                        data_bus <= x"38";


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '0'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                                       data_bus_next <=x"01"; 

--                                         state_next <= drop_lcd_e;

--                                       if ( wait_count_reg =312) then ------ testing 

                             

--                                    wait_count_next <=(others=>'0') ; 

--                                    next_command <= func;  ----500 ms reached 

--                              else 

--                                wait_count_next <= wait_count_reg +1 ; 

--                                end if ; 

--                                if ( preset='0') then 

--                                next_command <= power_up ; 

--                             end if ;  

                             

                             

--                                   when func=>

--                                        state_next <= drop_lcd_e;

----                                        lcd_e <= '1';

----                                        lcd_rs <= '0';

----                                        lcd_rw_int <= '0';

----                                        data_bus <= x"38";


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '0'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                                     data_bus_next <=x"38"; 

--                                       if ( wait_count_reg =512) then ------ testing 

                             

--                                    wait_count_next <=(others=>'0') ; 

--                                    next_command <= clear_screen;  ----500 ms reached 

--                              else 

--                                wait_count_next <= wait_count_reg +1 ; 

--                                end if ; 

--                                if ( preset='0') then 

--                                next_command <= power_up ; 

--                             end if ;  

                             

                                  

--                                      when clear_screen=>

--                                        state_next <= drop_lcd_e;

----                                        lcd_e <= '1';

----                                        lcd_rs <= '0';

----                                        lcd_rw_int <= '0';

----                                        data_bus <= x"01";


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '0'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                                       data_bus_next <=x"01"; 

----                                       if ( wait_count_reg =) then ------ testing 

                             

----                                    wait_count_next <=(others=>'0') ; 

--                                    next_command <= disp_on;  ----500 ms reached 

----                              else 

----                                wait_count_next <= wait_count_reg +1 ; 

----                                end if ; 

                                                 

--                        if ( preset='0') then 

--                                next_command <= power_up ; 

--                             end if ;  

                    

                    

                                        

--                     when disp_on => 

--                            state_next <= drop_lcd_e;  

----                            lcd_e <= '1';

----                            lcd_rs <= '0';

----                            lcd_rw_int <= '0';

----                            data_bus <= x"0C"; -- Turns on the Display (0E = Display ON, Cursor ON and Blinking cursor OFF) 


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '0'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                         data_bus_next <=x"0C"; 

--                            next_command <= MODE;

--                            if ( preset='0') then 

--                                next_command <= power_up ; 

--                             end if ;  

                            

--                           when MODE => 

--                            state_next <= drop_lcd_e;  

----                            lcd_e <= '1';

----                            lcd_rs <= '0';

----                            lcd_rw_int <= '0';

----                            data_bus <= x"06";


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '0'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                               data_bus_next <=x"06"; 

--                            next_command <= ADDR;          

----                                     next_command <=  message_enter;

--                                     if ( preset='0') then 

--                                next_command <= power_up ; 

--                             end if ;  

                                     

--                          when ADDR => 

--                            state_next <= drop_lcd_e;  

----                            lcd_e <= '1';

----                            lcd_rs <= '0';

----                            lcd_rw_int <= '0';

----                            data_bus <= "10000001";


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '0'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                             data_bus_next <="10000001"; 

--                            next_command <= input_data;

--                              str_count_next <=(others=>'0') ; 

--                              if ( preset='0') then 

--                                next_command <= power_up ; 

                 

                                

                                

--                             end if ;  

                                            

--                     when message_enter=> 


----                                    lcd_e <= '1';

----                                    lcd_rs <= '1';

----                                    lcd_rw_int <= '0';                           

----                                    data_bus <= NEXT_CHAR ; 


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                                     data_bus_next <=next_char; 

--                                    state_next <= drop_lcd_e;

--                                    if ( message_count_reg =13 ) then 

--                                          message_count_next <=(others=>'0') ; 

                                  

----                                        next_command<=time_save;       

--                                        next_command<=second_line;                                    

--                                 else 

--                                   message_count_next <= message_count_reg +1 ; 

--                                 end if ; 

--                                   if ( preset='0') then 

--                                next_command <= power_up ; 

--                             end if ;  

                                   

                                   

                                   

--                    when second_line=> 

----                                        lcd_e <= '1';

----                                        lcd_rs <= '0';

----                                        lcd_rw_int <= '0';

----                                        data_bus <= x"c0";   ---c0 default    ---working 

----                                              data_bus <= x"C4"; 


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '0'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                                       data_bus_next <= x"c0"; 

--                                        state_next <= drop_lcd_e;                                                                                 

--                                   next_command<=second_linedata;


--                                    if ( preset='0') then 

--                                next_command <= power_up ; 

--                             end if ;  

                            

--                  when second_linedata=> 

                                                  

----                                                lcd_e <= '1';

----                                                  lcd_rs <= '1';

----                                                  lcd_rw_int <= '0';

----                                                  data_bus <=x"43";


--                                                                lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;


--                                                   data_bus_next <= x"43"; 

--                                                    state_next <= drop_lcd_e;     

--                                                next_command<=time_save;

--                                              if ( preset='0') then 

--                                                       next_command <= power_up ; 

--                                           end if ;  

          

--               when input_data=> 

----                                                lcd_e <= '1';

----                                                  lcd_rs <= '1';

----                                                  lcd_rw_int <= '0';

----                                                  data_bus <=x"20";

--                                                           lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                                         data_bus_next <= x"20"; 

--                                                if ( preset='0') then 

--                                                 next_command <= power_up ; 

--                                               end if ;  

--                                    if ( key_q =x"0004" ) then    ------1 

----                                       data_bus <= x"31" ;   

--                                           data_bus_next <= x"31"; 

--                                         state_next <= drop_lcd_e;                            

--                                      next_command<=delay_state;  

--                                  end if ; 



--                                   if ( key_q =x"0008") then ----- 2  

                           

----                                         data_bus <=x"32" ; 

--                                       data_bus_next <= x"32"; 

--                                        state_next <= drop_lcd_e;                            

--                                         next_command<=delay_state;   

--                                    end if  ; 

             

--                                     if (key_q=x"0010" ) then    -------3

----                                               data_bus  <= x"33" ; 

--                                               data_bus_next <= x"33"; 

--                                                 state_next <= drop_lcd_e;                            

--                                      next_command<=delay_state;   

--                                      end if ; 


                                      


--                                          if (key_q=x"0002" ) then    -------4 

----                                                 data_bus  <= x"34" ; 

--                                             data_bus_next <= x"34"; 

--                                                     state_next <= drop_lcd_e;                            

--                                              next_command<=delay_state;   


--                                      end if;  



--                                          if (key_q=x"0040" ) then   ------5

----                                                   data_bus  <= x"35" ; 

--                                              data_bus_next <= x"35"; 

--                                                      state_next <= drop_lcd_e;                            

--                                      next_command<=delay_state;   

--                                      end if  ;


                                      


--                                          if (key_q=x"0200" ) then  --------------6  

----                                                 data_bus  <= x"36" ; 

--                                                  data_bus_next <= x"36"; 

--                                                     state_next <= drop_lcd_e;                            

--                                      next_command<=delay_state;   


--                                      end if ; 


                                      


--                                          if (key_q=x"0001" ) then   ------ 7 

----                                                 data_bus  <= x"37" ; 

--                                             data_bus_next <= x"37"; 

--                                              state_next <= drop_lcd_e;                            

--                                      next_command<=delay_state;   

--                                      end if ; 


                                     

--                                        if (key_q=x"0080" ) then ----- 8

----                                                 data_bus  <= x"38" ; 

--                                           data_bus_next <= x"38"; 

--                                            state_next <= drop_lcd_e;                            

--                                      next_command<=delay_state;   


--                                      end if ; 


--                                      if (key_q=x"0400" ) then   ------ 9

----                                                data_bus  <= x"39" ; 

--                                               data_bus_next <= x"39"; 

--                                                 state_next <= drop_lcd_e;                            

--                                         next_command<=delay_state;   

                                

--                                      end if ; 


--                                                if (key_q=x"0100" ) then ------ 0 

----                                                  data_bus  <= x"30" ; 

--                                             data_bus_next <= x"30"; 

--                                               state_next <= drop_lcd_e;                            

--                                           next_command<=delay_state;   


--                                      end if ; 



--                                          if (key_q=x"8000" ) then  -------save and exit  * 

----                                                data_bus  <= x"02" ; 

--                                                 data_bus_next <= x"02"; 

--                                                   state_next <= drop_lcd_e;                            

--                                              next_command<=rst1;   


--                                      end if ; 


----                                         if (key_q=x"0020" ) then ----A   SHIFT THE CURSOR TO THE LIFT

----                                                 data_bus  <= x"10" ; 

----                                                     state <= drop_lcd_e;                            

----                                               next_command<=CURSOR_LEFT;   


----                                           end if ; 


----                                          if (key_q=x"1000" ) then  ---B  SHIFT THE DISPLAY AND CURSOR POSITION TO RIGHT 

----                                                 data_bus  <= x"1C" ;

----                                              state <= drop_lcd_e;                            

----                                            next_command<=CURSOR_RIGHT;   


----                                      end if ;


                                      

----                                          if (key_q=x"2000" ) then    ----C WORTE  WJATEVER PRESENT AT LAST IN PLAE OF C

----                                                data_bus  <= x"43" ; 

----                                              state <= drop_lcd_e;                            

----                                            next_command<=OVERIDE_C;   

----                                      end if ; 


----                                                     if (key_q=x"0800" ) then   ----# SAVE AND EXIT 

----                                                 data_bus  <= x"02" ;                            

----                                         next_command<=time_save;   

----                                      end if ; 


----                                          if (key_q=x"8000" ) then    ---*   CLEAR A DISPLAY 

----                                                data_bus  <= x"01" ; 

----                                                    state <= drop_lcd_e;                            

----                                              next_command<=clear_screen;   


----                                      end if ; 

                                      

----                                       if (key_q=x"4000" ) then    ---D    

----                                                data_bus  <= x"38" ; 

----                                                    state <= drop_lcd_e;                            

----                                              next_command<=reset2;   


----                                      end if ; 

                                      

                                      

----                              when OVERIDE_C=>

----                                    lcd_e <= '1';

----                                    lcd_rs <= '1';

----                                    lcd_rw_int <= '0';

                                

----                                    data_bus <= x"43"  ;   

----                                      state <= drop_lcd_e;           

----                                     next_command<=second_linedata;   

                                      

----                                        when CURSOR_LEFT=>

----                                    lcd_e <= '1';

----                                    lcd_rs <= '0';

----                                    lcd_rw_int <= '0';

                                

----                                    data_bus <= x"10"  ;   

----                                      state <= drop_lcd_e;           

----                                     next_command<=second_linedata;   


                                 


----                                         when CURSOR_RIGHT=>

----                                    lcd_e <= '1';

----                                    lcd_rs <= '0';

----                                    lcd_rw_int <= '0';

                               

----                                   data_bus <= x"1C" ;  

----                                        state <= drop_lcd_e;  

----                                      next_command<=second_linedata;          

                               


--                                     when delay_state=>

----                                             lcd_e <= '1';

----                                            lcd_rs <= '1';

----                                           lcd_rw_int <= '0';

----                                            data_bus <=x"20"; 

--                                                           lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '1'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                                   data_bus_next <= x"20"; 

--                                        wait_1sec_next <= wait_1sec_reg+1 ; 

--                                               if ( wait_1sec_reg=110000) then    ---- .5 sec wait 

--                                            wait_1sec_next <=(others=>'0'); 

--                                            state_next<=second_linedata ;                                     

--                                         end if ;   

--                                         if ( preset='0') then 

--                                        next_command <= power_up ; 

--                                   end if ;  

                                                      

--                      when time_save=> 

--                                     state_next <= drop_lcd_e;

----                                     lcd_e <= '1';

----                                   lcd_rs <= '0';

----                                 lcd_rw_int <= '0';

----                              data_bus <= x"02";     ----just now  commented 

--                                                               lcd_e_next <= '1' ;

--                                                           lcd_rs_next <= '0'  ;                       

--                                                      lcd_rw_int_next <= '0' ;

--                   data_bus_next <= x"02"; 

--                        next_command<=message_enter;   

--                        if ( preset='0') then 

--                                next_command <= power_up ; 

--                             end if ;       

          

                 

--                   end case ; 

                                            

                                            

-- end process ; 

 

--end Behavioral;-- Company: 






---------end----updated------------------------------------------------------------------------------------------------------





No comments:

Post a Comment

spyglass lint 1