基于EDA编程的出租车计价器报告.docx
- 文档编号:7380815
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:12
- 大小:60.51KB
基于EDA编程的出租车计价器报告.docx
《基于EDA编程的出租车计价器报告.docx》由会员分享,可在线阅读,更多相关《基于EDA编程的出租车计价器报告.docx(12页珍藏版)》请在冰豆网上搜索。
基于EDA编程的出租车计价器报告
目录
1课程设计目的1
2设计任务与要求2
2.1设计任务2
2.2设计要求2
3系统组成2
4模块设计3
4.1秒分频模块3
4.2控制模块3
4.3计量模块3
4.3.1计价部分3
4.3.2计时部分4
4.3.3计程部分4
4.4译码显示模块4
5程序调试运行4
5.1顶层原理图4
5.2仿真结果5
6硬件验证6
6.1引脚锁定6
6.2硬件验证情况7
7、课程设计总结7
7.1、收获7
7.2、心得体会8
参考文献9
附录10
出租车自动计价器的设计
1课程设计目的
为培养学生树立正确的设计思想和实事求是的工作作风,学习运用所学基础知识理论、专业知识、基本技能去分析和解决工程技术实际问题,提高学生的综合素质,使学生成为工程应用型合格人才,故进行《EDA技术及应用》的课程设计。
帮助学生全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。
2设计任务与要求
2.1设计任务
本课题要求设计车租车自动计价器,能基本实现自动计价的功能。
2.2设计要求
本出租车计价器的计费系统:
行程3公里内,且等待累计时间2分钟内,起步费为10元;3公里外以每公里1.6元计费,等待累计时间2分钟外以每分钟1.5元计费。
并能显示行驶公里数、等待累计时间、总费用。
设计的主要技术指标如下:
①、计价范围:
0~999.9元计价分辨率:
0.1元
②、计程范围:
0~99公里计程分辨率:
1公里
③、计时范围:
0~59分计时分辨率:
1分
3系统组成
出租车自动计价器的系统方框图如图1所示:
它有分频模块、控制模块、计时模块、计费模块及显示等模块组成。
显示
时钟信号
等待信号
公里脉冲
计费/复位
计程
图1.出租车自动计价器的系统方框图
4模块设计
4.1秒分频模块
秒分频模块对频率为240Hz的输入脉冲进行分频,得到的频率为16Hz,15Hz和1Hz的三种频率。
该模块产生频率信号用于计费,每个1HZ脉冲为0.1元计费控制,15HZ信号为1.5元的计费控制,16Hz信号为1.6元计费控制。
4.2控制模块
控制模块是系统的核心部分,对计价器的状态进行控制。
4.3计量模块
计量模块完成计价、计时、计程功能。
4.3.1计价部分
行程3公里内,且等待累计时间2分钟内,起步费为10元;3公里外以每公里1.6元计费,等待累计时间2分钟外以每分钟1.5元计费。
计费数据送入显示译码模块进行译码,最后送至以百元、十元、元、角为单位对应的数码管上显示。
4.3.2计时部分
计时部分用于计算乘客的等待累计时间。
计时器的量程为59分,满量程自动归零。
即时数据送入显示译码模块进行译码,最后送至以分为单位对应的数据管上显示。
4.3.3计程部分
计程部分用于计算乘客所行使的公里数。
计程器的量程为99公里,满量程自动归零。
计程数据送入显示译码模块进行译码,最后送至以公里为单位对应的数据管上显示。
4.4译码显示模块
译码显示模块完成计价、计时、计程数据显示。
该模块经过8选1选择器将计费数据(4位BCD码)、计时数据(2位BCD码)、计程数据(2位BCD码)动态选择输出。
其中计费数据送入显示译码模块进行译码,最后送至百元、十元、元、角为单位对应的数码管上显示,最大显示为999.9元;计时数据送入显示译码模块进行译码,最后送至分为单位对应的数码管上显示,最大显示为59秒;计程数据送入显示译码模块进行译码,最后送至以公里为单位的数码管上显示,最大显示为99公里。
5程序调试运行
5.1顶层原理图
图2出租车自动计价器的原理图
5.2仿真结果
图3出租车自动计价器的波形仿真
图中clk_240栏为黑阴影是因为时钟频率太大,周期太小。
6硬件验证
6.1引脚锁定
做硬件验证之前需要清楚实验板上各键与各信号的链接情况,参照资料得出本设计中各引脚的对应情况如下,本设计下载时选择模式0.
实验板位置信号通用目标器件引脚名目标器件EP10K10PLCC84引脚号
1、键8:
clk_240PIO716
2、键7:
startPIO611
3、键6:
stopPIO510
4、键5:
loadPIO109
5.数码管1min0PIO1930
PIO1829
PIO1728
PIO1627
6.数码管2min1PIO2338
PIO2237
PIO2136
PIO2035
7.数码管3km0PIO2749
PIO2648
PIO2547
PIO2439
8.数码管4km1PIO3153
PIO3052
PIO2951
PIO2850
9.数码管5cha0PIO3560
PIO3459
PIO3358
PIO3254
10.数码管6cha1PIO3965
PIO3864
PIO3762
PIO3661
11.数码管7cha2PIO4371
PIO4270
PIO4167
PIO4066
12.数码管8cha3PIO4779
PIO4678
PIO4573
PIO4472
6.2硬件验证情况
做好引脚锁定后,打开硬件箱的电源,数码管有正确的数字显示,链接硬件箱与计算机开始验证。
操作运行实验结果完全符合要求。
通过仿真验证表明,本文所设计的出租车计价器能够正常地显示行驶的里程数和乘客应付的费用,符合预定的计费标准和功能要求。
7、课程设计总结
7.1、收获
通过一个多星期的课程设计,从选题到查资料,从完善原理图到写报告文档,让我明白了课程设计是名副其实的综合性训练,不仅要运用学过的EDA技术及应用,数字电路、模拟电路以及电子技术实验等知识,还要学会查阅各种图书资料和工具书,并将新知识和所学的结合起来为自己所用。
在做整个课程设计的过程中,我进一步熟悉使用了max+plus2仿真软件,能较好的应用这个软件,不管是文本程序的编写还是在顶层原理图的设计都有所提高,还增强了动手能力。
应用软件的时候,要注意积累每次的体会和错误,下次碰到该注意的地方就要小心点,碰到出过错误的地方就要格外注意不要再犯同样的错误,这种方法应该适用做任何一件事吧。
在设计中遇到一些困难和问题,在向老师请教和与同学的讨论中,解决了问题,觉得很有收获。
7.2、心得体会
在整个课程设计的过程中让我意识到耐心、毅力和细心是做好一件事的必须品质。
在应用max+plus2软件的时候,有很多小细节是需要注意的,不然一不小心就会出现很多错误。
文本程序编辑的时候,保存要注意后缀名,保存文件名和实体名要一致,保存位置要是某个盘里的某个文件夹,这三个注意点特别重要,因为其中任何一点都会引发一系列的错误。
检查这三点无误后,然后再可以按照运行报告来对程序进行完善。
图形编辑中同样有很多需要注意的地方,以及怎样将文本和图形结合起来。
通过这次设计,我更好地掌握了这些基本技巧,学会了多学多练,也懂得了实践出真知。
参考文献
1.朱正伟主编,《EDA技术及应用》,清华大学出版社,2005
2.黄智伟等主编,《FPGA系统设计与实践》,电子工业出版社,2004
3.沈明山主编,《EDA技术及可编程器件应用实训》,科学出版社,2004
附录
出租车计价器源程序
libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_ARITH.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entitytaxiis
port(clk_240:
instd_logic;--频率为240Hz的时钟
start:
instd_logic;--计价使能信号
stop:
instd_logic;--等待信号
fin:
instd_logic;--公里脉冲信号
cha3,cha2,cha1,cha0:
outstd_logic_vector(3downto0);
--费用数据
km1,km0:
outstd_logic_vector(3downto0);--公里数据
min1,min0:
outstd_logic_vector(3downto0));--等待时间
endtaxi;
architecturebehavoftaxiis
signalf_15,f_16,f_1:
std_logic;--频率为15Hz,16Hz,1Hz的信号
signalq_15:
integerrange0to15;--分频器
signalq_16:
integerrange0to14;--分频器
signalq_1:
integerrange0to239;--分频器
signalw:
integerrange0to59;--秒计数器
signalc3,c2,c1,c0:
std_logic_vector(3downto0);--制费用计数器
signalk1,k0:
std_logic_vector(3downto0);--公里计数器
signalm1:
std_logic_vector(2downto0);--分的十位计数器signalm0:
std_logic_vector(3downto0);--分的个位计数器
signalen1,en0,f:
std_logic;--使能信号
begin
feipin:
process(clk_240,start)
begin
ifclk_240'eventandclk_240='1'then
ifstart='0'thenq_15<=0;q_16<=0;f_15<='0';f_16<='0';f_1<='0';f<='0';
else
ifq_15=15thenq_15<=0;f_15<='1';--此IF语句得到频率为15Hz的信号
elseq_15<=q_15+1;f_15<='0';
endif;
ifq_16=14thenq_16<=0;f_16<='1';--此IF语句得到频率为16Hz的信号
elseq_16<=q_16+1;f_16<='0';
endif;
ifq_1=239thenq_1<=0;f_1<='1';--此IF语句得到频率为1Hz的信号
elseq_1<=q_1+1;f_1<='0';
endif;
ifen1='1'thenf<=f_15;--此IF语句得到计费脉冲f
elsifen0='1'thenf<=f_16;
elsef<='0';
endif;
endif;
endif;
endprocess;
process(f_1)
begin
iff_1'eventandf_1='1'then
ifstart='0'then
w<=0;en1<='0';en0<='0';m1<="000";m0<="0000";k1<="0000";k0<="0000";
elsifstop='1'then
ifw=59thenw<=0;--此IF语句完成等待计时
ifm0="1001"thenm0<="0000";--此IF语句完成分计数
ifm1<="101"thenm1<="000";
elsem1<=m1+1;
endif;
elsem0<=m0+1;
endif;
ifm1&m0>"0000001"thenen1<='1';--此IF语句得到en1使能信号
elseen1<='0';
endif;
elsew<=w+1;en1<='0';
endif;
elsiffin='1'then
ifk0="1001"thenk0<="0000";--此IF语句完成公里脉冲计数
ifk1="1001"thenk1<="0000";
elsek1<=k1+1;
endif;
elsek0<=k0+1;
endif;
ifk1&k0>"00000010"thenen0<='1';--此IF语句得到en0使能信号
elseen0<='0';
endif;
elseen1<='0';en0<='0';
endif;
cha3<=c3;cha2<=c2;cha1<=c1;cha0<=c0;--费用数据输出
km1<=k1;km0<=k0;min1<='0'&m1;min0<=m0;--公里数据、分钟数据输出
endif;
endprocess;
process(f,start)
begin
ifstart='0'thenc3<="0000";c2<="0001";c1<="0000";c0<="0000";
elsiff'eventandf='1'then
ifc0="1001"thenc0<="0000";--此IF语句完成对费用的计数
ifc1="1001"thenc1<="0000";
ifc2="1001"thenc2<="0000";
ifc3<="1001"thenc3<="0000";
elsec3<=c3+1;
endif;
elsec2<=c2+1;
endif;
elsec1<=c1+1;
endif;
elsec0<=c0+1;
endif;
endif;
endprocess;
endbehav;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 EDA 编程 出租车 计价器 报告