基于CPLD的出租车计费器Word下载.docx
- 文档编号:22124495
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:13
- 大小:594.87KB
基于CPLD的出租车计费器Word下载.docx
《基于CPLD的出租车计费器Word下载.docx》由会员分享,可在线阅读,更多相关《基于CPLD的出租车计费器Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
能模拟汽车起动、停止、暂停以及加速等状态。
(3)按计动态扫描电路,将车费和路程显示出来,各有两位小数。
2、设计步骤
2.1信号输入
该模块主要实现计费功能和现场模拟功能。
计费标准为:
按行驶里程计费,起步价为5.00元,并在车行3
km后按1.4元/km计费,当计费器达到或超过20元时,每公里加收50%的车费,车停止不计费。
并以高低脉冲模拟出租汽车启动、停止、暂停、加速按钮,具有输入信号的作用。
2.2
数据转换
数据转换模块是一个模为10的加法计数器,可将计费模块输出的车费和路程转换成4位的十进制数。
2.3数据显示
显示模块是由七段LED数码管译码和动态扫描显示两部分组成。
采用的是共阴极七段数码管,根据十六进制数和七段显示段码表的对应关系,其中要求路程和车费都要用2位小数点来表示,所以须设置一个控制小数点的变量,即程序中的dp。
这段程序所示的是在数码管的第二、第六个后面显示小数点,实现了路程和车费都用2位小数点表示的功能。
数码管控制及译码显示模块将十进制的输入信号用七段数码管显示,由七段发光二极管组成数码显示器,利用字段的不同组合。
可分别显示0~9十个数字。
3、出租车计费系统的实现
3.1顶层电路设计
图1系统总体框图
3.2子模块设计
3.2.1taxi的实现
模块taxi见下图。
输入端口speedup,start,pause,stop分别为出租车计费器的加速、起动、暂停、停止按键。
实现计费功能,计费标准为:
按行驶里程计费,起步价为5.0元,并在车行3Km后按1.40元/Km计费,当计费器达到或超过20元时,每公里加收50%的车费,车停止不计费。
图2taix模块
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitydecoderis
port(clk20mhz:
instd_logic;
money_in:
inintegerrange0to8000;
distance_in:
scan:
outstd_logic_vector(7downto0);
seq7:
outstd_logic_vector(6downto0);
dp:
outstd_logic);
end;
architectureoneofdecoderis
signalclk1khz:
std_logic;
signaldata:
std_logic_vector(3downto0);
signalm_one,m_ten,m_hun,m_tho:
signald_one,d_ten,d_hun,d_tho:
variablenum:
integerrange0to9;
variabledis:
integerrange0to100;
variabled:
begin
ifstop='
1'
then
money_reg:
=0;
distance_reg:
dis:
num:
3.2.2decoder的实现
模块decoder见下图。
该模块把车费和路程转化为数码管可以显示的信号。
图3模块x
elsifstart='
0'
andspeedup="
10"
andpause='
andstop='
ifnum=9then
num:
distance_reg:
=distance_reg+5;
dis:
=dis+5;
elsenum:
=num+1;
endif;
elsifstart='
11"
distance_reg:
=distance_reg+1;
dis:
=dis+1;
endif;
ifdis>
=100then
d:
='
;
elsed:
ifdistance_reg>
=300then
ifmoney_reg<
2000andd='
money_reg:
=money_reg+140;
elsifmoney_reg>
=2000andd='
=money_reg+210;
endif;
money<
=money_reg;
distance<
=distance_reg;
endprocess;
3.2.3display的实现
模块display见下图。
经过该八选一模块把车费和路程显示出来。
每来一个选通地址,模块就把选到的那一位十进制输入值向后输出,同时在路程的百位和费用的十位显示小数点。
实现译码功能。
译码管片的选通信号,对输入脉冲进行计数。
图4模块display
process(clk1khz,m_one,m_ten,m_hun,m_tho,d_one,d_ten,d_hun,d_tho)
variablecnt:
std_logic_vector(2downto0);
ifclk1khz'
eventandclk1khz='
cnt:
=cnt+1;
casecntis
when"
000"
=>
data<
=m_one;
dp<
scan<
="
00000001"
001"
=m_ten;
00000010"
010"
=m_hun;
00000100"
011"
=m_tho;
00001000"
100"
=d_one;
00010000"
101"
=d_ten;
00100000"
110"
=d_hun;
01000000"
111"
=d_tho;
10000000"
endcase;
process(data)
casedatais
when"
0000"
seq7<
1111110"
0001"
0110000"
0010"
1101101"
0011"
1111001"
0100"
0110011"
0101"
1011011"
0110"
1011111"
0111"
1110000"
1000"
1111111"
1001"
1111011"
whenothers=>
0000000"
4、系统仿真
4.1开始信号的仿真结果
输入端口speedup,start,pause,stop分别为出租车计费器的加速、起动、暂停、停止按键。
输入:
clk,start,stop,pause,speedup;
输出:
money,distance;
图5开始仿真结果
4.2加速信号仿真结果
对控制模块taxi进行仿真,观察波形可知,当启动键(start)为一个脉冲时,表示汽车已启动,车费money显示起步价为5.00元,同时路程distance随着计费脉冲开始计数,当停止键(stop)为1时,表示汽车熄火,车费money和路程distance均为0;
当暂停键(pause)为1时,车费和路程停止计数;
当档位键分别取0、1、2时路程的计数逐步加快,表示车速逐步加快。
图6系统仿真结果
5、下载调试及实验结果
程序下载完后,按下启动键,车费显示起步价为5元。
图9加速仿真结果
当路程超过3公里后每公里多加1.4元,显示为6.4元。
图10加速仿真结果
6、设计心得
我们这次课程设计的题目是出租车计费器,拿到题目我就有点小激动,因为终于可以利用自己的所学做点与实际生活相关的东西了。
首先,我复习的一下VHDL程序设计的基本语法,然后开始熟悉QuartusⅡ的相关操作。
包括模块化的编译器。
编译器包括的功能模块有分析/综合器,适配器、装配器、时序分析器、设计辅助模块、EDA网表文件生成器、编辑数据接口等。
可以通过选择StartCompilation来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。
还可以通过选择CompilerTool,在CompilerTool窗口中运行该模块来启动编译器模块。
然后,我开始去图书馆找相关的图书,因为当我看了课程设计任务书之后,对于整个程序还是没有把握。
所以我希望能够找到相关的程序进行验证,然后修改以符合自己的课程设计的要求。
功夫不负有心人,我在图书馆借的几本书中就有和我们课题类似的程序模块。
所以,我就将书中的程序在QuartusII中运行了一遍。
可是,过程并没有我们想象的那么顺利。
我们发现加速功能无法实现,一旦开启加速,数码管就会出现乱码。
经过对源代码的一番修改,我们的乱码现象有了一些好转。
但是,也并没有完全达到要求。
经过在实验箱中的调试,我们终于找到了解决方案,即改变输入的时钟频率。
寻找到最合适的频率,就可以让系统达到显示要求。
通过这次课程设计,我分析问题,解决问题的能力有了一定的提高。
同时,对之前所学的知识也进行了巩固。
更重要的是,我发现之前学的很多基础知识是有用的。
一旦开始进行工程实践,这些知识将会发挥巨大的作用。
所以,我决定在今后的学习过程中重视基础知识的学习,在增强理论基础的同时,再动手进行工程实践。
同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。
老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;
这次设计的每个细节和每个数据,都离不开老师您的细心指导。
谢谢您!
!
参考文献
1.陈大钦主编,电子技术基础实验,高等教育出版社。
2.彭介华主编,电子技术课程设计指导,高等教育出版社。
3.张原编著,可编程逻辑器件设计及应用,机械工业出版社。
4.荀殿栋,徐志军编著,数字电路设计实用手册,电子工业出版社。
5.QUARTUSII入门
6.刘洪喜,陆颖编著.VHDL电路设计实用教程清华大学出版社。
电气信息学院课程设计评分标准
环节
项目
评价
优
良
中
及格
不及格
实践环节(70%)
1、设计方案合理性与创造性
2、编程完成情况
3、电路模块仿真调试结果*
4、硬件测试过程及结果*
5、解决问题能力及答辩情况
6、纪律和出勤情况
设计报告(30%)
1、设计报告内容完整、规范
2、设计步骤规范、正确
3、仿真调试结果正确、波形清晰
4、硬件测试过程规范、结果正确
综合评价
课程设计成绩评定为:
□优□良□中□及格□不及格
指导老师签名:
________________
日期:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 CPLD 出租车 计费