名称:卡式电话计费器设计Verilog代码Quartus仿真(文末获取)
软件:Quartus
语言:Verilog
代码功能:
卡式电话计费器设计要求
该计费器在卡插入后,能读出卡中的余额并显示;在通话中,根据通话种类进行扣费,卡内余额每分钟更新一次;对通话时间计时并显示出来。 (2) 话务种类分为三种:市话、长途和特话。其中市话按每分钟3角钱计算,长话按每分钟6角钱计算,特话免费当卡中余额少于当前话务种类对应的一分钟费用,产生告警信号,警告灯亮,当告警时间达到15s时切断当前通话。
设定卡内余额最大为20角。利用数码管显示卡内余额和通话时间,灯显示读卡信号、写卡信号、告警信号和切断信号。
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) //位选显示 );
源代码
点击下方的公众号卡片获取