基于CPLD的出租车计费器

(25页)

'基于CPLD的出租车计费器'
第1章设计总框图 1第1节系统框图 1第2节 系统模块介绍 2第2章程序设计模块 31、 计费模块 32、 数据转换模块 63、 片选信号模块 114、 数码管控制显示模块 135、 显示模块 156、 数码管选择模块 17第3章、总体电路设计 181、 总体电路图 182、 仿真分析 19第4章、硬件实现 20第5章、设计心得体会 21参考文献 22第1章设计总框图第1节系统框图输入涪号模块数码管显示模块图1.1系统总框图出租车计费器的组成如上图1?1所示,各部分主要功能包括 输入信号模块对车轮传感器传送的脉冲信号进行计数,并以高低 脉冲模拟出租汽车启动,停止,暂停,加速按钮,具有输入信号 作用;数据转换器模块将计费模块输击的车费和路程转换成4位 的-I?进制数据;译码/动态扫描模块将路程与费用的数值译码后用 动态扫描的方式驱动数码管;数码管显示模块将公里数和计费金 额均用4位LED数码管显示。1、 信号输入模块该模块主要实现计费功能和现场模拟功能。计费标准为:按 行驶里程计费,起步价为11?00元,并在车行3 km后按4. 00元 /km计费,当计费器达到或超过20元时,每公里加收50%的车 费,车停止不计费。并以高低脉冲模拟出租汽车启动、停止、暂 、加速按钮,具有输入信号的作用。2、 数据转换模块数据转换模块是一个模为10的加法计数器,可将计费模块输 出的车费和路程转换成4位的十进制数。3、 显刀?模块显示模块是由七段LED数码管译码和动态扫描显示两部分组 成。采用的是共阴极七段数码管,根据十六进制数和七段显示段 码表的对应关系,其中要求路程和车费都要用2位小数点来表示, 所以须设置一个控制小数点的变量,即程序中的dpo这段程序所 示的是在数码管的第二、第六个后面显示小数点,实现了路程和 车费都用2位小数点表示的功能。数码管控制及译码显示模块将 十进制的输入信号用七段数码管显示,由七段发光二极管组成数 码显示器,利用字段的不同组合。可分别显示0?9十个数字。4、 片选信号模块片选信号产生模块是对数码管进行片选并让其能够按照要求 显示数据的模块。第2章程序设计模块1、计费模块此jifei模块为计费模块(即总体结构中的信号输入模块), 实现计费功能,计费标准为:按行驶里程计费,起步价为11?00 元,并在车行3公里后按4?00元/km计费,当计数器达到或超过 20元时,每公里加收50%的车费,即按6. 00元/km计费oCLK.START> STOP、PAUSE、JS为输入信号,分别代表汽车的起动、停止、暂停 和加速,CLK为扫描时钟,硕件实现时加入时钟信号,另有两个输 出,即CHEFE1和LUC,分别代表车费和路程,当车处于行驶状态 时,此模块会自动记录下路程与车费状况并作为转换模块的输入。 jifei模块程序:library ieee;use ieee?std logic 1164. all;use ieee.std_logic_unsigned, all;entity jifei isport (elk, start, stop, pause, js:in std_logic;chefei,luc:out integer range 0 to 8000);end jifei;architecture one of jifei isbeginprocess (elk, start, stop, pause, js)variable a, b:std_logic;variable aa:integer range 0 to 100;variable chf,lc:integer range 0 to 8000;variable num:integer range 0 to 9;beginif (elk'event and elk二'1') thenif (stop 二'O') thenchf:=0;num:=0;b:二T';aa:=0;lc:=0;elsif (start二'O') thenb:二'O';chf:=1100;lc:=O;elsif (start二'1' and js=,1' and pause二'1') then if (b二'O') thennum:=num+l;end if;if (num=9)thenlc:=lc+5;num:二0;aa:=aa+5;end if;elsif (start 二'1' and js 二'O' and pause 二'1') then lc:=lc+l;aa:=aa+1;end if;if (aa>=100)thena:=, r;aa:=0;elsea:二'O';end if;if (lc<300)thennull;elsif (chf<2000 and a二T') thenchf:二chf+400;elsif (chf>=2000 and a=,T)thenchf:=chf+600;end if;end if;chefei <=chf;luc<=lc;end process;end one;程序分析:首先打开ieee库,用use语句声明使用 std_logic_1164 和 std_logic_unsigned程序包°clk、start、stop、 pause> js为敏感信号,定义a, b为中间变量,变量aa、num^ chf 为位矢量。当时钟上升沿到来时,如果STOP二'0'则chf:二0, num:二 0, b: = l, aa:=0, lc:=0, 如 果 stop二'1' 且 start二'0' 则chf : = 1100, lc:=0, stop二i ; 如]果 stop=,T and start二'l'and js二'r and pause二'1'且 b二'O'贝ij num:=num+l ;女口果 stop二'1' and start二'1' and js- 1' and pause二'1'且num=9 贝9 lc:=lc+l ;num:=0, aa: =aa+1 o 如I果 stop二'1' and start二'1' and js二'O' and pause二'1' 则lc:=lc+l;aa:=aa+l;以上各状态分别代表汽车的停止、启动、 加速、暂停。如果aa>=100则a:二'1' , aa:=0,否则a:=,0",如果 chf<2000 且 a= T 则 chf:二chf+400;如果 chf>2000 and a= V 则chf:二chf+600;以上各状态表示汽车在三公里以外车费在二十 元以内的状态、车费在二十元以外的状态。结束进程,结束结构 体。Jifei模块的时序仿真图如下图2. 1. 1和图2. 1. 2:图 2. 1. 1
关 键 词:
基于 CPLD 出租车 计费
 剑锋文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:基于CPLD的出租车计费器
链接地址: //www.wenku365.com/p-43768013.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给剑锋文库发消息,QQ:1290478887 - 联系我们

本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。本站是网络服务平台方,若您的权利被侵害,侵权客服QQ:1290478887 欢迎举报。

1290478887@qq.com 2017-2027 //www.wenku365.com 网站版权所有

粤ICP备19057495号 

收起
展开