名称:Quartus地铁售票设计Verilog代码AX301开发板
软件:Quartus
语言:Verilog
代码功能:
主要内容:
1选择1号或者2号地铁线,每条线都有3元,4元,5元二种票价
2选择买张或者两张。乘客在操作失误时,可以进行清零然后重新购买。
3投钱可以选择1元,5元,10元,
4比较投钱和票价。投钱和票价相等时,出票投钱大于票价时,找零,出票:投钱小于票价时,询问是否继续投钱,如果不继续投钱,则不出顒并且退钱。
5显示选择几号线,选择的票价,购买几张投入的钱数以及找零的钱。
本代码已在AX301开发板验证,开发板如下,其他开发板可以修改管脚适配
1. 工程文件
2. 程序文件
3. 程序运行
4. RTL图
5. 管脚分配
6. Testbench
7. 仿真图
7.1 按键消抖模块
7.2状态机控制模块
取消按键取消之前设置
重新设置
选择4元票价2张,投币16元,找零8元
投币不足,选择4元票价2张,投币6元,找零6元
7.3 显示模块
部分代码展示:文章来源:https://www.toymoban.com/news/detail-804288.html
module Subway_ticketing( input clk_50M, input route_price_key,//路线和票价按键,按下低电平 input number_ticket_key,//张数按键,按下低电平,K1 input confirm_key,//确认按键,按下低电平,K2 input cancel_key,//取消按键,按下低电平,K3 input coin_operated_1,//投币1元,投入低电平 input coin_operated_5,//投币5元,投入低电平 input coin_operated_10,//投币10元,投入低电平 output [3:0]route_led,//线路指示灯 output [7:0] duanxuan,//数码管段选 output [5:0] weixuan//数码管位选 ); wire route_price_en;//路线和票价按键,按下低电平 wire number_ticket_en;//张数按键,按下低电平 wire confirm_en;//确认按键,按下低电平 wire cancel_en;//取消按键,按下低电平 wire coin_1_debounce; wire coin_5_debounce; wire coin_10_debounce; wire [3:0]ticket_price;//票价 wire [3:0]ticket_num;//张数 wire [7:0]total_inmoney;//总投币 wire [7:0]give_change_money;//退钱(找零) key_debounce i_route_price_key ( . clk(clk_50M), . rst_p(1'b0), . button_in(route_price_key), . button_posedge(), . button_negedge(route_price_en), . button_out() ); key_debounce i_number_ticket_key ( . clk(clk_50M), . rst_p(1'b0), . button_in(number_ticket_key), . button_posedge(), . button_negedge(number_ticket_en), . button_out() ); key_debounce i_confirm_key ( . clk(clk_50M), . rst_p(1'b0), . button_in(confirm_key), . button_posedge(), . button_negedge(confirm_en), . button_out() ); key_debounce i_cancel_key ( . clk(clk_50M), . rst_p(1'b0), . button_in(cancel_key), . button_posedge(), . button_negedge(cancel_en), . button_out() ); key_debounce i_coin_1_debounce ( . clk(clk_50M), . rst_p(1'b0), . button_in(coin_operated_1), . button_posedge(), . button_negedge(coin_1_debounce), . button_out() ); key_debounce i_coin_5_debounce ( . clk(clk_50M), . rst_p(1'b0), . button_in(coin_operated_5), . button_posedge(), . button_negedge(coin_5_debounce), . button_out() ); key_debounce i_coin_10_debounce ( . clk(clk_50M), . rst_p(1'b0), . button_in(coin_operated_10), . button_posedge(), . button_negedge(coin_10_debounce), . button_out() ); Vending_machine i_Vending_machine( . clk_50M(clk_50M), . route_price_en(route_price_en),//路线和票价按键,按下低电平 . number_ticket_en(number_ticket_en),//张数按键,按下低电平 . confirm_en(confirm_en),//确认按键,按下低电平 . cancel_en(cancel_en),//取消按键,按下低电平 . coin_operated_1(coin_1_debounce),//投币1元,投入低电平 . coin_operated_5(coin_5_debounce),//投币5元,投入低电平 . coin_operated_10(coin_10_debounce),//投币10元,投入低电平 . route_led(route_led),//led指示1线路 . ticket_price_out(ticket_price),//票价 . ticket_num_out(ticket_num),//张数 . total_inmoney_out(total_inmoney),//总投币 . give_change_money_out(give_change_money)//退钱(找零) ); display i_display ( .clk(clk_50M), .ticket_price(ticket_price),//票价 .ticket_num(ticket_num),//张数 .total_inmoney(total_inmoney),//总投币 .give_change_money(give_change_money),//退钱(找零) .duanxuan(duanxuan), //低电平有效 .weixuan(weixuan) ); endmodule
源代码
扫描文章末尾的公众号二维码文章来源地址https://www.toymoban.com/news/detail-804288.html
到了这里,关于地铁售票设计Verilog代码AX301开发板Quartus的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!