出租车计费器verilog HDL源程序

设计并制作一台出租车计费器。 1.1.2 性能指标要求 ① 用EDA实训仪的I/O设备和PLD芯片实现出租车计费器的设计。 ② 出租车起步开始计程和计费,计程系统按实际公里数计程,计费系统首先显示起步价(如7.0),车行驶2km以内,只收起步价7元。 ③ 出租车行驶超过2km后,按每公里1.6元在7.0元的基础上增加。 ④ 出租车行驶超过10km后(或超过20元路费),每公里加收50%的车费,即车费变为每公里2.4元。 ⑤ 出租车达到目的地后,(用一个按钮)计程和计费数据清零,为下一次计费开始。 1.2 设计思路及设计框图 1.2.1设计思路               本次设计首先在QuartusⅡ环境中对出租车计费器的各个部分利用verilog HDL这一硬件描述语言予以设计、生成模块。而整个设计的核心部分就在分频/计量模块和路程车费计数模块,分频/计量模块的功能主要是用来产生路程脉冲功能,路程车费技术模块主要包括计算路程和车费,通过路程和车费之间的关系,当路程少于一定公里数时车费保持不变,达到一定公里数按照规则每公里增加车费,超过某公里时,再每公里加收车费。待所有模块的功能正确之后,运用原理图搭建顶层电路并进行整体仿真直至达到设计要求,最后再在实验箱上检验设计的正确与否。在实现基本功能的基础上,做了一个创新,设计流水灯,当乘客上车时,流水灯开始运转,乘客下车时,流水灯停止。
出租车计费器verilog HDL源程序插图

  • 各个模块程序的设计

2.1一秒钟分频器路程计数器的设计     通过秒脉冲来实现计费器调价,超过9自动进一位、实现计费脉冲。
出租车计费器verilog HDL源程序插图(1)            

    •            路程模块

路程模块用于控制数码管SEG4~SEG7的显示,输入有2个,分别是nclk,clrn。这里还有一个寄存器类型的输出d,是为了给计费器进行一个路程提示。

出租车计费器verilog HDL源程序插图(2)

    •            计费模块:

计费模块是用来计出租车的路费的,一共有3个输入,d,clrn,j。

d是计圈模块给的一个输出,主要给计费器提供一个路程的提示,开始计费。2公里内,数码管显示起步价7.0元;2公里到10公里,按每公里1.6元在7.0元的基础上增加;10公里以外,每公里2.4元;期间,低位的逢十进一。另外输入j是用来给计程车一个起步价的设定的。clrn仍未清零端。

出租车计费器verilog HDL源程序插图(3)

    • 流水灯模块:

流水灯模块是出租车计费器设计的创新点,一共有2个输入,clk,key。给led灯赋初值为1,然后设置一个中间变量temp,将led灯的初值给temp。然后在key=0时执行对led灯的左移,左移完成后给led赋temp的值,即又回到初值,循环执行。


出租车计费器verilog HDL源程序插图(4) 3  调试过程 将程序锁好实训箱上的管脚后,将程序下载到实训箱模拟出租车的路程计费。实训箱前四个数码管表示路程,后四个数码管表示车费。将分频器的按键置于高电平状态,分频器开始输送1秒时钟信号,将控制路程开始的按键置于高电平,模拟乘客上车,车费数码管开始显示起步价7.0元,路程开始计算,2公里内,车费数码管一直显示7.0元,路程大于2公里后小于10公里时,车费数码管开始每公里增加1.6元,路程大于10公里后,车费数码管开始每公里增加2.4元,之后将按键置于低电平,按下清零键,8个数码管重置,恢复起步价。并且当乘客上车时,路程和计费都开始增加,流水灯也会一直转着,当乘客下车时,流水灯就停止,这是实训的创新也是亮点。 4  功能测试 4.1 测试仪器与设备 EDA实训箱,数据连接线,电脑quartus仿真。 4.2 性能指标测试 ① 用EDA实训仪的I/O设备和PLD芯片实现出租车计费器的设计。 ② 出租车起步开始计程和计费,计程系统按实际公里数计程,计费系统首先显示起步价(如7.0),车行驶2km以内,只收起步价7元。 ③ 出租车行驶超过2km后,按每公里1.6元在7.0元的基础上增加。 ④ 出租车行驶超过10km后(或超过20元路费),每公里加收50%的车费,即车费变为每公里2.4元。 ⑤ 出租车达到目的地后,(用一个按钮)计程和计费数据清零,为下一次计费开始。               性能指标要求指标全部完成。

5  心得体会 EDA的学习在某些方面和CAD很像。也涉及到软件Quartus II的应用,还涉及到数电与c语言的学习,可以说结合很多知识。而且程序写出来后,编译有错误又应该一个个改错,然后还要验证能否在实验箱上实现功能,验证和实现

6  参考文献 《EDA技术与应用》第3版              江国强编著              电子工业出版社

附录 附录1:仿真波形图(部分模块)
出租车计费器verilog HDL源程序插图(5)

附录2:程序清单

(1)计费模块:

module jf(d,clrn,q,j);

input j,d,clrn ;

output reg[15:0] q;

reg[3:0] c;

always @(posedge d&&j or negedge clrn)

begin

if(clrn==0) begin c=0;q=0;end

else begin c=c+1;

if(c<=2) q[7:4]=7;

else if(c<=10) begin q[3:0]=q[3:0]+6;q[7:4]=q[7:4]+1;

if(q[3:0]>9)begin q[3:0]=q[3:0]%10;q[7:4]=q[7:4]+1;end

if(q[7:4]>9)begin q[7:4]=q[7:4]%10;q[11:8]=q[11:8]+1; end

end

else if(c>10) begin q[3:0]=q[3:0]+4;q[7:4]=q[7:4]+2;

if(q[3:0]>9)begin q[3:0]=q[3:0]%10;q[7:4]=q[7:4]+1;end

if(q[7:4]>9)begin q[7:4]=q[7:4]%10;q[11:8]=q[11:8]+1;

if(q[11:8]>9)begin q[11:8]=q[11:8]%10;q[15:12]=q[15:12]+1;end

end

end

end

end

endmodule

(2)路程模块:

module lc (nclk,clrn,d,q);

input nclk,clrn;

output reg[15:0] q;

output reg d;

reg[11:0]i;

always @(negedge clrn or posedge nclk)

begin

if(clrn==0) begin q=0;i=0; end

else

begin i=i+5;

if(i>9)

begin q[3:0]=q[3:0]+1;i=0; d=1;

if(q[3:0]>9)

begin

q[3:0]=0;q[7:4]=q[7:4]+1;

//if(q[7:0]<=2) d=1;

if(q[7:4]>9)

begin

q[7:4]=0;q[11:8]=q[11:8]+1;

if(q[11:8]>9)

begin

q[11:8]=0;q[15:12]=q[15:12]+1;

end

end

end

end

else d=0;

end

end

endmodule

(4)分频器模块:

module fpq(clk,kaishi,clk_1s);

input clk,kaishi;

output reg clk_1s;

reg[24:0] qs;

always     @(posedge clk)

    if(kaishi==1)

    begin

    if(qs==20000000-1)   qs=0;

    else   qs=qs+1;

    if(qs==20000000-1)  clk_1s=0;

    else  clk_1s=1;

   end

endmodule

(5)流水灯模块:

module deng(led,key,clk);

input  clk,key;

output[11:0]  led;

reg[11:0]   led;

reg         temp;

initial led=12’b000000000001;

always @(posedge clk)

  begin

  if(key==0)

  begin

  temp=12’b000000000001;

  led=led<<1;

  if(led==12’b000000000000)

  led=temp;

  end

  end

  endmodule

出租车计费器verilog HDL源程序插图(6)

全部资料51hei下载地址:


出租车计费器verilog HDL源程序插图(7)
出租车计费器.7z (523.9 KB, 下载次数: 15) 2020-11-4 20:55 上传 点击文件名下载附件


出租车计费器verilog HDL源程序插图(8)
出租车计费器.doc (106 KB, 下载次数: 10) 2020-11-4 20:54 上传 点击文件名下载附件

未经允许不得转载:视频教程学习资料分享与下载平台 » 出租车计费器verilog HDL源程序

赞 (0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏