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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于CPLD的出租车计费器剖析.docx

1、基于CPLD的出租车计费器剖析等级: 课 程 设 计课程名称嵌入式系统课程设计课题名称基于CPLD的出租车计费器专 业电子信息工程班 级1201学 号19姓 名许振跃指导老师林愿2015年9月16日目 录1、 课程设计任务要求 11.1 EDA发展前景 11.2 任务要求 12、设计步骤 12.1 信号输入 12.2 数据转换 12.3 数据显示 13、出租车计费系统的实现 23.1 顶层电路设计 23.2 子模块设计 24、系统仿真 54.1 开始信号的仿真结果 54.2 加速信号仿真结果 54.3 显示的仿真结果 54.4 decoder的仿真结果 65、 下载调试及实验结果 66、设计心

2、得 7参考文献 81、 课程设计任务要求1.1 EDA发展前景 EDA技术(即Electronic Design Automation技术)就是依赖强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Ddscription Langurage)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。 1.2 任务要求 CPLD为复杂可编程逻辑器件,通过EDA技术对其进行编程,可将一个较复杂的数字系统集成于一个芯片中,制成专用集成电路芯片,并可随时在系统修改其逻辑功能。并最终完成电路的编程

3、调试。具体要求如下:(1) 实现计费功能,计费标准为:按行驶里程计费,起步价为5.00元,并在车行3Km后按1.40元/Km计费,当计费器达到或超过20元时,每公里加收50的车费,车停止不计费。(2) 现场模拟功能:能模拟汽车起动、停止、暂停以及加速等状态。 (3) 按计动态扫描电路,将车费和路程显示出来,各有两位小数。 2、设计步骤 2.1 信号输入 该模块主要实现计费功能和现场模拟功能。计费标准为:按行驶里程计费,起步价为5.00元,并在车行3km后按1.4元km计费,当计费器达到或超过20元时,每公里加收50的车费,车停止不计费。并以高低脉冲模拟出租汽车启动、停止、暂停、加速按钮,具有输

4、入信号的作用。2.2 数据转换 数据转换模块是一个模为10的加法计数器,可将计费模块输出的车费和路程转换成4位的十进制数。2.3 数据显示 显示模块是由七段LED数码管译码和动态扫描显示两部分组成。采用的是共阴极七段数码管,根据十六进制数和七段显示段码表的对应关系,其中要求路程和车费都要用2位小数点来表示,所以须设置一个控制小数点的变量,即程序中的dp。这段程序所示的是在数码管的第二、第六个后面显示小数点,实现了路程和车费都用2位小数点表示的功能。数码管控制及译码显示模块将十进制的输入信号用七段数码管显示,由七段发光二极管组成数码显示器,利用字段的不同组合。可分别显示09十个数字。3、出租车计

5、费系统的实现 3.1 顶层电路设计 图1 系统总体框图3.2 子模块设计 3.2.1 taxi的实现模块taxi见下图。输入端口speedup,start,pause,stop分别为出租车计费器的加速、起动、暂停、停止按键。实现计费功能,计费标准为:按行驶里程计费,起步价为5.0元,并在车行3Km后按1.40元/Km计费,当计费器达到或超过20元时,每公里加收50的车费,车停止不计费。图2 taix模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity decoder isport(cl

6、k20mhz: in std_logic; money_in:in integer range 0 to 8000; distance_in:in integer range 0 to 8000; scan:out std_logic_vector(7 downto 0); seq7:out std_logic_vector(6 downto 0); dp:out std_logic);end;architecture one of decoder issignal clk1khz:std_logic;signal data:std_logic_vector(3 downto 0);signa

7、l m_one,m_ten,m_hun,m_tho:std_logic_vector(3 downto 0);signal d_one,d_ten,d_hun,d_tho:std_logic_vector(3 downto 0);variable num:integer range 0 to 9;variable dis:integer range 0 to 100;variable d:std_logic;beginif stop = 1 then money_reg:= 0; distance_reg:= 0; dis:= 0; num:= 0;3.2.2 decoder的实现 模块dec

8、oder见下图。该模块把车费和路程转化为数码管可以显示的信号。图3 模块xelsif start = 0 and speedup = 10 and pause = 0 and stop = 0 then if num = 9 then num:= 0; distance_reg:= distance_reg + 5; dis:= dis + 5; else num:= num + 1; end if; elsif start = 0 and speedup = 11 and pause = 0 and stop = 0 then distance_reg:= distance_reg + 1;

9、 dis:= dis + 1; end if; if dis = 100 then d:= 1; dis:= 0; else d:= 0; end if; if distance_reg = 300 then if money_reg = 2000 and d = 1 then money_reg:= money_reg + 210; end if; end if;end if; money = money_reg; distance data = m_one; dp = 0; scan data = m_ten; dp = 0; scan data = m_hun; dp = 1; scan

10、 data = m_tho; dp = 0; scan data = d_one; dp = 0; scan data = d_ten; dp = 0; scan data = d_hun; dp = 1; scan data = d_tho; dp = 0; scan seq7 seq7 seq7 seq7 seq7 seq7 seq7 seq7 seq7 seq7 seq7 = 0000000;end case;end process;end;4、系统仿真4.1 开始信号的仿真结果 输入端口speedup,start,pause,stop分别为出租车计费器的加速、起动、暂停、停止按键。 输

11、入: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时路程的计数逐步加快,表示车速逐步加快。 输入:clk, start, stop, pause, speedu

12、p; 输出:money, distance;图6 系统仿真结果5、下载调试及实验结果 程序下载完后,按下启动键,车费显示起步价为5元。图9 加速仿真结果 当路程超过3公里后每公里多加1.4元,显示为6.4元。图10 加速仿真结果6、设计心得我们这次课程设计的题目是出租车计费器,拿到题目我就有点小激动,因为终于可以利用自己的所学做点与实际生活相关的东西了。首先,我复习的一下VHDL程序设计的基本语法,然后开始熟悉Quartus 的相关操作。包括模块化的编译器。编译器包括的功能模块有分析/综合器,适配器、装配器、时序分析器、设计辅助模块、EDA网表文件生成器、编辑数据接口等。可以通过选择Start

13、 Compilation来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。还可以通过选择Compiler Tool,在Compiler Tool窗口中运行该模块来启动编译器模块。然后,我开始去图书馆找相关的图书,因为当我看了课程设计任务书之后,对于整个程序还是没有把握。所以我希望能够找到相关的程序进行验证,然后修改以符合自己的课程设计的要求。功夫不负有心人,我在图书馆借的几本书中就有和我们课题类似的程序模块。所以,我就将书中的程序在Quartus II中运行了一遍。可是,过程并没有我们想象的那么顺利。我们发现加速功能无法实现,一旦开启加速,数码管就会出现乱码。经过对源代码的一番

14、修改,我们的乱码现象有了一些好转。但是,也并没有完全达到要求。经过在实验箱中的调试,我们终于找到了解决方案,即改变输入的时钟频率。寻找到最合适的频率,就可以让系统达到显示要求。通过这次课程设计,我分析问题,解决问题的能力有了一定的提高。同时,对之前所学的知识也进行了巩固。更重要的是,我发现之前学的很多基础知识是有用的。一旦开始进行工程实践,这些知识将会发挥巨大的作用。所以,我决定在今后的学习过程中重视基础知识的学习,在增强理论基础的同时,再动手进行工程实践。同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次设计的

15、每个细节和每个数据,都离不开老师您的细心指导。谢谢您! 参考文献1. 陈大钦主编,电子技术基础实验,高等教育出版社。2. 彭介华主编,电子技术课程设计指导,高等教育出版社。3. 张 原编著,可编程逻辑器件设计及应用,机械工业出版社。4.荀殿栋,徐志军编著,数字电路设计实用手册,电子工业出版社。5. QUARTUSII入门6.刘洪喜,陆颖编著. VHDL电路设计实用教程 清华大学出版社 。电气信息学院课程设计评分标准环节项目评价优良中及格不及格实践环节(70%)1、设计方案合理性与创造性2、编程完成情况3、电路模块仿真调试结果*4、硬件测试过程及结果*5、解决问题能力及答辩情况6、纪律和出勤情况设计报告(30%)1、 设计报告内容完整、规范2、 设计步骤规范、正确3、 仿真调试结果正确、波形清晰4、 硬件测试过程规范、结果正确综合评价课程设计成绩评定为:优 良 中 及格 不及格 指导老师签名:_ 日 期:_

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

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