可编程式逻辑器件设计试验报告期末报告 出租车计费器_第1页
可编程式逻辑器件设计试验报告期末报告 出租车计费器_第2页
可编程式逻辑器件设计试验报告期末报告 出租车计费器_第3页
可编程式逻辑器件设计试验报告期末报告 出租车计费器_第4页
可编程式逻辑器件设计试验报告期末报告 出租车计费器_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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;汽车暂停键pause;档位speedup1.0。输出信号:数码管地址选择信

4、号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; /汽车启动Input stop; /汽车停止Input pause; /汽车暂停I

5、nput1: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_reg<=d0; distance_reg<=d0; dis

6、<=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

7、+1;endendelse if (!start&&speedup=b01&&!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;di

8、stance_reg<=distance_reg+5;dis<=dis+5;endelsebegin num<=num+1;endendelse if (!start&&speedup=b11&&!pause&&!stop) /4档begin distance_reg<=distance_reg+1;dis<=dis+1;endendif(dis>=d100)begin d<=d1;dis<=d0;endelsebegin d<=d0;endif(distance_reg>=d300)

9、/如果超过3km则按1.2元/km计算beginif(money_reg<d2000&&d=”d1)begin money_reg<=money_reg+d120;endelse if (distance_reg>d2000&&d=”d1)begin money_reg<=money_reg+d180;end/当计费器达到20元时,每千米加收50%的车费endmoney<=money_reg;distance<=distance_reg;endendmoudle(2)译码显示模块decoder的源代码:Module deced

10、er(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

11、位十进制数表示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

12、 count<=count+1;end/-将车费的十进制数转化为4位的十进制数If(comb1<money_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

13、<=comb_c+1;Comb1<=comb1+1;EndElse if (comb1_a=d9)BeginComb1_a<=d0000;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_tho<=comb1_d;EndElse if(comb1>m

14、oney_in)Begin Comb1_a<=b0000;Comb1_b<=b0000;Comb1_c<=b0000;Comb1_d<=b0000;Comb1 <=d0;End/-将路程的十进制数转化为4位十进制数if(comb2<distance_in)begin if (comb2_a=d9&&comb2_b=d9&&comb2_c=d9)beginComb2_a<=b0000;Comb2_b<=b0000;Comb2_c<=b0000;Comb2_d<=comb2_d+1;Comb2 <=c

15、omb2+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 comb2_a<=comb2_a+1;comb2<=comb2+1;endendelse if(comb2=distance

16、_in)begind_one<=comb2_a;d_ten<=comb2_b;d_hun<=comb2_c;d_tho<=comb2_d;endelse if (comb2>distance_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:b

17、egin data<=m_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&

18、lt;=d_ten;dp<=d0;scan<=b00100000;endb110:begin data<=d_hun;dp<=d1;scan<=b01000000;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=7b01

19、10000;4b0010:seg76:0=7b1101101;4b0011:seg76:0=7b1111001;4b0100:seg76:0=7b0110011;4b0101:seg76:0=7b1011011;4b0110:seg76:0=7b1011111;4b0111:seg76:0=7b1110000;4b1000:seg76:0=7b1111111; 4b1001:seg76:0=7b1111011;default:seg76:0=7b0000000;endcaseendendmodule四、实验运行截图:对控制器模块Taxi进行仿真后得到的运行结构分别如下:(1)对控制模块taxi

20、进行仿真后的到的结果图如下图(D)所示,时序仿真结果如图(E)所示。(D)控制模块功能仿真结果(E)控制模块时序仿真结果(2)将扫描书码馆的分频系数改小后,对译码显示模块decoder的功能仿真结果如F图所示,时序仿真结果如图(G)所示。(G)控制模块时序仿真结果G显示模块仿真五、实验总结和分析:经过了一个学期的学习和实验认识,这次是要需要完成的设计相对难一些,我们的任务主要是运用VHDL语言设计了一个出租车计费器,设计该出租车有起动键、停止键、暂停键和档位键。起动键为脉冲触发信号,当其为一个脉冲时,表示汽车已起动,并根据车速的选择和基本车速发出响应频率的脉冲(计费脉冲)以此来实现车费和路程的计数,同时车费显示起步价;当停止键为高电平时,表示汽车熄火,同时停

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论