EDA实训-出租车计费.doc

上传人:豆**** 文档编号:23959901 上传时间:2022-07-02 格式:DOC 页数:34 大小:1.79MB
返回 下载 相关 举报
EDA实训-出租车计费.doc_第1页
第1页 / 共34页
EDA实训-出租车计费.doc_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《EDA实训-出租车计费.doc》由会员分享,可在线阅读,更多相关《EDA实训-出租车计费.doc(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateEDA实训-出租车计费EDA实训-出租车计费 EDA技术及应用实训报告姓 名 满眼皆是繁华 指导教师: 2013 年 7 月 8 日实训题目:出租车计费器的设计 1 系统设计1.1 设计要求1.1.1 设计任务 设计并制作一台出租车计费器。1.1.2 性能指标要求 用EDA实训仪的I/O设备和PLD芯片实现出租车计费器的设计。 出租车起步开始计程和计费,计程系统按实际

2、公里数计程,计费系统首先显示起步价(如7.0),车行驶2km以内,只收起步价7元。 出租车行驶超过2km后,按增加的每公里1.6元在7.0元的基础上增加。 出租车行驶超过10km后(或超过20元路费),每公里加收50的车费,即车费变为每公里2.4元。 出租车达到目的地后,(用一个按钮)计程和计费数据清零,为下一次计费开始。1.2 设计思路及设计框图1.2.1设计思路出租车计费器的整体结构包括:分频模块,计数模块,计费模块。另外我还加了扩展功能:选择模块,计时模块。不计价时,可以切换到显示时分秒。这个功能需要选择模块和计时模块共同来实现。通过分频模块产生一个脉冲信号模拟汽车的启动与停止,然后通过

3、计数模块,计算出一共所行驶的路程,最后通过记价模块,将所行驶的路程计算出相对应的价钱。计费显示起步价7元,2km之内为起步价,以后每1km在起步价7元的基础上增加1.6元;超过10km以后,每1km增加2.4元。通过数学公式计算出费用,这就是费用计算模块。结合生活中的出租车计费器,分别有3km以内,10km以内以及超过10Km以后的计费标准。我设计用拨码开关来实现清零与车速的转换,并通过数码管来显示路程与车费。车轮每转一圈就是一个脉冲,因此,脉冲频率的快慢就是车速的快慢,这就是车速的计算;把车轮每转一圈 4米的话,每来一个脉冲路程就加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计费器模块分为输出路程和时间的模块,由分频,路程,车费,模块组成。车速的计算:车轮每转一圈就是一个脉冲,因此,脉冲频率的快慢就是车速的快慢。路程的计算:如果车轮每转一圈,每来一个脉冲路

5、程就加4米。计费器模块如下图所示:2.2.1车费模块这个模块就是实现题目要求的,在2km内收起步价7块,大于2km小于10km的时候每公里收1.6块,大于10公里以后每公里收2.4块,通过if循环嵌套来实现。2.2.2路程模块这个模块是用来计算具体路程,并通过数码管体现出租车所行走的路程。2.3计时模块不计价时,可以切换到显示时间,显示时分秒,也可人为校准。方便在车上看时间。用控制端高低电平控制选择。计时模块路下图所示:2.4选择模块计费器和显示时分秒的切换选择,由输入端c控制。3 调试过程写程序的过程中遇到了很多问题,编译的时候出现了很多错误,通过询问老师跟同学,再参考一些同学的程序后,解决

6、了逐个问题,逐渐完善了自己的程序。管脚锁定:4 功能测试4.1 测试仪器与设备 EDA实训箱, Quartus II软件,数据连接线。4.2 性能指标测试 S14为1时开始计费,S0和S1可以调节路程跳动的速度,可切换3种不同的速度;K7按键校准车费;当S0 S1都为1时,停止计费,也表示车停止走动。S15用来切换计费器和显示时间的功能,拨为0时,是计费器功能;拨为1时,是显示时间功能。按键K7 K6 K5可以调节路程的设置,S14为0时是清零功能。K2 K1 K0为时分秒的校准。5 实训心得体会这次EDA实训将EDA知识运用到实际中,我从中受益匪浅。我选择的实训题目是出租车计费器,刚开始看题

7、目,有点摸不着头脑,查找资料,于是根据每一个要求,再根据老师上课讲的内容,有了个总体的思路。通过这样实训,提高了动手能力,如何运用数码管显示十进制数,在将EDA课堂知识运用到实训中时,对课堂知识也有了更好的理解,在过程中遇到不懂的地方,通过请教老师和同学也明白了自己的不足之处,并将在以后的学习中进一步完善自己。波形仿真时,一直有问题。后来发现是因为自己操作不对,在proessing那儿要设置,我记得上课老师又给我们讲过,可能是我记得不牢。通过这次实训,我运行软件Quartus II熟练多了较以前来说。下次做实训的时候要考虑周到,不清楚的时候要及时翻书,并回忆老师上课讲的内容和重点。更在这一点上

8、明白了,我们必须善于发现问题改正问题,同时要有一颗持之以恒的心。用理论知识运用到实际中,大大提高了我们的学习兴趣,同时要感谢老师们的悉心教导。6 参考文献 1 谢自美电子线路设计实验测试(第二版)武汉:华中科技大学出版社,20002 江国强,EDA技术与应用(第2版),电子工业出版社,2008附录附录1:仿真波形图(部分模块)路程仿真计费器仿真时间仿真附录2:程序清单分频器module fpq(clk,d1,d2,nclk);input clk,d1,d2;output nclk;reg nclk;reg24:0 num;always(posedge clk) begin case(d1,d2

9、) 0:begin num=num+1; if(num=19999999) begin nclk=1;num=0;end else nclk=0; end 1:begin num=num+1; if(num=1999999) begin nclk=1;num=0;end else nclk=0; end 2:begin num=num+1; if(num=199999) begin nclk=1;num=0;end else nclk=0; end 3:begin num=num+1; if(num=0) begin nclk=1;num=0;end else nclk=0; end endc

10、ase end endmodule路程计算module lc(nclk,clrn,q,d);input nclk,clrn;output reg15:0 q;output reg d;reg11:0 i;reg3:0 k;always (negedge nclk or negedge clrn)beginif(clrn=0) begin q=0;i=0; endelse begin i=i+1;k=i*4;if(k9)begin q3:0=q3:0+1;k=0;if(q3:09)begin q3:0=0;q7:4=q7:4+1;if(q7:49) beginq7:4=0;q11:8=q11:8

11、+1;d=1;if(q11:89)begin q11:8=0;q15:12=q15:12+1;endendendendelse d=0;endendendmodule车费计算module cf(d,clrn,q,j);input d,j;input clrn;output reg15:0 q;reg c;always (posedge dj)begin if(clrn) begin c=0;q=0;endelse c=c+1;if(c=2) q7:4=7;else if(c9)begin q3:0=q3:0-10;q7:4=q7:4+1;endif(q7:49)begin q7:4=q7:4-

12、10;q11:8=q11:8+1; endendelse if(c10) begin q3:0=q3:0+4;q7:4=q7:4+2;if(q3:09)begin q3:0=q3:0-10;q7:4=q7:4+1;endif(q7:49)begin q7:4=q7:4-10;q11:8=q11:8+1;if(q11:89)begin q11:8=q11:8-10;q15:12=q15:12+1;end endendif(c14) c=11;endendmodule60进制计数器module cnt60(clrn,clk,j,q,cout);input clrn,clk,j;output reg

13、 7:0 q;output reg cout;always (posedge clkj or negedge clrn)begin if (clrn) q=0;else begin if (q=h59) q=0;else q=q+1;if(q3:0=ha) begin q3:0=0;q7:4=q7:4+1;endif (q=h59) cout=1;else cout=0;endendendmodule24进制计数器module cnt24(clrn,clk,j,q,cout);input clrn,clk,j;output reg 7:0 q,cout;always (posedge clkj

14、 or negedge clrn)begin if (clrn) q=0;else begin if (q=h23) q=0;else q=q+1;if(q3:0=ha) begin q3:0=0;q7:4=q7:4+1;endif (q=h23) cout=1;else cout=0;endendendmodule 分频1秒module fenpin1s(clk,cout);input clk;reg 24:0 q;output reg cout;always (posedge clk)begin if(q=20000000-1) q=0;else q=q+1;if(q=20000000-1

15、) cout=1;else cout=0;end endmodule 总时间 module zsj(qm,qf,qs,day,q);input7:0 qm,qf,qs,day;output reg 31:0 q;always beginq31:0=day,qs,qf,qm;endendmodule选择切换功能module xuanze(q1,q2,q3,q,c,clk);input c,clk;input15:0 q1,q2;input31:0 q3;output reg31:0 q;always (posedge clk)begincase(c)0:begin q31:16=q115:0;q15:0=q215:0;end1:begin q23:0=q323:0;q31:24=0;end endcaseendendmodule-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁