出租车计价器课程设计报告Word格式文档下载.docx
- 文档编号:17081449
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:12
- 大小:35.65KB
出租车计价器课程设计报告Word格式文档下载.docx
《出租车计价器课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《出租车计价器课程设计报告Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
1出租车计费设计
该出租车计费器按下开关S1后开始计费和计里程数,起步价是7元,行驶3公里,以后2。
2元/公里。
并且设计选择模块,在车费超过20元每公里加收50%车费即3。
3元/公里.
3。
2基本设计思想
出租车计费器根据设计要求可初步分为3方面——显示、记里程数、记费。
之后再根据三方面分别设计模块。
1.显示模块.一般计数器显示数字为1-F即16进制,而16进制不方便观看,所以在设计这一模块时我们将16进制改为10进制输出进而设计了译码模块。
2、里程模块。
设计要求对里程计数主要分为两个方面,计数以及公里数比较。
即3公里之内收7元,3公里之后20元(通过计算为9公里)以内每公里2.2元,9公里以外为每公里3.3元。
所以,我们将里程模块分为里程计数模块以为比较模块。
3.计费模块。
计费模块同里程比较模块所以将两个模块合二为一,为价格计算模块。
4.Verilog代码
4.1顶层模块
moduletaxi(
clk,stop,rst_n,
time1,time2,time3,time4,
seg1,seg2,seg3,seg4
);
inputclk;
inputstop;
inputrst_n;
output[6:
0]time1;
output[6:
0]time2;
0]time3;
0]time4;
output[6:
0]seg1;
0]seg2;
output[6:
0]seg3;
0]seg4;
wireclk_fp;
wire[15:
0]distance;
wire[15:
0]price;
0]distan_bcd;
wire[15:
0]price_bcd;
fpmy_fp(clk,clk_fp,rst_n,stop);
distance_counterdis_counter(clk_fp,rst_n,stop,distance);
price_counterprice_coun(clk_fp,rst_n,stop,price,distance);
yimaqidistance_BCD(distance,distan_bcd,clk_fp);
yimaqiprice_BCD(price,price_bcd,clk_fp);
dispaly_myaa(clk_fp,distan_bcd,seg1,seg2,seg3,seg4);
dispaly_mybb(clk_fp,price_bcd,time1,time2,time3,time4);
endmodule
4。
2分频模块
modulefp(
clk,clk_fp,rst_n,stop
);
//50mhz
inputclk;
outputclk_fp;
reg[25:
0]counter;
regclk_fp;
always@(posedgeclkornegedgerst_nornegedgestop)
begin
if(!
rst_n)
begin
clk_fp<
=1’d0;
counter<
=26’d0;
end
elseif(!
stop)
counter〈=counter;
else
if(counter==26'
d49_999_999)
begin
clk_fp〈=1'
b1;
counter<
=1’b0;
end
else
clk_fp〈=1’b0;
=counter+1’b1;
end
3里程计算模块
clk_fp,rst_n,stop,distance
);
inputclk_fp;
//1S
inputstop;
output[15:
0]distance;
reg[15:
0]distance;
always@(posedgeclk_fpornegedgerst_n)
begin
if(!
distance<
=8'
d0;
elseif(!
=distance;
distance〈=distance+5'
d10;
4.4价格计算模块
moduleprice_counter(
clk_fp,rst_n,
stop,price,distance
);
inputclk_fp;
input[15:
0]distance;
output[15:
0]price;
0]price;
always@(posedgeclk_fpornegedgerst_nornegedgestop)
price<
=8’d0;
elseif(!
=price;
if(distance〈=30)
price〈=16'
d70;
elseif(distance<
=90&&30<
distance)
price〈=price+16’d22;
else
price〈=price+16'
d33;
5译码模块
moduleyimaqi(
num_hex,BCD,clk_fp
input[15:
0]num_hex;
0]BCD;
reg[15:
0]BCD;
reg[3:
0]yima[3:
0];
always@(posedgeclk_fp)
yima[0]〈=(num_hex)%10;
yima[1]〈=(num_hex/10)%10;
yima[2]〈=(num_hex/100)%10;
yima[3]〈=(num_hex/1000)%10;
BCD〈={yima[3],yima[2],yima[1],yima[0]};
end
6显示器模块
clk_fp,BCD,seg1,seg2,
seg3,seg4
);
0]BCD;
0]seg2;
0]seg3;
0]seg4;
reg[7:
0]seg1;
reg[7:
0]seg2;
reg[7:
0]seg3;
0]seg4;
reg[3:
0]shumaguan_aa[3:
0];
alwaysshumaguan_aa[0]〈=BCD[3:
alwaysshumaguan_aa[1]〈=BCD[7:
4];
alwaysshumaguan_aa[2]〈=BCD[11:
8];
alwaysshumaguan_aa[3]<
=BCD[15:
12];
parameterseg_num0=7'
hC0,
seg_num1=7’hF9,
seg_num2=7'
hA4,
seg_num3=7’hB0,
seg_num4=7'
h99,
seg_num5=7'
h92,
seg_num6=7'
h82,
seg_num7=7'
hF8,
seg_num8=7’h80,
seg_num9=7'
h90;
case(shumaguan_aa[0])
4'
d0:
seg1<
=seg_num0;
4’d1:
=seg_num1;
d2:
seg1〈=seg_num2;
4’d3:
=seg_num3;
4’d4:
=seg_num4;
4’d5:
seg1〈=seg_num5;
4’d6:
=seg_num6;
4’d7:
seg1〈=seg_num7;
4’d8:
=seg_num8;
4’d9:
seg1〈=seg_num9;
default:
seg1〈=seg_num0;
endcase
case(shumaguan_aa[1])
seg2<
=(seg_num0&
7’b0111_1111);
4’d1:
seg2〈=(seg_num1&
7'
b0111_1111);
d2:
seg2〈=(seg_num2&
4’d3:
=(seg_num3&7'
b0111_1111);
d4:
seg2〈=(seg_num4&
7’b0111_1111);
seg2〈=(seg_num5&
4’d6:
=(seg_num6&
4’d7:
=(seg_num7&
4’d8:
seg2〈=(seg_num8&7'
4’d9:
=(seg_num9&
b0111_1111);
case(shumaguan_aa[2])
seg3〈=seg_num0;
d1:
seg3<
=seg_num1;
4’d2:
=seg_num2;
d3:
seg3〈=seg_num3;
seg3〈=seg_num4;
d5:
seg3〈=seg_num5;
=seg_num6;
d7:
seg3〈=seg_num7;
seg3〈=seg_num8;
d9:
=seg_num9;
default:
seg3〈=seg_num1;
case(shumaguan_aa[3])
4’d0:
seg4〈=seg_num0;
d1:
seg4<
=seg_num2;
=seg_num3;
seg4〈=seg_num4;
d5:
seg4〈=seg_num5;
d6:
=seg_num7;
seg4〈=seg_num8;
seg4〈=seg_num9;
=seg_num0;
5。
经验总结
在这次设计过程中,我们遇到了很多问题,例如,在预置好起步价时,当里程超过基本里程时,价钱开始增加,在复位时出现了一些问题,还有在里程比较器和时间比较器中,最初比较器只用了一个只能比较一位二进制数,然而当里程大于10km或时间大于10分钟时比较器出现了问题,还有就是将超过的时间和里程转化为价钱时,仿真时出现了错误,而在所有问题中最主要问题是整个电路的连接问题。
我们最初的办法是将整个模块分块做出来,当每个模块都运行正确的时候再将他们整合在一起。
虽然有很多次的努力,可是我们没有成功.后来经过仔细思考,我试着改变电路整体模块电路中元件,最终才得到了我们的预期结果.经过这次多.不仅仅是关于数字电子电路的知识,更有的是让我们学到了面对人生的知识.当我们由寻找的迷茫,到找到有关参考书籍困惑,再到设计过程中的烦忧,最后到解决后的舒心,我们学会了一种面对困难不屈不挠的精神,我们发现,只要你真正的静下心来钻研,其实一切很简单,只不过因为当时我们的害怕心理,还有我们的浮躁,让我们乱了阵脚。
所以不管我们以后是做什么事情,最最重要的是要静下心,然后努力,这样之后,我坚信,成功就在不远方.
通过此次课程设计让我能够亲身参予电子产品的设计师使我更加深深地体会到:
现代的社会是信息的社会,很多与人们生活紧密相关的产品都是电子产品比如决定现代社会发展方向的电脑以及几乎每个同学都拥有的收音机等等无不说明电子产品的重要性。
作为一名测控专业大三的大学生,我认识到我不仅要学好课本上的知识,还要学会将所学到的知识联系并应用到现实生活中,做到理论联系实际.经过三个星期的设计过程,我学到了很多东西,对一年以来所学过的数电方面的知识也重新学习了一遍,也对自己在数字电子方面的能力有了更客观的评价,在这次设计过程中,从最基本的查元件,找资料做起,了解了完整的电子设计的一般步骤,也和同学共同探讨研究,学到了很多课堂上学不到的东西,也遇到了各种各样从没想过的问题,并认真的解决了它们,另外对各种电子类设计的计算机辅助手段有了更深一步的接触,同时也使我增加了对电子方面知识的兴趣,也从中发现了自己的一些不尽如人意的地方,以后要多改进。
课程设计让我体会到知识运用的重要性,但精神上的丰收更大,使我更加自信,而且,我想我找到了自己的方向。
通过这次实验,让我学会了使用quartus软件,而且认识到电路设计并不是一个简单的事,首先要整理好整体电路设计的思路,每一个模块必须要衔接上,逻辑思维要很好,才能把电路设计出来.
从理论设计到仿真软件仿真,再到确定具体方案。
整个过程都需要我们充分利用所学的知识进行思考、借鉴。
通过本次设计,我加深了对课本知识的认识,同时为了这次课程设计的完成阅读了大量资料,加深了书本中各种器件的认识与了解,同时为后期的复习打下了一定的基础。
6。
参考文献
[1]毕满清。
模拟电子技术基础.第一版。
北京:
电子工业出版社,2008。
[2]毕满清。
电子技术实验与课程设计。
第3版。
机械工业出版社,2005.
[3]陈晓文.电子线路课程设计.第1版。
北京:
电子工业出版社,2004.
[4]谢自美.电子线路综合设计。
第1版.武汉:
华中科技大学出版社,2006.
[5]阎石.数字电子技术基础.第4版.北京:
高等教育出版社,1998.
[6]韩焱.数字电子技术基础。
第1版.北京:
电子工业出版社,2009.
[7]徐小军主编。
电子技术实验与课程设计指导。
数学电路分册.南京:
东南大学出版社,2005.
[8]郁汉琪。
数字电路实验及课程设计指导书。
中国电力出版社,2007.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 出租车 计价器 课程设计 报告