EDA课程设计出租车计费器的设计Word文档格式.docx

上传人:b****6 文档编号:20303325 上传时间:2023-01-21 格式:DOCX 页数:16 大小:136.65KB
下载 相关 举报
EDA课程设计出租车计费器的设计Word文档格式.docx_第1页
第1页 / 共16页
EDA课程设计出租车计费器的设计Word文档格式.docx_第2页
第2页 / 共16页
EDA课程设计出租车计费器的设计Word文档格式.docx_第3页
第3页 / 共16页
EDA课程设计出租车计费器的设计Word文档格式.docx_第4页
第4页 / 共16页
EDA课程设计出租车计费器的设计Word文档格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

EDA课程设计出租车计费器的设计Word文档格式.docx

《EDA课程设计出租车计费器的设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《EDA课程设计出租车计费器的设计Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。

EDA课程设计出租车计费器的设计Word文档格式.docx

编程,上机调试、修改程序

星期四:

上机调试、完善程序

星期五:

答辩

星期六-星期天:

撰写课程设计报告

附:

课程设计报告装订顺序:

封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。

正文的格式:

一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;

行距为22。

正文的内容:

一、课题的主要功能;

二、课题的功能模块的划分(要求画出模块图);

三、主要功能的实现;

四、系统调试与仿真;

五、总结与体会;

六、附件(所有程序的原代码,要求对程序写出必要的注释);

七、评分表。

一.系统的总体设计

1.1问题描述

出租车计费器一般都是按公里计费,通常是起步价xx元(xx元可以行走x公里),然后再是xx元/公里。

要完成一个出租车计费器,就要有两个计数单位,一个用来计公里,另外一个用来计费用。

通常在出租车的轮子上都有传感器,用来记录车轮转动的圈数,而车轮子的周长是固定的,所以知道了圈数自然也就知道了里程。

在这个实验中,就要模拟出租车计费器的工作过程,用直流电机模拟出租车轮子,通过传感器,可以得到电机每转一周输出一个脉冲波形。

(有条件的同学再完成:

显示用8个七段码管,前四个显示里程,后四个显示费用。

1.2设计思想

该出租车计费器按下开关S1后开始计费和计里程数,起步价是3元,准行1公里,以后1元/公里。

时钟输入为一个1KHz的系统时钟,直流电机模块每转一圈输出一个脉冲信号给CPU,另外用按键模块的S1来作为整个系统的复位按钮,每复位一次,计费器从头开始计费。

直流电机模块用来模拟出租车的车轮子,每转动一圈认为是行走1米,所以每旋转1000圈,认为车子前进1公里。

系统设计是需要检测电机的转动情况,每转1000圈,分频模块输出一个上升沿信号。

车费和里程数在一个8位7段数码管上显示,前4位显示里程,后4位显示费用。

1.3引脚分配

显示:

动态八位七段数码管模块

数码管端口名称

FPGA引脚

说明

7SEG-A

C8

显示内容控制

7SEG-B

C9

7SEG-C

C7

7SEG-D

C6

7SEG-E

D6

7SEG-F

D9

7SEG-G

D8

7SEG-DP

D7

7SEG-SEL0

A21

显示位置控制

7SEG-SEL1

B21

7SEG-SEL2

A22

7SEG-SEL3

D5

7SEG-SEL4

C4

7SEG-SEL5

B22

7SEG-SEL6

A19

7SEG-SEL7

B19

时钟:

Clk

N1

直流电机脉冲输入:

pulse

AE13

一圈一个脉冲

复位按键

RST

J7

按键S1

二.出租车计费功能的实现

2.1系统的总体框图

该出租车计费系统由三个模块组成,分别是:

计费模块:

计算应付车费

计程模块:

计录已行里程

显示模块:

将应付车费和已行里程显示在数码管上

各模块之间的关系为:

2程序流程图

计算路程框图:

计算出租车计费框图:

2.3系统各功能模块的实现

计算距离模块:

REG:

PROCESS(s1,meter)

begin

ifs1='

1'

then

q1<

=0;

q2<

q3<

q4<

elsifmeter'

eventandmeter='

then--clk'

eventandclk='

then

ifq4=9then

q4<

ifq3=9then

q3<

ifq2=9then

q2<

q1<

=q1+1;

else

=q2+1;

endif;

else

=q3+1;

endif;

else

=q4+1;

endif;

endif;

--endif;

endprocessREG;

计费距离模块:

COM:

process(q1)

ifq1<

7then

a4<

=q1+3;

elseifq1=7then

a4<

ifa3=9then

a3<

ifa2=9then

a2<

a1<

=a1+1;

=a2+1;

else

=a3+1;

elseifq1=8then

a4<

=1;

ifa3=9then

a3<

ifa2=9then

a2<

a1<

a2<

elseifq1=9then

a4<

=2;

ifa3=9then

a3<

ifa2=9then

a2<

a1<

else

endif;

endif;

endprocessCOM;

CAM:

process(clk)

ifclk'

cout<

=cout+1;

endif;

endprocessCAM;

pra:

process(cout)

begin

casecoutis

when"

000"

=>

wx<

="

10000000"

;

shuju<

=q1;

001"

01000000"

=q2;

010"

00100000"

=q3;

011"

00010000"

=q4;

100"

00001000"

=a1;

101"

00000100"

=a2;

110"

00000010"

=a3;

111"

00000001"

=a4;

endcase;

endprocesspra;

process(shuju)

caseshujuis

when0=>

duan<

0111111"

--0

when1=>

0000110"

--1

when2=>

1011011"

--2

when3=>

1001111"

--3

when4=>

1100110"

--4

when5=>

1101101"

--5

when6=>

1111101"

--6

when7=>

0000111"

--7

when8=>

1111111"

--8

when9=>

1101111"

--9

whenothers=>

null;

endcase;

endprocess;

四.调试与仿真

在调试过程中,出现了很多的问题,在编译时出现同时赋值的现象:

图4同时赋值现象

在程序使用软件仿真时,出现了问题;

开始使用10进制数进行仿真时由于在计费时,开始不适应复位信号,就会出现几公里几块钱,一但经过复位之后程序使用就正常了,这是有与我在使用时没有复位时,不给初值一样,后来经过修改之后就正常了。

图5计费仿真

图6距离仿真

图7出租车计费仿真

五.总结与体会

通过这次紧张而又充实的EDA课程设计,我感受到了VHDL语言和普通软件语言之间的区别,也能够更加熟练地运用VHDL语言进行逻辑电路的设计了,受益匪浅。

在没有进行课程设计之前,我们的上机实践从来没有编写过规模如此的数字电路系统,最多就写写什么半加器,全加器之类的小型实体。

而这次课程设计要想实现课题要求的功能,必须将若干小型实体组合成一个相对大型的实体。

不仅如此,在写完程序后,还要把程序下载到芯片内,连接相应的电子器件,观察真正的效果。

所以,通过这次紧张的课程设计,我体会了从开始利用VHDL语言编程到把设想放到真正在电子器件上实现的全部过程,提高了自己从事工程项目设计的能力。

另外,在课程设计的过程,我碰到了很多棘手的难题,虽然也进行了苦思冥想,却还是得不到解决方法,有时也有想放弃的念头,不过终于还是坚持了下来,完成了任务,我意识到今后不管是在工作还是学习中,做工程项目都需要有忍耐力和坚持。

结果重要,过程更是我们学习的宝贵经验。

课程设计不仅是学习一门课,更可以锻炼我们的实践能力,动手操作能力,和解决问题的能力。

能够将课堂上所学的知识灵活、巧妙的运用到实践操作上是一次很好的体验,和机会。

不仅锻炼路我们的动手能力,而且加深了对课本的理解和弥补了课本上所不能涉及到的东西。

所以在对待每一次的课程设计时我都很认真,也终于通过自己的努力终于完成了此次的课程设计。

六.附件

程序源代码:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

ENTITYedaIS

PORT(clk:

INSTD_LOGIC;

--外部时钟输入口

meter:

--外部转圈信号输入,假定每个上升沿视为车轮转一圈

S1:

--外部按键输入复位信号,假定低电平表示按键被按下,高电平表示按键未按下

wx:

outstd_logic_vector(7downto0);

cost1,cost2,cost3,cost4:

outintegerrange0to9;

--输出计费值个位十位百味

dist1,dist2,dist3,dist4:

outintegerrange0to9);

--输出公里数小数点后一位,个位,十位

ENDentity;

architecturebehavofedais

signalq1,q2,q3,q4:

integerrange0to9;

--

signala1,a2,a3,a4:

signalcout:

STD_LOGIC_VECTOR(2DOWNTO0);

--signalwx:

std_logic_vector(7downto0);

signalshuju:

--控制路程和计费数据显示的位置

signalduan:

std_logic_vector(6downto0);

---控制数码管显示输出

begin

REG:

PROCESS(s1,meter)--计算路程

COM:

process(q1)--计算出租车计费

------------------------------------------------------------计费路程显示输出

CAM:

process(cout)--控制路程和计费输出位置

process(shuju)--数码管显示

dist1<

dist2<

dist3<

dist4<

cost1<

cost2<

cost3<

cost4<

endbehav;

七.评分表

计算机与通信学院课程设计评分表

课题名称:

数字系统与逻辑设计

项目

评价

设计方案的合理性与创造性

设计与调试结果

设计说明书的质量

答辩陈述与回答问题情况

课程设计周表现情况

综合成绩

教师签名:

日期:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1