ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:136.63KB ,
资源ID:12608573      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12608573.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(EDA课程设计出租车计费器的设计.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

EDA课程设计出租车计费器的设计.docx

1、EDA课程设计出租车计费器的设计课 程 设 计 报 告课程名称 数字系统与逻辑设计 课题名称 出租车计费器的设计 专 业 班 级 学 号 姓 名 指导教师 2013年 7月 7日湖南工程学院课 程 设 计 任 务 书课程名称 数字系统与逻辑设计 课 题 出租车计费器的设计 专业班级 学生姓名 学 号 指导老师 乔汇东 胡瑛 谭小兰 审 批 乔汇东 任务书下达日期 2013 年 6月 29日任务完成日期 2013 年 7月 7日数字系统与逻辑设计课程设计任务书一 、设计目的全面熟悉、掌握VHDL语言基本知识,掌握利用VHDL语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉

2、编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。 二、设计要求1、设计正确,方案合理。2、程序精炼,结构清晰。3、设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。4、上机演示。5、有详细的文档。文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。 三、进度安排第十九周 星期一: 课题讲解,查阅资料 星期二: 总体设计,详细设计星期三: 编程,上机调试、修改程序星期四: 上机调试、完善程序星期五: 答辩星期六-星期天:撰写课程设计报告附:课程设计报告装订顺序:封面、

3、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现;四、系统调试与仿真;五、总结与体会;六、附件(所有程序的原代码,要求对程序写出必要的注释);七、评分表。一. 系统的总体设计 11.1 问题描述 11.2 设计思想 11.3 引脚分配 1二出租车计费功能的实现 22.1 系统的总体框图 22.2 程序流程图 32.3 系统各功能模块的实现 4四. 调试与仿真 8五. 总结与体会 9六. 附件 10七.

4、评分表 15一. 系统的总体设计1.1 问题描述出租车计费器一般都是按公里计费,通常是起步价xx 元(xx 元可以行走x公里),然后再是xx 元/公里。要完成一个出租车计费器,就要有两个计数单位,一个用来计公里,另外一个用来计费用。通常在出租车的轮子上都有传感器,用来记录车轮转动的圈数,而车轮子的周长是固定的,所以知道了圈数自然也就知道了里程。在这个实验中,就要模拟出租车计费器的工作过程,用直流电机模拟出租车轮子,通过传感器,可以得到电机每转一周输出一个脉冲波形。 (有条件的同学再完成:显示用8 个七段码管,前四个显示里程,后四个显示费用。)1.2 设计思想 该出租车计费器按下开关S1后开始计

5、费和计里程数,起步价是3元,准行1公里,以后1元/公里。时钟输入为一个1KHz的系统时钟,直流电机模块每转一圈输出一个脉冲信号给CPU,另外用按键模块的S1 来作为整个系统的复位按钮,每复位一次,计费器从头开始计费。直流电机模块用来模拟出租车的车轮子,每转动一圈认为是行走1 米,所以每旋转1000 圈,认为车子前进1 公里。系统设计是需要检测电机的转动情况,每转1000圈,分频模块输出一个上升沿信号。车费和里程数在一个8位7段数码管上显示,前4位显示里程,后4位显示费用。1.3 引脚分配显示:动态八位七段数码管模块动态八位七段数码管模块数码管端口名称FPGA 引脚说明7SEG-AC8显示内容控

6、制7SEG-BC9显示内容控制7SEG-CC7显示内容控制7SEG-DC6显示内容控制7SEG-ED6显示内容控制7SEG-FD9显示内容控制7SEG-GD8显示内容控制7SEG-DPD7显示内容控制7SEG-SEL0A21显示位置控制7SEG-SEL1B21显示位置控制7SEG-SEL2A22显示位置控制7SEG-SEL3D5显示位置控制7SEG-SEL4C4显示位置控制7SEG-SEL5B22显示位置控制7SEG-SEL6A19显示位置控制7SEG-SEL7B19显示位置控制时钟:ClkN1直流电机脉冲输入: pulseAE13一圈一个脉冲复位按键RSTJ7按键S1二出租车计费功能的实现2

7、.1 系统的总体框图该出租车计费系统由三个模块组成,分别是:计费模块:计算应付车费计程模块:计录已行里程显示模块:将应付车费和已行里程显示在数码管上各模块之间的关系为:2 程序流程图计算路程框图:计算出租车计费框图:2.3 系统各功能模块的实现计算距离模块:REG:PROCESS(s1,meter) begin if s1=1 then q1=0; q2=0; q3=0; q4=0; elsif meterevent and meter=1 then -clkevent and clk=1 then if q4=9 then q4=0; if q3=9 then q3=0; if q2=9 t

8、hen q2=0; q1=q1+1; else q2=q2+1; end if; else q3=q3+1; end if; else q4=q4+1; end if; end if; -end if; end process REG;计费距离模块:COM:process( q1) begin if q17 then a4=q1+3; else if q1=7 then a4=0; if a3=9 then a3=0; if a2=9 then a2=0; a1=a1+1; else a2=a2+1; end if; else a3=a3+1; end if; else if q1=8 the

9、n a4=1; if a3=9 then a3=0; if a2=9 then a2=0; a1=a1+1; else a2=a2+1; end if; else a3=a3+1; end if; else if q1=9 then a4=2; if a3=9 then a3=0; if a2=9 then a2=0; a1=a1+1; else a2=a2+1; end if; else a3=a3+1; end if; end if; end if; end if; end if; end process COM;显示模块: CAM:process(clk) begin if clkeve

10、nt and clk=1 then cout wx=10000000;shuju wx=01000000;shuju wx=00100000;shuju wx=00010000;shuju wx=00001000;shuju wx=00000100;shuju wx=00000010;shuju wx=00000001;shujuduanduanduanduanduanduanduanduanduanduannull; end case; end process; 四. 调试与仿真在调试过程中,出现了很多的问题,在编译时出现同时赋值的现象:图4 同时赋值现象在程序使用软件仿真时,出现了问题;开

11、始使用10进制数进行仿真时由于在计费时,开始不适应复位信号,就会出现几公里几块钱,一但经过复位之后程序使用就正常了,这是有与我在使用时没有复位时,不给初值一样,后来经过修改之后就正常了。图5 计费仿真图6 距离仿真图7 出租车计费仿真五. 总结与体会通过这次紧张而又充实的EDA课程设计,我感受到了VHDL语言和普通软件语言之间的区别,也能够更加熟练地运用VHDL语言进行逻辑电路的设计了,受益匪浅。在没有进行课程设计之前,我们的上机实践从来没有编写过规模如此的数字电路系统,最多就写写什么半加器,全加器之类的小型实体。而这次课程设计要想实现课题要求的功能,必须将若干小型实体组合成一个相对大型的实体

12、。不仅如此,在写完程序后,还要把程序下载到芯片内,连接相应的电子器件,观察真正的效果。所以,通过这次紧张的课程设计,我体会了从开始利用VHDL语言编程到把设想放到真正在电子器件上实现的全部过程,提高了自己从事工程项目设计的能力。另外,在课程设计的过程,我碰到了很多棘手的难题,虽然也进行了苦思冥想,却还是得不到解决方法,有时也有想放弃的念头,不过终于还是坚持了下来,完成了任务,我意识到今后不管是在工作还是学习中,做工程项目都需要有忍耐力和坚持。结果重要,过程更是我们学习的宝贵经验。课程设计不仅是学习一门课,更可以锻炼我们的实践能力,动手操作能力,和解决问题的能力。能够将课堂上所学的知识灵活、巧妙

13、的运用到实践操作上是一次很好的体验,和机会。不仅锻炼路我们的动手能力,而且加深了对课本的理解和弥补了课本上所不能涉及到的东西。所以在对待每一次的课程设计时我都很认真,也终于通过自己的努力终于完成了此次的课程设计。六. 附件程序源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY eda IS PORT(clk : IN STD_LOGIC; -外部时钟输入口 meter : IN STD_LOGIC; - 外部转圈信号输入,假定每个上升沿视为车轮转一圈 S1 : IN STD_LO

14、GIC; - 外部按键输入复位信号,假定低电平表示按键被按下,高电平表示按键未按下 wx:out std_logic_vector(7 downto 0); cost1,cost2,cost3,cost4 :out integer range 0 to 9; -输出计费值个位十位百味 dist1,dist2,dist3,dist4 : out integer range 0 to 9); -输出公里数小数点后一位,个位,十位END entity;architecture behav of eda issignal q1,q2,q3,q4:integer range 0 to 9; -signa

15、l a1,a2,a3,a4:integer range 0 to 9;signal cout:STD_LOGIC_VECTOR (2 DOWNTO 0);-signal wx:std_logic_vector(7 downto 0);signal shuju:integer range 0 to 9; -控制路程和计费数据显示的位置signal duan:std_logic_vector(6 downto 0); -控制数码管显示输出begin REG:PROCESS(s1,meter) -计算路程 begin if s1=1 then q1=0; q2=0; q3=0; q4=0; elsi

16、f meterevent and meter=1 then -clkevent and clk=1 then if q4=9 then q4=0; if q3=9 then q3=0; if q2=9 then q2=0; q1=q1+1; else q2=q2+1; end if; else q3=q3+1; end if; else q4=q4+1; end if; end if; -end if; end process REG; COM:process( q1) -计算出租车计费 begin if q17 then a4=q1+3; else if q1=7 then a4=0; if

17、 a3=9 then a3=0; if a2=9 then a2=0; a1=a1+1; else a2=a2+1; end if; else a3=a3+1; end if; else if q1=8 then a4=1; if a3=9 then a3=0; if a2=9 then a2=0; a1=a1+1; else a2=a2+1; end if; else a3=a3+1; end if; else if q1=9 then a4=2; if a3=9 then a3=0; if a2=9 then a2=0; a1=a1+1; else a2=a2+1; end if; els

18、e a3=a3+1; end if; end if; end if; end if; end if; end process COM;- 计费 路程显示输出 CAM:process(clk) begin if clkevent and clk=1 then cout wx=10000000;shuju wx=01000000;shuju wx=00100000;shuju wx=00010000;shuju wx=00001000;shuju wx=00000100;shuju wx=00000010;shuju wx=00000001;shujuduanduanduanduanduanduanduanduanduanduannull; end case; end process; dist1=q1; dist2=q2; dist3=q3; dist4=q4; cost1=a1; cost2=a2; cost3=a3; cost4=a4; end behav;七. 评分表计算机与通信学院课程设计评分表课题名称: 数字系统与逻辑设计 项 目评 价设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩教师签名: 日 期:

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

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