liujilei311 发表于 2011-7-13 11:01:54

用FPGA做键盘显示出现的问题!!!!!!!!

我现在做键盘显示:5种按键:mode键,up键,down键,set键,shift键。mode键用来切换7种大模式(7种大模式下包括几十种小的模式),当用mode键选定某一种大模式后,利用up键和down键切换该种大模式下对应的十几种小的模式,设置“set”键,set<='0'时表示进入某种小模式,set<='1'时,利用“shift”键进行移位,同时利用“up”和“down"键对5位数码管显示的数据进行调整。。。我用FPGA做键盘显示时,在用set键进入子模式以后,然后我就开始利用shift键、配合up键和down键对5位数码管的每一位进行调整。可是在我按下set键时,先前的子模式没有清除,于是我就在进行“shift键、配合up键和down键”对数据调整之前,先刷新一下5位数码管。可是刷新之后,再进行数据调整时,每一位的数据在调整之后无法保存:就是在从低位向高位移位时,低位刚调整好的数据,无法保存啊??????我没有刷新的时候,数据调整之后都能保存的----------------------------------------------------------------------------------
-- Company:
-- Engineer:
--
-- Create Date:    14:07:35 07/12/2011
-- Design Name:
-- Module Name:    xianshiqiehuanmoshi - Behavioral
-- Project Name:
-- Target Devices:
-- Tool versions:
-- Description:
--
-- Dependencies:
--
-- Revision:
-- Revision 0.01 - File Created
-- Additional Comments:
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity xianshiqiehuanmoshi is
port(   clk1    :   in    std_logic;
          key1          :   in    std_logic_vector(4 downto 0);
          ledseg1 :   out   std_logic_vector(7 downto 0);
                  ledsel1 :   out   std_logic_vector(4 downto 0)               
          );
end xianshiqiehuanmoshi;
architecture Behavioral of xianshiqiehuanmoshi is
   signal    count                :integer range 0 to 50000;
   signal       mode1                          :        integer range 0 to 15:=0;---------------状态显示模式及其子模式
   signal    scancnt                :integer range 0 to 4;
        signal       dout                          :        std_logic_vector(4 downto 0);
        signal        gewei                :        integer range 0 to 10:=0   ;        --个位
        signal        shiwei                :        integer range 0 to 10:=0        ;        --十位
        signal        baiwei                :        integer range 0 to 10:=0        ;        --百位
        signal        qianwei                :        integer range 0 to 10:=0        ;        --千位
        signal        wanwei                :        integer range 0 to 10:=0        ;        --万位
-------------5个寄存器-----------------------------------------
        signal    reg_ledseg_gewei   : std_logic_vector(7 downto 0);
        signal    reg_ledseg_shiwei: std_logic_vector(7 downto 0);
        signal    reg_ledseg_baiwei: std_logic_vector(7 downto 0);
        signal    reg_ledseg_qianwei : std_logic_vector(7 downto 0);
        signal    reg_ledseg_wanwei: std_logic_vector(7 downto 0);
---------------------------------------------------------------
-------------数码管显示的5个状态-------------------------------
        type states is (dis_wanwei,dis_qianwei,dis_baiwei,dis_shiwei,dis_gewei);
        signal n_state : states := dis_wanwei;
---------------------------------------------------------------
        signal       key_valid        :        std_logic;
        signal       set_m0                :        std_logic:='0';------------------------set键表示:进入状态显示模式及其各种子模式
        signal       set_m1                :        std_logic:='0';
        signal       set_m2                :        std_logic:='0';
        signal       set_m3                :        std_logic:='0';
        signal       set_m4                :        std_logic:='0';
        signal       set_m5                :        std_logic:='0';
        signal       set_m6                :        std_logic:='0';
        signal       set_m7                :        std_logic:='0';
        signal       set_m8                :        std_logic:='0';
        signal       set_m9                :        std_logic:='0';
        signal       set_m10                :        std_logic:='0';
        signal       set_m11                :        std_logic:='0';
        signal       set_m12                :        std_logic:='0';
        signal       set_m13                :        std_logic:='0';
        signal       set_m14                :        std_logic:='0';
        signal       set_m15                :        std_logic:='0';
        signal    Morn       :        std_logic:='0';
   signal    weisel   :integer range 0 to 4:=4;
begin
-------------------------------------按键消抖进程-----------------------------------
process(clk1,key1)
   variable cnt :std_logic_vector(20 downto 0);
   begin
   if(key1="01111" or key1="10111" or key1="11011" or key1="11101"or key1="11110")then
                if(clk1'event and clk1='1') then
                        if(cnt="010000000000000000000")then
            key_valid<='1';--按键有效
         else
                                key_valid<='0';
            cnt:=cnt+1;
         end if;
                end if;
   else
      cnt:=(others=>'0');
      key_valid<='0';
   end if;
end process;
-------------------------------------检测按键--------------------------------------
process(clk1,key1,key_valid,mode1)
        begin
        if(clk1'event and clk1='1')then-------数码管扫描,1ms每位
                count<=count+1;
                if(count=50000)then
                        count<=0;
                        scancnt<=scancnt+1;
                        if(scancnt>3)then
                                scancnt<=0;   
                        end if;
                end if;
        end if;
        if rising_edge(key_valid)then
          if(key1="11110") then--------------------相当于mode键
                  mode1<=0;
          end if;
          if(Morn='0')then
               if(key1="11101")then--------------------相当于UP键
                   mode1<=mode1+1;
                   if(mode1=15)then
                      mode1<=0;
                        end if;
               end if;
               if(key1="11011")then--------------------相当于down键
                   mode1<=mode1-1;
                        if(mode1=0)then
                           mode1<=15;
                        end if;
               end if;
          else
           if(key1="11101")then--------------------相当于UP键
                  case weisel is               
                        when0 =>
                           wanwei<=wanwei+1;
                                if(wanwei=9)then
                                   wanwei<=0;
                                end if;
                        when1 =>
                           qianwei<=qianwei+1;
                                if(qianwei=9)then
                                   qianwei<=0;
                                end if;
                        when2 =>
                           baiwei<=baiwei+1;
                                if(baiwei=9)then
                                   baiwei<=0;
                                end if;
                        when3 =>
                           shiwei<=shiwei+1;
                                if(shiwei=9)then
                                   shiwei<=0;
                                end if;
                        when4 =>
                           gewei<=gewei+1;
                                if(gewei=9)then
                                   gewei<=0;
                                end if;
               end case;
                end if;       
                if(key1="11011") then--------------------相当于down键
         case weisel is               
                        when0 =>
                           wanwei<=wanwei-1;
                                if(wanwei=0)then
                                   wanwei<=9;
                                end if;
                        when1 =>
                           qianwei<=qianwei-1;
                                if(qianwei=0)then
                                   qianwei<=9;
                                end if;
                        when2 =>
                           baiwei<=baiwei-1;
                                if(baiwei=0)then
                                   baiwei<=9;
                                end if;
                        when3 =>
                           shiwei<=shiwei-1;
                                if(shiwei=0)then
                                   shiwei<=9;
                                end if;
                        when4 =>
                           gewei<=gewei-1;
                                if(gewei=0)then
                                   gewei<=9;
                                end if;
               end case;
                end if;               
       end if;       
       if(key1="01111") then--------------------相当于set键
                        if(mode1=0)then
                                set_m0<=not set_m0;---------------进入状态显示模式
                                Morn <=not Morn;
                        end if;
                        if(mode1=1)then
                                set_m1<=not set_m1;----------------进入子模式1
                                Morn <=not Morn;
                        end if;
                        if(mode1=2)then
                                set_m2<=not set_m2;----------------进子模?
                                Morn <=not Morn;
                        end if;
                        if(mode1=3)then
                                set_m3<=not set_m3;----------------进入子模式3
                                Morn <=not Morn;
                        end if;
                        if(mode1=4)then
                                set_m4<=not set_m4;----------------进入子模式4
                                Morn <=not Morn;
                        end if;
                        if(mode1=5)then
                                set_m5<=not set_m5;----------------进入子模式5
                                Morn <=not Morn;
                        end if;
                        if(mode1=6)then
                                set_m6<=not set_m6;----------------进入子模式6
                                Morn <=not Morn;
                        end if;
                        if(mode1=7)then
                                set_m7<=not set_m7;----------------进入子模式7
                                Morn <=not Morn;
                        end if;
                        if(mode1=8)then
                                set_m8<=not set_m8;----------------进入子模式8
                                Morn <=not Morn;
                        end if;
                        if(mode1=9)then
                                set_m9<=not set_m9;----------------进入子模式9
                                Morn <=not Morn;
                        end if;
                        if(mode1=10)then
                                set_m10<=not set_m10;--------------进入子模式10
                                Morn <=not Morn;
                        end if;
                        if(mode1=11)then
                                set_m11<=not set_m11;--------------进入子模式11
                                Morn <=not Morn;
                        end if;
                        if(mode1=12)then
                                set_m12<=not set_m12;--------------进入子模式12
                                Morn <=not Morn;
                        end if;
                        if(mode1=13)then
                                set_m13<=not set_m13;--------------进入子模式13
                                Morn <=not Morn;
                        end if;
                        if(mode1=14)then
                                set_m14<=not set_m14;--------------进入子模式14
                                Morn <=not Morn;
                        end if;
                        if(mode1=15)then
                                set_m15<=not set_m15;--------------进入子模式15
                                Morn <=not Morn;
                        end if;
                end if;
                if(key1="10111") then--------------------相当于shift键
                  if(weisel = 0) then
                                weisel <= 4;
                       else
                          weisel <= weisel - 1;
                       end if;
                end if;
        end if;
end process;      
--------------------数码管循环允窘?-----------
process(clk1)
variable count : integer;
begin
        if clk1'event and clk1 = '1' then
        case n_state is
                when dis_wanwei =>
                        ledseg1 <= reg_ledseg_wanwei;
                        ledsel1 <= "01111";
                        if count = 160000 then
                                n_state <= dis_qianwei;
                                count := 0;
                        else count := count + 1;
                        end if;
                when dis_qianwei =>
                        ledseg1 <= reg_ledseg_qianwei;
                        ledsel1 <= "10111";       
                        if count = 160000 then
                                n_state <= dis_baiwei;
                                count := 0;
                        else count := count + 1;
                        end if;
                when dis_baiwei =>
                        ledseg1 <= reg_ledseg_baiwei;
                        ledsel1 <= "11011";
                        if count = 160000 then
                                n_state <= dis_shiwei;
                                count := 0;
                        else count := count + 1;
                        end if;
                when dis_shiwei =>
                        ledseg1 <= reg_ledseg_shiwei;
                        ledsel1<="11101";
                        if count = 160000 then
                                n_state <= dis_gewei;
                                count := 0;
                        else count := count + 1;
                        end if;
                when dis_gewei =>
                        ledseg1 <= reg_ledseg_gewei;
                        ledsel1<="11110";
                        if count = 160000 then
                                n_state <= dis_wanwei;
                                count := 0;
                        else count := count + 1;
                        end if;
        end case;
        end if;
end process;
-------------------------操作刷新进程-----------------
process(mode1)
begin
       if(mode1=0)then---------------------------------显示字母C(状态显示的初始模式)
           if(set_m0='0' and Morn='0')then
                  case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "01001110";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "00000000";
                        when others=>null;
               end case;
           elsif(set_m0='1' and Morn='1')then
               case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00000000";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "01111110";
                        when others=>null;
               end case;
       if(weisel=4)then                
                        if(scancnt=4)then
                                case gewei is
                                        when 0 => reg_ledseg_gewei <= "01111110";
                                        when 1 => reg_ledseg_gewei <= "00110000";
                                        when 2 => reg_ledseg_gewei <= "01101101";
                                        when 3 => reg_ledseg_gewei <= "01111001";
                                        when 4 => reg_ledseg_gewei <= "00110011";
                                        when 5 => reg_ledseg_gewei <= "01011011";
                                        when 6 => reg_ledseg_gewei <= "01011111";
                                        when 7 => reg_ledseg_gewei <= "01110000";
                                        when 8 => reg_ledseg_gewei <= "01111111";
                                        when 9 => reg_ledseg_gewei <= "01111011";
                                when others => null;       
                                end case;
                                end if;
                        end if;
               if(weisel=3)then
                        if(scancnt=3)then   
                                case shiwei is
                                        when 0 => reg_ledseg_shiwei <= "01111110";
                                        when 1 => reg_ledseg_shiwei <= "00110000";
                                        when 2 => reg_ledseg_shiwei <= "01101101";
                                        when 3 => reg_ledseg_shiwei <= "01111001";
                                        when 4 => reg_ledseg_shiwei <= "00110011";
                                        when 5 => reg_ledseg_shiwei <= "01011011";
                                        when 6 => reg_ledseg_shiwei <= "01011111";
                                        when 7 => reg_ledseg_shiwei <= "01110000";
                                        when 8 => reg_ledseg_shiwei <= "01111111";
                                        when 9 => reg_ledseg_shiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
                if(weisel=2)then
                        if(scancnt=2)then   
                                case baiwei is
                                        when 0 => reg_ledseg_baiwei <= "01111110";
                                        when 1 => reg_ledseg_baiwei <= "00110000";
                                        when 2 => reg_ledseg_baiwei <= "01101101";
                                        when 3 => reg_ledseg_baiwei <= "01111001";
                                        when 4 => reg_ledseg_baiwei <= "00110011";
                                        when 5 => reg_ledseg_baiwei <= "01011011";
                                        when 6 => reg_ledseg_baiwei <= "01011111";
                                        when 7 => reg_ledseg_baiwei <= "01110000";
                                        when 8 => reg_ledseg_baiwei <= "01111111";
                                        when 9 => reg_ledseg_baiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
          if(weisel=1)then
                        if(scancnt=1)then   
                                case qianwei is
                                        when 0 => reg_ledseg_qianwei <= "01111110";
                                        when 1 => reg_ledseg_qianwei <= "00110000";
                                        when 2 => reg_ledseg_qianwei <= "01101101";
                                        when 3 => reg_ledseg_qianwei <= "01111001";
                                        when 4 => reg_ledseg_qianwei <= "00110011";
                                        when 5 => reg_ledseg_qianwei <= "01011011";
                                        when 6 => reg_ledseg_qianwei <= "01011111";
                                        when 7 => reg_ledseg_qianwei <= "01110000";
                                        when 8 => reg_ledseg_qianwei <= "01111111";
                                        when 9 => reg_ledseg_qianwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
       if(weisel=0)then
                        if(scancnt=0)then
                                case wanwei is
                                        when 0 => reg_ledseg_wanwei <= "01111110";
                                        when 1 => reg_ledseg_wanwei <= "00110000";
                                        when 2 => reg_ledseg_wanwei <= "01101101";
                                        when 3 => reg_ledseg_wanwei <= "01111001";
                                        when 4 => reg_ledseg_wanwei <= "00110011";
                                        when 5 => reg_ledseg_wanwei <= "01011011";
                                        when 6 => reg_ledseg_wanwei <= "01011111";
                                        when 7 => reg_ledseg_wanwei <= "01110000";
                                        when 8 => reg_ledseg_wanwei <= "01111111";
                                        when 9 => reg_ledseg_wanwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;       
                end if;
       elsif(mode1=1)then
   if(set_m1='0' and Morn='0')then
               case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00000101";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "00000000";
                        when others=>null;
               end case;
          elsif(set_m1='1' and Morn='1')then
          case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00000000";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "01111110";
                        when others=>null;
               end case;
       if(weisel=4)then                
                        if(scancnt=4)then
                                case gewei is
                                        when 0 => reg_ledseg_gewei <= "01111110";
                                        when 1 => reg_ledseg_gewei <= "00110000";
                                        when 2 => reg_ledseg_gewei <= "01101101";
                                        when 3 => reg_ledseg_gewei <= "01111001";
                                        when 4 => reg_ledseg_gewei <= "00110011";
                                        when 5 => reg_ledseg_gewei <= "01011011";
                                        when 6 => reg_ledseg_gewei <= "01011111";
                                        when 7 => reg_ledseg_gewei <= "01110000";
                                        when 8 => reg_ledseg_gewei <= "01111111";
                                        when 9 => reg_ledseg_gewei <= "01111011";
                                when others => null;       
                                end case;
                                end if;
                        end if;
               if(weisel=3)then
                        if(scancnt=3)then   
                                case shiwei is
                                        when 0 => reg_ledseg_shiwei <= "01111110";
                                        when 1 => reg_ledseg_shiwei <= "00110000";
                                        when 2 => reg_ledseg_shiwei <= "01101101";
                                        when 3 => reg_ledseg_shiwei <= "01111001";
                                        when 4 => reg_ledseg_shiwei <= "00110011";
                                        when 5 => reg_ledseg_shiwei <= "01011011";
                                        when 6 => reg_ledseg_shiwei <= "01011111";
                                        when 7 => reg_ledseg_shiwei <= "01110000";
                                        when 8 => reg_ledseg_shiwei <= "01111111";
                                        when 9 => reg_ledseg_shiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
                if(weisel=2)then
                        if(scancnt=2)then   
                                case baiwei is
                                        when 0 => reg_ledseg_baiwei <= "01111110";
                                        when 1 => reg_ledseg_baiwei <= "00110000";
                                        when 2 => reg_ledseg_baiwei <= "01101101";
                                        when 3 => reg_ledseg_baiwei <= "01111001";
                                        when 4 => reg_ledseg_baiwei <= "00110011";
                                        when 5 => reg_ledseg_baiwei <= "01011011";
                                        when 6 => reg_ledseg_baiwei <= "01011111";
                                        when 7 => reg_ledseg_baiwei <= "01110000";
                                        when 8 => reg_ledseg_baiwei <= "01111111";
                                        when 9 => reg_ledseg_baiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
          if(weisel=1)then
                        if(scancnt=1)then   
                                case qianwei is
                                        when 0 => reg_ledseg_qianwei <= "01111110";
                                        when 1 => reg_ledseg_qianwei <= "00110000";
                                        when 2 => reg_ledseg_qianwei <= "01101101";
                                        when 3 => reg_ledseg_qianwei <= "01111001";
                                        when 4 => reg_ledseg_qianwei <= "00110011";
                                        when 5 => reg_ledseg_qianwei <= "01011011";
                                        when 6 => reg_ledseg_qianwei <= "01011111";
                                        when 7 => reg_ledseg_qianwei <= "01110000";
                                        when 8 => reg_ledseg_qianwei <= "01111111";
                                        when 9 => reg_ledseg_qianwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
       if(weisel=0)then
                        if(scancnt=0)then
                                case wanwei is
                                        when 0 => reg_ledseg_wanwei <= "01111110";
                                        when 1 => reg_ledseg_wanwei <= "00110000";
                                        when 2 => reg_ledseg_wanwei <= "01101101";
                                        when 3 => reg_ledseg_wanwei <= "01111001";
                                        when 4 => reg_ledseg_wanwei <= "00110011";
                                        when 5 => reg_ledseg_wanwei <= "01011011";
                                        when 6 => reg_ledseg_wanwei <= "01011111";
                                        when 7 => reg_ledseg_wanwei <= "01110000";
                                        when 8 => reg_ledseg_wanwei <= "01111111";
                                        when 9 => reg_ledseg_wanwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;       
                end if;       
        elsif(mode1=2)then
   if(set_m2='0' and Morn='0')then
               case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "01001111";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "00000000";
                        when others=>null;
               end case;
           elsif(set_m2='1' and Morn='1')then
               case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00000000";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "01111110";
                        when others=>null;
               end case;
       if(weisel=4)then                
                        if(scancnt=4)then
                                case gewei is
                                        when 0 => reg_ledseg_gewei <= "01111110";
                                        when 1 => reg_ledseg_gewei <= "00110000";
                                        when 2 => reg_ledseg_gewei <= "01101101";
                                        when 3 => reg_ledseg_gewei <= "01111001";
                                        when 4 => reg_ledseg_gewei <= "00110011";
                                        when 5 => reg_ledseg_gewei <= "01011011";
                                        when 6 => reg_ledseg_gewei <= "01011111";
                                        when 7 => reg_ledseg_gewei <= "01110000";
                                        when 8 => reg_ledseg_gewei <= "01111111";
                                        when 9 => reg_ledseg_gewei <= "01111011";
                                when others => null;       
                                end case;
                                end if;
                        end if;
               if(weisel=3)then
                        if(scancnt=3)then   
                                case shiwei is
                                        when 0 => reg_ledseg_shiwei <= "01111110";
                                        when 1 => reg_ledseg_shiwei <= "00110000";
                                        when 2 => reg_ledseg_shiwei <= "01101101";
                                        when 3 => reg_ledseg_shiwei <= "01111001";
                                        when 4 => reg_ledseg_shiwei <= "00110011";
                                        when 5 => reg_ledseg_shiwei <= "01011011";
                                        when 6 => reg_ledseg_shiwei <= "01011111";
                                        when 7 => reg_ledseg_shiwei <= "01110000";
                                        when 8 => reg_ledseg_shiwei <= "01111111";
                                        when 9 => reg_ledseg_shiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
                if(weisel=2)then
                        if(scancnt=2)then   
                                case baiwei is
                                        when 0 => reg_ledseg_baiwei <= "01111110";
                                        when 1 => reg_ledseg_baiwei <= "00110000";
                                        when 2 => reg_ledseg_baiwei <= "01101101";
                                        when 3 => reg_ledseg_baiwei <= "01111001";
                                        when 4 => reg_ledseg_baiwei <= "00110011";
                                        when 5 => reg_ledseg_baiwei <= "01011011";
                                        when 6 => reg_ledseg_baiwei <= "01011111";
                                        when 7 => reg_ledseg_baiwei <= "01110000";
                                        when 8 => reg_ledseg_baiwei <= "01111111";
                                        when 9 => reg_ledseg_baiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
          if(weisel=1)then
                        if(scancnt=1)then   
                                case qianwei is
                                        when 0 => reg_ledseg_qianwei <= "01111110";
                                        when 1 => reg_ledseg_qianwei <= "00110000";
                                        when 2 => reg_ledseg_qianwei <= "01101101";
                                        when 3 => reg_ledseg_qianwei <= "01111001";
                                        when 4 => reg_ledseg_qianwei <= "00110011";
                                        when 5 => reg_ledseg_qianwei <= "01011011";
                                        when 6 => reg_ledseg_qianwei <= "01011111";
                                        when 7 => reg_ledseg_qianwei <= "01110000";
                                        when 8 => reg_ledseg_qianwei <= "01111111";
                                        when 9 => reg_ledseg_qianwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
       if(weisel=0)then
                        if(scancnt=0)then
                                case wanwei is
                                        when 0 => reg_ledseg_wanwei <= "01111110";
                                        when 1 => reg_ledseg_wanwei <= "00110000";
                                        when 2 => reg_ledseg_wanwei <= "01101101";
                                        when 3 => reg_ledseg_wanwei <= "01111001";
                                        when 4 => reg_ledseg_wanwei <= "00110011";
                                        when 5 => reg_ledseg_wanwei <= "01011011";
                                        when 6 => reg_ledseg_wanwei <= "01011111";
                                        when 7 => reg_ledseg_wanwei <= "01110000";
                                        when 8 => reg_ledseg_wanwei <= "01111111";
                                        when 9 => reg_ledseg_wanwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;       
                end if;       
        elsif(mode1=3)then
                if(set_m3='0' and Morn='0')then
                  case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "01100111";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "00000000";
                        when others=>null;
                  end case;
                elsif(set_m3='1' and Morn='1')then
               case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00000000";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "01111110";
                        when others=>null;
               end case;
       if(weisel=4)then                
                        if(scancnt=4)then
                                case gewei is
                                        when 0 => reg_ledseg_gewei <= "01111110";
                                        when 1 => reg_ledseg_gewei <= "00110000";
                                        when 2 => reg_ledseg_gewei <= "01101101";
                                        when 3 => reg_ledseg_gewei <= "01111001";
                                        when 4 => reg_ledseg_gewei <= "00110011";
                                        when 5 => reg_ledseg_gewei <= "01011011";
                                        when 6 => reg_ledseg_gewei <= "01011111";
                                        when 7 => reg_ledseg_gewei <= "01110000";
                                        when 8 => reg_ledseg_gewei <= "01111111";
                                        when 9 => reg_ledseg_gewei <= "01111011";
                                when others => null;       
                                end case;
                                end if;
                        end if;
               if(weisel=3)then
                        if(scancnt=3)then   
                                case shiwei is
                                        when 0 => reg_ledseg_shiwei <= "01111110";
                                        when 1 => reg_ledseg_shiwei <= "00110000";
                                        when 2 => reg_ledseg_shiwei <= "01101101";
                                        when 3 => reg_ledseg_shiwei <= "01111001";
                                        when 4 => reg_ledseg_shiwei <= "00110011";
                                        when 5 => reg_ledseg_shiwei <= "01011011";
                                        when 6 => reg_ledseg_shiwei <= "01011111";
                                        when 7 => reg_ledseg_shiwei <= "01110000";
                                        when 8 => reg_ledseg_shiwei <= "01111111";
                                        when 9 => reg_ledseg_shiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
                if(weisel=2)then
                        if(scancnt=2)then   
                                case baiwei is
                                        when 0 => reg_ledseg_baiwei <= "01111110";
                                        when 1 => reg_ledseg_baiwei <= "00110000";
                                        when 2 => reg_ledseg_baiwei <= "01101101";
                                        when 3 => reg_ledseg_baiwei <= "01111001";
                                        when 4 => reg_ledseg_baiwei <= "00110011";
                                        when 5 => reg_ledseg_baiwei <= "01011011";
                                        when 6 => reg_ledseg_baiwei <= "01011111";
                                        when 7 => reg_ledseg_baiwei <= "01110000";
                                        when 8 => reg_ledseg_baiwei <= "01111111";
                                        when 9 => reg_ledseg_baiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
          if(weisel=1)then
                        if(scancnt=1)then   
                                case qianwei is
                                        when 0 => reg_ledseg_qianwei <= "01111110";
                                        when 1 => reg_ledseg_qianwei <= "00110000";
                                        when 2 => reg_ledseg_qianwei <= "01101101";
                                        when 3 => reg_ledseg_qianwei <= "01111001";
                                        when 4 => reg_ledseg_qianwei <= "00110011";
                                        when 5 => reg_ledseg_qianwei <= "01011011";
                                        when 6 => reg_ledseg_qianwei <= "01011111";
                                        when 7 => reg_ledseg_qianwei <= "01110000";
                                        when 8 => reg_ledseg_qianwei <= "01111111";
                                        when 9 => reg_ledseg_qianwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
       if(weisel=0)then
                        if(scancnt=0)then
                                case wanwei is
                                        when 0 => reg_ledseg_wanwei <= "01111110";
                                        when 1 => reg_ledseg_wanwei <= "00110000";
                                        when 2 => reg_ledseg_wanwei <= "01101101";
                                        when 3 => reg_ledseg_wanwei <= "01111001";
                                        when 4 => reg_ledseg_wanwei <= "00110011";
                                        when 5 => reg_ledseg_wanwei <= "01011011";
                                        when 6 => reg_ledseg_wanwei <= "01011111";
                                        when 7 => reg_ledseg_wanwei <= "01110000";
                                        when 8 => reg_ledseg_wanwei <= "01111111";
                                        when 9 => reg_ledseg_wanwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;       
                end if;
       elsif(mode1=4)then
                if(set_m4='0' and Morn='0')then   
                  case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00010101";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "00000000";
                        when others=>null;
                  end case;
                elsif(set_m4='1' and Morn='1')then
               case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00000000";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "01111110";
                        when others=>null;
               end case;
      if(weisel=4)then               
                        if(scancnt=4)then
                                case gewei is
                                        when 0 => reg_ledseg_gewei <= "01111110";
                                        when 1 => reg_ledseg_gewei <= "00110000";
                                        when 2 => reg_ledseg_gewei <= "01101101";
                                        when 3 => reg_ledseg_gewei <= "01111001";
                                        when 4 => reg_ledseg_gewei <= "00110011";
                                        when 5 => reg_ledseg_gewei <= "01011011";
                                        when 6 => reg_ledseg_gewei <= "01011111";
                                        when 7 => reg_ledseg_gewei <= "01110000";
                                        when 8 => reg_ledseg_gewei <= "01111111";
                                        when 9 => reg_ledseg_gewei <= "01111011";
                                        when others => null;       
                               end case;
                          end if;
                        end if;
               if(weisel=3)then
                        if(scancnt=3)then
                                case shiwei is
                                        when 0 => reg_ledseg_shiwei <= "01111110";
                                        when 1 => reg_ledseg_shiwei <= "00110000";
                                        when 2 => reg_ledseg_shiwei <= "01101101";
                                        when 3 => reg_ledseg_shiwei <= "01111001";
                                        when 4 => reg_ledseg_shiwei <= "00110011";
                                        when 5 => reg_ledseg_shiwei <= "01011011";
                                        when 6 => reg_ledseg_shiwei <= "01011111";
                                        when 7 => reg_ledseg_shiwei <= "01110000";
                                        when 8 => reg_ledseg_shiwei <= "01111111";
                                        when 9 => reg_ledseg_shiwei <= "01111011";
                                        when others => null;       
                               end case;
                           end if;
                        end if;
                if(weisel=2)then
                        if(scancnt=2)then
                                case baiwei is
                                        when 0 => reg_ledseg_baiwei <= "01111110";
                                        when 1 => reg_ledseg_baiwei <= "00110000";
                                        when 2 => reg_ledseg_baiwei <= "01101101";
                                        when 3 => reg_ledseg_baiwei <= "01111001";
                                        when 4 => reg_ledseg_baiwei <= "00110011";
                                        when 5 => reg_ledseg_baiwei <= "01011011";
                                        when 6 => reg_ledseg_baiwei <= "01011111";
                                        when 7 => reg_ledseg_baiwei <= "01110000";
                                        when 8 => reg_ledseg_baiwei <= "01111111";
                                        when 9 => reg_ledseg_baiwei <= "01111011";
                                        when others => null;       
                               end case;
                          end if;
                        end if;
                if(weisel=1)then
                        if(scancnt=1)then
                                case qianwei is
                                        when 0 => reg_ledseg_qianwei <= "01111110";
                                        when 1 => reg_ledseg_qianwei <= "00110000";
                                        when 2 => reg_ledseg_qianwei <= "01101101";
                                        when 3 => reg_ledseg_qianwei <= "01111001";
                                        when 4 => reg_ledseg_qianwei <= "00110011";
                                        when 5 => reg_ledseg_qianwei <= "01011011";
                                        when 6 => reg_ledseg_qianwei <= "01011111";
                                        when 7 => reg_ledseg_qianwei <= "01110000";
                                        when 8 => reg_ledseg_qianwei <= "01111111";
                                        when 9 => reg_ledseg_qianwei <= "01111011";
                                        when others => null;       
                               end case;
                          end if;
                        end if;
                if(weisel=0)then
                  if(scancnt=0)then
                                case wanwei is
                                        when 0 => reg_ledseg_wanwei <= "01111110";
                                        when 1 => reg_ledseg_wanwei <= "00110000";
                                        when 2 => reg_ledseg_wanwei <= "01101101";
                                        when 3 => reg_ledseg_wanwei <= "01111001";
                                        when 4 => reg_ledseg_wanwei <= "00110011";
                                        when 5 => reg_ledseg_wanwei <= "01011011";
                                        when 6 => reg_ledseg_wanwei <= "01011111";
                                        when 7 => reg_ledseg_wanwei <= "01110000";
                                        when 8 => reg_ledseg_wanwei <= "01111111";
                                        when 9 => reg_ledseg_wanwei <= "01111011";
                                        when others => null;       
                               end case;
                          end if;
                        end if;                       
                end if;
       elsif(mode1=5)then
                if(set_m5='0' and Morn='0')then
                        case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "01000111";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "00000000";
                        when others=>null;
                  end case;
                elsif(set_m5='1' and Morn='1')then
               case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00000000";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "01111110";
                        when others=>null;
               end case;
       if(weisel=4)then                
                        if(scancnt=4)then
                                case gewei is
                                        when 0 => reg_ledseg_gewei <= "01111110";
                                        when 1 => reg_ledseg_gewei <= "00110000";
                                        when 2 => reg_ledseg_gewei <= "01101101";
                                        when 3 => reg_ledseg_gewei <= "01111001";
                                        when 4 => reg_ledseg_gewei <= "00110011";
                                        when 5 => reg_ledseg_gewei <= "01011011";
                                        when 6 => reg_ledseg_gewei <= "01011111";
                                        when 7 => reg_ledseg_gewei <= "01110000";
                                        when 8 => reg_ledseg_gewei <= "01111111";
                                        when 9 => reg_ledseg_gewei <= "01111011";
                                when others => null;       
                                end case;
                                end if;
                        end if;
               if(weisel=3)then
                        if(scancnt=3)then   
                                case shiwei is
                                        when 0 => reg_ledseg_shiwei <= "01111110";
                                        when 1 => reg_ledseg_shiwei <= "00110000";
                                        when 2 => reg_ledseg_shiwei <= "01101101";
                                        when 3 => reg_ledseg_shiwei <= "01111001";
                                        when 4 => reg_ledseg_shiwei <= "00110011";
                                        when 5 => reg_ledseg_shiwei <= "01011011";
                                        when 6 => reg_ledseg_shiwei <= "01011111";
                                        when 7 => reg_ledseg_shiwei <= "01110000";
                                        when 8 => reg_ledseg_shiwei <= "01111111";
                                        when 9 => reg_ledseg_shiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
                if(weisel=2)then
                        if(scancnt=2)then   
                                case baiwei is
                                        when 0 => reg_ledseg_baiwei <= "01111110";
                                        when 1 => reg_ledseg_baiwei <= "00110000";
                                        when 2 => reg_ledseg_baiwei <= "01101101";
                                        when 3 => reg_ledseg_baiwei <= "01111001";
                                        when 4 => reg_ledseg_baiwei <= "00110011";
                                        when 5 => reg_ledseg_baiwei <= "01011011";
                                        when 6 => reg_ledseg_baiwei <= "01011111";
                                        when 7 => reg_ledseg_baiwei <= "01110000";
                                        when 8 => reg_ledseg_baiwei <= "01111111";
                                        when 9 => reg_ledseg_baiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
          if(weisel=1)then
                        if(scancnt=1)then   
                                case qianwei is
                                        when 0 => reg_ledseg_qianwei <= "01111110";
                                        when 1 => reg_ledseg_qianwei <= "00110000";
                                        when 2 => reg_ledseg_qianwei <= "01101101";
                                        when 3 => reg_ledseg_qianwei <= "01111001";
                                        when 4 => reg_ledseg_qianwei <= "00110011";
                                        when 5 => reg_ledseg_qianwei <= "01011011";
                                        when 6 => reg_ledseg_qianwei <= "01011111";
                                        when 7 => reg_ledseg_qianwei <= "01110000";
                                        when 8 => reg_ledseg_qianwei <= "01111111";
                                        when 9 => reg_ledseg_qianwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
       if(weisel=0)then
                        if(scancnt=0)then
                                case wanwei is
                                        when 0 => reg_ledseg_wanwei <= "01111110";
                                        when 1 => reg_ledseg_wanwei <= "00110000";
                                        when 2 => reg_ledseg_wanwei <= "01101101";
                                        when 3 => reg_ledseg_wanwei <= "01111001";
                                        when 4 => reg_ledseg_wanwei <= "00110011";
                                        when 5 => reg_ledseg_wanwei <= "01011011";
                                        when 6 => reg_ledseg_wanwei <= "01011111";
                                        when 7 => reg_ledseg_wanwei <= "01110000";
                                        when 8 => reg_ledseg_wanwei <= "01111111";
                                        when 9 => reg_ledseg_wanwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;       
                end if;
       elsif(mode1=6)then
                if(set_m6='0' and Morn='0')then
                  case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00111110";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "00000000";
                        when others=>null;
                  end case;
           elsif(set_m6='1' and Morn='1')then
               case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00000000";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "01111110";
                        when others=>null;
               end case;
       if(weisel=4)then                
                        if(scancnt=4)then
                                case gewei is
                                        when 0 => reg_ledseg_gewei <= "01111110";
                                        when 1 => reg_ledseg_gewei <= "00110000";
                                        when 2 => reg_ledseg_gewei <= "01101101";
                                        when 3 => reg_ledseg_gewei <= "01111001";
                                        when 4 => reg_ledseg_gewei <= "00110011";
                                        when 5 => reg_ledseg_gewei <= "01011011";
                                        when 6 => reg_ledseg_gewei <= "01011111";
                                        when 7 => reg_ledseg_gewei <= "01110000";
                                        when 8 => reg_ledseg_gewei <= "01111111";
                                        when 9 => reg_ledseg_gewei <= "01111011";
                                when others => null;       
                                end case;
                                end if;
                        end if;
               if(weisel=3)then
                        if(scancnt=3)then   
                                case shiwei is
                                        when 0 => reg_ledseg_shiwei <= "01111110";
                                        when 1 => reg_ledseg_shiwei <= "00110000";
                                        when 2 => reg_ledseg_shiwei <= "01101101";
                                        when 3 => reg_ledseg_shiwei <= "01111001";
                                        when 4 => reg_ledseg_shiwei <= "00110011";
                                        when 5 => reg_ledseg_shiwei <= "01011011";
                                        when 6 => reg_ledseg_shiwei <= "01011111";
                                        when 7 => reg_ledseg_shiwei <= "01110000";
                                        when 8 => reg_ledseg_shiwei <= "01111111";
                                        when 9 => reg_ledseg_shiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
                if(weisel=2)then
                        if(scancnt=2)then   
                                case baiwei is
                                        when 0 => reg_ledseg_baiwei <= "01111110";
                                        when 1 => reg_ledseg_baiwei <= "00110000";
                                        when 2 => reg_ledseg_baiwei <= "01101101";
                                        when 3 => reg_ledseg_baiwei <= "01111001";
                                        when 4 => reg_ledseg_baiwei <= "00110011";
                                        when 5 => reg_ledseg_baiwei <= "01011011";
                                        when 6 => reg_ledseg_baiwei <= "01011111";
                                        when 7 => reg_ledseg_baiwei <= "01110000";
                                        when 8 => reg_ledseg_baiwei <= "01111111";
                                        when 9 => reg_ledseg_baiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
          if(weisel=1)then
                        if(scancnt=1)then   
                                case qianwei is
                                        when 0 => reg_ledseg_qianwei <= "01111110";
                                        when 1 => reg_ledseg_qianwei <= "00110000";
                                        when 2 => reg_ledseg_qianwei <= "01101101";
                                        when 3 => reg_ledseg_qianwei <= "01111001";
                                        when 4 => reg_ledseg_qianwei <= "00110011";
                                        when 5 => reg_ledseg_qianwei <= "01011011";
                                        when 6 => reg_ledseg_qianwei <= "01011111";
                                        when 7 => reg_ledseg_qianwei <= "01110000";
                                        when 8 => reg_ledseg_qianwei <= "01111111";
                                        when 9 => reg_ledseg_qianwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
       end if;
       if(weisel=0)then
                        if(scancnt=0)then
                                case wanwei is
                                        when 0 => reg_ledseg_wanwei <= "01111110";
                                        when 1 => reg_ledseg_wanwei <= "00110000";
                                        when 2 => reg_ledseg_wanwei <= "01101101";
                                        when 3 => reg_ledseg_wanwei <= "01111001";
                                        when 4 => reg_ledseg_wanwei <= "00110011";
                                        when 5 => reg_ledseg_wanwei <= "01011011";
                                        when 6 => reg_ledseg_wanwei <= "01011111";
                                        when 7 => reg_ledseg_wanwei <= "01110000";
                                        when 8 => reg_ledseg_wanwei <= "01111111";
                                        when 9 => reg_ledseg_wanwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
          end if;       
          end if;
        elsif(mode1=7)then
                if(set_m7='0' and Morn='0')then
                  case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00001110";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "00000000";
                        when others=>null;
                  end case;
    elsif(set_m7='1' and Morn='1')then
          case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00000000";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "01111110";
                        when others=>null;
               end case;
       if(weisel=4)then                
                        if(scancnt=4)then
                                case gewei is
                                        when 0 => reg_ledseg_gewei <= "01111110";
                                        when 1 => reg_ledseg_gewei <= "00110000";
                                        when 2 => reg_ledseg_gewei <= "01101101";
                                        when 3 => reg_ledseg_gewei <= "01111001";
                                        when 4 => reg_ledseg_gewei <= "00110011";
                                        when 5 => reg_ledseg_gewei <= "01011011";
                                        when 6 => reg_ledseg_gewei <= "01011111";
                                        when 7 => reg_ledseg_gewei <= "01110000";
                                        when 8 => reg_ledseg_gewei <= "01111111";
                                        when 9 => reg_ledseg_gewei <= "01111011";
                                when others => null;       
                                end case;
                                end if;
                        end if;
               if(weisel=3)then
                        if(scancnt=3)then   
                                case shiwei is
                                        when 0 => reg_ledseg_shiwei <= "01111110";
                                        when 1 => reg_ledseg_shiwei <= "00110000";
                                        when 2 => reg_ledseg_shiwei <= "01101101";
                                        when 3 => reg_ledseg_shiwei <= "01111001";
                                        when 4 => reg_ledseg_shiwei <= "00110011";
                                        when 5 => reg_ledseg_shiwei <= "01011011";
                                        when 6 => reg_ledseg_shiwei <= "01011111";
                                        when 7 => reg_ledseg_shiwei <= "01110000";
                                        when 8 => reg_ledseg_shiwei <= "01111111";
                                        when 9 => reg_ledseg_shiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
                if(weisel=2)then
                        if(scancnt=2)then   
                                case baiwei is
                                        when 0 => reg_ledseg_baiwei <= "01111110";
                                        when 1 => reg_ledseg_baiwei <= "00110000";
                                        when 2 => reg_ledseg_baiwei <= "01101101";
                                        when 3 => reg_ledseg_baiwei <= "01111001";
                                        when 4 => reg_ledseg_baiwei <= "00110011";
                                        when 5 => reg_ledseg_baiwei <= "01011011";
                                        when 6 => reg_ledseg_baiwei <= "01011111";
                                        when 7 => reg_ledseg_baiwei <= "01110000";
                                        when 8 => reg_ledseg_baiwei <= "01111111";
                                        when 9 => reg_ledseg_baiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
          if(weisel=1)then
                        if(scancnt=1)then   
                                case qianwei is
                                        when 0 => reg_ledseg_qianwei <= "01111110";
                                        when 1 => reg_ledseg_qianwei <= "00110000";
                                        when 2 => reg_ledseg_qianwei <= "01101101";
                                        when 3 => reg_ledseg_qianwei <= "01111001";
                                        when 4 => reg_ledseg_qianwei <= "00110011";
                                        when 5 => reg_ledseg_qianwei <= "01011011";
                                        when 6 => reg_ledseg_qianwei <= "01011111";
                                        when 7 => reg_ledseg_qianwei <= "01110000";
                                        when 8 => reg_ledseg_qianwei <= "01111111";
                                        when 9 => reg_ledseg_qianwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
       end if;
       if(weisel=0)then
                        if(scancnt=0)then
                                case wanwei is
                                        when 0 => reg_ledseg_wanwei <= "01111110";
                                        when 1 => reg_ledseg_wanwei <= "00110000";
                                        when 2 => reg_ledseg_wanwei <= "01101101";
                                        when 3 => reg_ledseg_wanwei <= "01111001";
                                        when 4 => reg_ledseg_wanwei <= "00110011";
                                        when 5 => reg_ledseg_wanwei <= "01011011";
                                        when 6 => reg_ledseg_wanwei <= "01011111";
                                        when 7 => reg_ledseg_wanwei <= "01110000";
                                        when 8 => reg_ledseg_wanwei <= "01111111";
                                        when 9 => reg_ledseg_wanwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
          end if;       
          end if;          
        elsif(mode1=8)then
                if(set_m8='0' and Morn='0')then
                  case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00111100";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "00000000";
                        when others=>null;
                  end case;
       elsif(set_m8='1' and Morn='1')then
               case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00000000";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "01111110";
                        when others=>null;
               end case;
       if(weisel=4)then                
                        if(scancnt=4)then
                                case gewei is
                                        when 0 => reg_ledseg_gewei <= "01111110";
                                        when 1 => reg_ledseg_gewei <= "00110000";
                                        when 2 => reg_ledseg_gewei <= "01101101";
                                        when 3 => reg_ledseg_gewei <= "01111001";
                                        when 4 => reg_ledseg_gewei <= "00110011";
                                        when 5 => reg_ledseg_gewei <= "01011011";
                                        when 6 => reg_ledseg_gewei <= "01011111";
                                        when 7 => reg_ledseg_gewei <= "01110000";
                                        when 8 => reg_ledseg_gewei <= "01111111";
                                        when 9 => reg_ledseg_gewei <= "01111011";
                                when others => null;       
                                end case;
                                end if;
                        end if;
               if(weisel=3)then
                        if(scancnt=3)then   
                                case shiwei is
                                        when 0 => reg_ledseg_shiwei <= "01111110";
                                        when 1 => reg_ledseg_shiwei <= "00110000";
                                        when 2 => reg_ledseg_shiwei <= "01101101";
                                        when 3 => reg_ledseg_shiwei <= "01111001";
                                        when 4 => reg_ledseg_shiwei <= "00110011";
                                        when 5 => reg_ledseg_shiwei <= "01011011";
                                        when 6 => reg_ledseg_shiwei <= "01011111";
                                        when 7 => reg_ledseg_shiwei <= "01110000";
                                        when 8 => reg_ledseg_shiwei <= "01111111";
                                        when 9 => reg_ledseg_shiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
                if(weisel=2)then
                        if(scancnt=2)then   
                                case baiwei is
                                        when 0 => reg_ledseg_baiwei <= "01111110";
                                        when 1 => reg_ledseg_baiwei <= "00110000";
                                        when 2 => reg_ledseg_baiwei <= "01101101";
                                        when 3 => reg_ledseg_baiwei <= "01111001";
                                        when 4 => reg_ledseg_baiwei <= "00110011";
                                        when 5 => reg_ledseg_baiwei <= "01011011";
                                        when 6 => reg_ledseg_baiwei <= "01011111";
                                        when 7 => reg_ledseg_baiwei <= "01110000";
                                        when 8 => reg_ledseg_baiwei <= "01111111";
                                        when 9 => reg_ledseg_baiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
          if(weisel=1)then
                        if(scancnt=1)then   
                                case qianwei is
                                        when 0 => reg_ledseg_qianwei <= "01111110";
                                        when 1 => reg_ledseg_qianwei <= "00110000";
                                        when 2 => reg_ledseg_qianwei <= "01101101";
                                        when 3 => reg_ledseg_qianwei <= "01111001";
                                        when 4 => reg_ledseg_qianwei <= "00110011";
                                        when 5 => reg_ledseg_qianwei <= "01011011";
                                        when 6 => reg_ledseg_qianwei <= "01011111";
                                        when 7 => reg_ledseg_qianwei <= "01110000";
                                        when 8 => reg_ledseg_qianwei <= "01111111";
                                        when 9 => reg_ledseg_qianwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
       end if;
       if(weisel=0)then
                        if(scancnt=0)then
                                case wanwei is
                                        when 0 => reg_ledseg_wanwei <= "01111110";
                                        when 1 => reg_ledseg_wanwei <= "00110000";
                                        when 2 => reg_ledseg_wanwei <= "01101101";
                                        when 3 => reg_ledseg_wanwei <= "01111001";
                                        when 4 => reg_ledseg_wanwei <= "00110011";
                                        when 5 => reg_ledseg_wanwei <= "01011011";
                                        when 6 => reg_ledseg_wanwei <= "01011111";
                                        when 7 => reg_ledseg_wanwei <= "01110000";
                                        when 8 => reg_ledseg_wanwei <= "01111111";
                                        when 9 => reg_ledseg_wanwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
          end if;       
          end if;
   elsif(mode1=9)then
                if(set_m9='0' and Morn='0')then
                  case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00011111";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "00000000";
                        when others=>null;
                  end case;
      elsif(set_m9='1' and Morn='1')then
               case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00000000";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "01111110";
                        when others=>null;
               end case;
       if(weisel=4)then                
                        if(scancnt=4)then
                                case gewei is
                                        when 0 => reg_ledseg_gewei <= "01111110";
                                        when 1 => reg_ledseg_gewei <= "00110000";
                                        when 2 => reg_ledseg_gewei <= "01101101";
                                        when 3 => reg_ledseg_gewei <= "01111001";
                                        when 4 => reg_ledseg_gewei <= "00110011";
                                        when 5 => reg_ledseg_gewei <= "01011011";
                                        when 6 => reg_ledseg_gewei <= "01011111";
                                        when 7 => reg_ledseg_gewei <= "01110000";
                                        when 8 => reg_ledseg_gewei <= "01111111";
                                        when 9 => reg_ledseg_gewei <= "01111011";
                                when others => null;       
                                end case;
                                end if;
                        end if;
               if(weisel=3)then
                        if(scancnt=3)then   
                                case shiwei is
                                        when 0 => reg_ledseg_shiwei <= "01111110";
                                        when 1 => reg_ledseg_shiwei <= "00110000";
                                        when 2 => reg_ledseg_shiwei <= "01101101";
                                        when 3 => reg_ledseg_shiwei <= "01111001";
                                        when 4 => reg_ledseg_shiwei <= "00110011";
                                        when 5 => reg_ledseg_shiwei <= "01011011";
                                        when 6 => reg_ledseg_shiwei <= "01011111";
                                        when 7 => reg_ledseg_shiwei <= "01110000";
                                        when 8 => reg_ledseg_shiwei <= "01111111";
                                        when 9 => reg_ledseg_shiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
                if(weisel=2)then
                        if(scancnt=2)then   
                                case baiwei is
                                        when 0 => reg_ledseg_baiwei <= "01111110";
                                        when 1 => reg_ledseg_baiwei <= "00110000";
                                        when 2 => reg_ledseg_baiwei <= "01101101";
                                        when 3 => reg_ledseg_baiwei <= "01111001";
                                        when 4 => reg_ledseg_baiwei <= "00110011";
                                        when 5 => reg_ledseg_baiwei <= "01011011";
                                        when 6 => reg_ledseg_baiwei <= "01011111";
                                        when 7 => reg_ledseg_baiwei <= "01110000";
                                        when 8 => reg_ledseg_baiwei <= "01111111";
                                        when 9 => reg_ledseg_baiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
          if(weisel=1)then
                        if(scancnt=1)then   
                                case qianwei is
                                        when 0 => reg_ledseg_qianwei <= "01111110";
                                        when 1 => reg_ledseg_qianwei <= "00110000";
                                        when 2 => reg_ledseg_qianwei <= "01101101";
                                        when 3 => reg_ledseg_qianwei <= "01111001";
                                        when 4 => reg_ledseg_qianwei <= "00110011";
                                        when 5 => reg_ledseg_qianwei <= "01011011";
                                        when 6 => reg_ledseg_qianwei <= "01011111";
                                        when 7 => reg_ledseg_qianwei <= "01110000";
                                        when 8 => reg_ledseg_qianwei <= "01111111";
                                        when 9 => reg_ledseg_qianwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
       end if;
       if(weisel=0)then
                        if(scancnt=0)then
                                case wanwei is
                                        when 0 => reg_ledseg_wanwei <= "01111110";
                                        when 1 => reg_ledseg_wanwei <= "00110000";
                                        when 2 => reg_ledseg_wanwei <= "01101101";
                                        when 3 => reg_ledseg_wanwei <= "01111001";
                                        when 4 => reg_ledseg_wanwei <= "00110011";
                                        when 5 => reg_ledseg_wanwei <= "01011011";
                                        when 6 => reg_ledseg_wanwei <= "01011111";
                                        when 7 => reg_ledseg_wanwei <= "01110000";
                                        when 8 => reg_ledseg_wanwei <= "01111111";
                                        when 9 => reg_ledseg_wanwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
          end if;       
          end if;
   elsif(mode1=10)then
                if(set_m10='0' and Morn='0')then
                  case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "01000110";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "00000000";
                        when others=>null;
                  end case;
      elsif(set_m10='1' and Morn='1')then
               case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00000000";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "01111110";
                        when others=>null;
               end case;
       if(weisel=4)then                
                        if(scancnt=4)then
                                case gewei is
                                        when 0 => reg_ledseg_gewei <= "01111110";
                                        when 1 => reg_ledseg_gewei <= "00110000";
                                        when 2 => reg_ledseg_gewei <= "01101101";
                                        when 3 => reg_ledseg_gewei <= "01111001";
                                        when 4 => reg_ledseg_gewei <= "00110011";
                                        when 5 => reg_ledseg_gewei <= "01011011";
                                        when 6 => reg_ledseg_gewei <= "01011111";
                                        when 7 => reg_ledseg_gewei <= "01110000";
                                        when 8 => reg_ledseg_gewei <= "01111111";
                                        when 9 => reg_ledseg_gewei <= "01111011";
                                when others => null;       
                                end case;
                                end if;
                        end if;
               if(weisel=3)then
                        if(scancnt=3)then   
                                case shiwei is
                                        when 0 => reg_ledseg_shiwei <= "01111110";
                                        when 1 => reg_ledseg_shiwei <= "00110000";
                                        when 2 => reg_ledseg_shiwei <= "01101101";
                                        when 3 => reg_ledseg_shiwei <= "01111001";
                                        when 4 => reg_ledseg_shiwei <= "00110011";
                                        when 5 => reg_ledseg_shiwei <= "01011011";
                                        when 6 => reg_ledseg_shiwei <= "01011111";
                                        when 7 => reg_ledseg_shiwei <= "01110000";
                                        when 8 => reg_ledseg_shiwei <= "01111111";
                                        when 9 => reg_ledseg_shiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
                if(weisel=2)then
                        if(scancnt=2)then   
                                case baiwei is
                                        when 0 => reg_ledseg_baiwei <= "01111110";
                                        when 1 => reg_ledseg_baiwei <= "00110000";
                                        when 2 => reg_ledseg_baiwei <= "01101101";
                                        when 3 => reg_ledseg_baiwei <= "01111001";
                                        when 4 => reg_ledseg_baiwei <= "00110011";
                                        when 5 => reg_ledseg_baiwei <= "01011011";
                                        when 6 => reg_ledseg_baiwei <= "01011111";
                                        when 7 => reg_ledseg_baiwei <= "01110000";
                                        when 8 => reg_ledseg_baiwei <= "01111111";
                                        when 9 => reg_ledseg_baiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
          if(weisel=1)then
                        if(scancnt=1)then   
                                case qianwei is
                                        when 0 => reg_ledseg_qianwei <= "01111110";
                                        when 1 => reg_ledseg_qianwei <= "00110000";
                                        when 2 => reg_ledseg_qianwei <= "01101101";
                                        when 3 => reg_ledseg_qianwei <= "01111001";
                                        when 4 => reg_ledseg_qianwei <= "00110011";
                                        when 5 => reg_ledseg_qianwei <= "01011011";
                                        when 6 => reg_ledseg_qianwei <= "01011111";
                                        when 7 => reg_ledseg_qianwei <= "01110000";
                                        when 8 => reg_ledseg_qianwei <= "01111111";
                                        when 9 => reg_ledseg_qianwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
       end if;
       if(weisel=0)then
                        if(scancnt=0)then
                                case wanwei is
                                        when 0 => reg_ledseg_wanwei <= "01111110";
                                        when 1 => reg_ledseg_wanwei <= "00110000";
                                        when 2 => reg_ledseg_wanwei <= "01101101";
                                        when 3 => reg_ledseg_wanwei <= "01111001";
                                        when 4 => reg_ledseg_wanwei <= "00110011";
                                        when 5 => reg_ledseg_wanwei <= "01011011";
                                        when 6 => reg_ledseg_wanwei <= "01011111";
                                        when 7 => reg_ledseg_wanwei <= "01110000";
                                        when 8 => reg_ledseg_wanwei <= "01111111";
                                        when 9 => reg_ledseg_wanwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
          end if;       
          end if;
   elsif(mode1=11)then
          if(set_m11='0' and Morn='0')then
                  case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "01001110";
                        when 1 => reg_ledseg_qianwei <= "00111011";
                        when 2 => reg_ledseg_baiwei<= "00110000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "00000000";
                        when others=>null;
                  end case;
           elsif(set_m11='1' and Morn='1')then
               case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00000000";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "01111110";
                        when others=>null;
               end case;
       if(weisel=4)then                
                        if(scancnt=4)then
                                case gewei is
                                        when 0 => reg_ledseg_gewei <= "01111110";
                                        when 1 => reg_ledseg_gewei <= "00110000";
                                        when 2 => reg_ledseg_gewei <= "01101101";
                                        when 3 => reg_ledseg_gewei <= "01111001";
                                        when 4 => reg_ledseg_gewei <= "00110011";
                                        when 5 => reg_ledseg_gewei <= "01011011";
                                        when 6 => reg_ledseg_gewei <= "01011111";
                                        when 7 => reg_ledseg_gewei <= "01110000";
                                        when 8 => reg_ledseg_gewei <= "01111111";
                                        when 9 => reg_ledseg_gewei <= "01111011";
                                when others => null;       
                                end case;
                                end if;
                        end if;
               if(weisel=3)then
                        if(scancnt=3)then   
                                case shiwei is
                                        when 0 => reg_ledseg_shiwei <= "01111110";
                                        when 1 => reg_ledseg_shiwei <= "00110000";
                                        when 2 => reg_ledseg_shiwei <= "01101101";
                                        when 3 => reg_ledseg_shiwei <= "01111001";
                                        when 4 => reg_ledseg_shiwei <= "00110011";
                                        when 5 => reg_ledseg_shiwei <= "01011011";
                                        when 6 => reg_ledseg_shiwei <= "01011111";
                                        when 7 => reg_ledseg_shiwei <= "01110000";
                                        when 8 => reg_ledseg_shiwei <= "01111111";
                                        when 9 => reg_ledseg_shiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
                if(weisel=2)then
                        if(scancnt=2)then   
                                case baiwei is
                                        when 0 => reg_ledseg_baiwei <= "01111110";
                                        when 1 => reg_ledseg_baiwei <= "00110000";
                                        when 2 => reg_ledseg_baiwei <= "01101101";
                                        when 3 => reg_ledseg_baiwei <= "01111001";
                                        when 4 => reg_ledseg_baiwei <= "00110011";
                                        when 5 => reg_ledseg_baiwei <= "01011011";
                                        when 6 => reg_ledseg_baiwei <= "01011111";
                                        when 7 => reg_ledseg_baiwei <= "01110000";
                                        when 8 => reg_ledseg_baiwei <= "01111111";
                                        when 9 => reg_ledseg_baiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
          if(weisel=1)then
                        if(scancnt=1)then   
                                case qianwei is
                                        when 0 => reg_ledseg_qianwei <= "01111110";
                                        when 1 => reg_ledseg_qianwei <= "00110000";
                                        when 2 => reg_ledseg_qianwei <= "01101101";
                                        when 3 => reg_ledseg_qianwei <= "01111001";
                                        when 4 => reg_ledseg_qianwei <= "00110011";
                                        when 5 => reg_ledseg_qianwei <= "01011011";
                                        when 6 => reg_ledseg_qianwei <= "01011111";
                                        when 7 => reg_ledseg_qianwei <= "01110000";
                                        when 8 => reg_ledseg_qianwei <= "01111111";
                                        when 9 => reg_ledseg_qianwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
       end if;
       if(weisel=0)then
                        if(scancnt=0)then
                                case wanwei is
                                        when 0 => reg_ledseg_wanwei <= "01111110";
                                        when 1 => reg_ledseg_wanwei <= "00110000";
                                        when 2 => reg_ledseg_wanwei <= "01101101";
                                        when 3 => reg_ledseg_wanwei <= "01111001";
                                        when 4 => reg_ledseg_wanwei <= "00110011";
                                        when 5 => reg_ledseg_wanwei <= "01011011";
                                        when 6 => reg_ledseg_wanwei <= "01011111";
                                        when 7 => reg_ledseg_wanwei <= "01110000";
                                        when 8 => reg_ledseg_wanwei <= "01111111";
                                        when 9 => reg_ledseg_wanwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
          end if;       
          end if;
   elsif(mode1=12)then
          if(set_m12='0' and Morn='0')then
                  case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "01001110";
                        when 1 => reg_ledseg_qianwei <= "00111011";
                        when 2 => reg_ledseg_baiwei<= "01101101";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "00000000";
                        when others=>null;
                  end case;
   elsif(set_m12='1' and Morn='1')then
          case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00000000";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "01111110";
                        when others=>null;
               end case;
       if(weisel=4)then                
                        if(scancnt=4)then
                                case gewei is
                                        when 0 => reg_ledseg_gewei <= "01111110";
                                        when 1 => reg_ledseg_gewei <= "00110000";
                                        when 2 => reg_ledseg_gewei <= "01101101";
                                        when 3 => reg_ledseg_gewei <= "01111001";
                                        when 4 => reg_ledseg_gewei <= "00110011";
                                        when 5 => reg_ledseg_gewei <= "01011011";
                                        when 6 => reg_ledseg_gewei <= "01011111";
                                        when 7 => reg_ledseg_gewei <= "01110000";
                                        when 8 => reg_ledseg_gewei <= "01111111";
                                        when 9 => reg_ledseg_gewei <= "01111011";
                                when others => null;       
                                end case;
                                end if;
                        end if;
               if(weisel=3)then
                        if(scancnt=3)then   
                                case shiwei is
                                        when 0 => reg_ledseg_shiwei <= "01111110";
                                        when 1 => reg_ledseg_shiwei <= "00110000";
                                        when 2 => reg_ledseg_shiwei <= "01101101";
                                        when 3 => reg_ledseg_shiwei <= "01111001";
                                        when 4 => reg_ledseg_shiwei <= "00110011";
                                        when 5 => reg_ledseg_shiwei <= "01011011";
                                        when 6 => reg_ledseg_shiwei <= "01011111";
                                        when 7 => reg_ledseg_shiwei <= "01110000";
                                        when 8 => reg_ledseg_shiwei <= "01111111";
                                        when 9 => reg_ledseg_shiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
                if(weisel=2)then
                        if(scancnt=2)then   
                                case baiwei is
                                        when 0 => reg_ledseg_baiwei <= "01111110";
                                        when 1 => reg_ledseg_baiwei <= "00110000";
                                        when 2 => reg_ledseg_baiwei <= "01101101";
                                        when 3 => reg_ledseg_baiwei <= "01111001";
                                        when 4 => reg_ledseg_baiwei <= "00110011";
                                        when 5 => reg_ledseg_baiwei <= "01011011";
                                        when 6 => reg_ledseg_baiwei <= "01011111";
                                        when 7 => reg_ledseg_baiwei <= "01110000";
                                        when 8 => reg_ledseg_baiwei <= "01111111";
                                        when 9 => reg_ledseg_baiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
          if(weisel=1)then
                        if(scancnt=1)then   
                                case qianwei is
                                        when 0 => reg_ledseg_qianwei <= "01111110";
                                        when 1 => reg_ledseg_qianwei <= "00110000";
                                        when 2 => reg_ledseg_qianwei <= "01101101";
                                        when 3 => reg_ledseg_qianwei <= "01111001";
                                        when 4 => reg_ledseg_qianwei <= "00110011";
                                        when 5 => reg_ledseg_qianwei <= "01011011";
                                        when 6 => reg_ledseg_qianwei <= "01011111";
                                        when 7 => reg_ledseg_qianwei <= "01110000";
                                        when 8 => reg_ledseg_qianwei <= "01111111";
                                        when 9 => reg_ledseg_qianwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
       end if;
       if(weisel=0)then
                        if(scancnt=0)then
                                case wanwei is
                                        when 0 => reg_ledseg_wanwei <= "01111110";
                                        when 1 => reg_ledseg_wanwei <= "00110000";
                                        when 2 => reg_ledseg_wanwei <= "01101101";
                                        when 3 => reg_ledseg_wanwei <= "01111001";
                                        when 4 => reg_ledseg_wanwei <= "00110011";
                                        when 5 => reg_ledseg_wanwei <= "01011011";
                                        when 6 => reg_ledseg_wanwei <= "01011111";
                                        when 7 => reg_ledseg_wanwei <= "01110000";
                                        when 8 => reg_ledseg_wanwei <= "01111111";
                                        when 9 => reg_ledseg_wanwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
          end if;       
          end if;
elsif(mode1=13)then
          if(set_m13='0' and Morn='0')then
                  case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00001110";
                        when 1 => reg_ledseg_qianwei <= "01011011";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "00000000";
                        when others=>null;
                  end case;
      elsif(set_m13='1' and Morn='1')then
                  case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00000000";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "01111110";
                        when others=>null;
               end case;
       if(weisel=4)then                
                        if(scancnt=4)then
                                case gewei is
                                        when 0 => reg_ledseg_gewei <= "01111110";
                                        when 1 => reg_ledseg_gewei <= "00110000";
                                        when 2 => reg_ledseg_gewei <= "01101101";
                                        when 3 => reg_ledseg_gewei <= "01111001";
                                        when 4 => reg_ledseg_gewei <= "00110011";
                                        when 5 => reg_ledseg_gewei <= "01011011";
                                        when 6 => reg_ledseg_gewei <= "01011111";
                                        when 7 => reg_ledseg_gewei <= "01110000";
                                        when 8 => reg_ledseg_gewei <= "01111111";
                                        when 9 => reg_ledseg_gewei <= "01111011";
                                when others => null;       
                                end case;
                                end if;
                        end if;
               if(weisel=3)then
                        if(scancnt=3)then   
                                case shiwei is
                                        when 0 => reg_ledseg_shiwei <= "01111110";
                                        when 1 => reg_ledseg_shiwei <= "00110000";
                                        when 2 => reg_ledseg_shiwei <= "01101101";
                                        when 3 => reg_ledseg_shiwei <= "01111001";
                                        when 4 => reg_ledseg_shiwei <= "00110011";
                                        when 5 => reg_ledseg_shiwei <= "01011011";
                                        when 6 => reg_ledseg_shiwei <= "01011111";
                                        when 7 => reg_ledseg_shiwei <= "01110000";
                                        when 8 => reg_ledseg_shiwei <= "01111111";
                                        when 9 => reg_ledseg_shiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
                if(weisel=2)then
                        if(scancnt=2)then   
                                case baiwei is
                                        when 0 => reg_ledseg_baiwei <= "01111110";
                                        when 1 => reg_ledseg_baiwei <= "00110000";
                                        when 2 => reg_ledseg_baiwei <= "01101101";
                                        when 3 => reg_ledseg_baiwei <= "01111001";
                                        when 4 => reg_ledseg_baiwei <= "00110011";
                                        when 5 => reg_ledseg_baiwei <= "01011011";
                                        when 6 => reg_ledseg_baiwei <= "01011111";
                                        when 7 => reg_ledseg_baiwei <= "01110000";
                                        when 8 => reg_ledseg_baiwei <= "01111111";
                                        when 9 => reg_ledseg_baiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
          if(weisel=1)then
                        if(scancnt=1)then   
                                case qianwei is
                                        when 0 => reg_ledseg_qianwei <= "01111110";
                                        when 1 => reg_ledseg_qianwei <= "00110000";
                                        when 2 => reg_ledseg_qianwei <= "01101101";
                                        when 3 => reg_ledseg_qianwei <= "01111001";
                                        when 4 => reg_ledseg_qianwei <= "00110011";
                                        when 5 => reg_ledseg_qianwei <= "01011011";
                                        when 6 => reg_ledseg_qianwei <= "01011111";
                                        when 7 => reg_ledseg_qianwei <= "01110000";
                                        when 8 => reg_ledseg_qianwei <= "01111111";
                                        when 9 => reg_ledseg_qianwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
       end if;
       if(weisel=0)then
                        if(scancnt=0)then
                                case wanwei is
                                        when 0 => reg_ledseg_wanwei <= "01111110";
                                        when 1 => reg_ledseg_wanwei <= "00110000";
                                        when 2 => reg_ledseg_wanwei <= "01101101";
                                        when 3 => reg_ledseg_wanwei <= "01111001";
                                        when 4 => reg_ledseg_wanwei <= "00110011";
                                        when 5 => reg_ledseg_wanwei <= "01011011";
                                        when 6 => reg_ledseg_wanwei <= "01011111";
                                        when 7 => reg_ledseg_wanwei <= "01110000";
                                        when 8 => reg_ledseg_wanwei <= "01111111";
                                        when 9 => reg_ledseg_wanwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
          end if;       
          end if;
   elsif(mode1=14)then
          if(set_m14='0' and Morn='0')then
                  case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00111101";
                        when 1 => reg_ledseg_qianwei <= "01001110";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "00000000";
                        when others=>null;
                  end case;
   elsif(set_m14='1' and Morn='1')then
          case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00000000";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "01111110";
                        when others=>null;
               end case;
       if(weisel=4)then                
                        if(scancnt=4)then
                                case gewei is
                                        when 0 => reg_ledseg_gewei <= "01111110";
                                        when 1 => reg_ledseg_gewei <= "00110000";
                                        when 2 => reg_ledseg_gewei <= "01101101";
                                        when 3 => reg_ledseg_gewei <= "01111001";
                                        when 4 => reg_ledseg_gewei <= "00110011";
                                        when 5 => reg_ledseg_gewei <= "01011011";
                                        when 6 => reg_ledseg_gewei <= "01011111";
                                        when 7 => reg_ledseg_gewei <= "01110000";
                                        when 8 => reg_ledseg_gewei <= "01111111";
                                        when 9 => reg_ledseg_gewei <= "01111011";
                                when others => null;       
                                end case;
                                end if;
                        end if;
               if(weisel=3)then
                        if(scancnt=3)then   
                                case shiwei is
                                        when 0 => reg_ledseg_shiwei <= "01111110";
                                        when 1 => reg_ledseg_shiwei <= "00110000";
                                        when 2 => reg_ledseg_shiwei <= "01101101";
                                        when 3 => reg_ledseg_shiwei <= "01111001";
                                        when 4 => reg_ledseg_shiwei <= "00110011";
                                        when 5 => reg_ledseg_shiwei <= "01011011";
                                        when 6 => reg_ledseg_shiwei <= "01011111";
                                        when 7 => reg_ledseg_shiwei <= "01110000";
                                        when 8 => reg_ledseg_shiwei <= "01111111";
                                        when 9 => reg_ledseg_shiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
                if(weisel=2)then
                        if(scancnt=2)then   
                                case baiwei is
                                        when 0 => reg_ledseg_baiwei <= "01111110";
                                        when 1 => reg_ledseg_baiwei <= "00110000";
                                        when 2 => reg_ledseg_baiwei <= "01101101";
                                        when 3 => reg_ledseg_baiwei <= "01111001";
                                        when 4 => reg_ledseg_baiwei <= "00110011";
                                        when 5 => reg_ledseg_baiwei <= "01011011";
                                        when 6 => reg_ledseg_baiwei <= "01011111";
                                        when 7 => reg_ledseg_baiwei <= "01110000";
                                        when 8 => reg_ledseg_baiwei <= "01111111";
                                        when 9 => reg_ledseg_baiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
          if(weisel=1)then
                        if(scancnt=1)then   
                                case qianwei is
                                        when 0 => reg_ledseg_qianwei <= "01111110";
                                        when 1 => reg_ledseg_qianwei <= "00110000";
                                        when 2 => reg_ledseg_qianwei <= "01101101";
                                        when 3 => reg_ledseg_qianwei <= "01111001";
                                        when 4 => reg_ledseg_qianwei <= "00110011";
                                        when 5 => reg_ledseg_qianwei <= "01011011";
                                        when 6 => reg_ledseg_qianwei <= "01011111";
                                        when 7 => reg_ledseg_qianwei <= "01110000";
                                        when 8 => reg_ledseg_qianwei <= "01111111";
                                        when 9 => reg_ledseg_qianwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
       end if;
       if(weisel=0)then
                        if(scancnt=0)then
                                case wanwei is
                                        when 0 => reg_ledseg_wanwei <= "01111110";
                                        when 1 => reg_ledseg_wanwei <= "00110000";
                                        when 2 => reg_ledseg_wanwei <= "01101101";
                                        when 3 => reg_ledseg_wanwei <= "01111001";
                                        when 4 => reg_ledseg_wanwei <= "00110011";
                                        when 5 => reg_ledseg_wanwei <= "01011011";
                                        when 6 => reg_ledseg_wanwei <= "01011111";
                                        when 7 => reg_ledseg_wanwei <= "01110000";
                                        when 8 => reg_ledseg_wanwei <= "01111111";
                                        when 9 => reg_ledseg_wanwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
          end if;       
          end if;
   elsif(mode1=15)then
          if(set_m15='0' and Morn='0')then
                  case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "01100111";
                        when 1 => reg_ledseg_qianwei <= "00010101";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "00000000";
                        when others=>null;
                  end case;
   elsif(set_m15='1' and Morn='1')then
           case scancnt is          
                        when 0 => reg_ledseg_wanwei<= "00000000";
                        when 1 => reg_ledseg_qianwei <= "00000000";
                        when 2 => reg_ledseg_baiwei<= "00000000";
                        when 3 => reg_ledseg_shiwei<= "00000000";
                        when 4 => reg_ledseg_gewei   <= "01111110";
                        when others=>null;
               end case;
       if(weisel=4)then                
                        if(scancnt=4)then
                                case gewei is
                                        when 0 => reg_ledseg_gewei <= "01111110";
                                        when 1 => reg_ledseg_gewei <= "00110000";
                                        when 2 => reg_ledseg_gewei <= "01101101";
                                        when 3 => reg_ledseg_gewei <= "01111001";
                                        when 4 => reg_ledseg_gewei <= "00110011";
                                        when 5 => reg_ledseg_gewei <= "01011011";
                                        when 6 => reg_ledseg_gewei <= "01011111";
                                        when 7 => reg_ledseg_gewei <= "01110000";
                                        when 8 => reg_ledseg_gewei <= "01111111";
                                        when 9 => reg_ledseg_gewei <= "01111011";
                                when others => null;       
                                end case;
                                end if;
                        end if;
               if(weisel=3)then
                        if(scancnt=3)then   
                                case shiwei is
                                        when 0 => reg_ledseg_shiwei <= "01111110";
                                        when 1 => reg_ledseg_shiwei <= "00110000";
                                        when 2 => reg_ledseg_shiwei <= "01101101";
                                        when 3 => reg_ledseg_shiwei <= "01111001";
                                        when 4 => reg_ledseg_shiwei <= "00110011";
                                        when 5 => reg_ledseg_shiwei <= "01011011";
                                        when 6 => reg_ledseg_shiwei <= "01011111";
                                        when 7 => reg_ledseg_shiwei <= "01110000";
                                        when 8 => reg_ledseg_shiwei <= "01111111";
                                        when 9 => reg_ledseg_shiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
                if(weisel=2)then
                        if(scancnt=2)then   
                                case baiwei is
                                        when 0 => reg_ledseg_baiwei <= "01111110";
                                        when 1 => reg_ledseg_baiwei <= "00110000";
                                        when 2 => reg_ledseg_baiwei <= "01101101";
                                        when 3 => reg_ledseg_baiwei <= "01111001";
                                        when 4 => reg_ledseg_baiwei <= "00110011";
                                        when 5 => reg_ledseg_baiwei <= "01011011";
                                        when 6 => reg_ledseg_baiwei <= "01011111";
                                        when 7 => reg_ledseg_baiwei <= "01110000";
                                        when 8 => reg_ledseg_baiwei <= "01111111";
                                        when 9 => reg_ledseg_baiwei <= "01111011";
                                when others => null;       
                                end case;
                          end if;
                        end if;
          if(weisel=1)then
                        if(scancnt=1)then   
                                case qianwei is
                                        when 0 => reg_ledseg_qianwei <= "01111110";
                                        when 1 => reg_ledseg_qianwei <= "00110000";
                                        when 2 => reg_ledseg_qianwei <= "01101101";
                                        when 3 => reg_ledseg_qianwei <= "01111001";
                                        when 4 => reg_ledseg_qianwei <= "00110011";
                                        when 5 => reg_ledseg_qianwei <= "01011011";
                                        when 6 => reg_ledseg_qianwei <= "01011111";
                                        when 7 => reg_ledseg_qianwei <= "01110000";
                                        when 8 => reg_ledseg_qianwei <= "01111111";
                                        when 9 => reg_ledseg_qianwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
       end if;
       if(weisel=0)then
                        if(scancnt=0)then
                                case wanwei is
                                        when 0 => reg_ledseg_wanwei <= "01111110";
                                        when 1 => reg_ledseg_wanwei <= "00110000";
                                        when 2 => reg_ledseg_wanwei <= "01101101";
                                        when 3 => reg_ledseg_wanwei <= "01111001";
                                        when 4 => reg_ledseg_wanwei <= "00110011";
                                        when 5 => reg_ledseg_wanwei <= "01011011";
                                        when 6 => reg_ledseg_wanwei <= "01011111";
                                        when 7 => reg_ledseg_wanwei <= "01110000";
                                        when 8 => reg_ledseg_wanwei <= "01111111";
                                        when 9 => reg_ledseg_wanwei <= "01111011";
                                when others => null;       
                                end case;
                       end if;
          end if;       
          end if;                            
end if;
end process;
end Behavioral;

,刷新之后,再进行数据调整,结果不能保存了??? 请问蓝余大哥怎么解决这个问题啊?????
页: [1]
查看完整版本: 用FPGA做键盘显示出现的问题!!!!!!!!