1/14
文档分类:通信/电子

数字电路(出租车计费器).doc


下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

特别说明:文档预览什么样,下载就是什么样。

0/100
您的浏览器不支持进度条
下载所得到的文件列表
数字电路(出租车计费器).doc
文档介绍:
课题要求技术要求1.掌握较复杂逻辑的设计、调试。2.进一步掌握用VHDL语言设计数字逻辑电路。3.掌握用quartusII6.0软件进行编程设计。功能要求1.能实现计费功能,计费标准为:按行驶里程收费,起步费为7.00元,并在车行3公里后再按2.2元/公里,当计费器达到或超过一定收费(如20元)。每公里加收50%的车费,车停止不计费2.实现预置功能、每公里收费、车行驶加费里程。3.实现模拟功能:能模拟汽车启动、停止、暂停、车速等状态。4.设计动态扫描电路将车费显示出来。有两位小数。5.用VHDL语言设计符合上述功能要求的出租车计费器。并用层次化设计方法设计该电路。6.各计数器的技术状态用功能的方法验证,并用有关波形确认电路设计是否正确7.完成电路全部设计后,通过系统试验箱下载验证设计课题的正确性。二本人工作:本人主要负责软件和硬件电路方面的设计,并进行引脚设定,以及与软硬件之间的调试运行,及时修改程序,帮助查找和分析问题,确保能够成功完成出租车计费器的设计。三设计方案:3.1主要中心组成显示模块FPGA按键模块3.2FPGA芯片部主要程序:3.3工作原理:基于CPLD/FPGA的出租车计费器的组成如图1所示。各部分主要功能如下:(1)A计数器对车轮传感器送来的脉冲信号进行计数(每转一圈送一个脉冲)。不同车型的车轮直径可能不一样,通过“设置1”对车型做出选择,以实现对不同车轮直径的车进行调整。(2)B计数器对百米脉冲进行累加,并输出实际公里数的BCD码给译码动态扫描模块。每计满500送出一个脉冲给C计数器。“设置2”实现起步公里数预制。(3)C计数器实现步长可变(即单价可调)的累加计数,每500米计费一次。“设置3”用来完成超价加费、起步价预制等。(4)译码/动态扫描将路程与费用的数值译码后用动态扫描的方式驱动数码管。(5)数码管显示将公里数和计费金额均用四位LED数码管显示(2位整数,2位小数)。3.4功能模块设计出租车计费器由车型调整模块、计程模块、计费模块、译码动态及扫描等模块组成,整个系统采用模块化设计,首先用VHDL编写功能模块,然后用顶层原理图将各功能模块连接起来。四单元模块设计:首先出租车计费器的设计需要分频,所以需要设计了两个频率:4.1oneMHZ:由于给定的50MHZ太大,这个程序完成5000分频,实现第一次分频,确保实现动态计数,并且保证频率在驱动围之。libraryieee;useieee.std_logic_1164.all;entityoneMHZisport(daclk:instd_logic;clkout:outstd_logic);endoneMHZ;architectureoneofoneMHZissignaldata:integerrange0to5000;signalQ:std_logic;beginprocess(daclk)beginifdaclk'eventanddaclk='1'thenif(data=5000)thendata<=0;Q<=notQ;elsedata<=data+1;endif;endif;clkout<=Q;endprocess;endone;4.2twoMHZ:这个程序完成2500分频,实现第二次分频,确保最后数码管显示频率在合适围libraryieee;useieee.std_logic_1164.all;entitytwoMHZisport(daclk:instd_logic;clkout:outstd_logic);endtwoMHZ;architectureoneoftwoMHZissignaldata:integerrange0to2500;signalQ:std_logic;beginprocess(daclk)beginifdaclk'eventanddaclk='1'thenif(data=2500)thendata<=0;Q<=notQ;elsedata<=data+1;endif;endif;clkout<=Q;endprocess;endone;4.3Charge:实现计费功能,按行驶里程收费,起步费为7.00元,并在车行3公里后再按2.2元/公里,当计费器达到或超过一定收费(如20元)。每公里加收50%的车费,车停止不计费,实现预置功能、每公里收费、车行驶加费里程,实现模拟功能,能模拟汽车启动、停止、暂停、车速等状态,将车费显示出来。有两位小数。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitychargeisport(cp,ks,tz,zt:instd_logic;dis,mon:outintegerrange0to9999);end 内容来自淘豆网www.taodocs.com转载请标明出处.