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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

可编程式逻辑器件设计试验报告期末报告 出租车计费器.docx

1、可编程式逻辑器件设计试验报告期末报告 出租车计费器昆明理工大学信息工程与自动化学院学生实验报告( 20122013 学年 第 2 学期 )课程名称:可编程逻辑器件 开课实验室:信自楼504 2013年5月31日 年级、专业、班计科102班学号2010104052姓名成绩实验项目名称出租车计费器指导教师江虹 教师评语该同学是否了解实验原理: A.了解 B.基本了解 C.不了解该同学的实验能力: A.强 B.中等 C.差 该同学的实验是否达到要求: A.达到 B.基本达到 C.未达到实验报告是否规范: A.规范 B.基本规范 C.不规范实验过程是否详细记录: A.详细 B.一般 C.没有 教师签名

2、: 年 月 日一、试验设计要求设计一个出租车计费器,能按路程计费,具体要求如下所述:1) 实现计费功能,计费标准为:按行驶里程计费,起步价6.00元,并在车行驶3km后按1.2元/km计费,当计费器达到或超过20元时,每km加收50%的车费,车辆停止和暂停时不计费。2) 现场模拟汽车的起动、停止、暂停和换挡等状态。3) 设计数码管动态扫描电路,将车费和路程显示出来,各有两位小数。二、试验设计原理(1)设计该出租车有起动键、停止键、暂停键和档位键。起动键为脉冲触发信号,当其为一个脉冲时,表示汽车已起动,并根据车速的选择和基本车速发出响应频率的脉冲(计费脉冲)以此来实现车费和路程的计数,同时车费显

3、示起步价;当停止键为高电平时,表示汽车熄火,同时停止发出脉冲,此时车费和路程计数清零;当暂停键为高电平时,表示汽车暂停并停止发出脉冲,此时车费和路程计数暂停;档位键用于改变车速,不同的档位对应着不同的车速,同时路程计数的速度也不同。出租车计费器可分为两大模块,即控制模块和译码显示模块。系统框图如下所示。控制模块实现了计费和路程的计数,并且通过不同的档位来控制车速。译码显示模块实现十进制数到4位二进制数的转换,以及车费和路程的显示。(A)系统框图(2)电路符号出租车计费器的电路符号如下图(B)、输入信号:计费始终脉冲clk;译码高频时钟ckl20mhz;汽车启动键start;汽车停止键stop;

4、汽车暂停键pause;档位speedup1.0。输出信号:数码管地址选择信号scan7.1;7段显示控制信号seg76.0,小数点dp(B)出租车计费器的电路符号(3)设计方法:A、自底向上的混合编辑 采用混合编辑法,设计不同的模块,最后在原理图编辑器中连接各模块作为顶层设计,其电路如下图(C)所示,其中taxi为控制模块;decoder为译码和显示模块。(C)出租车计费电路图三、实验设计过程控制模块taxi的源代码:Module taxi(money,distance,clk,start,stop,pause,speedup)Input clk; /计费时钟Input start; /汽车启

5、动Input stop; /汽车停止Input pause; /汽车暂停Input1:0 speedup; /档位Output12:0 money; /车费Output12:0distance; /路程Reg12:0 money; Reg12:0 distance; Reg12:0 money_reg; / 车费寄存器Reg12:0 distance_reg /路程寄存器Reg3:0 num; /控制车速的计数器Reg12:0 dis; /千米计数器Reg d; /千米标志位Always (posedge clk)Begin If(stop) /汽车停止,计费和路程清零 Begin money

6、_reg=d0; distance_reg=d0; dis=d0; num=d0;endelse if(start) /汽车启动后,起步价为6元 begin money_reg=d600;distance_reg=d0;dis=d0;num=d0;endelse beginif (!start&!speedup&!pause&!stop) /1档 begin if(num=d9)begin num=d0;distance_reg=distance_reg+1;dis=dis+1;endelsebegin num=num+1;endendelse if (!start&speedup=b01&!

7、pause&!stop) /2档beginif(num=d9)begin num=d0;distance_reg=distance_reg+2;dis=dis+2;endelsebegin num =num+1; endendelse if (!start&speedup=b10&!pause&!stop) /3档beginif(num=d9)begin num=d0;distance_reg=distance_reg+5;dis=dis+5;endelsebegin num=num+1;endendelse if (!start&speedup=b11&!pause&!stop) /4档be

8、gin distance_reg=distance_reg+1;dis=d100)begin d=d1;dis=d0;endelsebegin d=d300) /如果超过3km则按1.2元/km计算beginif(money_regd2000&d=”d1)begin money_regd2000&d=”d1)begin money_reg=money_reg+d180;end/当计费器达到20元时,每千米加收50%的车费endmoney=money_reg;distance=distance_reg;endendmoudle(2)译码显示模块decoder的源代码:Module deceder

9、(scan,seg7,dp,clk20mhz,money_in,distance_in):Output7:0 scan; /数码管地址选择信号Output7:0 scan; /7段显示控制信号Output7:0 scan; /小数点Input clk20mhz; /系统时钟20MHzInput12:0 money_in /车费Input12:0 distance_in /路程Reg7:0scan:Reg6:0seg7;Reg dp;Reg clk 1khz; /1khz的分频时钟,用于扫描数码管地址Reg3:0data:Reg3:0m_one,m_ten,m_hun,m_tho;/钱数的4位十

10、进制数表示Reg3:0d_one,d_ten,d_hun,d_tho;/路程的4位十进制数表示Reg15:0 count:Reg15:0 comb1:Reg3:0comb1_a, comb1_b, comb1_c, comb1_d;Reg15:0 comb2;Reg3:0comb2_a, comb2_b, comb2_c, comb2_d;Reg2:0 cnt;/-1khz分频,用于扫描数码管地址Always (posedge clk20mhz)BeginIf(count=d10000) Begin clk1khz=clk1khz;count=d0;endElseBegin count=cou

11、nt+1;end/-将车费的十进制数转化为4位的十进制数If(comb1money_in)BeginIf(comb1_a=d9& comb1_=d9& comb1_c=d9)BeginComb1_a=d0000;Comb1_c=d0000;Comb1_d=d0000;Comb1_d= Comb1_d+1;Comb=comb+1;EndElse if (comb1_a=d9&comb1_b=d9)BeginComb1_a=d0000;Comb1_b=d0000;Comb1_c=comb_c+1;Comb1=comb1+1;EndElse if (comb1_a=d9)BeginComb1_a=d

12、0000;Comb1_b=comb1_b+1;Comb1 =comb1+1;EndElseBeginComb1_a=comb1_a+1;Comb1=comb1+1;EndEndElse if (comb1=money_in)begin M_one=comb1_a;M_ten=comb1_b;M_hun=comb1_c;M_thomoney_in)Begin Comb1_a=b0000;Comb1_b=b0000;Comb1_c=b0000;Comb1_d=b0000;Comb1 =d0;End/-将路程的十进制数转化为4位十进制数if(comb2distance_in)begin if (co

13、mb2_a=d9&comb2_b=d9&comb2_c=d9)beginComb2_a=b0000;Comb2_b=b0000;Comb2_c=b0000;Comb2_d=comb2_d+1;Comb2 =comb2+1;EndElse if (comb2_a=d9&comb2_b=d9)Begin Comb2_a=b0000;Comb2_b=b0000;Comb2_c=comb2_c+1;Comb2 =comb2+1;EndElse if(comb2_a=d9)Begin Comb2_a=b0000;Comb2_b=comb2_b+2;Comb2=comb2+1;endelsebegin c

14、omb2_a=comb2_a+1;comb2=comb2+1;endendelse if(comb2=distance_in)begind_one=comb2_a;d_ten=comb2_b;d_hun=comb2_c;d_thodistance_in)begincomb2_a=b0000;comb2_b=b0000;comb2_c=b0000;comb2_d=b0000;comb2_a=d0;endend/-数码管动态扫描-always(posedge clk 1khz)begincnt=cnt+1;endalways(cnt)begin case(cnt)b000:begin data=m

15、_one;dp=d0;scan=b00000001;endb001:begin data=m_ten;dp=d0;scan=b00000010;endb010:begin data=m_hun;dp=d1;scan=b00000100;endb011:begin data=m_tho;dp=d0;scan=b00001000;endb100:begin data=d_one;dp=d0;scan=b00010000;endb101:begin data=d_ten;dp=d0;scan=b00100000;endb110:begin data=d_hun;dp=d1;scan=b0100000

16、0;endb111:begin data=d_tho;dp=d0;scan=b10000000;enddefault:begin data=bx;dp=bx;scan=bx;endendcaseend/-7段译码-always(data)begincase(data3:0)4b0000:seg76:0=7b1111110;4b0001:seg76:0=7b0110000;4b0010:seg76:0=7b1101101;4b0011:seg76:0=7b1111001;4b0100:seg76:0=7b0110011;4b0101:seg76:0=7b1011011;4b0110:seg76:

17、0=7b1011111;4b0111:seg76:0=7b1110000;4b1000:seg76:0=7b1111111; 4b1001:seg76:0=7b1111011;default:seg76:0=7b0000000;endcaseendendmodule四、实验运行截图:对控制器模块Taxi进行仿真后得到的运行结构分别如下:(1)对控制模块taxi进行仿真后的到的结果图如下图(D)所示,时序仿真结果如图(E)所示。(D)控制模块功能仿真结果(E)控制模块时序仿真结果(2)将扫描书码馆的分频系数改小后,对译码显示模块decoder的功能仿真结果如F图所示,时序仿真结果如图(G)所示。

18、(G)控制模块时序仿真结果G显示模块仿真五、实验总结和分析:经过了一个学期的学习和实验认识,这次是要需要完成的设计相对难一些,我们的任务主要是运用VHDL语言设计了一个出租车计费器,设计该出租车有起动键、停止键、暂停键和档位键。起动键为脉冲触发信号,当其为一个脉冲时,表示汽车已起动,并根据车速的选择和基本车速发出响应频率的脉冲(计费脉冲)以此来实现车费和路程的计数,同时车费显示起步价;当停止键为高电平时,表示汽车熄火,同时停止发出脉冲,此时车费和路程计数清零;当暂停键为高电平时,表示汽车暂停并停止发出脉冲,此时车费和路程计数暂停;档位键用于改变车速,不同的档位对应着不同的车速,同时路程计数的速

19、度也不同。对我来说这个设计存在很多的问题,不过我通过对老师给的参考程序,对其进行了调试和修改,使其能按预期的效果进行模拟汽车启动、停止、暂停等功能,并设计了动态显示车费和里程的硬件电路。出租车暂停时不计费,车费保持不变,且里程也保持不变,若复位则车费和里程清零,等待下一次计费的开始。最后终于达到了实验的要求,成功的完成了设计。这次实验的最大收获是我对对软件Quartus II的应用也更加熟练。通过在设计中发现问题,并对遇到某个问题知道该从哪几方面去对其进行解析和理解。通过对软件的仿真,发现编写的问题,和解决所要解决的问题,在设计中遇到对的问题我不断的查阅资料并同老师请教,收获很多。在这次试验中,使我学到很多的东西,出租车计费器可分为两大模块,即控制模块和译码显示模块。控制模块实现了计费和路程的计数,并且通过不同的档位来控制车速。译码显示模块实现十进制数到4位二进制数的转换,以及车费和路程的显示。通过对实验原理的了解我不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次试验使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。这些对我以后的学习都有很大的帮助,对以后的思考、动手能力将有很大的改变。

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

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