出租车计价器Word文件下载.docx
- 文档编号:16445208
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:14
- 大小:93.61KB
出租车计价器Word文件下载.docx
《出租车计价器Word文件下载.docx》由会员分享,可在线阅读,更多相关《出租车计价器Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
源程序经ALTERA的QuartusII9.0软件调试优化,通过下载到特定芯片后,可应用于实际的出租车计费系统中。
本次课程设计巩固和运用了所学课程,通过理论联系实际,提高了分析、解决技术实际问题的独立工作能力,通过对一个出租车计费器的设计,进一步熟悉了数字电路系统设计、制作与调试的方法和步骤。
2.总体方案设计
2.1设计要求
该出租车计价器实现功能:
1、行程≤2公里,且等待累计时间≤5分钟,起步费为5元。
2、行程2公里外,以每公里1.0元,等待累计时间5分钟外,以每分钟以1.0元计费。
3、能显示行驶公里数、等待累计时间和最后的总费用。
4、能通过修改程序来对计费要求实现改变。
用VerilogHDL语言设计符合上述功能要求的出租车计费器,并用层次化设计方法设计该电路,各计数器的计数状态用功能仿真的方法验证,并通过有关波形确认电路设计是否正确。
2.2方案选择
采用EDA技术,根据层次化设计理论,该设计问题自顶向下可分为分频模块,控制模块计量模块、译码和动态扫描显示模块,其系统框图如图1-3所示:
图2-3PFGA控制方案
方案总结:
利用EDA技术实现,采用可编程逻辑器件设计,外围电路简单,模块话设计方便原理清晰,灵活性强,并且完成和扩展附加功能性强。
2.3设计思想及原理
出租车的一般计费过程为:
出租车载客后,启动计费器,整个系统开始运行,里程计数器和时间计数器从0开始计数,费用计数器从8开始计算。
再根据行驶里程或停止等待的时间按以上的标准计费。
若在行驶状态,则计程器开始加计数,当路程超过四公里后,计费器以每公里1元累加。
若出租车停止等待状态,则计时器开始加计数,当时间超过两分钟后,计费器以每分钟1元累加。
出租车到达目的地停止后,停止计费器,显示总费用。
根据课程设计要求计价器可根据车轮转数计算路程,车轮每转一圈送一个脉冲波,假设每转一圈为2米,车轮每转一圈送一个脉冲波(可用传感器检测送出脉冲),本设计为了好模拟仿真假设的是车轮转动100圈才产生一个脉冲,即是一个脉冲是代表200米,则经过5分频器后是每1Km送一个脉冲到里程计算模块,这样方便在软件里面仿真观察,若要下载到实物应用中去,通过实际车轮周长自己设置不同的分频电路来达到产生任意精度的计程距离模块。
其主要原理框图如图1-3所示。
而当车停止的时候通过分频模块产生秒脉冲,通过计时要求来产生计费,本设计重点就在计费控制模式模块和计费模块这两大模块的设计,则根据出租车计费器的工作过程,其主要原理框图如图1-3所示。
本系统采用分层次、分模块的方式设计,其本系统组成框图如下所示。
其中行驶路程计数模块、等待时间计数模块和计费模块,用来统计路程、等待时间和总费用,控制模块是用来控制计费模块,数码管显示模块用来显示行驶的公里数、等待累计时间和总费用等信息。
3.单元模块设计
本系统采用层次化、模块化的设计方法,设计顺序为自下向上。
首先实现系统框图中的各子模块,然后由顶层模块调用各子模块来完成整个系统。
为了便于在数码管里显示,这里的路程、时间和费用计数器均用十六进制表示。
3.1分频模块
将时钟信号进行分频,分出的频率供后面的计程模块和计时模块用,以及后面的数码显示扫描模块都会用到。
3.1.1计数器分频模块
此模块的功能是对总的时钟进行分频,分出的频率是让计数器用的,因为总的时钟是20M的。
设计该模块的时候用了一个32位的计数器,当计数器计到25_000000的时候产生时钟。
在仿真的时候为了快速的方便观察,设计了一个4分频的电路。
在此时假设车轮每转一圈为2米,则转动100圈送一个脉冲,即是200米,则在经4分频后,每1Km送一个脉冲到里程计算模块。
同理,若知道车轮直径,即可算出分频比来设置合理的分频电路,当下载到实物时还是用的是2HZ的时钟
图3-1计数器的分频模块
3.1.2计数器分频模块
modulejishu(clk_20M,clk,reset);
//端口定义
inputclk_20M,reset;
outputclk;
regclk;
reg[31:
0]count;
///////32位计数器
always@(posedgeclk_20Mornegedgereset)
begin
if(!
reset)
begin
clk<
='
d0;
count=32'
end
elseif(count==3'
d100)
count<
=32'
=-clk;
end
elsecount<
=count+1'
d1;
endmodule
3.1.3数码管分频模块
moduleshumafenpin(clk_20M,clk1,reset);
outputclk1;
regclk1;
//32jishuqi
clk1<
elseif(count==2'
d50)//////
=-clk1;
3.2计程模块
3.2.1计程模块电路
modulejicheng(clk,start,reset,distance,distance_enable);
inputclk,start,reset;
output[7:
0]distance;
////////////输出的公里
reg[7:
/////////////
outputdistance_enable;
//控制计费的公里信号
regdistance_enable;
always@(posedgeclkornegedgereset)//异步复位
reset)//低电平复位
distance<
=8'
//////////////
elseif(start)//start高电平有效
if(distance[3:
0]==9)////////////判断distance的低四位计到了9没有
distance[3:
0]<
=4'
////////计到9清零
if(distance[7:
4]==9)/////////判断distance的低四位计到了9没有
distance[7:
4]<
elsedistance[7:
=distance[7:
4]+1'
////////////distance的高四位没有计到9的时候加1
end
elsedistance[3:
=distance[3:
0]+1'
////////////distance的低四位没有计到9的时候加1
end//endalways
always@(posedgeclkornegedgereset)
if(!
distance_enable<
=1'
//复位
else
if(distance>
8'
d2)///////////大于公里三的时候
distance_enable<
////////输出distance_enable信号
3.3计时模块
modulejishi(clk,reset,start,s,m,time_enable);
inputclk,reset,start;
0]s;
0]m;
outputtime_enable;
//输出的控制计费的信号
wiretime_enable;
reset)//低电平有效
begin//复位
s<
m<
elseif(!
start)//start低电平有效
if(s[3:
0]==9)//秒的低四位是9
s[3:
//清零
if(s[7:
4]==5)//秒的高四位是5
s[7:
if(m[3:
0]==9)//分的低四位是9
m[3:
if(m[7:
4]==9)//分的高四位是9
m[7:
elsem[7:
=m[7:
//分的高四位不是9加一
elsem[3:
=m[3:
//分的低四位不是9加一
elses[7:
=s[7:
//秒的高四位不是5加一
elses[3:
=s[3:
end//endalways
assigntime_enable=((m[7:
0]>
d2)&
&
(s[7:
0]==8'
d0))?
1'
d1:
//产生time_enable信号
endmodule
3.4控制模块
modulekongzhi(start,distance_enable,time_enable,select_clk);
inputstart,distance_enable,time_enable;
outputselect_clk;
//输出选择的时钟信号
wireselect_clk;
//当start高电平的时候选择公里计费,输出的时钟信号为distance_enable
//当start低电平的时候选择时间计费,输出的时钟信号为time_enable
assignselect_clk=start?
distance_enable:
time_enable;
endmodule//结束
3.5计费模块
modulejifei(select_clk,reset,fee,clk);
inputselect_clk,reset,clk;
output[7:
0]fee;
//输出的费用
always@(posedgeclkornegedgereset)//yibufuwei
reset)//diyouxiao
fee<
d8;
///////起步为八元
elseif(select_clk==1'
d1)
if(fee[3:
0]==4'
d9)/////费用的低四位是不是计到了九
fee[3:
/////计到九清零
if(fee[7:
4]==4'
d9)/////费用的高四位是不是计到了九
fee[7:
////计到九清零
elsefee[7:
=fee[7:
/////费用的高四位没有计到九加一
elsefee[3:
=fee[3:
/////费用的低四位没有计到九加一
end//begin
end//always
3.6数码管显示模块
moduleshumaxianshi(clk1,dig,seg,distance,s,m,fee);
inputclk1;
input[7:
0]distance,fee;
/////输入的公里,费用
0]s;
0]m;
0]dig;
//译码结果
0]seg;
//数码管的选择
0]r_dig;
//译码结果输出寄存器
0]r_seg;
//数码管的选择寄存器
reg[3:
0]disp_dat;
0]a;
assigndig=r_dig;
assignseg=r_seg;
always@(posedgeclk1)
a<
=a+1'
case(a)
4'
d0:
disp_dat=distance[7:
4];
//公里的高四位用第一个数码管显示
disp_dat=distance[3:
0];
//公里的低四位用第二个数码管显示
d2:
disp_dat=m[7:
//时间分的高四位用第三个数码管显示
d3:
disp_dat=m[3:
d4:
disp_dat=s[7:
d5:
disp_dat=s[3:
d6:
disp_dat=fee[7:
d7:
disp_dat=fee[3:
default:
disp_dat=4'
b1010;
endcase
r_dig=8'
b01111111;
//选择第一个数码管
b10111111;
b11011111;
b11101111;
b11110111;
b11111011;
b11111101;
b11111110;
b11111111;
always@(disp_dat)
case(disp_dat)
h0:
r_seg=8'
hc0;
//显示0
h1:
hf9;
//1
h2:
ha4;
//2
h3:
hb0;
//3
h4:
h99;
//4
h5:
h92;
//5
h6:
h82;
//6
h7:
hf8;
//7
h8:
h80;
//8
h9:
h90;
//9
hbf;
4.整体顶层模块设计
4.1整体顶层模块电路
各模块设计仿真实现后,可分别创建成元件符号。
顶层就是将各分模块用VerilogHDL语言或者是图形方法连接起来,便可实现系统电路。
其VerilogHDL源代码详见其附录。
其生成的顶层原理图如下所示:
图4-1整体顶层电路原理图
5.系统功能仿真及调试
本设计采用QuartusII软件进行仿真设计,QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
6.总结与体会
通过学习了数字数字系统设计和VerilogHDL语言,对EDA技术有了一些了解,但那厚厚的一本书讲的都是理论的东西。
通过这本次课程设计,我才把学到的东西与实践相结合。
从中对所学的知识有了更进一步的理解。
刚开始拿到这题目的时候感觉还是有难度,但着手设计时,慢慢查询资料后感觉不是很难,但在设计时又现了许多细节上的问题。
对QuartusII9.0操作流程还不到位,通过自己网上看Quartus软件基操作视频,首先把Quartus的功能和各操作用途功能详细的了解了一遍,这使我大添信心能把设计做出来,相信只有细心、耐性才能把设计搞好,在这次的出租车计价器设计中,对Verilog模块的基本结构和基本语法更为熟悉。
在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路,要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为交流提供了方便,为以后编程打下基础。
为期两周的EDA课程设计已经结束,从挑选课设题目,查阅资料,到研究出总体设计,详细设计,再到最后的编程上机调试,修改程序,完善程序,收获颇多。
锻炼了自己独立发现问题、分析问题和通过查看相关资料来解决问题的能力。
使自己扩大了知识面,提高了知识水平,借助仿真软件,不仅可以把课堂中所学到的知识,直接加以运用,而且还可以把各个分离的知识组合为一个整体,真正做到理论联系实际的重要性。
使自己在专业知识和动手能力上有了很大的提高。
另外通过本次设计,使我认识到自己对VerilogHDL应用编程能力有很大的欠缺,需要在以后的学习中进一步提高。
学校给我们安排课程设计,大大地加深了我们对理论知识的理解,同时有意识的培养了我们的创新思想。
我想这类似的课程设计是为我们提供了良好的实践平台。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 出租车 计价器