名称:自动售票机设计Verilog代码Quartus 实验箱(文末获取)
软件:Quartus
语言:Verilog
代码功能:
自动售票机设计要求:
1.自动售票机有两个投币口,每次只能投入一枚伍角或一元的硬币。当投入的硬币数值满两元时,按下确认按钮,出票口自动吐出
2.当投入的硬币数值为一元伍角时,再投入一元硬币并按下确认按钮,此时出票口自动吐出一张车票并在退币口吐出伍角硬币。
3.用两位七段数码管显示已投入的硬币数值(5角、10角、15角、20角)
4.自定义其它功能
本代码已在实验箱验证,实验箱如下,其他开发板可以修改管脚适配:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. 仿真图
整体仿真图
按键模块
控制模块
显示模块
部分代码展示:
module auto_sell( input clk_in,//时钟 input reset_n,//复位 input coin_10_key,//投币1.0元 input coin_05_key,//投币0.5元 input confirm_key,//确认 input return_key,//退币 output succeed_ledn, output [7:0] DLA,//数码管位选,低电平选择 output [7:0] HEX//数码管段选,低亮 ); wire [7:0] input_money_BCD;//投币金额 wire [7:0] change_money_BCD;//找钱 wire coin_10_p;//投币1.0元 wire coin_05_p;//投币0.5元 //按键上升沿检测模块 key_xd i0_key_jitter( . clkin(clk_in), . key_in(coin_10_key),//输入 . key_posedge(coin_10_p)//按键上升沿检测 ); //按键上升沿检测模块 key_xd i2_key_jitter( . clkin(clk_in), . key_in(coin_05_key),//输入 . key_posedge(coin_05_p)//按键上升沿检测 ); //状态控制模块 state_ctrl i_state_ctrl( . clk_in(clk_in),//时钟100Hz . reset_n(reset_n),//系统复位 . coin_10_p(coin_10_p),//投币1.0元 . coin_05_p(coin_05_p),//投币0.5元 . return_p(~return_key),//退币键 . confirm_p(~confirm_key),//确认 . succeed_ledn(succeed_ledn), . input_money_BCD(input_money_BCD),//投币金额 . change_money_BCD(change_money_BCD)//找钱 );
源代码
点击下方的公众号卡片获取