找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4247|回复: 1
收起左侧

FPGA出租车计费器Verilog语言程序设计

[复制链接]
ID:443932 发表于 2018-12-11 11:31 | 显示全部楼层 |阅读模式
       出租车计费器    一 实验任务及要求
  1. 能实现计费功能,计费标准为:按行驶里程收费,起步费为10.00元,
     并在车行3公里后再按2元/公里,当计费器计费达到或超过一定收费(如20元)时,
     每公里加收50%的车费,车停止不计费。
  2. 实现预置功能:能预置起步费、每公里收费、车行加费里程。
  3. 实现模拟功能:能模拟汽车启动、停止、暂停、车速等状态。
  4. 设计动态扫描电路:将车费显示出来,有两位小数。
  5. 用Verilog语言设计符合上述功能要求的出租车计费器,并用层次化设计方法设计该电路。
  6. 各计数器的计数状态用功能仿真的方法验证,并通过有关波形确认电路设计是否正确。
  7. 完成电路全部设计后,通过系统实验箱下载验证设计的正确性。   计费器按里程收费,每100米开始一次计费。
code: 代码文档
doc:设计文档
img:图片
prj:工程文档
tb:仿真文档
pro_log:工程文档备份
2016-03-31_212314.jpg 2016-03-31_223513.jpg
源码:
  1. module Taxi_prj(
  2.                                                 clk,
  3.                                                 rst_n,
  4.                                                 en,
  5.                                                 //delay,
  6.                                                 Mail_out,
  7.                                                 Cost_out
  8.                                                 );

  9.         input clk,rst_n;

  10.         input en;
  11.        
  12.         reg flag;
  13.         reg[9:0] delay;
  14.         output [9:0]Mail_out;
  15.         output [9:0]Cost_out;
  16.        
  17.         reg [9:0] mail_cnt;
  18.         reg [9:0] cost_cnt;
  19.        
  20.         always @(posedge clk or negedge rst_n)       
  21.         begin
  22.                 if(!rst_n)
  23.                         mail_cnt <= 9'd30;
  24.                 else if(cost_cnt !=9'd10 && en ==1 && flag ==0)
  25.                         mail_cnt <= mail_cnt + 1'b1;//100m
  26.                 else if(flag == 1)
  27.                         mail_cnt <= 9'd30;
  28.         end
  29.        
  30.         always @(posedge clk or negedge rst_n)
  31.         begin
  32.                 if(!rst_n)
  33.                         cost_cnt <= 9'd10;
  34.                 else if(flag==0 && en)begin
  35.                         if(cost_cnt <= 9'd19)//8km
  36.                                 cost_cnt <= cost_cnt + 9'd2;//2yuan
  37.                         else if(cost_cnt >= 9'd20)
  38.                                 begin
  39.                                         cost_cnt <= cost_cnt + 9'd3;//2yuan
  40.                                 end
  41.                 end
  42.                 else if(flag == 1)
  43.                         cost_cnt <= 9'd10;
  44.                         //mail_cnt <= 9'd30;
  45.         end
  46.        
  47.         always @(posedge clk or negedge rst_n)
  48.         begin
  49.                 if(!rst_n) begin
  50.                         delay <= 9'd0;
  51.                         flag <= 0;
  52.                 end
  53.                 else if(en == 0) begin   //停车开始计数
  54.                         delay <= delay + 9'd1;
  55.                         if(delay == 9'd49)begin
  56.                                 flag <= 1;
  57.                         end
  58.                         else
  59.                                 flag <= 0;
  60.                 end
  61.                
  62.         end
  63.        
  64. //        always @(posedge clk or negedge rst_n)
  65. //        if(!rst_n)begin
  66. //                if(delay == 9'd49)
  67. ……………………

  68. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

全部资料51hei下载地址:
taxi.rar (3.22 MB, 下载次数: 91)
回复

使用道具 举报

ID:516543 发表于 2019-4-24 15:52 | 显示全部楼层
你这又EP4CE10F17C8芯片的出租车计费设计吗
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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