您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 北邮数字电路实验报告-简易出租车计价器
2013年11月10日1数字电路实验报告简易出租车计价器班级:学号:姓名:2013年11月10日2一、设计课题的任务要求设计一台出租车计价器,不同情况具有不同的收费标准基本内容1、行驶公里:用时钟2秒钟表示出租车匀速行驶1公里,在行车5公里以内,按起步价13元收费,超过5公里部分,以每公里2元收费。燃油附加费为每运次1元。2、途中等待:用按键控制中途等待,等待少于(包括)5秒不收费,超过5秒后每等待3秒钟加收1元。3、用数码管分时显示计费金额、行驶里程和等候时间。字母A表示当前处于显示计费金额状态,字母B表示当前处于显示行驶里程状态,字母C表示当前处于显示等候时间状态。4、用按键控制出租车空驶、载客状态并用点阵显示空驶、载客状态。提高要求1、用点阵滚动显示收费单据。2、具有夜间模式,基本单价加收20%的费用。出租汽车收费结算以元为单位,元以下四舍五入。3、出租车行驶速度可调可控。4、多人乘车,分段计价。5、自拟其它功能。二、系统设计1.设计思路首先考虑得到需要一个分频装置,分别输出频率到计数器与控制器,另有计算单元用来计算里程、时间与费用。Clk为系统时针,rst、start、waiting分别为重置、开始、等待信号,由按键输入分频器计数器控制器clk1Clk2输入Rst,start,waiting计算单元输出里程,时间,车费clk系统逻辑框图2013年11月10日3系统流程图状态转移图三、仿真波形及波形分析开始Rst=0?yesStart=1?yesnoWaiting=1yes累计等待时间,等待费用累计计算行车路程,行车费用no计算总费用,并显示总费用,行车里程和等待时间结束stayCost1Cost2beginRst=1Start=1,rst=0Waiting=1Waiting=0rst、start、waiting分别为重置、开始、等待信号2013年11月10日4四、功能说明及资源利用情况开始行车开始行车后五公里内14元五公里后每公里2元开始等待等待时间前5s内不收费等待时间超过5s后每三秒钟收费一元2013年11月10日51、功能说明本次试验成果的主要功能为:开始点阵显示“无人状态”。按下按键“btn1”(start),计价器开始正常工作,六个数码管每两个分别显示“总费用”“行进里程”“等待时间”,同时点阵显示“载客状态”。行进里程开始累计,里程数在5公里内总价不变,在超过5公里后,每公里增加两元。在行进中按下按键“btn2”(waiting),等待时间开始累计,等待时间未超过5s时,等待费用为零,所以总价并不累计。在等待时间超过5s后,每三秒钟总价加一元。再次按下按键“btn2”(waiting),停止等待状态,继续行进,状态与上述一样。再次按下按键“btn1”(start),表示客人到达目的地,数码管显示总价,里程以及总等待时间,即开始结算。按下按键“btn0”(rst),所以状态清零。点阵回到无人状态,数码管显示全部清零。2、资源利用情况五、故障及问题分析本次试验,在实验过程中,发现了众多不同的问题。其中最恶心的一次就是代码调试的时候,没有任何的语法错误,但是它表示编译不通过,说是逻辑单元有1307个,但是设备只能提供1270个,所以无法通过。对于这个问题,我实在不知道该怎么解决,最后只有重新写代码,换了一两个结构后发现问题神奇般的解决了。但我始终不知道原因。其他的问题都只是代码的语法错误之类的,无需赘言。六、总结和结论2013年11月10日6有过上个学期的一些基础知识后,这次的实验并没有太过于手足无措,总的来说还是比较容易上手。所选的课题逻辑也并不复杂,所以不算太难。还是比较快的实现了所要求的功能。虽然最后发现与老师的要求有一些出入,但总体来说,自己还是比较满意的。因为本次试验所有代码都是自己一个字母一个字母敲出来的,通过与同学们的交流也学到了很多东西,可能也就是因为没有和别的班级同学交流,所以没有达到老师的期望吧!七、源代码(含注释)1、仿真版libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitytaxiisport(clk:instd_logic;start:instd_logic;waiting:instd_logic;rst:instd_logic;T0,T1,T2,T3,T4,T5:outstd_logic_vector(3downto0));end;architecturebhvoftaxiissignalcount:integerrange0to499999999;signalkm_clk,sec_clk,en:std_logic;signalc1,c2,tt:integerrange0to99;signalawait,mile,cost:integerrange0to99;signalawait_s,await_g,mile_s,mile_g,cost_s,cost_g:integerrange0to9;signalrst_clk,start_clk,waiting_clk:std_logic:='0';signalwaiting_time:integerrange0to99;beginU1:process(rst,start,waiting)--实现按键beginifstart'eventandstart='1'thenifstart_clk='1'thenstart_clk='0';elsestart_clk='1';endif;2013年11月10日7endif;ifwaiting'eventandwaiting='1'thenifwaiting_clk='1'thenwaiting_clk='0';elsewaiting_clk='1';endif;endif;endprocess;u2:process(rst,clk)beginifclk'eventandclk='1'thenifrst='0'thenifcount=9then--两秒钟一公里count=0;km_clk='1';sec_clk='1';elsifcount=4then--一秒钟count=count+1;km_clk='0';sec_clk='1';elsecount=count+1;km_clk='0';sec_clk='0';endif;endif;endif;endprocess;U3:process(rst,start_clk,waiting_clk,km_clk)--里程计数beginifrst='1'thenmile=0;--按下“rst”后数字清零elsifstart_clk='0'thenmile=mile;--按下“start/stop”后显示总里程elsifwaiting_clk='1'thenmile=mile;elsifkm_clk'eventandkm_clk='1'thenifmile=99thenmile=0;elsemile=mile+1;endif;endif;endprocess;U4:process(rst,start_clk,waiting_clk,sec_clk)--等待时间计数2013年11月10日8beginifrst='1'thenawait=0;waiting_time=0;--按下“rst”后数字清零elsifstart_clk='0'thenawait=await;elsifwaiting_clk='0'thenawait=0;en='1';elsifsec_clk'eventandsec_clk='1'thenifawait=99thenawait=0;elseawait=await+1;waiting_time=waiting_time+1;endif;en='0';--等待状态endif;endprocess;U5:process(rst,start_clk,waiting_clk,en)--费用计算beginifrst='1'thencost=0;c1=0;c2=0;tt=0;--按下“rst”后数字清零elsifstart_clk='0'thencost=cost;c1=c1;c2=c2;tt=tt;elseifwaiting_clk='1'then--等待费用ifawait=5then--等待时间超过5s每三秒加收一元c1=(await-5)/3;elsec1=0;endif;elseifen'eventanden='1'then--运行状态tt=tt+c1;c1=0;endif;ifmile=5thenc2=13+2*(mile-5);--超过5公里部分,以每公里2元收费elsec2=13;endif;endif;cost=c1+c2+1+tt;--再加收一元燃油费endif;endprocess;2013年11月10日9u6:process(clk)beginawait_s=await/10;await_g=awaitMOD10;mile_s=mile/10;mile_g=mileMOD10;cost_s=cost/10;cost_g=costMOD10;casecost_siswhen0=T0=0000;when1=T0=0001;when2=T0=0010;when3=T0=0011;when4=T0=0100;when5=T0=0101;when6=T0=0110;when7=T0=0111;when8=T0=1000;when9=T0=1001;endcase;casecost_giswhen0=T1=0000;when1=T1=0001;when2=T1=0010;when3=T1=0011;when4=T1=0100;when5=T1=0101;when6=T1=0110;when7=T1=0111;when8=T1=1000;when9=T1=1001;endcase;casemile_siswhen0=T2=0000;when1=T2=0001;when2=T2=0010;when3=T2=0011;when4=T2=0100;when5=T2=0101;when6=T2=0110;when7=T2=0111;when8=T2=1000;when9=T2=1001;endcase;2013年11月10日10casemile_giswhen0=T3=0000;when1=T3=0001;when2=T3=0010;when3=T3=0011;when4=T3=0100;when5=T3=0101;when6=T3=0110;when7=T3=0111;when8=T3=1000;when9=T3=1001;endcase;caseawait_siswhen0=T4=0000;when1=T4=0001;when2=T4=0010;when3=T4=0011;when4=T4=0100;when5=T4=0101;when6=T4=0110;when7=T4=0111;when8=T4=1000;when9=T4=1001;endcase;caseawait_giswhen0=T5=0000;when1=T5=0001;when2=T5=0010;when3=T5=0011;when4=T5=0100;when5=T5=0101;when6=T5=0110;when7=T5=0111;when8=T5=1000;when9=T5=1001;endcase;endprocess;end;2、正
本文标题:北邮数字电路实验报告-简易出租车计价器
链接地址:https://www.777doc.com/doc-7243578 .html