Quartus地铁售票设计Verilog代码AX301开发板

名称:Quartus地铁售票设计Verilog代码AX301开发板

软件:Quartus

语言:Verilog

代码功能:

主要内容:

1选择1号或者2号地铁线,每条线都有3元,4元,5元二种票价

2选择买张或者两张。乘客在操作失误时,可以进行清零然后重新购买。

3投钱可以选择1元,5元,10元,

4比较投钱和票价。投钱和票价相等时,出票投钱大于票价时,找零,出票:投钱小于票价时,询问是否继续投钱,如果不继续投钱,则不出顒并且退钱。

5显示选择几号线,选择的票价,购买几张投入的钱数以及找零的钱。

本代码已在AX301开发板验证,开发板如下,其他开发板可以修改管脚适配

代码下载:
Quartus地铁售票设计Verilog代码AX301开发板
http://hdlcode.com/index.php?m=home&c=View&a=index&aid=334

部分代码展示:

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
————————————————
版权声明:本文为CSDN博主「RTLcoder」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/RTLcoder/article/details/134967226

猜你喜欢

转载自blog.csdn.net/diaojiangxue/article/details/134982598
今日推荐