出租车计价器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程序与仿真相关推荐

  1. taxi计费器c语言程序,毕业论文:出租车计费系统(全文完整版)

    <毕业论文:出租车计费系统.doc>由会员分享,可免费在线阅读全文,更多与<毕业论文:出租车计费系统>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索. ...

  2. C语言程序设计打车付费问题,基于C语言的出租车计价器程序设计.doc

    出 租 车 计 价 器 目 录 1 前言3 2 系统设计方案4 2.1 系统的设计需求4 2.2 系统的工作原理4 3 系统硬件设计5 3.1 单片机介绍7 3.2 硬件组成8 4 系统软件设计14 ...

  3. 基于51单片机的出租车计价器(程序+仿真+论文)

    1.主要功能 设计要求 : ①.不同情况具有不同的收费标准. 白天,晚上,途中等待(>10min 开始收费): ②.能进行手动修改单价 : ③.具有数据的复位功能: ④.具有启动计时开关.白天/ ...

  4. VHDL程序的基本结构

    一.VHDL语言基本结构如下: 库的引用 实体声明 结构体的声明 结构体的定义 配置: 以上实体声明和结构体是必须的,如果只使用标准库中的数据类型,则可不需要库的引用:如果只一个结构体,则配置不是必须 ...

  5. 单片机c语言出租车计时程序,基于单片机出租车计价器课题设计c语言编写(样例3)...

    <基于单片机出租车计价器课题设计(c语言编写).doc>由会员分享,可免费在线阅读全文,更多与<基于单片机出租车计价器课题设计(c语言编写)>相关文档资源请在帮帮文库(www. ...

  6. 基于FPGA的数码管显示出租车计费器

    基于FPGA简易出租车计价器设计技术规范 专业:集成电路设计与集成系统 班级:电路1401班 姓名:童峥 学号:05146034 一. 功能描述: 本设计基于FPGA设计并使用Verilog HDL硬 ...

  7. 【java毕业设计】基于java+Tomcat +Swing的出租车计价器设计与实现(毕业论文+程序源码)——出租车计价器

    基于java+Tomcat +Swing的出租车计价器设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Tomcat +Swing的出租车计价器设计与实现,文章末尾附有本毕业设计的 ...

  8. 单片机里程计量设计c语言,基于单片机的出租车计价器的里程计算设计

    社会发展的越快,人们的生活质量越好,从以前的走路.骑自行车,再到坐公交车地铁等,到了现在出门"打的",出租车已经成为人们出门的重要代步工具了.因此出租车计价器系统也显得尤为重要.计 ...

  9. 设计题目:基于CPLD/FPGA的出租车计费器

    一.设计任务及要求: 本设计要求设计一个基于CPLD/FBGA的出租车计费器,其具体要求如下: 1  能够实现计费功能 费用是按行驶的里程进行 计算的,设出租车的起价是6.0元,当里程小于3km时,按 ...

  10. c语言抢答器程序,单片机六路抢答器C语言程序

    <单片机六路抢答器C语言程序>由会员分享,可在线阅读,更多相关<单片机六路抢答器C语言程序(4页珍藏版)>请在人人文库网上搜索. 1.单片机六路数显计时抢答器c语言程序#inc ...

最新文章

  1. Ubuntu14搭建配置青岛大学OJ系统
  2. 一个简易实用的web权限管理模块的应用与实现
  3. jsonArray转换成List
  4. 揭秘 | 连续3年支撑双11,阿里云神龙如何扛住全球流量洪峰?
  5. [转]Angular2 使用管道Pipe以及自定义管道格式数据
  6. 王道 —— 操作系统的运行机制和体系结构
  7. 订单号生成的一些想法
  8. oracle会计事件,新的一年打开会计期发生错误
  9. 暴力破解sshd服务的密码的小技巧
  10. 将html对象转换成jq,2js对象与jq对象之间互转.html
  11. 深入浅出新一代云网络——VPC中的那些功能与基于OpenStack Neutron的实现(二)-带宽控制...
  12. tp5 点击刷新验证码
  13. C++优先级队列priority_queue详解及其模拟实现
  14. 【惨遭被裁】985毕业,依然过不好这一生
  15. 2020款苹果iPad Pro将搭载3D感应后置摄像头
  16. racle varchar,date互转,number,varchar互转
  17. React实现(Web端)网易云音乐项目(一),错过了真的可惜呀
  18. 微信小程序富文本插件mp-html
  19. error: non-ASM statement in naked function is not supported
  20. 使用winhex恢复U盘RAW格式并提示未格式化故障U盘上的数据

热门文章

  1. R 和 Python用于统计学分析,哪个更好?
  2. 华为手机克隆无法迁移联系人_华为手机克隆软件使用问题及解决办法
  3. 电工入门基础知识问答,入门电工学习宝典系列
  4. java调用 火眼臻睛,火眼臻睛车牌识别SDK评测
  5. Python给gif图片加文字水印
  6. 微信小程序--瀑布流
  7. 08python 主函数调用子函数
  8. php程序的完整路径和文件名,php从完整文件路径中分离文件目录和文件名的方法...
  9. 推荐一个清理自己电脑磁盘的磁盘容量图形化软件--WinDirStat
  10. Vue创建项目的详细步骤