1、EDA出租车计价器设计信息技术学院可编程逻辑器件原理及应用课程综合设计报告书姓 名: 王云鹏 班 级: B1106 学 号: 0915110601 时 间: 2013.12.3 指导教师: 李海成 设计题目出租车计价器系统设计设计要求和任务1. 能实现计费功能,计费标准为:按行驶里程收费,起步为5.00元,并在车行5公里后再按1.2元/公里。2. 传感器输出脉冲为0.5m/个。每0.5km改变一次显示,且 提前显示。3.实现预置功能:能预置起步费、每公里收费、车行加费里 程。4. 实现模拟功能:能模拟汽车启动、停止等状态。5. 设计动态扫描电路:将车费显示出来,有两位小数。6. 用VHDL语言
2、设计符合上述功能要求的出租车计费器,并用层次化设计方法设计该电路。7.各计数器的计数状态用功能仿真的方法验证,并通过有关波形确认电路设计是否正确。8.完成电路全部设计后,通过系统实验箱下载验证设计的正确性。设计过程设计过程设计过程设计过程设计过程设计过程设计过程设计过程一、实验平台(1)硬件:计算机、EDA实验箱;(2)软件:MAX+plus II 10.0 ; (3)编写程序后,并在MAX+plus II 10.0 工具平台中进行编译、 综合、适配、仿真下载到EDA实验箱进行验证,通过LED显示 来观察结果。二、实验原理(1)控制模块(2)分频模块(3)计费动态显示模块其初值为5元,当里程超
3、过5公里后才接受计数控制模块 发出的脉冲的驱动,并且计数显示动态显示出来。三、出租车计费系统的实现 3.1系统的总体模块图:四、实验步骤 1、建立工作库文件夹和编辑设计文件2、程序清单和波形图:library ieee;use ieee.std_logic_1164.all;entity bcd_decoder is port ( bcd: in std_logic_vector (4 downto 0); ledseg : out std_logic_vector (7 downto 0); end bcd_decoder ;architecture behavior of bcd_deco
4、der isbegin process(bcd)begin case bcd iswhen 00000=ledseg ledseg ledseg ledseg ledseg ledseg ledseg ledseg ledseg ledseg ledseg ledseg ledseg ledseg ledseg ledseg ledseg ledseg ledseg ledseg ledseg yyyynull;end case;end process;end one;library ieee; -计程控制use ieee.std_logic_1164.all;use ieee.std_log
5、ic_unsigned.all;entity kilo isport(clk:in std_logic; start:in std_logic; stop:in std_logic; k1:out std_logic_vector(3 downto 0); k2:out std_logic_vector(3 downto 0); k3:out std_logic_vector(3 downto 0); cn:out std_logic);end kilo;architecture behav of kilo isbeginprocess(clk,start,stop)variable k_v:
6、std_logic_vector(11 downto 0);beginif stop=1 then k_v:=(others=0);elsif clkevent and clk=1thenif start=1 then if k_v(3 downto 0)=1001 then k_v:=k_v+0111; else k_v(3 downto 0):=k_v(3 downto 0)+1; end if;if k_v(7 downto 4)=1010 thenk_v:=k_v+01100000;end if;end if;end if;if k_v(11 downto 0)=00000101000
7、0 then cn=1;else cn=0;end if;k1= k_v(3 downto 0);k2= k_v(7 downto 4);k30);co=1;else q:=q+1;coeee0);cout=0;elsif clkevent and clk=1then if en=1then if cqi9 then cqi:=cqi+6; cout=9 then cout=1;cqi:=cqi-01010; end if;end if;end if;cq0);elsif clkevent and clk=1then if en=1then if cqi0); end if; if cqi=9
8、 then cout=1; else cout=0;end if;end if;end if;cq0);elsif clkevent and clk=1then if cn=0 then cqi:=00101; elsif en=1 then if cqi0); end if; if cqi=10 then cout=1;cqi:=00000; else cout=0;end if;end if;end if;cq=cqi+10000;end process;end behav;library ieee;use ieee.std_logic_1164.all;use ieee.std_logi
9、c_unsigned.all;entity cnt4 isport(clk:in std_logic; q:out std_logic_vector(1 downto 0);end cnt4;architecture a of cnt4 isbeginprocess(clk)variable a:std_logic_vector(1 downto 0);begin if clkevent and clk=1then if a=10then a:=00;else a:=a+1;end if;end if;q=a;end process;end a;五、编译过程(1)输入完程序之后逐个编译;(2)逐个编译无错之后进行全程编译;六、实验小结这次课程设计中,我们主要是运用VHDL语言设计了一个出租车计费器,并且用层次化的设计方法来实现这个电路。在程序编写结束后,我们还对该程序进行了调试, 能按预期的效果进行模拟汽车启动、停止等功能,基本完成课程设计的要求。通过此次课程设计,我们更进一步的深入了解了VHDL设计语言,并通过使用对它有了更深的体会。对于编程过程中可能遇到的问题有了一定的了解,也明白了其中的一些注意事项,对于下次进行编程设计有很大的帮助和提高。总之,这次实验不仅仅加强了我的动手编程能力,也大大加强了团队合作以及设计能力,使我在理论学习和编程练习方面都获得了较大的收获。成绩评定
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1