赞
踩
名称:Quartus地铁自动售票机verilog代码青创QC-FPGA开发板(文末获取)
软件:Quartus
语言:Verilog
代码功能:
地铁自动售票机
1.一共20站,1~5站2元;6~10站3元,11~15站5元,16~20站7元。
2.投钱可以投1元,5元,10元,20元
3.若投入钱币大于票价,显示购买成功并找零
4.若投币低于票价可以退还钱币,不出票
本代码已在青创QC-FPGA开发板验证,青创QC-FPGA开发板如下,其他开发板可以修改管脚适配:
1.工程文件
2.程序文件
3.程序编译
4.RTL图
5.仿真图
1. 整体仿真图
2. 二进制转BCD模块仿真图
3. 按键下降沿检测模块
4. 数码管显示模块
5. 地铁售票控制模块仿真
上图中,station_p按了3次,表示选择了3站(data_1=3),所以票价是2(data_2=2)元,按下confirm_p键后,开始投币,1,5,10,20分别投币一次,共投币36元(data_1=36),再按下confirm_p键后,开始找零,同时buy_succeed变为高电平表示购票成功,找零34元(data_2=34),再按下confirm_p键后表示取票成功。
部分代码展示:
module subway( input clk_48M, input resetin, input confirm_key_n, input station_key_n, output [1:0]row_keys, input[1:0]line_keys, output buy_succeed, output [7:0]data, output [3:0]com ); wire coin_1_p; wire coin_5_p; wire coin_10_p; wire coin_20_p; wire clk_1KHz; wire [7:0] data_1; wire [7:0] data_2; wire confirm_p; wire station_p; key_jitter key_jitter_1( . clkin(clk_1KHz), . key_in(confirm_key_n), . key_negedge(confirm_p) ); key_jitter key_jitter_2( . clkin(clk_1KHz), . key_in(station_key_n), . key_negedge(station_p) ); matrix_key i_matrix_key ( .clkin(clk_48M), .resetin(resetin), .row_keys(row_keys), .line_keys(line_keys), .clk_1KHz(clk_1KHz), .coin_1(coin_1_p), .coin_5(coin_5_p), .coin_10(coin_10_p), .coin_20(coin_20_p) ); subway_ctrl i_subway_ctrl( . clk(clk_1KHz), . reset_n(resetin), . confirm_p(confirm_p), . station_p(station_p), . coin_1_p(coin_1_p), . coin_5_p(coin_5_p), . coin_10_p(coin_10_p), . coin_20_p(coin_20_p), . buy_succeed(buy_succeed), . data_1(data_1), . data_2(data_2) ); wire [3:0]data_1_ten; wire [3:0]data_1_one; wire [3:0]data_2_ten; wire [3:0]data_2_one; wire [7:0]data_1_BCD; wire [7:0]data_2_BCD; b_to_bcd i1_b_to_bcd ( .clk(clk_48M), .rst_n(resetin), .binary(data_1), .state_en(1'b1), .BCD(data_1_BCD) ); b_to_bcd i2_b_to_bcd ( .clk(clk_48M), .rst_n(resetin), .binary(data_2), .state_en(1'b1), .BCD(data_2_BCD) ); assign data_1_ten=data_1_BCD[7:4]; assign data_1_one=data_1_BCD[3:0]; assign data_2_ten=data_2_BCD[7:4]; assign data_2_one=data_2_BCD[3:0]; led_sm i_led_sm ( .clkin(clk_48M), .resetin(resetin), .data_1_in(data_1_one), .data_10_in(data_1_ten), .data_100_in(data_2_one), .data_1000_in(data_2_ten), .data(data), .com(com) ); endmodule
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。