EDA程序设计--出租车计费器
题目:出租车计费器
1 系统设计
- 设计要求
1.1.1 设计任务
设计并制作一台出租车计费器。
1.1.2 性能指标要求
① 用EDA实训仪的I/O设备和FPGA实现出租车计费器的设计。
② 出租车起步开始计程和计费,计程系统按实际公里数计程,计费系统首先显示起步价(如7.0),车行驶2km以内,只收起步价7元。
③ 出租车行驶超过2km后,按每公里1.6元在7.0元的基础上增加。
④ 出租车行驶超过10km后(或超过20元路费),每公里加收50%的车费,即车费变为每公里2.4元。
⑤ 出租车达到目的地后,(用一个按钮)计程和计费数据清零,为下一次计费开始。
1.2 设计思路及设计框图
1.2.1设计思路
计程和计费都是十进制位的输入,通过脉冲实现计数。计程通过分频器的输出作为输入,产生的秒脉冲以实现计数功能。计费在LED数码管上分为个位十位(例如起步价为7元,显示器上显示70,三公里时为86......),计程器和计费器在一个程序内完成,分频器用另一个程序完成,并将程序都生成一个元器件,用图形法级联在一起。上硬件仿真后,打开开关输入脉冲,通过上升沿触发使路程计算加一,并使总路计算模块加一,到达相应的公里数后没每公里收费也随之改变。
1.2.2总体设计框图
2.1 总体电路图
2.2 分频器模块
module fpq_(clk,KS,clk_1s);
input clk,KS;
output reg clk_1s;
reg[26:0] qs;
always @(posedge clk)
if(KS==1)
begin
if(qs==49999999) qs=0;
else qs=qs+1;
if(qs==24999999) clk_1s=0;
else clk_1s=1;
end
endmodule
分频器
2.3计程计费器模块
module CZCJFQ(clk,clrn,clk2,L1,L2,L3,L4,L5,L6);
input clk,clrn,clk2;
output L1,L2,L3,L4,L5,L6;
wire[15:0] Q;
reg[7:0] km;
reg[11:0] ZJ;
reg clk1;
reg [6:0] L1,L2,L3,L4,L5,L6;
initial clk1=1;
always @(posedge clk^clk2 or negedge clrn)
begin
if(~clrn) km[3:0]=0;
else begin
if(km[3:0]==9) km[3:0]=0;
else km[3:0]=km[3:0]+1;
if(km[3:0]==9) clk1=0;
else clk1=1;
end
end
always @(posedge clk1 or negedge clrn)
begin
if(~clrn) km[7:4]=0;
else begin
if( km[7:4]==9) km[7:4]=0;
else km[7:4]= km[7:4]+1;
end
end
initial ZJ[11:0]=70;
always @(posedge clk^clk2 or negedge clrn)
begin
if(~clrn) ZJ[11:0]=70;
else begin
if(ZJ[11:0]>9999) ZJ[11:0]=70;
else if(km[7:0]>'h9) ZJ[11:0]=ZJ[11:0]+24;
else if(km[7:0]>'h1) ZJ[11:0]=ZJ[11:0]+16;
else ZJ[11:0]=ZJ[11:0];
end
end
assign{Q[3:0]}={ZJ[11:0]}%10;
assign{Q[7:4]}={ZJ[11:0]}/10%10;
assign{Q[11:8]}={ZJ[11:0]}/100%10;
assign{Q[15:12]}={ZJ[11:0]}/1000;
路程计费器模块
2.4 组合逻辑模块(部分)
always@ (Q[0],Q[1],Q[2],Q[3])
begin
case ({Q[3],Q[2],Q[1],Q[0]})
4'B0000:L1=7'B1000000;
4'B0001:L1=7'B1111001;
4'B0010:L1=7'B0100100;
4'B0011:L1=7'B0110000;
4'B0100:L1=7'B0011001;
4'B0101:L1=7'B0010010;
4'B0110:L1=7'B0000010;
4'B0111:L1=7'B1111000;
4'B1000:L1=7'B0000000;
4'B1001:L1=7'B0010000;
4'B1010:L1=7'B0001000;
4'B1011:L1=7'B0000011;
4'B1100:L1=7'B1000110;
4'B1101:L1=7'B0100001;
4'B1110:L1=7'B0000110;
4'B1111:L1=7'B0001110;
endcase
end
always@ (Q[4],Q[5],Q[6],Q[7])
begin
case ({Q[7],Q[6],Q[5],Q[4]})
4'B0000:L2=7'B1000000;
4'B0001:L2=7'B1111001;
4'B0010:L2=7'B0100100;
4'B0011:L2=7'B0110000;
4'B0100:L2=7'B0011001;
4'B0101:L2=7'B0010010;
4'B0110:L2=7'B0000010;
4'B0111:L2=7'B1111000;
4'B1000:L2=7'B0000000;
4'B1001:L2=7'B0010000;
4'B1010:L2=7'B0001000;
4'B1011:L2=7'B0000011;
4'B1100:L2=7'B1000110;
4'B1101:L2=7'B0100001;
4'B1110:L2=7'B0000110;
4'B1111:L2=7'B0001110;
endcase
end
.......
3 调试过程
在编程代码和编译过程经常出现问题,尤其是always@(*)语句上经常出错,以及在下载到硬件仿真的时候LED数码管没有反应,在向老师求助答疑后加入了些组合逻辑模块,修改过后的程序能正常编译,之后将程序下载到硬件中,打开开关检查路程计算能正常运行,路程计费计算功能正常,可以达到验收标准。
4 功能测试
4.1 测试仪器与设备
计算机一台
EDA实训仪
4.2 性能指标测试
打开开关后输入脉冲可产生路程计算,随着路程的递增费用也按要求递增,按下按键后数据可清零,也可以通过按下按键自行增加路程。
仿真波形图(部分模块)
需要全部资料可在我的资源里下载,包括程序文档、源程序。
需要完整的资料可在我的资源里下载,也可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。
纷传 点击用微信打开即可,过程有点繁琐请见谅
EDA程序设计--出租车计费器相关推荐
- 设计题目:基于CPLD/FPGA的出租车计费器
一.设计任务及要求: 本设计要求设计一个基于CPLD/FBGA的出租车计费器,其具体要求如下: 1 能够实现计费功能 费用是按行驶的里程进行 计算的,设出租车的起价是6.0元,当里程小于3km时,按 ...
- 基于FPGA的数码管显示出租车计费器
基于FPGA简易出租车计价器设计技术规范 专业:集成电路设计与集成系统 班级:电路1401班 姓名:童峥 学号:05146034 一. 功能描述: 本设计基于FPGA设计并使用Verilog HDL硬 ...
- 单片机c语言出租车计时程序,基于单片机的出租车计费(c语言).doc
基于单片机的出租车计费(c语言) 基于单片机的出租车计费(c语言) 基于proteus仿真 一.设计要求: 1.用实现出租车计费器的设计. 出租车起步开始计程和计费,计程系统按实际公里数计程,计费系统 ...
- 出租车收费题目及答案c语言,《基于单片机的出租车计费(c语言)》.doc
基于单片机的出租车计费(c语言)基于proteus仿真 一.设计要求: 1.用实现出租车计费器的设计. 出租车起步开始计程和计费,计程系统按实际公里数计程,计费系统首先显示起步价(如.0),车行驶2k ...
- taxi计费器c语言程序,毕业论文:出租车计费系统(全文完整版)
<毕业论文:出租车计费系统.doc>由会员分享,可免费在线阅读全文,更多与<毕业论文:出租车计费系统>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索. ...
- python 北京出租车收费3.45_北京出租车计费标准和价目表
北京出租车计费标准和价目表 2008-03-17 09:20 北京出租车的价目表是这样的: 1 .每公里 2 元,基价为 3 公里,起价 10 元: 2 .单程 15 公里以上的部分加收 50% 空驶 ...
- Java出租车计费问题
Java出租车计费问题,一个简单小程序助你学会流程控制 出租车问题 出租车计费标准(表1) 任务实施 实现功能 出租车问题 某市出租车计费标准如表1所示. 请根据此标准完成一个出租车计费模拟功能. 能 ...
- python出租车计费_python的基础程序——判断语句(以出租车计费为例)
判断语句用于检测某个条件是否成立.如果成立,则执行判断语句内的程序:否则,跳过判断语句,执行后面的内容.(判断语句分为三类if,else,switch.但python编程语言中一般没有switch). ...
- python出租车计费_关于使用Python——写出租车计费系统
要求: #出租车计费************************************************************************************** # 要 ...
- 计算机应用软件系统修改记录,[计算机软件及应用]修改记录_多路计费器.doc
[计算机软件及应用]修改记录_多路计费器 修改记录_多路计费器 记录要求: 请各相关工程师配合将测试问题反馈或修改建议和问题反馈的修改答复,按时间顺序记录在本文档中,以配合本项目运行. 各工程师也可将 ...
最新文章
- Visual SLAM
- :before和::before的区别
- 用python 爬取百度百科内容-爬虫实战(一) 用Python爬取百度百科
- Matlab mean() mean2() std() 函数的使用
- Spring Cloud Alibaba基础教程:Nacos 生产级版本 0.8.0
- pytorh 激活函数,循环神经网络层,损失函数和优化器
- linux中挂载系统光盘,在Linux系统下挂载光盘
- 雅虎年底升级IPv6标准 100万用户恐受影响
- Nutanix企业云助力嘉里大通提升核心竞争力
- [C++] C++ Primer 笔记
- 查询SQLServer 服务器,执行过的SQL语句耗时!
- 高质免费图片素材网站
- 关于双层原子台阶的形成机制
- iOS性能优化-列表卡顿
- c语言投票系统程序,C语言智能投票系统.doc
- 当你感觉为时已晚的时候,恰恰是最早的时候。
- 如何添加xp操作系统的打印服务器,xp系统添加局域网打印机的简单方法
- 所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。
- java通过API给企业微信用户发送微信消息
- 电脑进不去游戏显示重新连接服务器,幻塔无法连接服务器怎么办?游戏进不去解决方法...
热门文章
- IOS+Android 车牌识别SDK开发包——可以各种角度瞬间OCR识别车牌牌号
- origin三维散点图_Origin 9按类别绘制散点图的方法
- 虚拟机VMware 15安装教程
- 三款MikroTik家用和小型办公网路由器
- 全国大学生计算机创新创意大赛,全国大学生先进成图技术与产品信息建模创新大赛...
- [原创] 适合新手的转手绘教程[ JJ ]
- TCP粘包和拆包问题
- python科赫雪花代码的意思_python函数和代码复用——迭代练习:科赫雪花绘制
- 六自由度机械臂SolidWorks模型转化成urdf文件,添加简单gazebo属性并修改为xacro
- 初级java程序员要求_java初级程序猿需要具备的能力?