qidao123.com ToB IT社区-企服评测·应用市场

 找回密码
 立即注册

基于FPGA的出租车计费体系筹划---第一版--郝旭帅电子筹划团队

[复制链接]
发表于 2026-2-14 19:31:48 | 显示全部楼层 |阅读模式
接待各位朋侪关注“郝旭帅电子筹划团队”,本篇为各位朋侪先容基于FPGA的出租车计费体系筹划—第一版
功能分析:
      
  • 收费尺度(里程):起步价5元,包罗三公里;三公里之后,每公里2元(不到一公里,不收费)。
      
  • 收费尺度(低速等候费):当计费开始,车辆速率低于某一速率时,开始收取低速等候费,三分钟收取2元,不敷三分钟不收费
      
  • 团体收费=里程计费+低速等候费
      
  • 设置有计费开始/制止按钮。
      
  • 设置有档位控制按钮,0档(制止不动),1档(3分钟一公里),2档(1分钟一公里)。当计费开始,0档和1档位须要累加低速等候计费。
      
  • 使用六个数码管表现信息。
      
  • 表现模式一:第一个数码管表现是否计费(A:计费制止, C:计费开始),第二个数码管表现档位(0、1、2),第三个至六个表现应收钱数。
      
  • 表现模式二:总计运行时间
      
  • 表现模式三:前三个里程,后三个里程收费
      
  • 表现模式四:前三个低速等候时长(分钟),后三个低速等候费。
      
  • 设置有表现模式切换按钮。
      
  • 计费制止后,重新按下计费开始,上述全部统计从0开始。
      
  • 为了下板后,可以大概比力快速表现出结果,全部的时间加速30倍.

使用平台:本次筹划应用Altera的平台筹划(芯片:EP4CE10F17C8N)。
仿真平台:Modelsim。
作者QQ:746833924
分析:本篇筹划中不涉及到IP和原语,代码在其他平台依然可以实用;当其他板卡电路差别时,会导致差别的征象出现,如有须要修改代码请接洽作者;如需作者使用的板卡,请接洽作者;
筹划头脑如下:

key_ctrl模块负责将外部输入的按键举行消抖,产生按键按下时的脉冲。
taxi_meter_ctrl模块负责根据外部输入的三个脉冲和出租车计费的规则产生对应的输出数据。
seven_tube_drive模块负责将taxi_meter_ctrl产生的数据表现到数码管上。
key_ctrl模块筹划头脑为:按键信号是由外部呆板式按键产生,每次按下大概抬起时,会产生肯定的抖动。如果直接对其举行边沿检测就会导致多次触发。故而须要筹划按键消抖,进而对消抖之后的波形举行边沿检测。消抖原理为:外部按键信号发生改变后,如果可以大概一连20ms,没有新的改变,就以为此次改变不是抖动,而是真正的按下,然后举行采样即可。
  1. // 记录任意边沿之后没有遇到新的边沿的时间长度是否达到20Ms
  2. //---------------------------------------------------------------------------------------  
  3. always@(posedgeclk)begin
  4.    if(rst_n ==1'b0)
  5.      cnt_20ms <=20'd0;
  6.    else
  7.      if(pulse_key_negedge ==1'b1||pulse_key_posedge ==1'b1)
  8.        cnt_20ms <=20'd1;
  9.      else
  10.        if(cnt_20ms >20'd0&&cnt_20ms <T_20ms)
  11.          cnt_20ms <=cnt_20ms +1'b1;
  12.        else
  13.            cnt_20ms <=20'd0;
  14. end
  15. // ---------------------------------------------------------------------------------------
  16. // 任意边沿之后没有遇到新的边沿的时间长度达到20Ms,认为按键稳定,此时采样
  17. //--------------------------------------------------------------------------------------   
  18. always@(posedgeclk)begin
  19.    if(rst_n ==1'b0)
  20.      key_wave <=1'b1;
  21.    else
  22.      if(cnt_20ms ==T_20ms)
  23.        key_wave <=key_rr;
  24.      else
  25.        key_wave <=key_wave;
  26. end
  27. //--
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录

QQ|手机版|qidao123.com IT社区;IT企服评测▪应用市场 ( 浙ICP备20004199|浙ICP备20004199号 )|网站地图

GMT+8, 2026-3-11 11:44 , Processed in 0.293653 second(s), 31 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表