1、 目录目录 第 1 章总体设计思路.1 1.1 系统总体结构 1 1.2 各模块设计功能及设计思路.2 第二章 各模块功能 .3 2.1 jifei 模块 3 2.2 x 模块 .6 2.3 sel 模块 . 10 2.4 xxx1 模块 12 2.5 di 模块 . 14 2.6 div 模块 . 15 2.7 decode3_8 模块 . 17 第 3 章 总体电路图 . 18 3.1、模块连接: . 18 3.2、硬件连接: . 19 3.3、结果分析: . 19 第 4 章 硬件实现 22 第 5 章 总结 . 23 第 6 章 参考文献 24 1 第第 1 章章总体总体设计设计思路思
2、路 1.11.1 系统总体结构系统总体结构 图 1.1 系统总体框图 出租车计费器的组成如上图所示, 各部分主要功能包括输入 信号模块对车轮传感器传送的脉冲信号进行计数, 并以高低脉冲 模拟出租汽车启动, 停止, 暂停, 速度按钮, 具有输入信号作用; 数据转换器模块将计费模块输出的车费和路程转换成 4 位的十 进制数据;译码/动态扫描模块将路程与费用的数值译码后用动 态扫描的方式驱动数码管; 数码管显示模块将公里数和计费金额 均用 4 位 LED 数码管显示 。 动态扫描/译码/数码管显示模块 片选信号 产生模块 数据转换 模块 数码管 控制模块 信号输入模块 2 1.2 1.2 各模块设计
3、功能及设计思路各模块设计功能及设计思路 信号输入模块 实现计费功能和现场模拟功能。 计费标准为: 按行驶里程 计费,起步价为7.00元,并在车行3 km后按2.20元km计费, 当计费器达到或超过20元时, 每公里加收50的车费, 车停止 不计费。并以高低脉冲模拟出租汽车启动、停止、暂停、速度 按钮,具有输入信号的作用。 数据转换模块 数据转换模块是一个模为 10 的加法计数器,可将计费模 块输出的车费和路程转换成 4 位的十进制数。 显示模块 显示模块是由七段 LED 数码管译码和动态扫描显示两部 分组成。 采用的是共阴极七段数码管, 根据十六进制数和七段 显示段码表的对应关系, 其中要求路
4、程和车费都要用 2 位小数 点来表示,所以须设置一个控制小数点的变量,即程序中的 dp。 这段程序所示的是在数码管的第二、 第六个后面显示小数 点, 实现了路程和车费都用 2 位小数点表示的功能。 数码管控 制及译码显示模块将十进制的输入信号用七段数码管显示, 由 七段发光二极管组成数码显示器, 利用字段的不同组合。 可分 别显示 09 十个数字。片选信号产生模块片选信号产生模块 是对数码管进行片选并让其能够按照要求显示数据的模块 3 第二章第二章 各模块功能各模块功能 2.1 2.1 jifeijifei 模块模块 此模块为计费模块(即总体结构中的信号输入模块) ,实现 计费功能,计费标准为
5、:按行驶里程计费,起步价为7.00元, 并在车行3公里后按2.20元/km计费,当计数器达到或超过20元 时,每公里加收50%的车费,即按3.30元/km计费。CLK、START、 STOP、PAUSE、speed为输入信号,分别代表汽车的起动、停止、 暂停和速度,CLK为扫描时钟,硬件实现时加入时钟信号,另有 两个输出,即MONEY和RUN,分别代表车费和路程,当车处于行 驶状态时,此模块会自动记录下路程与车费状况并作为转换模 块的输入。 jifei模块源程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsi
6、gned.all; entity jfmk is port(clk,start,stop,pause,speed:in std_logic; money,run:out integer range 0 to 8000); end jfmk; architecture one of jfmk is begin process(clk,start,stop,pause,speed) 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; begin if(clkevent and clk=1)then if(stop=0) then chf:=0; num:=0; b:=1; aa:=0; 4 lc:=0; elsif(start=0) then b:=0; chf:=700; lc:=0; elsif(start=1 and speed=