variable number :std_logic_vector(1 downto 0); --记录票数的变量 --记录总票价的变量
variable total_price :std_logic_vector(7 downto 0);
variable total_insert :std_logic_vector(7 downto 0);-- 记录投入钱币总额的变量 variable change
:std_logic_vector(7 downto 0);
--记录应找零金额的变量
variable sign :std_logic; variable temp :std_logic;
--记录系统是否已经过初始化的变量 --记录投入钱币金额达到总票价的变量
begin
if (clk'event and clk='1') then
case state is
when initialize_state=>
if(sign='0')
then
--初始状态
--表示系统未经过初始化 --钱币“暂存杆”退出钱币 --购票记录清零 --出票口关闭 --找零口关闭 --票种记录清零 --票数记录清零
--单张票价记录清零 --购票张数记录清零 --票价总额记录清零 --投入钱币总额记录清零 --应找零金额记录清零 --记录已完成系统初始化
--时钟信号上升沿触发
money_gate<="00"; ticket_out<="00000"; ticket_gate<='0';
change_gate<='0'; temp_type:="00000";
temp_account:="00000"; type_temp:='0'; account_temp:='0'; price:="00000000"; number:="00";
total_price:="00000000"; total_insert:="00000000"; change:="00000000"; sign:='1'; temp:='0' ;
--投入达到总票价记录清零
--表示系统已经过初始化
else
money_gate<="01"; --钱币“暂存杆”归为等待状态
if (select_start='1') then --按下“开始选择”按钮
sign:='0';
--系统进入选择状态
state<=select_state;