taxi计费器c语言程序,出租车计价器VHDL程序与仿真
出租车计价器VHDL程序与仿真
--文件名:taxi.hd。
--功能:出租车计价器。
--最后修改日期:2004.4.9。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity taxi is
port ( clk_240 :in std_logic; --频率为240Hz的时钟
start :in std_logic; --计价使能信号
stop:in std_logic; --等待信号
fin:in std_logic; --公里脉冲信号
cha3,cha2,cha1,cha0:out std_logic_vector(3 downto 0); --费用数据
km1,km0:out std_logic_vector(3 downto 0); --公里数据
min1,min0: out std_logic_vector(3 downto 0)); --等待时间
end taxi;
architecture behav of taxi is
signal f_15,f_16,f_1:std_logic; --频率为15Hz,16Hz,1Hz的信号
signal q_15:integer range 0 to 15; --分频器
signal q_16:integer range 0 to 14; --分频器
signal q_1:integer range 0 to 239; --分频器
signal w:integer range 0 to 59; --秒计数器
signal c3,c2,c1,c0:std_logic_vector(3 downto 0); --制费用计数器
signal k1,k0:std_logic_vector(3 downto 0); --公里计数器
signal m1:std_logic_vector(2 downto 0); --分的十位计数器
signal m0:std_logic_vector(3 downto 0); --分的个位计数器
signal en1,en0,f:std_logic; --使能信号
begin
feipin:process(clk_240,start)
begin
if clk_240'event and clk_240='1' then
if start='0' then q_15<=0;q_16<=0;f_15<='0';f_16<='0';f_1<='0';f<='0';
else
if q_15=15 then q_15<=0;f_15<='1'; --此IF语句得到频率为15Hz的信号
else q_15<=q_15+1;f_15<='0';
end if;
if q_16=14 then q_16<=0;f_16<='1'; --此IF语句得到频率为16Hz的信号
else q_16<=q_16+1;f_16<='0';
end if;
if q_1=239 then q_1<=0;f_1<='1'; --此IF语句得到频率为1Hz的信号
else q_1<=q_1+1;f_1<='0';
end if;
if en1='1' then f<=f_15; --此IF语句得到计费脉冲f
elsif en0='1' then f<=f_16;
else f<='0';
end if;
end if;
end if;
end process;
process(f_1)
begin
if f_1'event and f_1='1' then
if start='0' then
w<=0;en1<='0';en0<='0';m1<="000";m0<="0000";k1<="0000";k0<="0000";
elsif stop='1' then
if w=59 then w<=0; --此IF语句完成等待计时
if m0="1001" then m0<="0000"; --此IF语句完成分计数
if m1<="101" then m1<="000";
else m1<=m1+1;
end if;
else m0<=m0+1;
end if;
if m1&m0>"0000001"then en1<='1'; --此IF语句得到en1使能信号
else en1<='0';
end if;
else w<=w+1;en1<='0';
end if;
elsif fin='1' then
if k0="1001" then k0<="0000"; --此IF语句完成公里脉冲计数
if k1="1001" then k1<="0000";
else k1<=k1+1;
end if;
else k0<=k0+1;
end if;
if k1&k0>"00000010" then en0<='1'; --此IF语句得到en0使能信号
else en0<='0';
end if;
else en1<='0';en0<='0';
end if;
cha3<=c3;cha2<=c2;cha1<=c1;cha0<=c0; --费用数据输出
km1<=k1;km0<=k0;min1<='0'&m1;min0<=m0; --公里数据、分钟数据输出
end if;
end process;
process(f,start)
begin
if start='0' then c3<="0000";c2<="0001";c1<="0000";c0<="0000";
elsif f'event and f='1' then
if c0="1001" then c0<="0000"; --此IF语句完成对费用的计数
if c1="1001" then c1<="0000";
if c2="1001" then c2<="0000";
if c3<="1001" then c3<="0000";
else c3<=c3+1;
end if;
else c2<=c2+1;
end if;
else c1<=c1+1;
end if;
else c0<=c0+1;
end if;
end if;
end process;
end behav;
程序仿真图
注:1. 仿真图中秒跟分的关系为3进制,即w为2时就归0;
2. 出租车总行驶5公里,等待累计时间为4分钟,总费用为16.2元。
出租计价器程序仿真全图
出租计价器程序仿真图-1
注:行驶公里数为4时,f得到16个计价脉冲数,计价器加16。既等效于加1.6元。
出租计价器程序仿真图-2
注:等待累计时间为3分钟时,f得到15个计价脉冲。计价器的数值增加15。即等效于加1.5元。
出租计价器程序仿真图-3
taxi计费器c语言程序,出租车计价器VHDL程序与仿真相关推荐
- taxi计费器c语言程序,毕业论文:出租车计费系统(全文完整版)
<毕业论文:出租车计费系统.doc>由会员分享,可免费在线阅读全文,更多与<毕业论文:出租车计费系统>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索. ...
- C语言程序设计打车付费问题,基于C语言的出租车计价器程序设计.doc
出 租 车 计 价 器 目 录 1 前言3 2 系统设计方案4 2.1 系统的设计需求4 2.2 系统的工作原理4 3 系统硬件设计5 3.1 单片机介绍7 3.2 硬件组成8 4 系统软件设计14 ...
- 基于51单片机的出租车计价器(程序+仿真+论文)
1.主要功能 设计要求 : ①.不同情况具有不同的收费标准. 白天,晚上,途中等待(>10min 开始收费): ②.能进行手动修改单价 : ③.具有数据的复位功能: ④.具有启动计时开关.白天/ ...
- VHDL程序的基本结构
一.VHDL语言基本结构如下: 库的引用 实体声明 结构体的声明 结构体的定义 配置: 以上实体声明和结构体是必须的,如果只使用标准库中的数据类型,则可不需要库的引用:如果只一个结构体,则配置不是必须 ...
- 单片机c语言出租车计时程序,基于单片机出租车计价器课题设计c语言编写(样例3)...
<基于单片机出租车计价器课题设计(c语言编写).doc>由会员分享,可免费在线阅读全文,更多与<基于单片机出租车计价器课题设计(c语言编写)>相关文档资源请在帮帮文库(www. ...
- 基于FPGA的数码管显示出租车计费器
基于FPGA简易出租车计价器设计技术规范 专业:集成电路设计与集成系统 班级:电路1401班 姓名:童峥 学号:05146034 一. 功能描述: 本设计基于FPGA设计并使用Verilog HDL硬 ...
- 【java毕业设计】基于java+Tomcat +Swing的出租车计价器设计与实现(毕业论文+程序源码)——出租车计价器
基于java+Tomcat +Swing的出租车计价器设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Tomcat +Swing的出租车计价器设计与实现,文章末尾附有本毕业设计的 ...
- 单片机里程计量设计c语言,基于单片机的出租车计价器的里程计算设计
社会发展的越快,人们的生活质量越好,从以前的走路.骑自行车,再到坐公交车地铁等,到了现在出门"打的",出租车已经成为人们出门的重要代步工具了.因此出租车计价器系统也显得尤为重要.计 ...
- 设计题目:基于CPLD/FPGA的出租车计费器
一.设计任务及要求: 本设计要求设计一个基于CPLD/FBGA的出租车计费器,其具体要求如下: 1 能够实现计费功能 费用是按行驶的里程进行 计算的,设出租车的起价是6.0元,当里程小于3km时,按 ...
- c语言抢答器程序,单片机六路抢答器C语言程序
<单片机六路抢答器C语言程序>由会员分享,可在线阅读,更多相关<单片机六路抢答器C语言程序(4页珍藏版)>请在人人文库网上搜索. 1.单片机六路数显计时抢答器c语言程序#inc ...
最新文章
- Ubuntu14搭建配置青岛大学OJ系统
- 一个简易实用的web权限管理模块的应用与实现
- jsonArray转换成List
- 揭秘 | 连续3年支撑双11,阿里云神龙如何扛住全球流量洪峰?
- [转]Angular2 使用管道Pipe以及自定义管道格式数据
- 王道 —— 操作系统的运行机制和体系结构
- 订单号生成的一些想法
- oracle会计事件,新的一年打开会计期发生错误
- 暴力破解sshd服务的密码的小技巧
- 将html对象转换成jq,2js对象与jq对象之间互转.html
- 深入浅出新一代云网络——VPC中的那些功能与基于OpenStack Neutron的实现(二)-带宽控制...
- tp5 点击刷新验证码
- C++优先级队列priority_queue详解及其模拟实现
- 【惨遭被裁】985毕业,依然过不好这一生
- 2020款苹果iPad Pro将搭载3D感应后置摄像头
- racle varchar,date互转,number,varchar互转
- React实现(Web端)网易云音乐项目(一),错过了真的可惜呀
- 微信小程序富文本插件mp-html
- error: non-ASM statement in naked function is not supported
- 使用winhex恢复U盘RAW格式并提示未格式化故障U盘上的数据