EDA课设论文出租车计费系统verilog语言 下载本文

华东交通大学课程设计

第二章 系统设计方案

系统的大致框图:

图1

第一步:把板子上的时钟50M的晶振分频为1HZ。这样有利于以后模块的调用。

第二步:出租车上一般都有时间,所以把时间模块给设计好,在这里就需要了第一步已经设计好的分频1HZ的时钟,调用设计出时间,显示小时,分钟,秒。

第三步:用板子上的2个按键控制加速和减速,起始速度为2,按下加速键或者减速键,相应的显示会变化且路程和计费也会变化。

第四步:路程和总费进行相应的变化,在1602上显示。

5

华东交通大学课程设计

第三章 主要模块

1 时间模块:

图1

现在的出租车都会显示时间,由于时间的不一样,计费的标准也不一样。所以时间模块是必要得要的。在设计时间模块时,由于FPGA版上的晶振是50M,第一步要做的就是分频,分频是FPGA最简单的,分频成为1HZ,这样时间显示时间就变的很简单了。 部分代码为:

always @(posedge clk_1hz) begin

if(miao==59)begin

miao<=0;

if(fen==59)begin fen<=0;

if(shi==23) shi<=0; else shi<=shi+1;end else fen<=fen+1;end else miao<=miao+1; end

时间模块仿真波形:

6

华东交通大学课程设计

图2

注释:仿真的波形的时钟晶振为50M

2路程模块:

车行驶的是速度初始值这里是给定的,通过clk,使行驶的路程在线性的增大。行驶的总路程等于速度乘于时间。

图3

部分代码为:

always @(posedge clk_1hz)//路程 begin

way<=way+speed; if(way>10000) way<=0; end

里程仿真波形:

图4

7

华东交通大学课程设计

3计费模块:

在数据的计算和处理中,注意了一些数据关系的转换、换算和放大,数据关系的转换、换算是为了便于控制程序的设计,而数据的放大则避免了浮点数的运算,数据放大后的还原是通过显示数据时在对应的数码管处显示小数点来处理。系统中很多模块的verilog程序设计中,均涉及多个控制信号,多个控制信号的作用是通过嵌套的条件语句完成的,这些条件信号的作用时机(是先作用还是后作用)和作用方式(是高、低电平还是上升沿、下降沿)非常有技巧,特别值得揣摩与注意。

计费是分时间段的,当时间段为06:00~23:00时单价为1.40元/km,其他时间段单价为1.80元/km。由于FPGA中的计算不能直接用小数点计算,所以在这里把价格扩大10倍,显示时在除以10。

图5

部分代码为:

always @(posedge clk_1hz)//计费 begin

if(flag==1)

money<=money+speed*14; else

money<=money+speed*18;

end

计费模块仿真波形:

图6

8