FPGA项目(6) 您所在的位置:网站首页 出租车计价器怎么换纸漂视频 FPGA项目(6)

FPGA项目(6)

2023-12-23 09:54| 来源: 网络整理| 查看: 265

产品功能

        本次设计的出租车计价器所实现的功能如下:      

1、能够实现计费的功能

        费用是按行驶的里程进行计算,设出租车的起价为6元,当里程小于3km时,按起价计算费用;当里程大于3km时每km按1元计费。

2、能够实现显示的功能

        1)左边四个数码管显示里程:用四位数字显示,显示方式为“XXXX”,单位为km。里程范围为0~999.9km,里程分辨率为0.1km。

        2)右边四个数码管显示费用:用四位数字显示,显示方式为“XXXX”,单价为元。计价范围为0~999.9元,费用分辨率为0.1元。

系统框图

设计步骤 

          开发板提供的时钟信号CLK频率为1000Hz,应该设计一分频器得到1Hz的时钟信号作为里程计数脉冲,每一个脉冲表示0.1km。数码管显示采用动态扫描的方式。

设计思路

        首先设计一个分频模块,将输入的1000HZ时钟分频为1HZ,用于驱动里程计数。然后定义一个内部变量flag,只要S1按下,flag=1,S2按下,flag=0。然后系统根据flag的值进行计数。如果flag为1,那么里程和费用就正常计数;如果flag为0,那么里程和费用就不计数,显示总的里程和费用不动。如果检测到S3被按下,那么费用和里程直接清0。显示部分直接调用现成的显示模块,将要显示的数据传过去即可。关于数码管动态显示的内容,具体参见我的另一篇博客:

https://blog.csdn.net/guangali/article/details/130754726?spm=1001.2014.3001.5501

代码 module taxi( input clk, input reset, input S1, input S2, input S3, output [2:0] sel, //数码管位选 output [7:0] sel_seg //数码管段选 ); parameter HZ_NUM=10'd1000; //得到1HZ信号的分频系数 //parameter HZ_NUM=10'd2; //仿真使用 reg [9:0] cnt; reg clk_hz; //分频后得到的1HZ信号 reg [13:0] miles; //用于保存公里数 reg [13:0] cost; //用于保存路费 reg flag; //标志位 1-->系统运作 0-->系统暂停 reg i; wire [31:0] data_show; //要送到数码管显示的数据 wire [3:0] data0 ; // 个位数 wire [3:0] data1 ; // 十位数 wire [3:0] data2 ; // 百位数 wire [3:0] data3 ; // 千位数 wire [3:0] data4 ; // 万位数 wire [3:0] data5 ; // 十万位数 wire [3:0] data6 ; // 百万位数 wire [3:0] data7 ; // 千万位数 always @(posedge clk or negedge reset) begin if(!reset) cnt


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有