收藏 分享(赏)

VHDL——出租车计价器.doc

上传人:dzzj200808 文档编号:2466798 上传时间:2018-09-17 格式:DOC 页数:12 大小:266.50KB
下载 相关 举报
VHDL——出租车计价器.doc_第1页
第1页 / 共12页
VHDL——出租车计价器.doc_第2页
第2页 / 共12页
VHDL——出租车计价器.doc_第3页
第3页 / 共12页
VHDL——出租车计价器.doc_第4页
第4页 / 共12页
VHDL——出租车计价器.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、该系统利用 VHDL 语言、PLD 设计出租车计费系统,以 MAX+PLUS软件作为开发平台,设计了出租车计费器系统程序并进行了程序仿真。使其实现计费以及预置和模拟汽车启动、停止、暂停等功能,并动态扫描显示车费数目。关键词: 出租车计费器;计数器; VHDL 语言;MAX+PLUS ;一、实验任务及要求1. 能实现计费功能,计费标准为:按行驶里程收费,起步费为 10.00 元,并在车行 3 公里后再按 2 元/公里,当计费器计费达到或超过一定收费 (如 20 元)时,每公里加收 50%的车费,车停止不计费。2. 实现预置功能:能预置起步费、每公里收费、车行加费里程。3. 实现模拟功能:能模拟汽

2、车启动、停止、暂停、车速等状态。4. 设计动态扫描电路:将车费显示出来,有两位小数。5. 用 VHDL 语言设计符合上述功能要求的出租车计费器,并用层次化设计方法设计该电路。6. 各计数器的计数状态用功能仿真的方法验证,并通过有关波形确认电路设计是否正确。7. 完成电路全部设计后,通过系统实验箱下载验证设计的正确性。二、实验原理系统顶层框图:计费器按里程收费,每 100 米开始一次计费。各模块功能如下:(1) 车速控制模块当起停键为启动状态时(高电平) ,模块根据车速选择和基本车速发出响应频率的脉冲驱动计费器和里程显示模块进行计数;当处于停止状态时暂停发出脉冲,此时计费器和里程显示模块相应的停

3、止计数。(2) 里程动态显示模块车速选择起/停开关基本速率Reset扫描时钟显示输出 显示输出车速控制模块计费动态显示里程动态显示其包括计数车速控制模块发出的脉冲以及将计数显示动态显示出来,每来一个脉冲里程值加0.1(控制器每发一个脉冲代表运行了 0.1 公里) 。(3) 计费动态显示模块其初值为 10 元,当里程超过 3 公里后才接受计数车速控制模块发出的脉冲的驱动,并且计数显示动态显示出来,每来一个脉冲(代表运行了 0.5 公里)其数值加 1 元,当收费超过 20 时数值加 1.5 元。三、出租车计费系统的实现3.1 系统的总体模块图:3.2 系统各功能模块的实现:(1)模块 MS 的实现

4、模块 MS,输入端口 CK0、CK1 为两个不同的时钟信号,来模拟汽车的加速和匀速, JS 加速按键。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MS ISPORT(CK0:IN STD_LOGIC;CK1:IN STD_LOGIC;JS:IN STD_LOGIC;CLK_OUT:OUT STD_LOGIC);END MS;ARCHITECTURE ONE OF MS ISBEGINPROCESS(JS, CK0,CK1)BEGINIF JS=0 THEN CLK_OUT0);ELSIF CLKEVENT AND CLK=1 THENIF S

5、TO=1 THEN STATE:=“00“;CQI:=CQI;ELSIF ENABLE =1 THEN CQI:=CQI+1;IF CQI30 AND CQIQ1:=Q1;Q2:=Q2;Q3:=Q3;WHEN “01“= Q1:=“0000“;Q2:=“0000“;Q3:=“0001“;WHEN “10“= IF Q2 IF Q1NULL;END CASE;END IF;C1BTBTBTBTNULL;END CASE;END PROCESS P2; P3:PROCESS(A)BEGINCASE A ISWHEN “0000“=SGSGSGSGSGSGSGSGSGSGNULL;END CASE;

6、END PROCESS P3;END ONE ;(6)模块 TAXI 的实现该模块为最终的顶层模块。LIBRARY IEEE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY TAXI ISPORT(T_CLK0:IN STD_LOGIC;T_CLK1:IN STD_LOGIC;T_CLK2:IN STD_LOGIC;T_JS :IN STD_LOGIC;T_ENABLE:IN STD_LOGIC;T_CLR:IN STD_LOGIC;T_STO:IN STD_LOGIC;T_BT: OUT STD_LOGIC_VECTOR(2 DOWNTO 0)

7、;T_SG: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END TAXI;ARCHITECTURE STRUC OF TAXI ISCOMPONENT MSPORT(CK0:IN STD_LOGIC;CK1:IN STD_LOGIC;JS:IN STD_LOGIC;CLK_OUT:OUT STD_LOGIC);END COMPONENT;COMPONENT SOUTPORT(CLK:IN STD_LOGIC;ENABLE:IN STD_LOGIC;STO :IN STD_LOGIC;CLR:IN STD_LOGIC;ST:OUT STD_LOGIC_VECTOR(1 D

8、OWNTO 0);END COMPONENT;COMPONENT PULSEPORT(CLK0:IN STD_LOGIC;FOUT:OUT STD_LOGIC);END COMPONENT;COMPONENT COUNTERPORT(CLK_DIV:IN STD_LOGIC;CLR1:IN STD_LOGIC;SI:IN STD_LOGIC_VECTOR(1 DOWNTO 0);C1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);C2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);C3:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);E

9、ND COMPONENT;COMPONENT SCAN_LED PORT(DI1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);DI2:IN STD_LOGIC_VECTOR(3 DOWNTO 0);DI3:IN STD_LOGIC_VECTOR(3 DOWNTO 0);CLK2:IN STD_LOGIC;SG:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);BT:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END COMPONENT;SIGNAL L_CLK: STD_LOGIC;SIGNAL L_FOUT:STD_LOGIC;SIG

10、NAL L_ST:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL L_C1:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL L_C2:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL L_C3:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINU0:MS PORT MAP(CK0=T_CLK0,CK1=T_CLK1,JS=T_JS,CLK_OUT=L_CLK);U1:SOUT PORT MAP(CLK=L_CLK,ENABLE=T_ENABLE,CLR=T_CLR,STO=T_STO,ST=L_ST);U2

11、:PULSE PORT MAP(CLK0=L_CLK,FOUT=L_FOUT);U3:COUNTER PORT MAP(CLR1=T_CLR,SI=L_ST,CLK_DIV=L_FOUT,C3=L_C3,C2=L_C2,C1=L_C1);U4:SCAN_LED PORT MAP(CLK2=T_CLK2,DI3=L_C3,DI2=L_C2,DI1=L_C1,BT=T_BT,SG=T_SG);END STRUC;四、系统仿真(1)模块 MS 的结果验证(2)模块 SOUT 的结果验证(3)模块 PULSE 的结果验证(4)模块 COUNTER 的结果验证(5)模块 SCAN_LED 的结果验证(6

12、)模块 TAXI 的结果验证五、结论出租车计费器系统的设计已全部完成,能按预期的效果进行模拟汽车启动、停止、暂停等功能,并设计动态扫描电路显示车费数目,由动态扫描电路来完成。车暂时停止不计费,车费保持不变。若停止则车费清零,等待下一次计费的开始。出租车计费器系统的设计已全部完成,能按预期的效果进行模拟汽车启动、停止、暂停等功能,并设计动态扫描电路显示车费数目,由动态扫描电路来完成。车暂时停止不计费,车费保持不变。若停止则车费清零,等待下一次计费的开始。各模块完成后,在将它们组合成完整的出租车系统,在设计过程中还需要改进的是控制系统的纠错功能。出租车计费系统的设计中体现了覆盖面广,描述能力强,是

13、一个多层次的硬件描述语言及PLD 器件速度快,使用方便,便于修改等特点,本设计在实用方面具有一定的价值。心得体会:这次课程设计中,我们主要是运用 VHDL 语言设计了一个出租车计费器,并且用层次化的设计方法来实现这个电路。在程序编写结束后,我们还对该程序进行了调试, 能按预期的效果进行模拟汽车启动、停止、暂停等功能,基本完成课程设计的要求。通过此次课程设计,我们更进一步的深入了解了 VHDL 设计语言,并通过使用对它有了更深的体会。对于编程过程中可能遇到的问题有了一定的了解,也明白了其中的一些注意事项,对于下次进行编程设计有很大的帮助和提高。总之,这次实验不仅仅加强了我的动手编程能力,也大大加强了团队合作以及设计能力,使我在理论学习和编程练习方面都获得了较大的收获

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报