EDA程序设计—出租车计费器

电子说

1.3w人已加入

描述

1 系统设计

1.2设计要求

1.1.1 设计任务

设计并制作一台出租车计费器。

1.1.2 性能指标要求

① 用EDA实训仪的I/O设备和FPGA实现出租车计费器的设计。

② 出租车起步开始计程和计费,计程系统按实际公里数计程,计费系统首先显示起步价(如7.0),车行驶2km以内,只收起步价7元。

③ 出租车行驶超过2km后,按每公里1.6元在7.0元的基础上增加。

④ 出租车行驶超过10km后(或超过20元路费),每公里加收50%的车费,即车费变为每公里2.4元。

⑤ 出租车达到目的地后,(用一个按钮)计程和计费数据清零,为下一次计费开始。

1.2 设计思路及设计框图

1.2.1设计思路

计程和计费都是十进制位的输入,通过脉冲实现计数。计程通过分频器的输出作为输入,产生的秒脉冲以实现计数功能。计费在LED数码管上分为个位十位(例如起步价为7元,显示器上显示70,三公里时为86......),计程器和计费器在一个程序内完成,分频器用另一个程序完成,并将程序都生成一个元器件,用图形法级联在一起。上硬件仿真后,打开开关输入脉冲,通过上升沿触发使路程计算加一,并使总路计算模块加一,到达相应的公里数后没每公里收费也随之改变。

1.2.2总体设计框图

FPGA设计

2.1 总体电路图

FPGA设计

2.2 分频器模块

module fpq_(clk,KS,clk_1s);

input clk,KS;

output reg clk_1s;

reg[26:0] qs;

always @(posedge clk)

if(KS==1)

begin

if(qs==49999999) qs=0;

else qs=qs+1;

if(qs==24999999) clk_1s=0;

else clk_1s=1;

end

endmodule

FPGA设计

分频器

2.3计程计费器模块

module CZCJFQ(clk,clrn,clk2,L1,L2,L3,L4,L5,L6);

input clk,clrn,clk2;

output L1,L2,L3,L4,L5,L6;

wire[15:0] Q;

reg[7:0] km;

reg[11:0] ZJ;

reg clk1;

reg [6:0] L1,L2,L3,L4,L5,L6;

initial clk1=1;

always @(posedge clk^clk2 or negedge clrn)

begin

if(~clrn) km[3:0]=0;

else begin

if(km[3:0]==9) km[3:0]=0;

else km[3:0]=km[3:0]+1;

if(km[3:0]==9) clk1=0;

else clk1=1;

end

end

always @(posedge clk1 or negedge clrn)

begin

if(~clrn) km[7:4]=0;

else begin

if( km[7:4]==9) km[7:4]=0;

else km[7:4]= km[7:4]+1;

end

else begin

if(ZJ[11:0]>9999) ZJ[11:0]=70;

else if(km[7:0]>'h9) ZJ[11:0]=ZJ[11:0]+24;

else if(km[7:0]>'h1) ZJ[11:0]=ZJ[11:0]+16;

else ZJ[11:0]=ZJ[11:0];

end

end

assign{Q[3:0]}={ZJ[11:0]}%10;

assign{Q[7:4]}={ZJ[11:0]}/10%10;

assign{Q[11:8]}={ZJ[11:0]}/100%10;

assign{Q[15:12]}={ZJ[11:0]}/1000;

FPGA设计

路程计费器模块

2.4 组合逻辑模块(部分)

always@ (Q[0],Q[1],Q[2],Q[3])

begin

case ({Q[3],Q[2],Q[1],Q[0]})

4'B0000:L1=7'B1000000;

4'B0001:L1=7'B1111001;

4'B0010:L1=7'B0100100;

4'B0011:L1=7'B0110000;

3 调试过程

在编程代码和编译过程经常出现问题,尤其是always@(*)语句上经常出错,以及在下载到硬件仿真的时候LED数码管没有反应,在向老师求助答疑后加入了些组合逻辑模块,修改过后的程序能正常编译,之后将程序下载到硬件中,打开开关检查路程计算能正常运行,路程计费计算功能正常,可以达到验收标准。

4 功能测试

4.1 测试仪器与设备

计算机一台

EDA实训仪

4.2 性能指标测试

打开开关后输入脉冲可产生路程计算,随着路程的递增费用也按要求递增,按下按键后数据可清零,也可以通过按下按键自行增加路程。

仿真波形图(部分模块)

FPGA设计

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分