




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北邮数电实验报告4人表决器数字电路综合实验设计简易出租车计价器的设计与实现学院: 电子工程学院 班级: 20XX 学号: 20XX 姓名: 孙月鹏 班内序号: 04摘要本文介绍了利用Quartus II综合性PLD/FPGA开发软件,在MAXII 数字逻辑实验开发板上实现简易出租车计价器功能的设计与实现方法。本方案采用自上而下的设计理念,将整体电路按照功能划分为分频、计数、控制、数码管显示电路、点阵显示电路等若干模块,模块内用VHDL 语言完成逻辑设计,模块间用原理图进行连接,使整体可实现计费、计时等功能。关键字:可编程器件 模块化设计 出租车计价器 VHDL 语言一、设计任务要求基本要求:1行驶公里:用时钟2秒钟表示出租车匀速行驶1公里。在行车5公里以内,按起步价13元收费,超过5公里部分,以每公里2元收费。燃油附加费每运次1元。2途中等待:用按键控制中途等待,等待少于5秒不收费,超过5秒后没等待3秒钟加收1元。3用数码管分时显示计费金额、行驶里程和等候时间。字母A 表示当前处于显示计费金额状态,字母B 表示当前处于显示行驶里程状态,字母C 表示当前处于显示等候时间状态。4用按键控制出租车空驶、载客状态。提高要求:1用点阵滚动显示收费单据。2具有夜间模式,基本单价加收20%的费用。出租车收费以元为单位,元以下四舍五入。3出租车行驶速度可调可控。 4多人乘车,分段计价。 5自拟其他功能。二、设计思路与结构框图1. 设计思路图1 结构框图由结构框图可以分析得出,该系统的的主体是计数控制器。该系统由外部控制载客控制信号和等待控制信号,以时钟信号的翻转为计数依据,完成对时间、里程和费用的计数,并将结果通过数码管译码电路显示出来。该系统的控制信号可由拨码或按键输入,时钟由开发板内部时钟分频得出,输出有点阵输出和数码管输出。因此,可将系统分为分频器、计数控制器、数码管译码和显示以及点阵显示四部分。并以此得出系统的逻辑框图如下:图2 逻辑框图2. 控制器部分的状态转移图该控制器一共有三个基本状态: 空驶状态、载客状态和等待状态。 分别由v 、和w 来进行控制。三、分块电路和总体电路设计总体电路设计图3 状态转移图整体电路由数码管译码电路、转换电路、点阵译码电路、技术控制电路、分频电路五部分构成。分频电路将开发板内部的50MHz 时钟分为500hz 、1Hz 、 、 以及用于提高分频效率的其他若按频率。计数控制电路由四部分构成,整体完成行驶距离的计数、等待时间的计数以及费用的计数。输出为三组十位二进制数。转换电路有转换数据类型和在数码管上分时显示两个功能。首先将输入的十位二进制数转换为4位十进制数,并且利用除法和取余数的运算提取出个位、十位、百位、千位,并转换为四位二进制BCD 码。其次利用 的时钟,将行驶里程、等待时间、计费金额以2秒为周期依次out14,供给数码管以便分时显示。数码管译码电路以500HZ 实现动态扫描,并将转换电路输出的5组BCD码依次译码,完成显示。点阵译码器根据载客控制信号,分别显示“O ”、“X ”静态图案。分块电路设计 1. 分频器电路模块 关键代码ENTITY div_100 IS PORT; -END div_100;ARCHITECTURE a100 OF div_100 ISSIGNAL tmp100: INTEGER RANGE 0 TO 99; -BEGINp1:PROCESS -p1 BEGINIF clear =0 THEN tmp100ELSIF clk100event AND clk100=1 THEN IF tmp100=99 THEN tmp100tmp100END PROCESS p1;clk100 :输入时钟clear : 复位端 clk1 : 输出时钟 输入时钟 输出时钟 计数信号 进行100进制的计数p2:PROCESS -p2输出占空比为50%的新时钟 BEGINIF clk100event AND clk100=1 THEN IF tmp10049 THEN clk1clk1END PROCESS p2; END a100;仿真波形图5 200分频仿真波形图6 5分频仿真波形2. 计数控制器电路模块计数控制器由四部分组成,输入为三个不同频率的时钟、载客控制信号v 和等待控制信号w 。control1完成里程的计数cd 和行驶费用cm1,control2完成等待时间ct 的计数和等待开始计费信号outt ,control3接收到outt 后输出为等待时间的计费cm2,control4为总费用关键代码ENTITY control2 IS PORT);-等待时间输出 END control2 ;ARCHITECTURE c OF control2 IS SIGNAL tempt: STD_LOGIC_VECTOR ; SIGNAL temp1: INTEGER RANGE 0 TO 999; BEGINp3:PROCESS -累加等待时间 BEGINIF THEN IF v=0 THENtemptELSIF w=0 THEN -行驶时保持状态 tempttemp1ELSE temptIF temp14 THEN -大于5秒时outt=1 outtEND IF;END IF; END PROCESS p3;p4:PROCESS -将信号赋给输出ct BEGINctEND PROCESS p4; END c;模块control3 电路模块当输入outt 为1时,开始计数 cm2为等待时间计费关键代码ENTITY control3 IS PORT);-等待计费 END control3 ;ARCHITECTURE c OF control3 ISSIGNAL tempm: STD_LOGIC_VECTOR ; BEGINp5:PROCESS BEGINIF outt=1THEN -大于5秒时开始计费 IF THEN IF v=0 THENtempmELSE tempmEND PROCESS p5;p6: PROCESSBEGINIF V=0 THENcm2cm2END PROCESS p6; END c;control4 电路模块将等待计费cm2和行驶计费cm1相加,并加上燃油费1元,得到总费用cm关键代码ENTITY control4 IS PORT;-行驶费用 cm2: in STD_LOGIC_VECTOR; -等待费用cm: out STD_LOGIC_VECTOR);-总费用 END control4 ;ARCHITECTURE c OF control4 IS BEGINp5:PROCESS BEGINIF THEN IF v=0 THEN cmEND PROCESS p5; END c;控制计数部分的总仿真波形图8 控制计数器仿真波形3. 转换器电路模块由三个输入:行驶距离cd 、等待时间ct 、计费金额cm输出out1-5为四位二进制BCD 码实现功能:将十位二进制数按照位数转为为BCD 码关键代码ENTITY transform IS PORT;-行驶距离 ct: in STD_LOGIC_VECTOR; -等待时间 cm: in STD_LOGIC_VECTOR ;-总费用 out1: out std_logic_vector ;-输出个位 out2: out std_logic_vector; -输出十位 out3: out std_logic_vector; -输出百位 out4: out std_logic_vector; -输出千位out5: out std_logic_vector); -输出ABC END transform ;ARCHITECTURE c OF transform ISsignal cc : integer range 0 to 1023 ;signal t : std_logic_vector ; signal q1,q2,q3:integer range 0 to 1000; BEGINp1:PROCESS -p1进行3进制的计数 BEGINIF THEN IF v=0 THEN telsif t=00 then telsif t=01 then telsif t=10 then telse tEND IF;END IF;END PROCESS p1; p2:process BEGINif thenCASE t is -实现分时显示when 00 = cc cc cc ccq1q3out1end process p2; END c;4. 数码管译码电路电路模块关键代码ENTITY shumaguan IS PORT; g:OUT STD_LOGIC_VECTOR; cat:OUT STD_LOGIC_VECTOR); END shumaguan;ARCHITECTURE a OF shumaguan ISSIGNAL tmpg:STD_LOGIC_VECTOR; SIGNAL tmpn:STD_LOGIC_VECTOR; SIGNAL tmpc:INTEGER RANGE 0 TO 5; BEGINp1:PROCESS -六进制计数 BEGINifthenif tmpc = 5 then tmpctmpcEND PROCESS p1;p2:PROCESS -数码管选通轮流显示 BEGINifthen -将个位、十位等赋给各个数码管 case tmpc isWHEN 0 = tmpn tmpn tmpn tmpnWHEN 5 = tmpn tmpnEND PROCESS p2;p3:PROCESS -译码电路 BEGINCASE tmpn ISWHEN0000= tmpg tmpg tmpg tmpg tmpg tmpg tmpg tmpg tmpg tmpg tmpg tmpg tmpg tmpg tmpg5. 点阵译码电路电路模块关键代码 ENTITY dz is PORT; -行col : OUT STD_LOGIC_VECTOR); -列 END dz;ARCHITECTURE a OF dz ISSIGNAL tmp_row:STD_LOGIC_VECTOR; SIGNAL tmp_col:STD_LOGIC_VECTOR; beginprocess beginif then if v = 0then case tmp_col isWHEN= tmp_col tmp_col tmp_col tmp_col tmp_col tmp_col tmp_col tmp_col tmp_colcase tmp_col isWHEN= tmp_col tmp_col tmp_col tmp_col tmp_col tmp_colWHEN= tmp_colWHEN= tmp_col tmp_col仿真波形图9 空载时显示“”图10 载客时显示“X ”四、实现功能说明1,实现功能实现计时、计里程、计费功能数码管可分时显示行驶距离、费用、等待时间 点阵显示载客和空载状态 2. 器材的资源占用情况图11 编译报告图12 逻辑元件表由图11可得:本电路一共用了576个逻辑元件,占总逻辑元件数的45%,总管脚数37,占总管脚的32%。由图12看到,除了transform 模块之外,各模块占用资源均不大。transform模块因为用到了除法、取余数等运算。因此占用资源较多,应在后期进行优化,降低资源利用率。3. 仿真波形图 4. 必要的测试方法控制计数器整体仿真 控制器与转换器整体仿真 数码管赋值检查是否显示故障时中间接输出,并且管脚设置为LED 灯,看是否正常传输五、故障与问题分析1)计数显示不正确,有延迟 解决办法:在控制计数器内部,将组合逻辑部分和计数部分分到不同的进程,避免在时序进程出现大量运算,造成延迟。2)计数时采用十位二进制计数,无法逐位读取,赋给各个数码管解决办法1:先将二进制转为十进制,再利用除法和取余数运算得到各位数 值2:计数时改为逐位计数,后一位满十后向前一位进13)仿真时计数器正常工作,但下载到板子时一直显示为0,无法确定是计数器的问题还是数码管的问题解决办法:将计数器的一个输出作为LED 的输入,发现LED 不亮,说明控制器有问题。六、总结和结论这次数字电路综合实验是一次将理论、实验与现实应用结合在一起的实验。当第一次课拿到题目时,我感觉无从下手,几乎没有思路。但当三周后我基本完成了实验任务时,却又觉得整个电路结构无比清晰,甚至知道我的方案哪里做得好、哪里做得不好。在这三周的时间里,我觉得我有如下的收获: 1. 基础知识与动手操作并重 由于我觉得自己基础不好,又加上是上学期的内容,因此在拿到题目后我并没有立即动手做,而是完整地阅读了一编实验教材,并且认真做了笔记。在之后的设计中,无论是对于具体语句还是设计思想,都有了成竹在胸的感觉,甚至还可以帮助同学们解决一些小的知识点,做一些小的改进。但光看书也是不够的,在编程的过程中,一开始仍有一些生涩,随着时间的推移,我的进度也逐渐加快。因此,这说明,在做具体的项目时一定首先要打好基础,不能过于着急动手,当然也不能一味地抠细节,忽视实验的重要性。 2. 整体的设计比具体的实现更重要 在老师的讲课过程中,不止一遍强调数字电路的模块的划分、上层的设计要比具体的编程语句更重要。一开始我并没有意识到这一问题,在做逻辑框图时细节和准确性都不够。因为我习惯一边开始做,一边想下一步怎么做。但在老师检查过程中我的框图被指出错误之后,我又重新做了逻辑框图。这一次,我感觉到在我认真思考后,我对整个电路的结构有了清晰地认识,特别是将电路划分为每一个细小的模块后,模块的具体实现就变得很简单,甚至很多都是现成的。这让我明白上层的设计、模块的划分才是最有创造性、最有技术含量的部分,我们作为设计师,应当将重点放在设计思想上,而不是具体的一个个语句。只有这样,我们
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 10古诗三首《马诗》教学设计-2023-2024学年统编版语文六年级下册
- 2025年酒店管理岗位招聘笔试全真模拟题集
- 二零二五版工地设备租赁合同模板(智能化升级)
- 二零二五年车辆抵押借款合同编制手册
- 二零二五年度文化广场广告位租赁协议书
- 2025版汽车零部件进口合同样本:供应链管理协议
- 2025电信设备采购及维护服务合同模板
- 二零二五年度老旧建筑消防系统更新与装修合同
- 二零二五版智能机器人试用合同书
- 二零二五年绿色建筑材料交易合同规范汇编
- 读书分享读书交流会《人生海海》
- 人工智能在检验医学中的应用
- 基于保护创始人股东有限公司章程范本
- 郑州外国语中学初一新生分班(摸底)数学模拟考试(含答案)
- 人教版数学四年级上册教材课后习题参考答案(全)
- 人力资源员工旅游活动方案
- 外贸报价单英文模板excel报价单表格模板
- 夜间专项施工专项方案
- 糖尿病足病历讨论
- GB/T 20028-2005硫化橡胶或热塑性橡胶应用阿累尼乌斯图推算寿命和最高使用温度
- GB/T 13008-2010混流泵、轴流泵技术条件
评论
0/150
提交评论