文档详情

基于CPLD出租车计费器的课程设计.doc

发布:2025-05-17约1.92万字共32页下载文档
文本预览下载声明

目录

TOC\o1-3\h\z\u一.总体设计思路 1

1.设计目的 1

2.系统原理框图 1

二.功能模块设计 2

1.计费模块 2

2.数据转换模块 2

3.片选信号产生模块 3

4.显示模块 3

5.数码管控制模块 4

6.分频模块 4

7.数码管选择模块 4

三.各个模块设计及仿真 5

1.计费模块 5

2.数据转换模块 8

3.片选信号产生模块 11

4.显示模块 12

5.数码管控制模块 14

6.分频模块 15

7.数码管选择模块 17

四.总体设计电路图 18

五.硬件实现 19

六.心得体会 21

七.程序清单 22

八.参考文献 32

一.总体设计思路

1.设计目的

随着EDA技术的高速发展,电子系统的设计技术发生了深刻的变化,大规模可编程逻辑器件COLD/FPGA的出现,给设计人员带来了诸多方便,利用它进行产品开发,不仅成本低,周期、可靠性高,而且具有完全的知识产权。随着社会的不断进步,人们生活水平的不断提高,出租车逐渐成为人们日常生活不可缺少的交通工具。而计价器作为出租车的一个重要组成部分,关系着出租车司机和乘客双方利益,起着重要的作用,因而出租车司机和乘客双方利益,起着重要的作用,因而出租车计价器的发展非常迅猛。

2.系统原理框图

基于CPLD的出租车计费器的组成如图1所示。各部分主要功能包括:信号输入模块对车轮传感器的脉冲信号进行计数,并以高低电平模拟出租车启动、停止、暂停、加速按钮,具有输入信号作用;数据转换模块将计费模块输出的车费和路程换成4位的十进制数据;译码/动态扫描模块将路程与费用的数值译码后用动态扫描的方式驱动数码管;数码管显示模块将公里和计费金额用4位LED数码管显示。

图1.1系统总体框图

二.功能模块设计

1.计费模块

此模块为计费模块(即总体结构中的信号输入模块),实现计费功能,计费标准为:按行驶里程计费,起步价为7.00元,并在车行3公里后按2.20元/km计费,当计数器达到或超过20元时,每公里加收50%的车费,即按3.30元/km计费。CLK、START、STOP、PAUSE、JS为输入信号,分别代表汽车的起动、停止、暂停和加速,CLK为扫描时钟,硬件实现时加入时钟信号,另有两个输出,即CHEFEI和LUC,分别代表车费和路程,当车处于行驶状态时,此模块会自动记录下路程与车费状况并作为转换模块的输入。其模块生成图如下:

图2.1计费模块

2.数据转换模块

此模块功能是将计费模块产生的车费与路程的模拟量转换成数字量并输出,它是一个模为10的加法计数器,可将计费模块输出的车费和路程转换成4位的十进制数。其中DACLK为时钟信号,ASCORE、BSCORE连接计费模块的CHEFEI和LUC,输出为2个4位的十进制数,可以分别表示路程和车费情况。当车运行于不同状况时,此模块会将不同的车费与路程状况转换为数字量并输出。其模块生成图如下:

图2.2数据转换模块

3.片选信号产生模块

此模块功能是选择八段数码管按照设计要求进行正确的显示。

其模块生成图如下:

图2.3片选信号产生模块

4.显示模块

此模块为显示模块中的动态扫描/译码/数码管显示模块,功能是将已转换好的数字量加载到两个4位七段数码管上并加以显示。C[2..0]为片选端,用来连接片选模块的片选输出端A[2..0],A1、A2、A3、A4、B1、B2、B3、B4分别连接数据转换模块的八个转换输出端,因为设计要求路程和车费都要用2位小数点来表示,所以须设置一个控制小数点的变量,即程序中的DP端,D[3..0]连接数码管控制模块的输入端。

其模块生成图如下:

图2.4显示模块

5.数码管控制模块

此模块功能是控制七段数码管对转换后的数字量进行显示,使其完成路程和车费的显示。其中D[3..0]连接动态扫描/译码/数码管显示模块的D[3..0]端,Q[6..0]连接七段数码管,利用其控制特性在数码管上显示出车费和路程。

其模块生成图如下:

图2.5数码管控制模块

6.分频模块

div模块将实验箱上50Mhz脉冲信号分频为500hz。

div生成模块图:

图2.6分频模块

7.数码管选择模块

sel通过decode3_8模块选择数码管

decode3_8生成模块图:

图2.7数码管选择模块

三.各个模块设计及仿真

1.计费模块

计费模块源程序:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entity

显示全部
相似文档