EDA实训出租车计费Word格式文档下载.docx
- 文档编号:5631875
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:12
- 大小:505.44KB
EDA实训出租车计费Word格式文档下载.docx
《EDA实训出租车计费Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《EDA实训出租车计费Word格式文档下载.docx(12页珍藏版)》请在冰点文库上搜索。
通过分频模块产生一个脉冲信号模拟汽车的启动与停止,然后通过计数模块,计算出一共所行驶的路程,最后通过记价模块,将所行驶的路程计算出相对应的价钱。
计费显示起步价7元,2km之为起步价,以后每1km在起步价7元的基础上增加1.6元;
超过10km以后,每1km增加2.4元。
通过数学公式计算出费用,这就是费用计算模块。
结合生活中的出租车计费器,分别有3km以,10km以以及超过10Km以后的计费标准。
我设计用拨码开关来实现清零与车速的转换,并通过数码管来显示路程与车费。
车轮每转一圈就是一个脉冲,因此,脉冲频率的快慢就是车速的快慢,这就是车速的计算;
把车轮每转一圈4米的话,每来一个脉冲路程就加4米,这就是路程的计算;
当路程的百位向千位进位时就产生一个脉冲也就是路程又走了1公里。
于是便实现了车行驶3km以,只收起步价7元。
行驶超过3km后,按每公里1.6元在7.0元的基础上增加。
行驶超过10km后(或超过20元路费),每公里加收50%的车费,即车费变为每公里2.4元。
1.2.2总体设计框图
2各个模块程序的设计
2.1分频模块
这个模块是设计不同车速的,通过d1与d2的值来设置四个不同的车速,其中00是最慢,01是中速,10是最快,11是停止。
这样更贴切生活。
2.2计费器模块
分为输出路程和时间的模块,由分频,路程,车费,模块组成。
车速的计算:
车轮每转一圈就是一个脉冲,因此,脉冲频率的快慢就是车速的快慢。
路程的计算:
如果车轮每转一圈,每来一个脉冲路程就加4米。
计费器模块如下图所示:
2.2.1车费模块
这个模块就是实现题目要求的,在2km收起步价7块,大于2km小于10km的时候每公里收1.6块,大于10公里以后每公里收2.4块,通过if循环嵌套来实现。
2.2.2路程模块
这个模块是用来计算具体路程,并通过数码管体现出租车所行走的路程。
2.3计时模块
不计价时,可以切换到显示时间,显示时分秒,也可人为校准。
方便在车上看时间。
用控制端高低电平控制选择。
计时模块路下图所示:
2.4选择模块
计费器和显示时分秒的切换选择,由输入端c控制。
3调试过程
写程序的过程中遇到了很多问题,编译的时候出现了很多错误,通过询问老师跟同学,再参考一些同学的程序后,解决了逐个问题,逐渐完善了自己的程序。
管脚锁定:
4功能测试
4.1测试仪器与设备
EDA实训箱,QuartusII软件,数据连接线。
4.2性能指标测试
S14为1时开始计费,S0和S1可以调节路程跳动的速度,可切换3种不同的速度;
K7按键校准车费;
当S0S1都为1时,停止计费,也表示车停止走动。
S15用来切换计费器和显示时间的功能,拨为0时,是计费器功能;
拨为1时,是显示时间功能。
按键K7K6K5可以调节路程的设置,S14为0时是清零功能。
K2K1K0为时分秒的校准。
5实训心得体会
这次EDA实训将EDA知识运用到实际中,我从中受益匪浅。
我选择的实训题目是出租车计费器,刚开始看题目,有点摸不着头脑,查找资料,于是根据每一个要求,再根据老师上课讲的容,有了个总体的思路。
通过这样实训,提高了动手能力,如何运用数码管显示十进制数,在将EDA课堂知识运用到实训中时,对课堂知识也有了更好的理解,在过程中遇到不懂的地方,通过请教老师和同学也明白了自己的不足之处,并将在以后的学习中进一步完善自己。
波形仿真时,一直有问题。
后来发现是因为自己操作不对,在proessing那儿要设置,我记得上课老师又给我们讲过,可能是我记得不牢。
通过这次实训,我运行软件QuartusII熟练多了较以前来说。
下次做实训的时候要考虑周到,不清楚的时候要及时翻书,并回忆老师上课讲的容和重点。
更在这一点上明白了,我们必须善于发现问题改正问题,同时要有一颗持之以恒的心。
用理论知识运用到实际中,大大提高了我们的学习兴趣,同时要感老师们的悉心教导。
6参考文献
[1]自美.电子线路设计·
实验·
测试(第二版).:
华中科技大学,2000
[2]江国强,EDA技术与应用(第2版),电子工业,2008
附录
附录1:
仿真波形图(部分模块)
路程仿真
计费器仿真
时间仿真
附录2:
程序清单
分频器
modulefpq(clk,d1,d2,nclk);
inputclk,d1,d2;
outputnclk;
regnclk;
reg[24:
0]num;
always(posedgeclk)
begin
case({d1,d2})
0:
beginnum=num+1;
if(num>
=19999999)
beginnclk=1;
num=0;
end
elsenclk=0;
end
1:
=1999999)
2:
=199999)
3:
=0)
endcase
endmodule
路程计算
modulelc(nclk,clrn,q,d);
inputnclk,clrn;
outputreg[15:
0]q;
outputregd;
reg[11:
0]i;
reg[3:
0]k;
always(negedgenclkornegedgeclrn)
begin
if(clrn==0)beginq=0;
i=0;
else
begini=i+1;
k=i*4;
if(k>
9)
beginq[3:
0]=q[3:
0]+1;
k=0;
if(q[3:
0]>
begin
q[3:
0]=0;
q[7:
4]=q[7:
4]+1;
if(q[7:
4]>
9)
q[7:
4]=0;
q[11:
8]=q[11:
8]+1;
d=1;
if(q[11:
8]>
q[11:
8]=0;
q[15:
12]=q[15:
12]+1;
elsed=0;
endmodule
车费计算
modulecf(d,clrn,q,j);
inputd,j;
inputclrn;
regc;
always(posedged^j)
begin
if(~clrn)beginc=0;
q=0;
elsec=c+1;
if(c<
=2)q[7:
4]=7;
elseif(c<
=10)beginq[3:
0]+6;
if(q[3:
9)beginq[3:
0]-10;
if(q[7:
9)beginq[7:
4]-10;
end
elseif(c>
10)beginq[3:
0]+4;
4]+2;
if(q[11:
9)beginq[11:
8]-10;
end
if(c>
14)c=11;
60进制计数器
modulet60(clrn,clk,j,q,cout);
inputclrn,clk,j;
outputreg[7:
outputregcout;
always(posedgeclk^jornegedgeclrn)
if(~clrn)q=0;
elsebegin
if(q=='
h59)q=0;
elseq=q+1;
0]=='
ha)beginq[3:
q[7:
if(q=='
h59)cout=1;
elsecout=0;
end
24进制计数器
modulet24(clrn,clk,j,q,cout);
0]q,cout;
h23)q=0;
h23)cout=1;
endmodule
分频1秒
modulefenpin1s(clk,cout);
inputclk;
reg[24:
always(posedgeclk)
if(q==20000000-1)q=0;
if(q==20000000-1)cout=1;
elsecout=0;
end
总时间
modulezsj(qm,qf,qs,day,q);
input[7:
0]qm,qf,qs,day;
outputreg[31:
always
q[31:
0]={day,qs,qf,qm};
选择切换功能
modulexuanze(q1,q2,q3,q,c,clk);
inputc,clk;
input[15:
0]q1,q2;
input[31:
0]q3;
outputreg[31:
case(c)
0:
beginq[31:
16]=q1[15:
0];
0]=q2[15:
1:
beginq[23:
0]=q3[23:
q[31:
24]=0;
end
endcase
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 出租车 计费