名称:卡式电话计费器设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
卡式电话计费器设计要求
该计费器在卡插入后,能读出卡中的余额并显示;在通话中,根据通话种类进行扣费,卡内余额每分钟更新一次;对通话时间计时并显示出来。 (2) 话务种类分为三种:市话、长途和特话。其中市话按每分钟3角钱计算,长话按每分钟6角钱计算,特话免费当卡中余额少于当前话务种类对应的一分钟费用,产生告警信号,警告灯亮,当告警时间达到15s时切断当前通话。
设定卡内余额最大为20角。利用数码管显示卡内余额和通话时间,灯显示读卡信号、写卡信号、告警信号和切断信号。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. 仿真文件
7. 仿真图
部分代码展示:
//顶层 module?telephone( input?clk_1KHz, input?rst, input?card_key,//插卡按键,1表示插入 input?[1:0]oncall_key,//拨号--00表示不拨号,01表示市话,10表示长途,11表示特话 output?card_led,//插卡指示灯 output?[2:0]call_led,//通话指示灯 output?reminder_led,//告警信号,警告灯亮 //?利用数码管显示卡内余额和通话时间 output?[7:0]?SEG1,//段选显示 output?[3:0]?SEL1,?//位选显示 output?[7:0]?SEG2,//段选显示 output?[3:0]?SEL2?//位选显示 ); wire?[7:0]?money_left;//卡内余额 wire?[7:0]?minute;//通话时间 wire?[7:0]?second;//通话时间 telephone_ctrl?i_telephone_ctrl( .?clk_1KHz(clk_1KHz), .?rst(rst), .?card_key(card_key),//插卡按键,1表示插入 .?oncall_key(oncall_key),//拨号--00表示不拨号,01表示市话,10表示长途,11表示特话 .?card_led(card_led),//插卡指示灯 .?call_led(call_led),//通话指示灯 .?reminder_led(reminder_led),//告警信号,警告灯亮 //?利用数码管显示卡内余额和通话时间 .?money_left(money_left),//卡内余额 .?minute(minute),//通话时间 .?second(second)//通话时间 ); //数码管显示模块 display?i_display( .?clk_1K(clk_1KHz), //?利用数码管显示卡内余额和通话时间 .?money_left(money_left),//卡内余额 .?minute(minute),//通话时间 .?second(second),//通话时间 .?SEG1(SEG1),//段选显示 .?SEL1(SEL1),?//位选显示 .?SEG2(SEG2),//段选显示 .?SEL2(SEL2)?//位选显示 );
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1304
阅读全文