电子设计课设报告-基于CYCLONE FPGA设计的出租车计价器+Quartus9.1工程源码,
1.引言:
随着EDA技术的高速发展,电子系统的设计技术发生了深刻的变化,大规模可编程逻辑器件CPLD/FPGA的出现,给设计人员带来了诸多方便。利用它进行产品开发,不仅成本低、周期短、可靠性高,而且具有完全的知识产权。本文介绍了一个以Altera公司可编程逻辑芯片cyclone2系列的EP2C5T144C8的fpga芯片为控制核心、附加一定外围电路组成的出租车计费器系统。随着社会的不断进步,人们生活水平的不断提高,出租车逐渐成为人们日常生活不可缺少的交通工具。而计价器作为出租车的一个重要组成部分,关系着出租车司机和乘客双方利益,起着重要的作用,因而出租车计价器的发展非常迅猛。
2.系统规范:
2.1 出租车计价器的要求:
该计价器的计费系统:行程 3公里(不含3公里)内,且等待累计时间2分钟内(不含2分钟),起步费为10元;3公里外以每公里1.6元计费,等待累计时间2分钟外以每分钟以1.5元计费。
并能显示行驶公里数、等待累计时间、总费用。
主要技术指标
计价范围:0~999.9元 计价分辨率: 0.1元
计程范围:0~99公里 计程分辨率: 1公里
计时范围:0~59分 计时分辨率: 分
2.2 ,系统组成框图:
出租车的一般计费过程为:出租车载客后,启动计费器,整个系统开始运行,里程计数器和时间计数器从0开始计数,费用计数器从6开始计算。再根据行驶里程或停止等待的时间按以上的标准计费。若在行驶状态,则计程器开始加计数,当路程超过二公里后,计费器以每公里1.6元累加。若出租车停止等待状态,则计时器开始加计数,当时间超过三分钟后,计费器以每分钟1.2元累加。出租车到达目的地停止后,停止计费器,显示总费用。
根据出租车计费器的工作过程,本系统采用分层次、分模块的方式设计,其本系统组成框图如下所示。其中行驶路程计数模块、等待时间计数模块和计费模块,用来统计路程、等待时间
和总费用,控制模块是用来控制计费模块,数码管显示模块用来显示行驶的公里数、等待累计时间和总费用等信息。系统框图如下所示:
.各模块设计:
本系统采用层次化、模块化的设计方法,设计顺序为自下向上。首先实现系统框图中的各子模块,然后由顶层模块调用各子模块来完成整个系统。为了便于显示,这里的路程、时间和费用计数器均用十六进制表示。
(1)顶层模块
/*顶层模块变量定义
reset 0为复位,1为启动
stop 0为运行,1为停止
start 0为暂停,1为行驶
clk_count 为轮胎传感器发出的表示转一圈的脉冲信号,实验时用为1024hz时钟信号
clk_1khz 系统工作的主要时钟信号,实验用1024hz时钟信号
clk 时间模块的时钟信号,实验用8hz时钟信号
timeh,timel 分钟的十位和个位
distanceh,distancel 公里的十位和个位
bai,shi,ge,xiao 费用的十位和个位
*/
module taxi(reset,start,stop,clk0,seg1,seg2,seg3,seg4,change,);
input reset,start,stop,change,clk0;
output [6:0] seg1,seg2,seg3,seg4;
wire time_enable,distance_enable,select_clk,km,clk_count,clk,clk_1khz;
reg [3:0]view1,view2,view3,view4;
wire [3:0] timeh,timel,bai,ge,shi,xiao,distanceh,distancel;
time_count u8(clk,reset,start,stop,timel,timeh,time_enable);
km_count u1(.clk_count(clk_count),.reset(reset),.start(start),.km(km));
distance u2(.clk_1khz(clk_1khz),.start(start),.reset(reset),.stop(stop),.distancel(distancel),.distanceh(distanceh),.km(km),.distance_enable(distance_enable));
select_clk u3(.clk_1khz(clk_1khz),.reset(reset),.start(start),.stop(stop),.time_enable(time_enable),.km(km),.select