vdhl语言出租车计费器课程设计报告(共21页).doc
《vdhl语言出租车计费器课程设计报告(共21页).doc》由会员分享,可在线阅读,更多相关《vdhl语言出租车计费器课程设计报告(共21页).doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上电子技术课程设计出租车计费器的设计 学院:电子信息工程学院班级:姓名:学号:指导教师:日期:2009年12月08日出租车计费器设计一、 设计任务与要求设计并制作一台出租车计费系统,要求如下:1实现计费功能,计费标准为:按行程里程收费,起步价为700元,在车行3公里后再按22元/公里计费,当计费器达到或超过20元时,每公里加收50的车费。2实现模拟功能:能模拟汽车启动、停止、暂停、加速的状态3设计动态扫描电路,将车费和里程显示出来,各有两位小数。二、 总体框图(1) 系统总体结构输入信号模块片选信号产生模块数据转换模块动态描述/译码/数码管显示模块数码管控制电路出租车计
2、费器的组成如上图所示,各部分主要功能包括输入信号模块对车轮传感器传送的脉冲信号进行计数,并以高低脉冲模拟出租汽车启动,停止,暂停,加速按钮,具有输入信号作用;数据转换器模块将计费模块输出的车费和路程转换成4位的十进制数据;译码/动态扫描模块将路程与费用的数值译码后用动态扫描的方式驱动数码管;数码管显示模块将公里数和计费金额均用4位LED数码管显示 。(2)其流程图如下图所示:开始输入行车里程数xx0 and x3 and x=100)then a:=1; aa:=0; else a:=0; end if; if(lc300)then null; elsif(chf=2000 and a=1)t
3、hen chf:=chf+330; end if; end if; chefei=chf; luc=100则a:=1,aa:=0,否则a:=0,如果chf2000 and a=1则chf:=chf+330;以上各状态表示汽车在三公里以外车费在二十元以内的状态、车费在二十元以外的状态。结束进程,结束结构体。jifei模块的时序仿真图:时序仿真图分析: 图中的stop为汽车停止输入端,上升沿有效;start为汽车启动输入端,上升沿有效;pause为汽车暂停输入端,上升沿有效;js为汽车加速输入端,上升沿有效。CLK为时钟源信号;chefei为汽车车费输出端,luc为汽车路程输出端。由图可知:当st
4、op,Start,pause,js全为高电平时路程按5的速度增加,车费为700.当路程增加到300时,车费变为920,以后路程每增加100,车费增加220。模块生成图 : (2)x模块此模块为数据转换模块,功能是将计费模块产生的车费与路程的模拟量转换成数字量并输出,它是一个模为10的加法计数器,可将计费模块输出的车费和路程转换成4位的十进制数。其中DACLK为时钟信号,ASCORE、BSCORE连接计费模块的CHEFEI和LUC,输出为2个4位的十进制数,可以分别表示路程和车费情况。当车运行于不同状况时,此模块会将不同的车费与路程状况转换为数字量并输出。x模块的源程序:library ieee
5、;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity x is port(daclk:in std_logic; ascore,bscore:in integer range 0 to 8000; age,ashi,abai,aqian,bge,bshi,bbai,bqian:out std_logic_vector(3 downto 0);end x;architecture rt1 of x isbegin process(daclk,ascore) variable comb1:integer range
6、0 to 8000; variable comb1a,comb1b,comb1c,comb1d:std_logic_vector(3 downto 0); begin if (daclkevent and daclk=1)then if(comb1ascore)then if(comb1a=9 and comb1b=9 and comb1c=9)then comb1a:=0000; comb1b:=0000; comb1c:=0000; comb1d:=comb1d+1; comb1:=comb1+1; elsif(comb1a=9 and comb1b=9)then comb1a:=0000
7、; comb1b:=0000; comb1:=comb1+1; comb1c:=comb1c+1; elsif(comb1a=9)then comb1a:=0000; comb1b:=comb1b+1; comb1:=comb1+1; else comb1a:=comb1a+1; comb1:=comb1+1; end if; else ashi=comb1b; age=comb1a; abai=comb1c; aqian=comb1d; comb1:=0; comb1a:=0000; comb1b:=0000; comb1c:=0000; comb1d:=0000; end if; end
8、if; end process; process(daclk,bscore) variable comb2:integer range 0 to 8000; variable comb2a,comb2b,comb2c,comb2d:std_logic_vector(3 downto 0); begin if(daclkevent and daclk=1)then if(comb2bscore)then if(comb2a=9 and comb2b=9 and comb2c=9)then comb2a:=0000; comb2b:=0000; comb2c:=0000; comb2d:=comb
9、2d+1; comb2:=comb2+1; elsif(comb2a=9 and comb2b=9)then comb2a:=0000; comb2b:=0000; comb2:=comb2+1; comb2c:=comb2c+1; elsif(comb2a=9)then comb2a:=0000; comb2b:=comb2b+1; comb2:=comb2+1; else comb2a:=comb2a+1; comb2:=comb2+1; end if; else bshi=comb2b; bge=comb2a; bbai=comb2c; bqian=comb2d; comb2:=0; c
10、omb2a:=0000; comb2b:=0000; comb2c:=0000; comb2d:=0000; end if; end if; end process;end rt1;程序分析:首先打开ieee库,用use语句声明使用std_logic_1164和std_logic_unsigned程序包。定义实体,daclk、ascore、bscore为输入,age、ashi、abai、aqian、bge、bshi、bbai、bqian为输出位矢量。然后定义结构体,daclk、ascore、bscore为敏感信号,定义变量comb1a,comb1b,comb1c,comb1d为位矢量,变量co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vdhl 语言 出租车 计费 课程设计 报告 21
限制150内