电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

出租车计价器VHDL程序与仿真VIP免费

出租车计价器VHDL程序与仿真_第1页
出租车计价器VHDL程序与仿真_第2页
出租车计价器VHDL程序与仿真_第3页
8.22出租车计价器VHDL程序与仿真。--文件名:taxi.hd。--功能:出租车计价器。--最后修改日期:2004.4.9。libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entitytaxiisport(clk_240:instd_logic;--频率为240Hz的时钟start:instd_logic;--计价使能信号stop:instd_logic;--等待信号fin:instd_logic;--公里脉冲信号cha3,cha2,cha1,cha0:outstd_logic_vector(3downto0);--费用数据km1,km0:outstd_logic_vector(3downto0);--公里数据min1,min0:outstd_logic_vector(3downto0));--等待时间endtaxi;architecturebehavoftaxiissignalf_15,f_16,f_1:std_logic;--频率为15Hz,16Hz,1Hz的信号signalq_15:integerrange0to15;--分频器signalq_16:integerrange0to14;--分频器signalq_1:integerrange0to239;--分频器signalw:integerrange0to59;--秒计数器signalc3,c2,c1,c0:std_logic_vector(3downto0);--制费用计数器signalk1,k0:std_logic_vector(3downto0);--公里计数器signalm1:std_logic_vector(2downto0);--分的十位计数器signalm0:std_logic_vector(3downto0);--分的个位计数器signalen1,en0,f:std_logic;--使能信号beginfeipin:process(clk_240,start)beginifclk_240'eventandclk_240='1'thenifstart='0'thenq_15<=0;q_16<=0;f_15<='0';f_16<='0';f_1<='0';f<='0';elseifq_15=15thenq_15<=0;f_15<='1';--此IF语句得到频率为15Hz的信号elseq_15<=q_15+1;f_15<='0';endif;ifq_16=14thenq_16<=0;f_16<='1';--此IF语句得到频率为16Hz的信号elseq_16<=q_16+1;f_16<='0';endif;ifq_1=239thenq_1<=0;f_1<='1';--此IF语句得到频率为1Hz的信号elseq_1<=q_1+1;f_1<='0';endif;ifen1='1'thenf<=f_15;--此IF语句得到计费脉冲felsifen0='1'thenf<=f_16;elsef<='0';endif;endif;endif;endprocess;process(f_1)beginiff_1'eventandf_1='1'thenifstart='0'thenw<=0;en1<='0';en0<='0';m1<="000";m0<="0000";k1<="0000";k0<="0000";elsifstop='1'thenifw=59thenw<=0;--此IF语句完成等待计时ifm0="1001"thenm0<="0000";--此IF语句完成分计数ifm1<="101"thenm1<="000";elsem1<=m1+1;endif;elsem0<=m0+1;endif;ifm1&m0>"0000001"thenen1<='1';--此IF语句得到en1使能信号elseen1<='0';endif;elsew<=w+1;en1<='0';endif;elsiffin='1'thenifk0="1001"thenk0<="0000";--此IF语句完成公里脉冲计数ifk1="1001"thenk1<="0000";elsek1<=k1+1;endif;elsek0<=k0+1;endif;ifk1&k0>"00000010"thenen0<='1';--此IF语句得到en0使能信号elseen0<='0';endif;elseen1<='0';en0<='0';endif;cha3<=c3;cha2<=c2;cha1<=c1;cha0<=c0;--费用数据输出km1<=k1;km0<=k0;min1<='0'&m1;min0<=m0;--公里数据、分钟数据输出endif;endprocess;process(f,start)beginifstart='0'thenc3<="0000";c2<="0001";c1<="0000";c0<="0000";elsiff'eventandf='1'thenifc0="1001"thenc0<="0000";--此IF语句完成对费用的计数ifc1="1001"thenc1<="0000";ifc2="1001"thenc2<="0000";ifc3<="1001"thenc3<="0000";elsec3<=c3+1;endif;elsec2<=c2+1;endif;elsec1<=c1+1;endif;elsec0<=c0+1;endif;endif;endprocess;endbehav;程序仿真图注:1.仿真图中秒跟分的关系为3进制,即w为2时就归0;2.出租车总行驶5公里,等待累计时间为4分钟,总费用为16.2元。出租计价器程序仿真全图出租计价器程序仿真图-1注:行驶公里数为4时,f得到16个计价脉冲数,计价器加16。既等效于加1.6元。出租计价器程序仿真图-2注:等待累计时间为3分钟时,f得到15个计价脉冲。计价器的数值增加15。即等效于加1.5元。出租计价器程序仿真图-3

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部