北邮数电实验报告4人表决器北邮电子-数电综合实验报告
北邮数字电路综合实验报告

数字电路综合实验报告简易智能密码锁一、实验课题及任务要求设计并实现一个数字密码锁,密码锁有四位数字密码和一个确认开锁按键,密码输入正确,密码锁打开,密码输入错误进行警示。
基本要求:1、密码设置:通过键盘进行4 位数字密码设定输入,在数码管上显示所输入数字。
通过密码设置确定键(BTN 键)进行锁定。
2、开锁:在闭锁状态下,可以输入密码开锁,且每输入一位密码,在数码管上显示“-”,提示已输入密码的位数。
输入四位核对密码后,按“开锁”键,若密码正确则系统开锁,若密码错误系统仍然处于闭锁状态,并用蜂鸣器或led 闪烁报警。
3、在开锁状态下,可以通过密码复位键(BTN 键)来清除密码,恢复初始密码“0000”。
闭锁状态下不能清除密码。
4、用点阵显示开锁和闭锁状态。
提高要求:1、输入密码数字由右向左依次显示,即:每输入一数字显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。
2、密码锁的密码位数(4~6 位)可调。
3、自拟其它功能。
二、系统设计2.1系统总体框图2.2逻辑流程图2.3MDS图2.4分块说明程序主要分为6个模块:键盘模块,数码管模块,点阵模块,报警模块,防抖模块,控制模块。
以下进行详细介绍。
1.键盘模块本模块主要完成是4×4键盘扫描,然后获取其键值,并对其进行编码,从而进行按键的识别,并将相应的按键值进行显示。
键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出高电平,在读入输出的行值时,通常高电平会被低电平拉低,当当前位置为高电平“1”时,没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。
同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。
北邮数字电路综合实验报告

数字电路综合实验报告简易智能密码锁一、实验课题及任务要求设计并实现一个数字密码锁,密码锁有四位数字密码和一个确认开锁按键,密码输入正确,密码锁打开,密码输入错误进行警示。
基本要求:1、密码设置:通过键盘进行 4 位数字密码设定输入,在数码管上显示所输入数字。
通过密码设置确定键(BTN 键)进行锁定。
2、开锁:在闭锁状态下,可以输入密码开锁,且每输入一位密码,在数码管上显示“-”,提示已输入密码的位数。
输入四位核对密码后,按“开锁”键,若密码正确则系统开锁,若密码错误系统仍然处于闭锁状态,并用蜂鸣器或led 闪烁报警。
3、在开锁状态下,可以通过密码复位键(BTN 键)来清除密码,恢复初始密码“0000”。
闭锁状态下不能清除密码。
4、用点阵显示开锁和闭锁状态。
提高要求:1、输入密码数字由右向左依次显示,即:每输入一数字显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。
2、密码锁的密码位数(4~6 位)可调。
3、自拟其它功能。
二、系统设计2.1系统总体框图2.2逻辑流程图2.3MDS图2.4分块说明程序主要分为6个模块:键盘模块,数码管模块,点阵模块,报警模块,防抖模块,控制模块。
以下进行详细介绍。
1.键盘模块本模块主要完成是4×4键盘扫描,然后获取其键值,并对其进行编码,从而进行按键的识别,并将相应的按键值进行显示。
键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出高电平,在读入输出的行值时,通常高电平会被低电平拉低,当当前位置为高电平“1”时,没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。
同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。
北邮数电实验报告

北邮数电实验报告北邮数电实验报告一、引言数电实验是电子信息类专业学生必修的一门实验课程,通过实践操作,帮助学生巩固理论知识,培养实际动手能力。
本次实验旨在通过设计和搭建一个简单的数字电路,来理解数字电路的基本原理和工作方式。
二、实验目的本次实验的目的是设计一个4位二进制加法器,实现两个4位二进制数的相加运算。
通过实验,我们可以加深对于数字电路的理解,掌握数字电路的设计和搭建方法。
三、实验原理1. 二进制加法器二进制加法器是一种用于计算二进制数相加的数字电路。
它由若干个逻辑门和触发器组成,可以实现二进制数的加法运算。
在本次实验中,我们将设计一个4位二进制加法器,即可以计算两个4位二进制数的相加结果。
2. 逻辑门逻辑门是数字电路中常用的基本元件,用于实现逻辑运算。
常见的逻辑门有与门、或门、非门、异或门等。
在本次实验中,我们将使用与门和异或门来构建4位二进制加法器。
四、实验步骤1. 设计4位二进制加法器的电路图根据实验要求,我们需要设计一个能够计算两个4位二进制数相加的电路。
首先,我们可以将两个4位二进制数分别用D0~D3和E0~E3表示,其中D0和E0分别为最低位。
然后,我们需要使用与门和异或门来实现加法器的功能。
通过逻辑运算,我们可以得到每一位的和以及进位。
最后,将每一位的和连接起来,即可得到最终的结果。
2. 搭建电路根据电路图,我们可以开始搭建实验电路。
首先,将所需的逻辑门和触发器连接起来,形成一个完整的电路。
然后,将所需的输入信号和电源连接到电路上。
最后,使用示波器等工具检查电路的工作状态,确保电路正常运行。
3. 进行实验测试在搭建好电路后,我们可以进行实验测试。
首先,将两个4位二进制数的输入信号连接到电路上。
然后,通过观察输出信号,判断电路是否正确计算了两个二进制数的相加结果。
如果输出信号与预期结果一致,说明电路设计和搭建成功。
五、实验结果与分析在进行实验测试后,我们可以得到实验结果。
通过观察输出信号,我们可以判断电路是否正确计算了两个二进制数的相加结果。
北邮数电实验报告

北邮数电实验报告1. 实验目的本实验的目的是通过实际操作和实验验证,加深对数字电路的理解和掌握。
具体实验内容包括: 1. 实现各种基本逻辑电路(与门、或门、非门、异或门等)的电路设计。
2. 学习使用开关和LED灯进行数字信号输入和输出。
3. 掌握数字电路实验中常用的仪器设备的使用方法。
2. 实验器材和环境本实验所使用的器材和环境如下: - FPGA实验箱 - 数字逻辑集成电路(与门、或门、非门、异或门等) - 电源 - 接线板 - 数字电路实验仪器3. 实验步骤3.1 实验准备首先,我们需要将实验所需的器材连接好,包括将数字逻辑集成电路插入到FPGA实验箱上的插槽中,并将电源正确连接。
3.2 电路设计与布线根据实验要求,我们需要设计不同的基本逻辑电路。
比如,要设计一个与门电路,可以通过将两个输入端分别与两个开关连接,将输出端连接到一个LED灯上。
其他的逻辑电路同样可以设计类似的方式。
在设计和布线的过程中,需要注意保持电路的连通性,并避免出现短路等问题。
3.3 输入和输出信号设置根据实验要求,我们需要设置输入和输出信号。
可以通过控制开关的开合状态来设置输入信号,然后观察LED灯的亮灭情况来判断输出信号的状态是否符合预期。
3.4 实验数据记录和分析在实验过程中,我们需要记录每个逻辑电路的输入和输出信号状态,并进行分析。
可以通过绘制真值表或者逻辑门表来记录并分析数据。
4. 实验结果与分析根据实验步骤中记录的数据,我们可以得出实验结果,并进行进一步的分析。
比如,可以通过比对设计的逻辑电路输出和预期输出的差异,来判断实验是否成功完成。
5. 总结与反思通过本次实验,我深入了解和掌握了数字电路的基本原理和实验方法。
通过设计和实验验证,加深了对基本逻辑电路的理解,并熟悉了数字电路实验所使用的仪器设备。
在实验过程中,我遇到了一些问题,比如电路连接错误导致的信号不稳定等,但通过仔细调试和排查,最终解决了这些问题。
数电四人抢答器实验报告

数电四人抢答器实验报告以下是一个关于数电四人抢答器实验的简要报告:实验名称:数电四人抢答器实验实验目的:了解数字电路中的逻辑门和触发器的工作原理。
学习设计和实现简单的数字电路电路。
实践团队合作和实验报告撰写能力。
实验器材:逻辑门集成电路(如与门、或门、非门等)。
触发器集成电路(如RS触发器、JK触发器等)。
连接线、开关和LED等。
实验步骤:根据实验要求和设计需求,确定使用的逻辑门和触发器类型,并绘制电路图。
使用逻辑门和触发器集成电路以及其他所需器材,按照电路图连接电路。
验证电路连接的正确性,并确保逻辑门和触发器按预期工作。
进行四人抢答器功能测试,确认抢答器能够正确识别和显示抢答顺序。
记录实验过程中的观察结果、电路图、连接方式等。
分析实验结果,总结实验中遇到的问题和解决方案。
撰写实验报告,包括实验目的、器材使用、实验步骤、观察结果、分析和总结等。
实验结果:通过实验测试,我们成功设计和实现了一个四人抢答器,其功能良好并能够准确地识别和显示抢答顺序。
实验中遇到的问题包括电路连接错误和触发器设置不正确,但通过调试和修改解决了这些问题。
实验结果验证了逻辑门和触发器的工作原理,并加深了对数字电路设计的理解。
结论:数电四人抢答器实验通过实际操纵逻辑门和触发器集成电路,展示了数字电路设计和实现的基本过程。
实验不仅提高了团队合作能力,还加强了实验报告撰写和实验结果分析的能力。
通过这个实验,我们深入了解了数字电路的原理和应用,为后续的数电实验打下了基础。
以上是一个简要的数电四人抢答器实验报告,具体内容和格式可以根据实验要求和指导进行相应的调整。
北邮 大三上学期 数字电路综合实验报告

数字电路综合实验报告学院:信息与通信工程学院班级:201*******班内序号:**学生姓名:****学号:201*******一:设计课题的任务要求-------------------------------------------------------------------------------3基本要求:------------------------------------------------------------------------------3提高要求:------------------------------------------------------------------------------3二:系统设计(包括设计思路、总体框图、分块设计)------------------------------------------3设计思路:-------------------------------------------------------------------------------3总体框图:-------------------------------------------------------------------------------4分块设计:------------------------------------------------------------------------------41:分频器------------------------------------------------------------------42:防抖模块---------------------------------------------------------------53:模式调节模块---------------------------------------------------------54:手动定时&默认定时模块------------------------------------------75:倒计时模块------------------------------------------------------------86:火力调节模块---------------------------------------------------------87:数码管驱动模块------------------------------------------------------98:led显示模块----------------------------------------------------------109:关机模块---------------------------------------------------------------1110:蜂鸣器模块----------------------------------------------------------1111:点阵显示模块-------------------------------------------------------11三:仿真波形及波形分析--------------------------------------------------------------------------------121:分频器-----------------------------------------------------------------122:模式选择模块--------------------------------------------------------133:定时模块--------------------------------------------------------------134:倒计时模块-----------------------------------------------------------145:火力调节模块--------------------------------------------------------146:led显示模块---------------------------------------------------------157:蜂鸣器模块-----------------------------------------------------------15四:源程序--------------------------------------------------------------------------------------------------16总程序结构和原理图------------------------------------------------------------------16各部分程序结构原理图---------------------------------------------------------------181:分频器-----------------------------------------------------------------182:防抖模块--------------------------------------------------------------203:模式控制模块--------------------------------------------------------204:定时&倒计时模块---------------------------------------------------235:火力调节模块--------------------------------------------------------286:数码管显示模块-----------------------------------------------------307:led显示模块---------------------------------------------------------328:关机模块-------------------------------------------------------------339:蜂鸣器模块-----------------------------------------------------------3410:点阵显示模块------------------------------------------------------34五:功能说明-----------------------------------------------------------------------------------------------38六:元件清单和利用情况--------------------------------------------------------------------------------38七:故障和问题分析--------------------------------------------------------------------------------------39八:总结和结论--------------------------------------------------------------------------------------------40一:设计课题的任务要求设计制作一个简易电磁炉控制器。
数电实验报告北邮(3篇)

第1篇一、实验名称数字电路基础实验二、实验目的1. 熟悉数字电路的基本原理和组成。
2. 掌握常用数字电路元件(如逻辑门、触发器、计数器等)的功能和使用方法。
3. 培养动手能力和实验技能。
三、实验原理数字电路是由逻辑门、触发器、计数器等基本元件组成的。
逻辑门是数字电路的基本单元,用于实现基本的逻辑运算。
触发器是数字电路中的记忆单元,用于存储信息。
计数器是数字电路中的时序单元,用于实现计数功能。
四、实验仪器与设备1. 数字电路实验箱2. 万用表3. 导线4. 74LS00集成电路5. 74LS20集成电路五、实验内容1. 组合逻辑电路分析(1)搭建一个4输入与非门电路,输入端分别为A、B、C、D,输出端为Y。
(2)搭建一个2输入与非门电路,输入端分别为A、B,输出端为Y。
(3)搭建一个4输入与非门电路,输入端分别为A、B、C、D,输出端为Y。
要求输出Y为A、B、C、D的异或运算结果。
2. 触发器应用(1)搭建一个D触发器电路,输入端为D,输出端为Q。
(2)搭建一个JK触发器电路,输入端为J、K,输出端为Q。
(3)搭建一个计数器电路,使用D触发器实现一个4位二进制计数器。
3. 计数器应用(1)搭建一个十进制计数器电路,使用74LS90集成电路实现。
(2)搭建一个任意进制计数器电路,使用74LS90集成电路实现。
(3)搭建一个分频器电路,使用计数器实现。
六、实验步骤1. 根据实验原理和电路图,在实验箱上搭建实验电路。
2. 使用万用表测试电路的各个节点电压,确保电路连接正确。
3. 根据实验要求,输入不同的信号,观察输出结果。
4. 记录实验数据,分析实验结果。
七、实验结果与分析1. 组合逻辑电路分析(1)4输入与非门电路:当A、B、C、D都为0时,Y为1;否则,Y为0。
(2)2输入与非门电路:当A、B都为0时,Y为1;否则,Y为0。
(3)4输入与非门电路:当A、B、C、D中有奇数个1时,Y为1;否则,Y为0。
四人表决器实验报告

四人表决器实验报告四人表决器实验报告引言:在现代社会,决策是一项非常重要的任务。
无论是在政府机构、企业组织还是家庭中,都需要通过一定的方式来进行决策。
而在许多情况下,决策的过程需要多个人共同参与,因此如何有效地进行集体决策成为一个关键问题。
本次实验旨在探讨四人表决器在集体决策中的应用。
实验目的:1. 了解四人表决器的原理和工作方式;2. 探究四人表决器在集体决策中的优缺点;3. 分析四人表决器在不同场景下的适用性。
实验方法:本次实验采用模拟的方式进行,将四人表决器应用于不同的决策场景中,通过观察和分析来得出结论。
实验过程:1. 场景一:家庭晚餐决策在这个场景中,四个家庭成员需要决定今晚吃什么晚餐。
每个人将根据自己的喜好进行投票,然后通过四人表决器进行统计和计算。
结果显示,A选择了中餐,B选择了西餐,C选择了日本料理,D选择了韩国烧烤。
经过计算,结果显示没有达到一致意见,因此需要继续讨论或采取其他方式进行决策。
2. 场景二:公司项目决策在这个场景中,四位部门经理需要决定公司下一季度的重点项目。
每个经理将根据自己的部门情况和市场需求进行投票,然后通过四人表决器进行统计和计算。
结果显示,A选择了市场拓展项目,B选择了产品研发项目,C选择了人员培训项目,D选择了成本控制项目。
经过计算,结果显示市场拓展项目得到了三票,成为了下一季度的重点项目。
3. 场景三:学生活动策划在这个场景中,四个学生代表需要决定学校下一次活动的主题。
每个代表将根据同学们的意见和自己的想法进行投票,然后通过四人表决器进行统计和计算。
结果显示,A选择了运动会,B选择了文化艺术展览,C选择了志愿者活动,D选择了户外拓展。
经过计算,结果显示文化艺术展览得到了两票,成为了下一次活动的主题。
实验结果与讨论:通过以上实验,我们可以得出以下结论:1. 四人表决器可以帮助集体决策的参与者快速统计和计算投票结果,提高决策效率;2. 四人表决器在需要快速决策的场景中具有一定的优势,可以减少讨论和争论的时间;3. 四人表决器在面对意见分歧较大的情况下可能无法得到一致结果,需要进一步讨论或采取其他决策方式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北邮数电实验报告4人表决器_北邮电子-数电综合实验报告数字电路综合实验设计简易出租车计价器的设计与实现学院:电子工程学院班级:2011211203学号:2011210876姓名:孙月鹏班内序号:04摘要本文介绍了利用QuartusII综合性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(控制器计时)、0.5Hz(行驶路程计费)、0.3Hz(等待时间计费)以及用于提高分频效率的其他若按频率。
计数控制电路由四部分构成,整体完成行驶距离的计数、等待时间的计数以及费用的计数。
输出为三组十位二进制数。
转换电路有转换数据类型和在数码管上分时显示两个功能。
首先将输入的十位二进制数转换为4位十进制数,并且利用除法和取余数的运算提取出个位、十位、百位、千位,并转换为四位二进制BCD码。
其次利用0.5hz的时钟,将行驶里程、等待时间、计费金额以2秒为周期依次out1~4,供给数码管以便分时显示。
数码管译码电路以500HZ实现动态扫描,并将转换电路输出的5组BCD 码依次译码,完成显示。
点阵译码器根据载客控制信号,分别显示“O”、“X”静态图案。
(二)分块电路设计1.分频器(以100分频为例)1.1电路模块1.2关键代码ENTITYdiv_100ISPORT(clk100:INSTD_LOGIC;--clear:INSTD_LOGIC;clk1:OUTSTD_LOGIC);--ENDdiv_100;ARCHITECTUREa100OFdiv_100ISSIGNALtmp100:INTEGERRANGE0TO99;--BEGINp1:PROCESS(clear,clk100)--p1BEGINIFclear=“0”THENtmp100ELSIFclk100”eventANDclk100=“1”THENIFtmp100=99THENtmp100tmp100ENDPROCESSp1;clk100:输入时钟clear:复位端clk1:输出时钟输入时钟输出时钟计数信号进行100进制的计数p2:PROCESS(clk100)--p2输出占空比为50%的新时钟BEGIN IFclk100”eventANDclk100=“1”THE NIFtmp10049THENclk1clk1ENDPROCESSp2;ENDa100;1.3仿真波形图5200分频仿真波形图65分频仿真波形2.计数控制器2.1电路模块计数控制器由四部分组成,输入为三个不同频率的时钟、载客控制信号v和等待控制信号w。
control1完成里程的计数cd和行驶费用cm1,control2完成等待时间ct的计数和等待开始计费(ct5s)信号outt,control3接收到outt 后输出为等待时间的计费cm2,control4为总费用(cm1+cm2+燃油附加费1图7电路控制器设计关键思想是将费用、行驶里程、等待时间三个计数过程分开处理,并且将行驶计费和等待计费也分开处理。
通过载客信号v、等待信号w分别触发不用的进程完成计数。
因为行驶过程中每两秒1公里,每公里两元,等待过程中每三秒1元,因此分别用1hz、0.5hz、0.33hz的时钟完成计时、计费、记里程。
2.2模块control12.2.1电路模块行驶里程计数cd和行驶计费cm12.2.2关键代码ENTITYcontrol1ISPORT(clk2:INSTD_LOGIC;--输入是0.5Hz的时钟v:INSTD_LOGIC;--载客控制输入信号w:INSTD_LOGIC;--等待信号cm1:OUTSTD_LOGIC_VECTOR(9DOWNTO0);--里程计费cd:OUTSTD_LOGIC_VECTOR(9DOWNTO0));--行驶距离ENDcontrol1;ARCHITECTUREcOFcontrol1ISSIGNALtemp1:STD_LOGIC_VECTOR(9DOWNTO0);SIGNALtemp_cm:STD_LOGIC;BEGINp1:PROCESS(clk2,v,w)--p1里程计数BEGINIF(clk2”eventandclk2=“1”)THENIFv=“0”THEN--v=0时重新计数temp1ELSIFw=“1”THEN--开始等待时里程保持不变temp1ELSEtemp1p2:PROCESS(clk2,temp1)BEGINIF(clk2”eventandclk2=“1”)THENIFtemp1ELSEcm1cdENDPROCESSp2;ENDc;2.3模块control22.3.1电路模块等待时间计数ct和等待开始计费信号outt(ct5s)2.3.2关键代码ENTITYcontrol2ISPORT(clk1:INSTD_LOGIC;--输入是1Hz的时钟v:INSTD_LOGIC;--载客控制输入信号w:INSTD_LOGIC;--等待信号outt:outSTD_LOGIC;--若大于5秒,输出1ct:outSTD_LOGIC_VECTOR(9DOWNTO0));--等待时间输出ENDcontrol2;ARCHITECTUREcOFcontrol2ISSIGNALtempt:STD_LOGIC_VECTOR(9DOWNTO0);SIGNA Ltemp1:INTEGERRANGE0TO999;BEGINp3:PROCESS(clk1,v,w)--累加等待时间BEGINIF(clk1”eventandclk1=“1”)THENIFv=“0”THENtemptELSIFw=“0”THEN--行驶时保持状态tempttemp1ELSEtemptIFtemp14THEN--大于5秒时outt=1outtENDIF;ENDIF;ENDPROCESSp3;p4:PROCESS(clk1,tempt)--将信号赋给输出ctBEGINctENDPROCESSp4;ENDc;2.4模块control32.4.1电路模块当输入outt为1时,开始计数cm2为等待时间计费2.4.2关键代码ENTITYcontrol3ISPORT(clk3:INSTD_LOGIC;--输入是0.3Hz的时钟outt:INSTD_LOGIC;--为1时,等待时间大于5sv:INSTD_LOGIC;--载客控制输入信号w:INSTD_LOGIC;--等待信号cm2:outSTD_LOGIC_VECTOR(9DOWNTO0));--等待计费ENDcontrol3;ARCHITECTUREcOFcontrol3ISSIGNALtempm:STD_LOGIC_VECTOR(9DOWNTO0);BEGINp5:PROCESS(clk3,outt,v,w)BEGINIFoutt=“1”THEN--大于5秒时开始计费IF(clk3”eventandclk3=“1”)THENIFv=“0”THENtempmELSEtempmENDPROCESSp5;p6:PROCESS(clk3,tempm)BEGINIFV=“0”THENcm2cm2ENDPROCESSp6;ENDc;2.5control42.5.1电路模块将等待计费cm2和行驶计费cm1相加,并加上燃油费1元,得到总费用cm2.5.2关键代码ENTITYcontrol4ISPORT(clk2:INSTD_LOGIC;--输入是0.5Hz的时钟v:INSTD_LOGIC;--载客控制输入信号cm1:inSTD_LOGIC_VECTOR(9DOWNTO0);--行驶费用cm2:inSTD_LOGIC_VECTOR(9DOWNTO0);--等待费用cm:outSTD_LOGIC_VECTOR(9DOWNTO0));--总费用ENDcontrol4;ARCHITECTUREcOFcontrol4ISBEGINp5:PROCESS(clk2,v)BEGINIF(clk2”eventandclk2=“1”)THENIFv=“0”THENcmENDPROCESSp5;ENDc;2.6控制计数部分的总仿真波形图8控制计数器仿真波形3.转换器3.1电路模块由三个输入:行驶距离cd、等待时间ct、计费金额cm输出out1-5为四位二进制BCD码实现功能:将十位二进制数按照位数转为为BCD码3.2关键代码ENTITYtransformISPORT(clk:INSTD_LOGIC;--0.5hz的时钟v:INSTD_LOGIC;cd:inSTD_LOGIC_VECTOR(9DOWNTO0);--行驶距离ct:inSTD_LOGIC_VECTOR(9DOWNTO0);--等待时间cm:inSTD_LOGIC_VECTOR(9DOWNTO0);--总费用out1:outstd_logic_vector(3downto0);--输出个位out2:outstd_logic_vector(3downto0);--输出十位out3:outstd_logic_vector(3downto0);--输出百位out4:outstd_logic_vector(3downto0);--输出千位out5:outstd_logic_vector(3downto0));--输出ABCENDtransform;ARCHITECTUREcOFtransformISsignalcc:integerrange0to1023;signalt:std_logic_vector(1downto0);signalq1,q2,q3:integerrange0to1000 ;BEGINp1:PROCESS(clk,v)--p1进行3进制的计数BEGINIF(clk”eventandclk=“1”)THENIFv=“0”THENtelsift=“00”thentelsift=“01”thentelsift=“10”thentelsetENDIF;ENDIF;ENDPROCESSp1;p2:process(clk,t)BEGINif(clk”eventandclk=“1”)thenCASEtis--实现分时显示when”00”=ccccccccq1q3out1endprocessp2;ENDc;4.数码管译码电路4.1电路模块4.2关键代码ENTITYshumaguanISPORT(clk1:INSTD_LOGIC;---500hz数码管扫描时钟out5,out4,out3,out2,out1:INSTD_LOGIC_VECTOR(3DOWNTO0);g:OUTSTD_LOGIC_ VECTOR(6DOWNTO0);cat:OUTSTD_LOGIC_VECTOR(5DOWNTO0));ENDshumaguan;ARCHITECTUREaOFshumaguanISSIGNALtmpg:STD_LOGIC_VECTOR(6DOWNTO0);SIGNALtmpn:STD_LOGIC_VECTOR(3DO WNTO0);SIGNALtmpc:INTEGERRANGE0TO5;BEGINp1:PROCESS(clk1)--六进制计数BEGINif(clk1”eventandclk1=“1”)theniftmpc=5thentmpctmpcENDPROCESSp1;p2:PROCESS(clk1)--数码管选通轮流显示BEGINif(clk1”eventandclk1=“1”)then--将个位、十位等赋给各个数码管casetmpcisWHEN0=tmpntmpntmpntmpnWHEN5=tmpntmpnENDPROCESSp2;p3:PROCESS(tmpn)--译码电路BEGINCASEtmpnISWHEN”0000”=tmpgtmpgtmpgtmpgtmpgtmpgtmpgtmpgtmpgtm pgtmpgtmpgtmpgtmpg tmpg5.点阵译码电路5.1电路模块5.2关键代码ENTITYdzisPORT(clk500:INSTD_LOGIC;v:INSTD_LOGIC;row:OUTSTD_LOGIC_VECTOR(7DOWNTO0);--行col:OUTSTD_LOGIC_VECTOR(7DOWNTO0));--列ENDdz;ARCHITECTUREaOFdzISSIGNALtmp_row:STD_LOGIC_VECTOR(7DOWNTO0);SIGNALtmp_col:STD_LOGIC_VECT OR(7DOWNTO0);beginprocess(v,clk500)beginif(clk500”eventandclk500=“1”)thenifv=“0”thencasetmp_colisWHEN”11111110”=tmp_coltmp_coltmp_coltmp_coltmp_coltmp_coltmp_coltmp _coltmp_colcasetmp_colisWHEN”11111110”=tmp_coltmp_coltmp_coltmp_coltmp_coltmp_colWHEN”11111011”=tmp_colWHEN”11111101”=tmp_coltmp_col5.3仿真波形图9空载时显示“〇”图10载客时显示“X”四、实现功能说明1,实现功能实现计时、计里程、计费功能数码管可分时显示行驶距离、费用、等待时间点阵显示载客和空载状态2.器材的资源占用情况图11编译报告图12逻辑元件表由图11可得:本电路一共用了576个逻辑元件,占总逻辑元件数的45%,总管脚数37,占总管脚的32%。