数字电路实验报告

合集下载

郑大数电实验报告

郑大数电实验报告

一、实验目的1. 理解数字电路的基本概念和基本原理。

2. 掌握数字电路中常用逻辑门电路的功能和特性。

3. 学会使用数字电路实验箱进行基本实验操作。

4. 培养动手实践能力和分析问题、解决问题的能力。

二、实验原理数字电路是由逻辑门电路组成的,用于处理数字信号的电路。

逻辑门电路是数字电路的基本单元,包括与门、或门、非门、异或门等。

本实验主要涉及以下逻辑门电路:1. 与门(AND Gate):只有当所有输入信号都为高电平时,输出信号才为高电平。

2. 或门(OR Gate):只要有一个输入信号为高电平,输出信号就为高电平。

3. 非门(NOT Gate):输入信号为高电平时,输出信号为低电平;输入信号为低电平时,输出信号为高电平。

4. 异或门(XOR Gate):只有当输入信号不同时,输出信号才为高电平。

三、实验仪器与设备1. 数字电路实验箱2. 电源3. 逻辑开关4. 测试灯5. 连接线四、实验步骤1. 与门实验:- 将与门输入端连接到逻辑开关。

- 通过逻辑开关控制输入信号,观察输出信号的变化。

- 记录实验数据,分析实验结果。

2. 或门实验:- 将或门输入端连接到逻辑开关。

- 通过逻辑开关控制输入信号,观察输出信号的变化。

- 记录实验数据,分析实验结果。

3. 非门实验:- 将非门输入端连接到逻辑开关。

- 通过逻辑开关控制输入信号,观察输出信号的变化。

- 记录实验数据,分析实验结果。

4. 异或门实验:- 将异或门输入端连接到逻辑开关。

- 通过逻辑开关控制输入信号,观察输出信号的变化。

- 记录实验数据,分析实验结果。

五、实验结果与分析1. 与门实验:- 输入信号均为高电平时,输出信号为高电平。

- 至少有一个输入信号为低电平时,输出信号为低电平。

2. 或门实验:- 至少有一个输入信号为高电平时,输出信号为高电平。

- 输入信号均为低电平时,输出信号为低电平。

3. 非门实验:- 输入信号为高电平时,输出信号为低电平。

数字电路实验报告触发器

数字电路实验报告触发器

一、实验目的1. 理解触发器的概念、原理和功能。

2. 掌握触发器的分类、结构和逻辑功能。

3. 通过实验,验证触发器的逻辑功能,加深对触发器原理的理解。

二、实验原理触发器是一种具有记忆功能的电路,可以存储1个二进制位的信息。

它有两个稳定的状态:SET(置位)和RESET(复位)。

触发器的基本结构是RS触发器,由两个与非门组成,其逻辑功能可用真值表表示。

触发器按触发方式可分为同步触发器和异步触发器;按逻辑功能可分为RS触发器、D触发器、JK触发器和T触发器等。

三、实验仪器与材料1. 74LS74双D触发器芯片2. 74LS02四2输入与非门芯片3. 74LS00四2输入或非门芯片4. 74LS20四2输入或门芯片5. 74LS32四2输入与门芯片6. 74LS86四2输入异或门芯片7. 74LS125八缓冲器芯片8. 74LS126八缓冲器芯片9. 电源10. 示波器11. 信号发生器12. 逻辑笔四、实验内容1. RS触发器实验(1)搭建RS触发器电路:将74LS74芯片的Q1端与Q2端连接,Q1端接与非门74LS02的输入端,Q2端接与非门74LS02的输入端。

将74LS02的输出端分别连接到74LS20的输入端和74LS32的输入端。

(2)观察RS触发器逻辑功能:通过逻辑笔观察Q1端和Q2端的输出状态,记录下不同输入端S和R的值。

(3)分析RS触发器逻辑功能:根据真值表分析RS触发器的逻辑功能,得出结论。

2. D触发器实验(1)搭建D触发器电路:将74LS74芯片的Q1端接与非门74LS02的输入端,Q2端接与非门74LS02的输入端。

将74LS02的输出端分别连接到74LS20的输入端和74LS32的输入端。

(2)观察D触发器逻辑功能:通过逻辑笔观察Q1端和Q2端的输出状态,记录下不同输入端D的值。

(3)分析D触发器逻辑功能:根据真值表分析D触发器的逻辑功能,得出结论。

3. JK触发器实验(1)搭建JK触发器电路:将74LS74芯片的Q1端接与非门74LS02的输入端,Q2端接与非门74LS02的输入端。

数字电路实验报告 实验2

数字电路实验报告 实验2

实验二 译码器及其应用一、 实验目的1、掌握译码器的测试方法。

2、了解中规模集成译码器的管脚分布,掌握其逻辑功能。

3、掌握用译码器构成组合电路的方法。

4、学习译码器的扩展。

二、 实验设备及器件1、数字逻辑电路实验板1块 2、74HC(LS)20(二四输入与非门) 1片 3、74HC(LS)138(3-8译码器)2片三、 实验原理74HC(LS)138是集成3线-8线译码器,在数字系统中应用比较广泛。

下图是其引脚排列,其中A 2、A 1、A 0为地址输入端,Y ̅0~Y ̅7为译码输出端,S 1、S ̅2、S ̅3为使能端。

下表为74HC(LS)138功能表。

74HC(LS)138工作原理为:当S 1=1,S ̅2+S ̅3=0时,电路完成译码功能,输出低电平有效。

其中:Y ̅0=A ̅2A ̅1A ̅0̅̅̅̅̅̅̅̅̅̅ Y ̅4=A 2A ̅1A ̅0̅̅̅̅̅̅̅̅̅̅ Y ̅1=A ̅2A ̅1A 0̅̅̅̅̅̅̅̅̅̅ Y ̅5=A 2A ̅1A 0̅̅̅̅̅̅̅̅̅̅ Y ̅2=A ̅2A 1A ̅0̅̅̅̅̅̅̅̅̅̅ Y ̅6=A 2A 1A ̅0̅̅̅̅̅̅̅̅̅̅ Y ̅3=A ̅2A 1A 0̅̅̅̅̅̅̅̅̅̅Y ̅7=A 2A 1A 0̅̅̅̅̅̅̅̅̅̅因为74HC(LS)138的输出包括了三变量数字信号的全部八种组合,每一个输出端表示一个最小项(的非),因此可以利用八条输出线组合构成三变量的任意组合电路。

实验用器件管脚介绍:1、74HC(LS)20(二四输入与非门)管脚如下图所示。

2、74HC(LS)138(3-8译码器)管脚如下图所示。

四、实验内容与步骤(四学时)1、逻辑功能测试(基本命题)m。

验证74HC(LS)138的逻辑功能,说明其输出确为最小项i注:将Y̅0~Y̅7输出端接到LED指示灯上,因低电平有效,所以当输入为000时,Y̅0所接的LED指示灯亮,其他同理。

数字电路实验报告3

数字电路实验报告3

数字电路实验报告3实验目的本实验旨在通过实际操作,进一步了解数字电路中的加法器和减法器的基本原理,并通过观察和分析实验结果,加深对数字电路的理解。

实验原理加法器加法器是数字电路中常用的逻辑电路,用于将两个二进制数相加。

常见的加法器有半加法器、全加法器等。

在本实验中,我们将使用半加法器和全加法器来实现二进制数的加法运算。

半加法器是最基本的加法器,它只能实现1位二进制数的相加。

半加法器有两个输入端A和B,表示要相加的两个二进制位,以及两个输出端Sum和Carry,分别表示相加的结果和进位。

全加法器是在半加法器的基础上进行改进,可以实现多位二进制数的相加。

全加法器有三个输入端A、B和Carry-in,分别表示要相加的两个二进制位和进位。

它还有两个输出端Sum和Carry-out,分别表示相加的结果和进位。

减法器减法器是用于实现二进制数的减法运算的数字电路。

它可以将两个二进制数相减,并得到减法的结果。

在本实验中,我们将使用全减法器来实现二进制数的减法运算。

全减法器是将半减法器进行组合得到的。

它有三个输入端A、B和Borrow-in,分别表示被减数、减数和借位。

它还有两个输出端Diff和Borrow-out,分别表示减法的结果和借位。

实验步骤1.搭建半加法器电路:根据半加法器的原理图,使用逻辑门和触发器等器件,搭建一个半加法器电路。

2.连接输入端:将两个二进制数的相应位连接到半加法器电路的输入端A和B上。

3.连接输出端:将半加法器电路的输出端Sum和Carry连接到示波器上,用于观察结果。

4.输入数据:给输入端A和B分别输入二进制数,记录输入的数值。

5.观察结果:观察示波器上显示的结果,并记录下来。

6.分析结果:根据观察到的结果,分析二进制数的相加运算是否正确,以及进位是否正确。

7.搭建全加法器电路:根据全加法器的原理图,使用逻辑门和触发器等器件,搭建一个全加法器电路。

8.连接输入端:将两个二进制数的相应位和进位信号连接到全加法器电路的输入端A、B和Carry-in上。

数电实验报告实验一心得

数电实验报告实验一心得

数电实验报告实验一心得引言本实验是数字电路课程的第一次实验,旨在通过实际操作和观察,加深对数字电路基础知识的理解和掌握。

本次实验主要涉及布尔代数、逻辑门、模拟开关和数字显示等内容。

在实验过程中,我对数字电路的原理和实际应用有了更深入的了解。

实验一:逻辑门电路的实验实验原理逻辑门是数字电路中的基本组件,它能够根据输入的布尔值输出相应的结果。

常见的逻辑门有与门、或门、非门等。

本次实验主要是通过搭建逻辑门电路实现布尔函数的运算。

实验过程1. 首先,我按照实验指导书上的电路图,使用示波器搭建了一个简单的与门电路。

并将输入端连接到两个开关,输出端连接到示波器,以观察电路的输入和输出信号变化。

2. 其次,我打开示波器,观察了两个开关分别为0和1时的输出结果。

当两个输入均为1时,示波器上的信号为高电平,否则为低电平。

3. 我进一步观察了两个开关都为1时的输出信号波形。

通过示波器上的脉冲信号可以清晰地看出与门的实际运行过程,验证了实验原理的正确性。

实验结果和分析通过本次实验,我成功地搭建了一个与门电路,并观察了输入和输出之间的关系。

通过示波器上的信号波形,我更加直观地了解了数字电路中布尔函数的运算过程。

根据实验结果和分析,我可以总结出:1. 逻辑门电路可以根据布尔函数进行输入信号的运算,输出相应的结果。

2. 在与门电路中,当输入信号均为1时,输出信号为1,否则为0。

3. 示例器可以实时显示电路的输入和输出信号波形,方便实验者观察和分析。

结论通过本次实验,我对数字电路的基本原理和逻辑门电路有了更深刻的理解。

我学会了如何搭建逻辑门电路,并通过示波器观察和分析输入和输出信号的变化。

这对我进一步理解数字电路的设计和应用具有重要意义。

通过实验,我还锻炼了动手操作、实际观察和分析问题的能力。

实验过程中,需要认真对待并细致观察电路的运行情况,及时发现和解决问题。

这些能力对于今后的学习和研究都非常重要。

总之,本次实验让我更好地理解了数字电路的基本原理和应用,提高了我的实验能力和观察分析能力。

数电实验报告答案

数电实验报告答案

实验名称:数字电路基础实验实验目的:1. 熟悉数字电路的基本原理和基本分析方法。

2. 掌握数字电路实验设备的使用方法。

3. 培养动手实践能力和分析问题、解决问题的能力。

实验时间:2023年X月X日实验地点:实验室XX室实验仪器:1. 数字电路实验箱2. 万用表3. 双踪示波器4. 数字信号发生器5. 短路线实验内容:一、实验一:基本逻辑门电路实验1. 实验目的- 熟悉与门、或门、非门的基本原理和特性。

- 学习逻辑门电路的测试方法。

2. 实验步骤- 连接实验箱,设置输入端。

- 使用万用表测量输出端电压。

- 记录不同输入组合下的输出结果。

- 分析实验结果,验证逻辑门电路的特性。

3. 实验结果与分析- 实验结果与理论预期一致,验证了与门、或门、非门的基本原理。

- 通过实验,加深了对逻辑门电路特性的理解。

二、实验二:组合逻辑电路实验1. 实验目的- 理解组合逻辑电路的设计方法。

- 学习使用逻辑门电路实现组合逻辑电路。

2. 实验步骤- 根据设计要求,绘制组合逻辑电路图。

- 连接实验箱,设置输入端。

- 测量输出端电压。

- 记录不同输入组合下的输出结果。

- 分析实验结果,验证组合逻辑电路的功能。

3. 实验结果与分析- 实验结果符合设计要求,验证了组合逻辑电路的功能。

- 通过实验,掌握了组合逻辑电路的设计方法。

三、实验三:时序逻辑电路实验1. 实验目的- 理解时序逻辑电路的基本原理和特性。

- 学习使用触发器实现时序逻辑电路。

2. 实验步骤- 根据设计要求,绘制时序逻辑电路图。

- 连接实验箱,设置输入端和时钟信号。

- 使用示波器观察输出波形。

- 记录不同输入组合和时钟信号下的输出结果。

- 分析实验结果,验证时序逻辑电路的功能。

3. 实验结果与分析- 实验结果符合设计要求,验证了时序逻辑电路的功能。

- 通过实验,加深了对时序逻辑电路特性的理解。

四、实验四:数字电路仿真实验1. 实验目的- 学习使用数字电路仿真软件进行电路设计。

最新数字电路实验八实验报告

最新数字电路实验八实验报告

最新数字电路实验八实验报告实验目的:1. 熟悉数字电路的基本组成和工作原理。

2. 掌握数字电路的设计与测试方法。

3. 学习使用数字电路实验箱和相关测试设备。

实验原理:数字电路是由逻辑门电路组成的,通过不同的逻辑门可以构建出复杂的数字系统。

本实验通过设计和实现一个简单的数字电路系统,来加深对数字逻辑和电路设计的理解。

实验设备:1. 数字电路实验箱。

2. 示波器。

3. 逻辑笔。

4. 连接线。

实验步骤:1. 设计实验电路:根据实验要求,设计一个简单的数字电路,例如一个4位二进制加法器。

2. 搭建电路:使用数字电路实验箱中的逻辑门和其他电子元件,按照设计图搭建电路。

3. 测试电路:使用逻辑笔和示波器对电路的输入和输出进行测试,确保电路按照预期工作。

4. 调试优化:根据测试结果,对电路进行必要的调整和优化,直至电路完全符合设计要求。

实验结果:1. 电路图:附上设计的4位二进制加法器电路图。

2. 测试数据:列出输入的不同组合和对应的输出结果,验证电路的正确性。

3. 问题与解决:描述在实验过程中遇到的问题以及采取的解决措施。

实验结论:通过本次实验,我们成功设计并实现了一个4位二进制加法器。

实验过程中,我们学习了数字电路的设计流程,掌握了使用实验设备进行电路搭建和测试的技能。

同时,我们也意识到在电路设计中需要注意的细节问题,以及如何通过调试来解决实际问题。

建议与反思:在今后的实验中,我们应该更加注重对电路设计的前期规划,以及对电路性能的测试和验证。

此外,对于复杂的电路设计,可以尝试使用计算机辅助设计(CAD)软件来提高设计效率和准确性。

数字电路实验报告

数字电路实验报告

数字电路实验报告实验目的本实验的目的是通过对数字电路的实际操作,加深对数字电路原理和实验操作的理解。

通过实验,理论联系实际,加深学生对数字电路设计和实现的认识和理解。

实验内容本次实验的实验内容主要包括以下几个方面:1.数码管显示电路实验2.时序电路实验3.组合电路实验实验仪器和器材本次实验所使用的仪器和器材包括:•真空发光数字数码管•通用数字逻辑芯片•实验箱•数字电路设计软件•示波器数码管显示电路实验在数码管显示电路实验中,我们将使用真空发光数字数码管和逻辑芯片来实现数字数码管的显示功能。

具体的实验步骤如下:1.按照实验箱上的电路图,将逻辑芯片及其它所需器件正确连接。

2.通过数字电路设计软件,编写和下载逻辑芯片的程序。

3.观察数码管的显示效果,检查是否符合预期要求。

时序电路实验时序电路是数字电路中非常重要的一部分,通过时序电路可以实现各种各样的功能。

在时序电路实验中,我们将通过设计一个简单的计时器电路来学习时序电路的设计和实现。

具体的实验步骤如下:1.在实验箱上按照电路图连接逻辑芯片及其它所需器件。

2.通过数字电路设计软件,编写和下载逻辑芯片的程序。

3.通过示波器观察时序电路的波形,检查是否符合设计要求。

组合电路实验组合电路是由多个逻辑门组合而成的电路,可以实现各种逻辑功能。

在组合电路实验中,我们将使用逻辑芯片和其他器件,设计并实现一个简单的闹钟电路。

具体的实验步骤如下:1.在实验箱上按照电路图连接逻辑芯片及其它所需器件。

2.通过数字电路设计软件,编写和下载逻辑芯片的程序。

3.测试闹钟电路的功能和稳定性,检查是否符合设计要求。

实验结果与分析通过以上的实验,我们成功地实现了数码管显示、时序电路和组合电路的设计和实现。

实验结果表明,在正确连接逻辑芯片和其他器件,并编写正确的程序的情况下,我们可以实现各种各样的数字电路功能。

通过实验过程中的观察和测试,我们也发现了一些问题和改进的空间。

例如,在时序电路实验中,我们发现时序电路的波形不够稳定,可能需要进一步优化。

电路实验实验报告

电路实验实验报告

电路实验实验报告篇一:电路实验报告数字电路实验报告姓名:田月皎学号:XX080432201 学院:信息学院专业:运算机科学与技术指导教师:邹尔宁协助指导教师:XX年 12 月 28 日实验一经常使用仪器仪表利用一、实验目的:熟悉经常使用仪器仪表的利用二、实验器材:数字万用表,数字电路实验箱三、实验内容:熟悉万用表的功能及利用一、测电压〔直流电压测量〕二、测量电阻四、实验原理分析:〔一〕观看和了解数字万用表的构造一、熟悉数字万用表数字万用表的表头是灵敏电流计。

表头上的表盘印有多种符号,刻度线和数值。

符号A一V一Ω表示这只电表是能够测量电流、电压和电阻的多用表。

表盘上印有多条刻度线,其中右端标有“Ω〞的是电阻刻度线,其右端为零,左端为∞,刻度值散布是不均匀的。

符号“-〞或“DC〞表示直流,“~〞或“AC〞表示交流,“~〞表示交流和直流共用的刻度线。

刻度线下的几行数字是与选择开关的不同档位相对应的刻度值。

表头上还设有机械零位调整旋钮,用以校正指针在左端指零位。

2 、选择开关万用表的选择开关是一个多档位的旋转开关。

用来选择测量工程和量程。

〔如图3一4〔B〕〕。

一样的万用表测量工程包括:“mA〞;直流电流、“V〞:直流电压、“V〞:交流电压、“Ω〞:电阻。

每一个测量工程又划分为几个不同的量程以供选择。

二、表笔和表笔插孔表笔分为红、黑二只。

利历时应将红色表笔插入标有“+〞号的插孔,黑色表笔插入标有“-〞号的插孔。

〔二〕万用表的利用方式一、应检查表针是不是停在表盘左端的零位。

如有偏离,可用小螺丝刀轻轻转动表头上的机械零位调整旋钮,使表针指零 2 、将表笔按上面要求插入表笔插孔3 、将选择开关旋到相应的工程和量程上就能够够利用了〔三〕测试结果五实验总结:通过这次实验,了解了万用表的利用,明白了如何用万用表测量电阻,电压,等数据,稳固了电路根底。

实验二门电路功能测试一实验目的:〔1〕明白得TTL和CMOS一般门电路的参数含义〔2〕把握TTL和CMOS 一般门电路的利用方式〔3〕把握分析一般门电路逻辑功能的一样方式〔4〕明白得TTL和CMOS一般门电路参数的一样分析方式二、实验元器件:?一、四双输入与非门 74LS00 ×1片二、电阻100Ω×1只 ?3、电子电路实验箱 1个 ?4、数字万用表 1个三、实验内容:一、与非门逻辑功能测试 ? 二、与非门电压传输特性四、实验原理分析:一、与非门逻辑功能测试 (1)实验电路图与非门逻辑功能分析(a)器件顶视引脚图 (b)测试电路(2) 实验芯片 74LS00芯片 (3)实验进程? 一、参照与非门逻辑功能分析电路图,一只74LS00芯片中含有四个一样的双输入与非门? 二、依照电路图,将线连接正确,确保电路无误后可通电? 3、变换单刀双掷开关的状态,用直流电压表测试电路的输出电压〔4〕测试二、与非门电压传输特性 (1)实验电路图分析与非门电压传输特性电路〔2〕实验进程依照电路,在0~5V 间慢慢伐整输入的电流电压,将随之转变的数据记入测试结果表〔3〕测试结果五、实验总结:通过这次实验,学会用74LS00芯片做该实验研究“与非门电压传输特性〞,将可变电压从5V慢慢伐整到0V,电压在1V时跳变。

数电实验报告东大

数电实验报告东大

一、实验目的1. 理解数字电路的基本组成和基本原理。

2. 掌握常用数字电路的分析和设计方法。

3. 提高动手实践能力,加深对数字电路理论知识的理解。

二、实验内容本次实验主要包含以下内容:1. 数字电路基础实验2. 组合逻辑电路实验3. 时序逻辑电路实验三、实验仪器与设备1. 数字电路实验箱2. 数字信号发生器3. 示波器4. 计算器5. 实验指导书四、实验原理1. 数字电路基础实验:通过实验了解数字电路的基本组成和基本原理,包括逻辑门、编码器、译码器等。

2. 组合逻辑电路实验:通过实验掌握组合逻辑电路的分析和设计方法,包括加法器、编码器、译码器、数据选择器等。

3. 时序逻辑电路实验:通过实验掌握时序逻辑电路的分析和设计方法,包括触发器、计数器、寄存器等。

五、实验步骤1. 数字电路基础实验- 连接实验箱,检查电路连接是否正确。

- 按照实验指导书的要求,进行逻辑门、编码器、译码器等电路的实验。

- 观察实验结果,分析实验现象,并记录实验数据。

2. 组合逻辑电路实验- 连接实验箱,检查电路连接是否正确。

- 按照实验指导书的要求,进行加法器、编码器、译码器、数据选择器等电路的实验。

- 观察实验结果,分析实验现象,并记录实验数据。

3. 时序逻辑电路实验- 连接实验箱,检查电路连接是否正确。

- 按照实验指导书的要求,进行触发器、计数器、寄存器等电路的实验。

- 观察实验结果,分析实验现象,并记录实验数据。

六、实验结果与分析1. 数字电路基础实验- 通过实验,验证了逻辑门、编码器、译码器等电路的基本原理和功能。

- 实验结果符合理论预期,验证了数字电路的基本组成和基本原理。

2. 组合逻辑电路实验- 通过实验,掌握了组合逻辑电路的分析和设计方法。

- 实验结果符合理论预期,验证了组合逻辑电路的基本原理。

3. 时序逻辑电路实验- 通过实验,掌握了时序逻辑电路的分析和设计方法。

- 实验结果符合理论预期,验证了时序逻辑电路的基本原理。

数字电路实验报告

数字电路实验报告

数字电路实验报告本次实验是数字电路的实验,在本次实验中,我和我的同学们成功地完成了数字电路的实验,并且成功将LED灯显示。

1. 实验目的本次实验的目的是:通过实践操作,掌握数字电路的基础知识,能够有效地使用布尔代数和卡诺图方法进行电路设计和分析。

2. 实验基础数字电路是由数字电子元器件组成的电路。

数字电路能够处理数字信号,是所有数字计算机的基础核心部件。

数字电路的基础是数字集成电路的设计和应用。

数字电路的核心是门电路,门电路有多个种类,包括与门、或门、非门、异或门等。

门电路能够接受输入信号并输出信号,能够实现与、或、非、异或等逻辑运算。

在数字电路的实验中,我们需要掌握基本逻辑门的真值表和逻辑图,以及逻辑门的电路实现方法。

此外,我们还需要掌握一些进制转换的方法和数字电路的布线和测试方法。

3. 实验步骤本次实验中,我们的主要任务是设计和实现一个数字电路,该电路能够将数字输入转化成二进制显示输出,并且使用LED灯进行显示。

以下是我们的实验步骤。

步骤一:设计真值表首先,我们需要使用布尔代数和卡诺图方法,设计出一个真值表,该真值表能够将数字输入转换成二进制数输出。

步骤二:设计逻辑电路图在真值表的基础上,我们设计了一个逻辑电路图,该电路图包括与门、或门、非门、异或门等逻辑门电路,以及输入输出接口电路。

步骤三:建立硬件电路接下来,我们开始搭建硬件电路,将逻辑电路图中的元件进行布线连接。

步骤四:测试电路在布线完毕后,我们进行了电路的测试,确认电路能够工作,并且LED灯能够正常显示。

4. 实验结论通过本次实验,我学习到了数字电路的基础知识,能够使用布尔代数和卡诺图方法进行电路设计和分析。

我还学会了逻辑门的真值表和逻辑图的设计方法,以及数字电路的布线和测试方法。

最终,我和我的同学们成功地完成了数字电路的实验,将数字转换为二进制数并成功显示。

这次实验对我的学习和科研工作具有重要的启示和帮助。

数电项目实验报告(3篇)

数电项目实验报告(3篇)

第1篇一、实验目的1. 理解数字电路的基本概念和组成原理。

2. 掌握常用数字电路的分析方法。

3. 培养动手能力和实验技能。

4. 提高对数字电路应用的认识。

二、实验器材1. 数字电路实验箱2. 数字信号发生器3. 示波器4. 短路线5. 电阻、电容等元器件6. 连接线三、实验原理数字电路是利用数字信号进行信息处理的电路,主要包括逻辑门、触发器、计数器、寄存器等基本单元。

本实验通过搭建简单的数字电路,验证其功能,并学习数字电路的分析方法。

四、实验内容及步骤1. 逻辑门实验(1)搭建与门、或门、非门等基本逻辑门电路。

(2)使用数字信号发生器产生不同逻辑电平的信号,通过示波器观察输出波形。

(3)分析输出波形,验证逻辑门电路的正确性。

2. 触发器实验(1)搭建D触发器、JK触发器、T触发器等基本触发器电路。

(2)使用数字信号发生器产生时钟信号,通过示波器观察触发器的输出波形。

(3)分析输出波形,验证触发器电路的正确性。

3. 计数器实验(1)搭建异步计数器、同步计数器等基本计数器电路。

(2)使用数字信号发生器产生时钟信号,通过示波器观察计数器的输出波形。

(3)分析输出波形,验证计数器电路的正确性。

4. 寄存器实验(1)搭建移位寄存器、同步寄存器等基本寄存器电路。

(2)使用数字信号发生器产生时钟信号和输入信号,通过示波器观察寄存器的输出波形。

(3)分析输出波形,验证寄存器电路的正确性。

五、实验结果与分析1. 逻辑门实验通过实验,验证了与门、或门、非门等基本逻辑门电路的正确性。

实验结果表明,当输入信号满足逻辑关系时,输出信号符合预期。

2. 触发器实验通过实验,验证了D触发器、JK触发器、T触发器等基本触发器电路的正确性。

实验结果表明,触发器电路能够根据输入信号和时钟信号产生稳定的输出波形。

3. 计数器实验通过实验,验证了异步计数器、同步计数器等基本计数器电路的正确性。

实验结果表明,计数器电路能够根据输入时钟信号进行计数,并输出相应的输出波形。

数字电路实验报告_北邮

数字电路实验报告_北邮

一、实验目的本次实验旨在通过实践操作,加深对数字电路基本原理和设计方法的理解,掌握数字电路实验的基本步骤和实验方法。

通过本次实验,培养学生的动手能力、实验技能和团队合作精神。

二、实验内容1. 实验一:TTL输入与非门74LS00逻辑功能分析(1)实验原理TTL输入与非门74LS00是一种常用的数字逻辑门,具有高抗干扰性和低功耗的特点。

本实验通过对74LS00的逻辑功能进行分析,了解其工作原理和性能指标。

(2)实验步骤① 使用实验箱和实验器材搭建74LS00与非门的实验电路。

② 通过实验箱提供的逻辑开关和指示灯,验证74LS00与非门的逻辑功能。

③ 分析实验结果,总结74LS00与非门的工作原理。

2. 实验二:数字钟设计(1)实验原理数字钟是一种典型的数字电路应用,由组合逻辑电路和时序电路组成。

本实验通过设计一个24小时数字钟,使学生掌握数字电路的基本设计方法。

(2)实验步骤① 分析数字钟的构成,包括分频器电路、时间计数器电路、振荡器电路和数字时钟的计数显示电路。

② 设计分频器电路,实现1Hz的输出信号。

③ 设计时间计数器电路,实现时、分、秒的计数。

④ 设计振荡器电路,产生稳定的时钟信号。

⑤ 设计数字时钟的计数显示电路,实现时、分、秒的显示。

⑥ 组装实验电路,测试数字钟的功能。

3. 实验三:全加器设计(1)实验原理全加器是一种数字电路,用于实现二进制数的加法运算。

本实验通过设计全加器,使学生掌握全加器的工作原理和设计方法。

(2)实验步骤① 分析全加器的逻辑功能,确定输入和输出关系。

② 使用实验箱和实验器材搭建全加器的实验电路。

③ 通过实验箱提供的逻辑开关和指示灯,验证全加器的逻辑功能。

④ 分析实验结果,总结全加器的工作原理。

三、实验结果与分析1. 实验一:TTL输入与非门74LS00逻辑功能分析实验结果表明,74LS00与非门的逻辑功能符合预期,具有良好的抗干扰性和低功耗特点。

2. 实验二:数字钟设计实验结果表明,设计的数字钟能够实现24小时计时,时、分、秒的显示准确,满足实验要求。

最新数字电路实验二实验报告

最新数字电路实验二实验报告

最新数字电路实验二实验报告实验目的:1. 理解并掌握数字电路的基本组成原理和工作原理。

2. 学习使用数字逻辑分析仪进行电路测试和故障诊断。

3. 通过实验加深对组合逻辑和时序逻辑电路设计的理解。

实验内容:1. 设计并搭建一个4位二进制加法器电路。

2. 实现一个简单的数字时钟电路,能够显示时、分、秒。

3. 使用数字逻辑分析仪检测电路的功能和时序。

实验设备:1. 数字逻辑分析仪2. 示波器3. 集成电路芯片(如74LS系列)4. 面包板5. 跳线实验步骤:1. 根据实验指导书,选择合适的逻辑门芯片,设计4位二进制加法器电路。

2. 在面包板上搭建电路,并使用跳线连接逻辑门。

3. 利用数字逻辑分析仪检查电路的输入输出情况,确保电路正确实现二进制加法功能。

4. 设计数字时钟电路,包括计数器、分频器和显示模块。

5. 同样在面包板上搭建数字时钟电路,并进行测试,调整电路以确保时间显示准确无误。

6. 再次使用数字逻辑分析仪,观察时钟电路的时序关系和稳定性。

实验结果:1. 成功搭建了4位二进制加法器电路,并通过测试,验证了其加法功能。

2. 数字时钟电路运行正常,能够准确显示时间,并通过逻辑分析仪确认了其稳定的时序关系。

实验分析:1. 在实验过程中,发现加法器电路在处理进位时存在延迟,通过优化电路布局和选择合适的逻辑门芯片,成功解决了问题。

2. 数字时钟电路的分频部分需要精确的电阻和电容值,实验中通过调整这些元件的参数,确保了时钟的准确性。

实验结论:通过本次实验,加深了对数字电路设计和测试的理解,特别是在组合逻辑和时序逻辑方面的应用。

同时,也提高了使用数字逻辑分析仪进行电路分析和问题诊断的能力。

数电 实验报告

数电 实验报告

数电实验报告数电实验报告引言:数电实验是电子信息类专业的基础实验之一,通过实践操作,加深学生对数字电路的理解和应用能力。

本文将结合实际实验,对数电实验进行详细的报告。

一、实验目的本次实验的主要目的是通过设计、搭建并测试数字电路,加深对数字电路基本原理的理解,并掌握数字电路的设计和调试方法。

二、实验器材和原理本次实验所需的器材包括数字逻辑实验箱、示波器、函数信号发生器等。

实验原理主要涉及数字逻辑门电路、触发器、计数器等。

三、实验步骤与结果1. 实验一:基本逻辑门电路的设计与测试在实验一中,我们根据所学的逻辑门电路的知识,设计了与门、或门和非门电路,并使用实验箱搭建电路。

通过输入不同的信号,观察输出结果,验证电路的正确性。

实验结果显示,逻辑门电路能够根据输入信号的不同进行逻辑运算,并输出相应的结果。

2. 实验二:触发器的设计与测试在实验二中,我们学习了触发器的基本原理和应用。

通过搭建RS触发器和D触发器电路,并使用函数信号发生器输入时钟信号和触发信号,观察触发器的输出。

实验结果表明,触发器能够根据输入的时钟信号和触发信号,在特定条件下改变输出状态。

3. 实验三:计数器的设计与测试在实验三中,我们学习了计数器的基本原理和应用。

通过搭建二进制计数器电路,使用示波器观察计数器的输出波形,并验证计数器的功能。

实验结果显示,计数器能够根据输入的时钟信号,按照一定规律进行计数,并输出相应的结果。

四、实验总结与心得体会通过本次数电实验,我深刻理解了数字电路的基本原理和设计方法。

在实验过程中,我不仅学会了使用实验器材进行电路搭建和测试,还掌握了数字电路的调试技巧。

通过不断的实践操作,我对数字电路的理论知识有了更加深入的理解。

在今后的学习和工作中,我将继续加强对数字电路的学习和应用,不断提高自己的实践能力。

同时,我也明白了实验中的每一个细节都非常重要,只有严格按照实验步骤进行操作,才能保证实验结果的准确性和可靠性。

总之,本次数电实验是我在数字电路领域的一次重要实践,通过实验的过程,我不仅巩固了理论知识,还培养了自己的动手操作和问题解决能力。

数字电路实验报告

数字电路实验报告

数字电路实验报告摘要:本实验旨在通过设计和实现数字电路,加深对数字电路原理的理解,并掌握电路设计和实验的基本方法。

本实验主要包括逻辑门电路、计数器电路和状态机电路的设计与实现。

通过实验,我们成功验证了数字电路的基本原理和功能。

引言:数字电路是现代电子技术的基础,广泛应用于计算机、通信、嵌入式系统等领域。

数字电路实验是电子工程专业的重要实践环节,通过实验可以加深对数字电路原理的理解,培养学生的动手实践能力和问题解决能力。

一、逻辑门电路设计与实现逻辑门电路是数字电路的基本组成部分,本实验通过设计和实现与、或、非、异或等逻辑门电路,加深对逻辑门的理解。

1.1 与门电路设计与实现与门是将两个输入信号进行逻辑与运算的电路,输出信号为两个输入信号的逻辑与。

根据与门的真值表,我们设计了与门电路,并使用逻辑门集成电路进行实现。

1.2 或门电路设计与实现或门是将两个输入信号进行逻辑或运算的电路,输出信号为两个输入信号的逻辑或。

根据或门的真值表,我们设计了或门电路,并使用逻辑门集成电路进行实现。

1.3 非门电路设计与实现非门是将输入信号进行逻辑非运算的电路,输出信号为输入信号的逻辑非。

根据非门的真值表,我们设计了非门电路,并使用逻辑门集成电路进行实现。

1.4 异或门电路设计与实现异或门是将两个输入信号进行异或运算的电路,输出信号为两个输入信号的异或。

根据异或门的真值表,我们设计了异或门电路,并使用逻辑门集成电路进行实现。

二、计数器电路设计与实现计数器电路是数字电路中常用的电路,本实验通过设计和实现二进制计数器和BCD计数器,加深对计数器电路的理解。

2.1 二进制计数器电路设计与实现二进制计数器是一种能够进行二进制计数的电路,根据计数器的位数,可以实现不同范围的计数。

我们设计了4位二进制计数器电路,并使用触发器和逻辑门集成电路进行实现。

2.2 BCD计数器电路设计与实现BCD计数器是一种能够进行BCD码计数的电路,BCD码是二进制编码的十进制表示形式。

数字系统电路实验报告(3篇)

数字系统电路实验报告(3篇)

第1篇一、实验目的1. 理解数字系统电路的基本原理和组成。

2. 掌握数字电路的基本实验方法和步骤。

3. 通过实验加深对数字电路知识的理解和应用。

4. 培养学生的动手能力和团队合作精神。

二、实验原理数字系统电路是由数字逻辑电路构成的,它按照一定的逻辑关系对输入信号进行处理,产生相应的输出信号。

数字系统电路主要包括逻辑门电路、触发器、计数器、寄存器等基本单元电路。

三、实验仪器与设备1. 数字电路实验箱2. 数字万用表3. 示波器4. 逻辑分析仪5. 编程器四、实验内容1. 逻辑门电路实验(1)实验目的:熟悉TTL、CMOS逻辑门电路的逻辑功能和测试方法。

(2)实验步骤:1)搭建TTL与非门电路,测试其逻辑功能;2)搭建CMOS与非门电路,测试其逻辑功能;3)测试TTL与门、或门、非门等基本逻辑门电路的逻辑功能。

2. 触发器实验(1)实验目的:掌握触发器的逻辑功能、工作原理和应用。

(2)实验步骤:1)搭建D触发器电路,测试其逻辑功能;2)搭建JK触发器电路,测试其逻辑功能;3)搭建计数器电路,实现计数功能。

3. 计数器实验(1)实验目的:掌握计数器的逻辑功能、工作原理和应用。

(2)实验步骤:1)搭建同步计数器电路,实现加法计数功能;2)搭建异步计数器电路,实现加法计数功能;3)搭建计数器电路,实现定时功能。

4. 寄存器实验(1)实验目的:掌握寄存器的逻辑功能、工作原理和应用。

(2)实验步骤:1)搭建4位并行加法器电路,实现加法运算功能;2)搭建4位并行乘法器电路,实现乘法运算功能;3)搭建移位寄存器电路,实现数据移位功能。

五、实验结果与分析1. 逻辑门电路实验通过搭建TTL与非门电路和CMOS与非门电路,测试了它们的逻辑功能,验证了实验原理的正确性。

2. 触发器实验通过搭建D触发器和JK触发器电路,测试了它们的逻辑功能,实现了计数器电路,验证了实验原理的正确性。

3. 计数器实验通过搭建同步计数器和异步计数器电路,实现了加法计数和定时功能,验证了实验原理的正确性。

电路实验报告(9篇)

电路实验报告(9篇)

电路实验报告(9篇)电路试验报告1一、试验仪器及材料1、信号发生器2、示波器二、试验电路三、试验内容及结果分析1、VCC=12v,VM=6V时测量静态工作点,然后输入频率为5KHz的正弦波,调整输入幅值使输2、VCC=9V,VM=4、5V时测量静态工作点,然后输入频率为5KHz的正弦波,调整输入幅值使输3、VCC=6V,VM=3V时测量静态工作点,然后输入频率为5KHz的正弦波,调整输入幅值使输出波形最大且不失真。

(以下输入输出值均为有效值)四、试验小结功率放大电路特点:在电源电压确定的状况下,以输出尽可能大的不失真的信号功率和具有尽可能高的转换效率为组成原则,功放管常工作在尽限应用状态。

电路试验报告2一、试验目的1、更好的理解、稳固和把握汽车全车线路组成及工作原理等有关内容。

2、稳固和加强课堂所学学问,培育实践技能和动手力量,提高分析问题和解决问题的力量和技术创新力量。

二、试验设备全车线路试验台4台三、试验设备组成全车电线束,仪表盘,各种开关、前后灯光分电路、点火线圈、发动机电脑、传感器、继电器、中心线路板、节气组件、电源、收放机、保险等。

四、组成原理汽车总线路的组成:汽车电器与电子设备总线路,包括电源系统、起动系统、点火系统、照明和信号装置、仪表和显示装置、帮助电器设备等电器设备,以及电子燃油喷射系统、防抱死制动系统、安全气囊系统等电子掌握系统。

随着汽车技术的进展,汽车电器设备和电子掌握系统的应用日益增多。

五、试验方法与步骤1、汽车线路的特点:汽车电路具有单线、直流、低压和并联等根本特点。

(1)汽车电路通常采纳单线制和负搭铁,汽车电路的单线制.通常是指汽车电器设备的正极用导线连接(又称为火线),负极与车架或车身金属局部连接,与车架或车身连接的导线又称为搭铁线。

蓄电池负极搭铁的汽车电路,称为负搭铁。

现代汽车普遍采纳负搭铁。

同一汽车的全部电器搭铁极性是全都的。

对于某些电器设备,为了保证其工作的牢靠性,提高灵敏度,仍旧采纳双线制连接方式。

数字电路实验报告 2023年数字电路实训报告(精彩7篇)

数字电路实验报告 2023年数字电路实训报告(精彩7篇)

数字电路实验报告2023年数字电路实训报告(精彩7篇)用数字信号完成对数字量进行算术运算和逻辑运算的电路称为数字电路,或数字系统。

由于它具有逻辑运算和逻辑处理功能,所以又称数字逻辑电路。

下面是作者给大家整理的7篇2023年数字电路实训报告,希望可以启发您对于数字电路实验报告的写作思路。

数字电路实训报告篇一一、实训时间__二、实训地点__电工电子实习基地三、指导老师__四、实训目的1、熟悉电工工具的使用方法。

2、了解安全用电的有关知识及触电的急救方法。

3、掌握电工基本操作技能。

4、熟悉电动机控制电路的调试及故障排除方法。

5、熟悉电动机板前配线的工艺流程及安装方法。

6、了解电动机正转反转电路设计的一般步骤,并掌握电路图的绘制方法。

7、熟悉常用电器元件的性能、结构、型号、规格及使用范围。

五、实训资料(一)常用低压电器介绍1、螺旋式熔断器螺旋式熔断器电路中较简单的短路保护装置,使用中,由于电流超过容许值产生的热量使串联于主电路中的熔体熔化而切断电路,防止电器设备短路或严重过载。

它由熔体、熔管、盖板、指示灯和触刀组成。

选取熔断器时不仅仅要满足熔断器的形式贴合线路和安装要求,且务必满足熔断器额定电压小于线路工作电压,熔断器额定电流小于线路工作电流。

2、热继电器热继电器是用来保护电动机使之免受长期过载的危害。

但是由于热继电器的热惯性,它只能做过载保护。

它由热元件、触头系统、动作机构、复位按钮、整定电流装置、升温补偿元件组成。

其工作原理为:热元件串接在电动机定子绕组仲,电动机绕组电流即为流动热元件的电流。

电动机正常运行时热元件产生热量虽能使双金属片弯曲还不足以使继电器动作。

电动机过载时,经过热元件电流增大,热元件热量增加,使双金属片弯曲增大,经过一段时光后,双金属片推动导板使继电器出头动作,从而切断电动机控制电路。

3、按钮开关按钮开关是用来接通或断开控制电路的,电流比较小。

按钮由动触点和静触点组成。

其工作原理为:按下按钮时,动触点就把下边的静触点接通而断开上边的静触点。

【最新】西南交大,数字电路,实验报告-word范文 (8页)

【最新】西南交大,数字电路,实验报告-word范文 (8页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==西南交大,数字电路,实验报告篇一:数字电子技术实验报告数字电子技术实验报告姓名:尚朝武学号:201X0123400044 实验时间:201X-12-24实验一(一) 1、实验内容:(1用静态法测试74LS00与非门电路的逻辑功能 2、实验原理图如图1.113、实验步骤:1) 用万用表测量双路跟踪稳压电源中的+5V电源电压; 2) 检查无误后引用通用接插板;3) 在芯片盒中找到74LS00芯片并插入通用接插板上; 4) 测试与非门的逻辑功能A. 按图1.1接线,检查接线无误后通电;;B. 设置输入变量A、B的高(H)、低(L)电平,并分别测量与非门的输出电压U;(U>3.6V时,则Y=H(1);反之,Y=L(0))。

5)用万用表测量输出电压,并将结果填入表1.1.1中 4、实验结果见表1.1.1表1.1.1(二 1、实验内容用动态测试法验证图(a)、(b)、(c)的输入输出波形。

2、实验原理图图图图(表)d74ls86管脚图和引脚图及真值表3、实验步骤1)利用实验一——(一)的双路跟踪稳压电源中的+5V电源电压; 2)检查无误后引用通用接插板;3)在芯片盒中分别找到74LS86、74LS60芯片并分别插入通用接插板上; 4)分次按图a、b、c、d接线,检查接线无误后通电;设置输入变量A的信号为100kHz 5)分别记下数字显示器显示的波形。

4、实验结果见下图图a的输入(图上)、输出(图下)波形图b的输入(图上)、输出(图下)波形三)图c的输入(图上)、输出(图下)波形1、实验内容:(1用静态法测试74LS139静态译码器的逻辑功能 2、实验原理图如图A、B 3、实验步骤:1) 利用实验一——(一)的双路跟踪稳压电源中的+5V电源电压; 2) 检查无误后引用通用接插板;3) 在芯片盒中找到74LS139芯片并插入通用接插板上; 4) 测试74LS139译码器的逻辑功能a) 按图1.1接线,检查接线无误后通电;;b) 设置输入变量A、B及E的高(H)、低(L)电平,并分别测量74LS139的输出电压U;(U>3.6V时,则Y=H(1);反之,Y=L(0)); 5)用万用表测量输出电压,并将结果填入表1.2中 4、实验结果见表1.2图A 74LS139的管脚图篇二:201X-201X西南交大数字电路第1次作业(注意:若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字电路设计实验——简易电子琴演奏器班级:2010211112姓名:李红豆学号:10210367班内序号:26一.设计课题的任务要求基本要求:1、用8×8点阵显示“1 2 3 4 5 6 7”七个音符构成的电子琴键盘。

其中点阵的第一列用一个LED点亮表示音符“1”,第二列用二个LED点亮表示音符“2”,依此类推,如下图所示。

图1点阵显示的电子琴键盘2、用BTN1~BTN7七个按键模拟电子琴手动演奏时的“1 2 3 4 5 6 7”七个音符。

当某个按键按下时,数码管显示相应的音符,点阵上与之对应的音符显示列全灭,同时蜂鸣器演奏相应的声音;当按键弹开时数码管显示的音符灭掉,点阵显示恢复,蜂鸣器停止声音的输出。

下图所示为按下BTN3按键时点阵的显示情况。

图2 按键按下后的点阵显示3、由拨码开关切换选择高、中、低音,并用数码管进行相应的显示。

4、通过按键BTN0进行复位,控制点阵显示图1的初始状态。

提高要求:1、可通过一个拨码开关进行手动/自动演奏的切换,并与点阵显示配合增加自动演奏乐曲的功能。

2、增加手动演奏的音符存储、播放功能。

二.系统设计1. 设计思路 根据声乐知识,产生音乐的两个因素是音乐频率和持续时间。

本设计要求产生高、中、低音的1、2、3、4、5、6、7各音符共21个,分别对应21个不同的频率,这些频率通过对基准时钟以不同的分频系数进行分频可以得到。

音符发声的持续时间需要有一个合适频率的时钟来控制,一般的乐曲一拍为1/4s ,所以可以用4Hz 的时钟来控制每个音符对应频率的输出,从而实现乐曲的自动输出。

2. 总体框图图1 总体顶层框图CLKRESET键盘输入 电源存储控制模式选择图2 总体对外接口框图蜂鸣器点阵数码管图3 总体逻辑框图Array图4 总体RTL电路框图3.分块设计①节拍控制时钟模块:本模块为自动播放的乐曲以及存储待播放的乐曲提供节拍,每1/4秒为一拍。

经过对基准时钟50MHz进行分频实现4Hz信号输出。

②音符编码产生模块:本模块可划分为三个小模块,分别为手动输入编码模块、自动播放乐曲存放模块、录音及录音播放模块。

手动输入编码模块:将七个音符以及高低音控制键通过一个9位向量输入,高两位表示高中低音,“00”表示低音,“01”表示中音,“10”表示高音,高中低音由两个拨码开关控制。

第七位从高到低分别表示7、6、5、4、3、2、1,由BTN7~BTN1控制输入。

再对这相应21个9位的向量进行相应编码,使之成为5位向量,高两位仍旧表示高中低音,第三位表示1~7七个音符,这样编码过后一方面会节省资源,另一方面便于存储以及与其他模式的匹配。

自动播放乐曲存放模块:将一段乐曲的音符进行同上方式的五位编码,并按照4Hz的节拍进行赋值。

录音及录音播放模块:先要定义一个足够长的存储模块,本设计采用数组。

在录音模式下,将键盘输入编成的五位向量码按4Hz的节拍存入数组,结束录音后数组中便存储了在录音模式下输入的音符编码。

再用4Hz的节拍控制数组中的音符编码赋值给输出向量来实现录音播放。

最后通过控制拨码开关来实现三个模块输出的切换。

图5 音符编码产生模块③显示模块:显示模块包括点阵显示模块和数码管显示模块,对于输入的音符编码TONE,来对点阵和数码管的管脚进行相应赋值,来显示对应的图形和数字。

点阵显示:点阵扫描需要一个8位向量的COL选通列管脚和一个8位向量ROW来选通行管脚。

其中,COL高电平有效,ROW低电平有效。

为防止因每列不同数量的LED分流而导致点阵显示亮度不均的状况,本设计采用选通行,即逐行扫描的办法来实现点阵显示。

由于从1到7的七个音符要显示不同的点阵图像,故选用CASE语句,来对每个音符分情况选通管脚并扫描点阵。

选用CASE语句而不用IF语句会提高系统速度。

数码管显示:数码管显示是时钟对选通信号的控制来显示特定数码管,所以先要定义选通信号。

本设计中的数码管是共阴极,共六个。

其中两个数码管需要显示,一个显示音高——“0”表示低音、“1”表示中音、“2”表示高音,另一个显示1~7七个音符,不用的数码管选通信号要置1。

所以定义的选通信号COM 应为一个6位向量,每次时钟扫描时只选通一个。

而对数码管LED的选通则通过一个7位向量,这个向量由音符编码产生模块产生的音符编码来对应控制。

④分频模块:由于每个音符都有其特定的频率,这些频率的产生基于对同一时钟故基于同一基准时钟50MHz进行分频得到。

不同音符对应不同分频系数,从而使蜂鸣器发出不同声音。

各个音符及其频率和对应分频系数表如下。

4.状态转移图“0”5.流程图否三.仿真波形及波形分析1、音符编码产生模块仿真图,图8为手动输入和自动播放的仿真:AUTO 为高电平时为自动播放模式,五位向量TONE按节拍输出已存储乐曲的音符编码;AUTO为低电平时,手动输入INDEX_S,图8中手动输入了低音的哆,仿真结果为TONE输出同样时长的低音哆对应编码。

图9中主要是对录音功能的仿真:AUTO 为低电平,STORE为高电平时,通过INDEX_S手动输入的音符赋值给TONE输出,之后将STORE置为低电平,S_PLAY为高电平时,TONE按4Hz节拍输出上一状态手动输入的那些音符,仿真成功。

图8图92、分频模块方针图,不同的TONE输入对应不同分频系数,下图中SPK 的不同周期体现了这一点,仿真成功。

图103、显示模块仿真图。

图11为点阵仿真结果, ROW表示点阵行选通的八个管脚,按扫描周期依次选通,低电平有效;COL表示列选通的八个管脚,无音符输入时,第一列选通最低位的一个管脚,第二列选通低二位管脚,第三列选通第三位,以此类推,第七列选通低七位管脚,当有音符输入时,若输入的是音符i则相应第i置为低电平,使第i列点阵熄灭,向量COL高电平有效。

仿真图中依次输入了低音2和4的两个音符,输入2时,COL从低位数起的第二位变为低电平,其他不变,输入4时,COL的第四位变为低电平,其他不变。

仿真成功。

图12为数码管显示仿真结果,COM向量表示六个数码管选通管脚,对共阴极数码管低电平有效,每次扫描只选通一个,由于本设计中只需要显示两个数码管,故COM向量中只有两个元素随着扫描周期交替选通,如图中所示,COM为“111101”时,选通音高显示,COM为“111110”时,选通音符显示。

SEG向量表示数码管的七个LED的选通管脚,在扫描周期中,会随着COM的变化选通显示,图中以高音2和中音4为例进行仿真:高音2时,音高显示为2,音符显示也为2,故随着扫描时钟以及COM的周期变化SEG没有变化,一直保持“1011011”——2的显示,只是有偶尔的毛刺;中音4时,音高显示为1,音符显示为4,随着COM的周期性选通,SEG也有周期性变化,COM为“111101”时,SEG为“0000110”,显示音高为1,即中音,COM为“111110”时,SEG为“1100110”,显示音符为4。

仿真成功。

图11图12四.源程序1、节拍控制时钟4Hz模块源程序CLK4HZ LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED;ENTITY CLK4HZ ISPORT(CLK :IN STD_LOGIC;CLK4HZ: OUT STD_LOGIC);END;ARCHITECTURE ONE OF CLK4HZ ISSIGNAL TMP:INTEGER RANGE 0 TO 24999999;BEGINP1:PROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1')THENIF TMP=12499999 THEN TMP<=0;ELSE TMP<=TMP+1;END IF;END IF;END PROCESS;P2:PROCESS(TMP)BEGINIF TMP<6249999 THEN CLK4HZ<='0';ELSE CLK4HZ<='1';END IF;END PROCESS;END;2、音符编码产生模块源程序PAILIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY PAI IS ---选择手动、自动和存储模式:如果手动那就输入实际音符,输出向量表示TONE2;若是自动就用clk4hz控制以MUSIC(同TONE向量形式)存储的乐曲自动演奏。

若是存储,则将手动生成的TONE2存储在数组中,并在播放时输出。

PORT(RES:IN STD_LOGIC;TONE: OUT STD_LOGIC_VECTOR(4 DOWNTO 0);---高两位为高中低音,低三位为音符 INDEX_S:IN STD_LOGIC_VECTOR(8 DOWNTO 0);--INDEX向量:0—6为7个音符元素,8—9为高低音.CLK4HZ,AUTO:IN STD_LOGIC;STORE:IN STD_LOGIC; ---存储状态S_PLAY:IN STD_LOGIC;---存储播放状态CLR:IN STD_LOGIC);---清零,即把存储数组初始化END ;ARCHITECTURE ONE OF PAI ISSIGNAL TONE2:STD_LOGIC_VECTOR(4 DOWNTO 0);SIGNAL auto_index:STD_LOGIC_VECTOR(4 DOWNTO 0);SIGNAL COUNTER:INTEGER RANGE 0 TO 65;TYPE SHUZU IS ARRAY(100 DOWNTO 0) OF STD_LOGIC_VECTOR(4 DOWNTO 0);SIGNAL S:SHUZU;SIGNAL JISHU:INTEGER RANGE 0 TO 100;SIGNAL XIABIAO:INTEGER RANGE 0 TO 100;SIGNAL LONG:INTEGER RANGE 0 TO 100;BEGINP1:PROCESS(INDEX_S)---手动输入编码码模块BEGINCASE INDEX_S ISWHEN"000000000"=>TONE2<="00000";WHEN"000000001"=>TONE2<="00001"; WHEN"000000010"=>TONE2<="00010"; WHEN"000000100"=>TONE2<="00011"; WHEN"000001000"=>TONE2<="00100"; WHEN"000010000"=>TONE2<="00101"; WHEN"000100000"=>TONE2<="00110"; WHEN"001000000"=>TONE2<="00111";WHEN"010000001"=>TONE2<="01001"; WHEN"010000010"=>TONE2<="01010"; WHEN"010000100"=>TONE2<="01011"; WHEN"010001000"=>TONE2<="01100"; WHEN"010010000"=>TONE2<="01101"; WHEN"010100000"=>TONE2<="01110"; WHEN"011000000"=>TONE2<="01111";WHEN"100000001"=>TONE2<="10001"; WHEN"100000010"=>TONE2<="10010"; WHEN"100000100"=>TONE2<="10011"; WHEN"100001000"=>TONE2<="10100"; WHEN"100010000"=>TONE2<="10101"; WHEN"100100000"=>TONE2<="10110"; WHEN"101000000"=>TONE2<="10111";WHEN OTHERS=>TONE2<="00000";END CASE;END PROCESS;P2:PROCESS(CLK4HZ,COUNTER)---自动播放存储的乐曲向量表BEGINIF(CLK4HZ'EVENT AND CLK4HZ='1')THENIF COUNTER=153 THEN COUNTER<=0;ELSE COUNTER<=COUNTER+1;END IF;END IF;CASE COUNTER ISWHEN 0=>auto_index<="10110";WHEN 1=>auto_index<="10110";WHEN 2=>auto_index<="10111";WHEN 4=>auto_index<="11001"; WHEN 5=>auto_index<="11001"; WHEN 6=>auto_index<="11001"; WHEN 7=>auto_index<="11001"; WHEN 8=>auto_index<="10111"; WHEN 9=>auto_index<="11001"; WHEN 10=>auto_index<="11001"; WHEN 11=>auto_index<="11011"; WHEN 12=>auto_index<="11011"; WHEN 13=>auto_index<="10111"; WHEN 14=>auto_index<="10111"; WHEN 15=>auto_index<="10111"; WHEN 16=>auto_index<="10111"; WHEN 17=>auto_index<="10101"; WHEN 18=>auto_index<="10101"; WHEN 19=>auto_index<="10011"; WHEN 20=>auto_index<="10011"; WHEN 21=>auto_index<="10110"; WHEN 22=>auto_index<="10110"; WHEN 23=>auto_index<="10101"; WHEN 24=>auto_index<="10101"; WHEN 25=>auto_index<="10110"; WHEN 26=>auto_index<="10110"; WHEN 27=>auto_index<="11001"; WHEN 28=>auto_index<="11001"; WHEN 29=>auto_index<="10101"; WHEN 30=>auto_index<="10101"; WHEN 31=>auto_index<="10101"; WHEN 32=>auto_index<="10101"; WHEN 33=>auto_index<="10011"; WHEN 34=>auto_index<="10011"; WHEN 35=>auto_index<="10100"; WHEN 36=>auto_index<="10100"; WHEN 37=>auto_index<="10100"; WHEN 38=>auto_index<="10011"; WHEN 39=>auto_index<="10100"; WHEN 40=>auto_index<="10100"; WHEN 41=>auto_index<="11001"; WHEN 42=>auto_index<="11001"; WHEN 43=>auto_index<="10111"; WHEN 44=>auto_index<="10111"; WHEN 45=>auto_index<="10111"; WHEN 46=>auto_index<="10111";WHEN 48=>auto_index<="11001";WHEN 49=>auto_index<="10111";WHEN 50=>auto_index<="10111";WHEN 51=>auto_index<="10111";WHEN 52=>auto_index<="10011";WHEN 53=>auto_index<="10011";WHEN 54=>auto_index<="10111";WHEN 55=>auto_index<="10111";WHEN 56=>auto_index<="10110";WHEN 57=>auto_index<="10110";WHEN 58=>auto_index<="10110";WHEN 59=>auto_index<="10110";WHEN 60=>auto_index<="10110";WHEN 61=>auto_index<="10110";WHEN 62=>auto_index<="00000";WHEN 63=>auto_index<="00000";WHEN 64=>auto_index<="00000";WHEN 65=>auto_index<="00000";WHEN OTHERS=>NULL;END CASE;END PROCESS;P3:PROCESS(STORE,CLK4HZ,JISHU,CLR)---存储模块,将存储模式下手动输入得到的---TONE2存起来BEGINIF STORE='1' THENIF CLR='1'THEN JISHU<=0;---清零信号,若选通,则存储数组清零ELSIF (CLK4HZ'EVENT AND CLK4HZ='1') THENS(JISHU)<=TONE2;IF JISHU=100 THEN JISHU<=0;ELSE JISHU<=JISHU+1;END IF;END IF;ELSE LONG<=JISHU; ---记录录音长度值END IF;END PROCESS;P4:PROCESS(CLK4HZ,XIABIAO,CLR)---存储播放模块BEGINIF CLR='1' THEN XIABIAO<=0;ELSIF (CLK4HZ'EVENT AND CLK4HZ='1') THENIF XIABIAO=LONG THEN XIABIAO<=0;ELSE XIABIAO<=XIABIAO+1;END IF;END IF;END PROCESS;P5:PROCESS(RES,AUTO,S_PLAY,auto_index,TONE2,S,XIABIAO)---模式选择模块 BEGINIF RES='1' THEN TONE<="00000";ELSEIF AUTO='1' THEN TONE<=auto_index;ELSIF S_PLAY='1' THEN TONE<=S(XIABIAO);ELSE TONE<=TONE2;END IF;END IF;END PROCESS;END;3、分频模块源程序FENPINLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FENPIN ISPORT(TONE:IN STD_LOGIC_VECTOR(4 DOWNTO 0);SPK:OUT STD_LOGIC;---蜂鸣器输出CLK:IN STD_LOGIC );END;ARCHITECTURE ONE OF FENPIN ISSIGNAL XISHU:INTEGER RANGE 0 TO 95554;SIGNAL CN:INTEGER RANGE 0 TO 95554;SIGNAL SPK0:STD_LOGIC;BEGINP1:PROCESS(TONE)---将各音符编码对应到各自分频系数BEGINCASE TONE ISWHEN"00001"=>XISHU<=95554;WHEN"00010"=>XISHU<=85129;WHEN"00011"=>XISHU<=75842;WHEN"00100"=>XISHU<=71585;WHEN"00101"=>XISHU<=63776;WHEN"00110"=>XISHU<=56817;WHEN"00111"=>XISHU<=50619;WHEN"01001"=>XISHU<=47777;WHEN"01010"=>XISHU<=42565;WHEN"01011"=>XISHU<=37921;WHEN"01100"=>XISHU<=35792;WHEN"01101"=>XISHU<=31887;WHEN"01110"=>XISHU<=28408;WHEN"01111"=>XISHU<=25309;WHEN"10001"=>XISHU<=23888;WHEN"10010"=>XISHU<=21282;WHEN"10011"=>XISHU<=18960;WHEN"10100"=>XISHU<=17896;WHEN"10101"=>XISHU<=15943;WHEN"10110"=>XISHU<=14204;WHEN"10111"=>XISHU<=12654;WHEN OTHERS=>XISHU<=0;END CASE;END PROCESS;P2:PROCESS(CLK,XISHU,CN)---根据分频系数进行分频BEGINIF(CLK'EVENT AND CLK='1')THENCN<=CN+1;IF CN=XISHU THEN CN<=0;SPK0<=NOT SPK0;END IF;END IF;SPK<=SPK0;END PROCESS;END;4、显示模块源程序TONELIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TONE ISPORT(TONE:IN STD_LOGIC_VECTOR(4 DOWNTO 0);ROW:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);---点阵行COL:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);---点阵列COM:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);---数码管选通 SG:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);---数码管显示 CLK:IN STD_LOGIC);END TONE;ARCHITECTURE ONE OF TONE ISSIGNAL TMP:INTEGER RANGE 0 TO 9999;SIGNAL CN2:INTEGER RANGE 0 TO 1;SIGNAL CN:INTEGER RANGE 0 TO 6;SIGNAL S:INTEGER RANGE 0 TO 1;SIGNAL CLK_SM:STD_LOGIC;BEGINP1:PROCESS(CLK)---确定扫描合适的频率250HzBEGINIF(CLK'EVENT AND CLK='1')THENIF TMP=9999 THENTMP<=0;CLK_SM<=NOT CLK_SM;ELSETMP<=TMP+1;END IF;END IF;END PROCESS;P2:PROCESS(TONE,CLK_SM,CN)---点阵显示,按行选通,逐行扫描BEGINIF(CLK_SM'EVENT AND CLK_SM='1')THENIF CN=6 THENCN<=0;ELSE CN<=CN+1;END IF;END IF;IF( TONE="00001" OR TONE="01001" OR TONE="10001" ) THEN ---1 CASE CN ISWHEN 0=> ROW<="11111110";COL<="01111110";WHEN 1=> ROW<="11111101";COL<="01111110";WHEN 2=> ROW<="11111011";COL<="01111100";WHEN 3=> ROW<="11110111";COL<="01111000";WHEN 4=> ROW<="11101111";COL<="01110000";WHEN 5=> ROW<="11011111";COL<="01100000";WHEN 6=> ROW<="10111111";COL<="01000000";WHEN OTHERS=> ROW<="11111111";COL<="00000000";END CASE;ELSIF (TONE="00010" OR TONE="01010" OR TONE="10010") THEN---2 CASE CN ISWHEN 0=> ROW<="11111110";COL<="01111101";WHEN 1=> ROW<="11111101";COL<="01111100";WHEN 2=> ROW<="11111011";COL<="01111100";WHEN 3=> ROW<="11110111";COL<="01111000";WHEN 4=> ROW<="11101111";COL<="01110000";WHEN 5=> ROW<="11011111";COL<="01100000";WHEN 6=> ROW<="10111111";COL<="01000000";WHEN OTHERS=> ROW<="11111111";COL<="00000000";END CASE;ELSIF (TONE="00011" OR TONE="01011" OR TONE="10011") THEN---3 CASE CN ISWHEN 0=> ROW<="11111110";COL<="01111011";WHEN 1=> ROW<="11111101";COL<="01111010";WHEN 2=> ROW<="11111011";COL<="01111000";WHEN 3=> ROW<="11110111";COL<="01111000";WHEN 4=> ROW<="11101111";COL<="01110000";WHEN 5=> ROW<="11011111";COL<="01100000";WHEN 6=> ROW<="10111111";COL<="01000000";WHEN OTHERS=> ROW<="11111111";COL<="00000000";END CASE;ELSIF (TONE="00100" OR TONE="01100" OR TONE="10100") THEN ---4 CASE CN ISWHEN 0=> ROW<="11111110";COL<="01110111";WHEN 1=> ROW<="11111101";COL<="01110110";WHEN 2=> ROW<="11111011";COL<="01110100";WHEN 3=> ROW<="11110111";COL<="01110000";WHEN 4=> ROW<="11101111";COL<="01110000";WHEN 5=> ROW<="11011111";COL<="01100000";WHEN 6=> ROW<="10111111";COL<="01000000";WHEN others=> ROW<="11111111";COL<="00000000";END CASE;ELSIF (TONE="00101" OR TONE="01101" OR TONE="10101") THEN ---5 CASE CN ISWHEN 0=> ROW<="11111110";COL<="01101111";WHEN 1=> ROW<="11111101";COL<="01101110";WHEN 2=> ROW<="11111011";COL<="01101100";WHEN 3=> ROW<="11110111";COL<="01101000";WHEN 4=> ROW<="11101111";COL<="01100000";WHEN 5=> ROW<="11011111";COL<="01100000";WHEN 6=> ROW<="10111111";COL<="01000000";WHEN others=> ROW<="11111111";COL<="00000000";END CASE;ELSIF (TONE="00110" OR TONE="01110" OR TONE="10110") THEN ---6 CASE CN ISWHEN 0=> ROW<="11111110";COL<="01011111";WHEN 1=> ROW<="11111101";COL<="01011110";WHEN 2=> ROW<="11111011";COL<="01011100";WHEN 3=> ROW<="11110111";COL<="01011000";WHEN 4=> ROW<="11101111";COL<="01010000";WHEN 5=> ROW<="11011111";COL<="01000000";WHEN 6=> ROW<="10111111";COL<="01000000";WHEN others=> ROW<="11111111";COL<="00000000";END CASE;ELSIF (TONE="00111" OR TONE="01111" OR TONE="10111")THEN---7CASE CN ISWHEN 0=> ROW<="11111110";COL<="00111111";WHEN 1=> ROW<="11111101";COL<="00111110";WHEN 2=> ROW<="11111011";COL<="00111100";WHEN 3=> ROW<="11110111";COL<="00111000";WHEN 4=> ROW<="11101111";COL<="00110000";WHEN 5=> ROW<="11011111";COL<="00100000";WHEN others=> ROW<="11111111";COL<="00000000";END CASE;ELSECASE CN ISWHEN 0=> ROW<="11111110";COL<="01111111";WHEN 1=> ROW<="11111101";COL<="01111110";WHEN 2=> ROW<="11111011";COL<="01111100";WHEN 3=> ROW<="11110111";COL<="01111000";WHEN 4=> ROW<="11101111";COL<="01110000";WHEN 5=> ROW<="11011111";COL<="01100000";WHEN 6=> ROW<="10111111";COL<="01000000";WHEN OTHERS=> ROW<="11111111";COL<="00000000";END CASE;END IF;END PROCESS P2;P3:PROCESS(TONE,CLK_SM,S,CN2)---数码管显示,低音是0,中音是1,高音是2 BEGINCASE CN2 ISWHEN 0=>COM<="111101";S<=0;---音高WHEN 1=>COM<="111110";S<=1;---音符WHEN OTHERS =>NULL;END CASE;IF (CLK_SM'EVENT AND CLK_SM='1')THEN ---两个选通管脚交替选通的两个状态IF CN2=1 THEN CN2<=0;ELSE CN2<=CN2+1;END IF;END IF;---以下是音高和音符的21种组合方式的数码管显示状态IF TONE="00000"THENCASE S ISWHEN 0=>SG<="0111111";WHEN 1=>SG<="0111111";WHEN OTHERS=>NULL;END CASE;ELSIF TONE="01000" THENCASE S ISWHEN 0=>SG<="0111111";WHEN 1=>SG<="0111111";WHEN OTHERS=>NULL;END CASE;ELSIF TONE="10000" THENCASE S ISWHEN 0=>SG<="0111111";WHEN 1=>SG<="0111111";WHEN OTHERS=>NULL;END CASE;ELSIF TONE="00001" THENCASE S ISWHEN 0=>SG<="0111111";WHEN 1=>SG<="0000110";WHEN OTHERS=>NULL;END CASE;ELSIF TONE="00010"THENCASE S ISWHEN 0=>SG<="0111111";WHEN 1=>SG<="1011011";WHEN OTHERS=>NULL;END CASE;ELSIF TONE="00011"THENCASE S ISWHEN 0=>SG<="0111111";WHEN 1=>SG<="1001111";WHEN OTHERS=>NULL;END CASE;ELSIF TONE="00100"THENCASE S ISWHEN 0=>SG<="0111111";WHEN 1=>SG<="1100110"; WHEN OTHERS=>NULL; END CASE;ELSIF TONE="00101"THEN CASE S ISWHEN 0=>SG<="0111111"; WHEN 1=>SG<="1101101"; WHEN OTHERS=>NULL; END CASE;ELSIF TONE="00110"THEN CASE S ISWHEN 0=>SG<="0111111"; WHEN 1=>SG<="1111101"; WHEN OTHERS=>NULL; END CASE;ELSIF TONE="00111"THEN CASE S ISWHEN 0=>SG<="0111111"; WHEN 1=>SG<="0000111"; WHEN OTHERS=>NULL; END CASE;ELSIF TONE="01001"THEN CASE S ISWHEN 0=>SG<="0000110"; WHEN 1=>SG<="0000110"; WHEN OTHERS=>NULL; END CASE;ELSIF TONE="01010"THEN CASE S ISWHEN 0=>SG<="0000110"; WHEN 1=>SG<="1011011"; WHEN OTHERS=>NULL; END CASE;ELSIF TONE="01011"THEN CASE S ISWHEN 0=>SG<="0000110"; WHEN 1=>SG<="1001111"; WHEN OTHERS=>NULL;END CASE;ELSIF TONE="01100"THEN CASE S ISWHEN 0=>SG<="0000110"; WHEN 1=>SG<="1100110"; WHEN OTHERS=>NULL; END CASE;ELSIF TONE="01101"THEN CASE S ISWHEN 0=>SG<="0000110"; WHEN 1=>SG<="1101101"; WHEN OTHERS=>NULL; END CASE;ELSIF TONE="01110"THEN CASE S ISWHEN 0=>SG<="0000110"; WHEN 1=>SG<="1111101"; WHEN OTHERS=>NULL; END CASE;ELSIF TONE="01111"THEN CASE S ISWHEN 0=>SG<="0000110"; WHEN 1=>SG<="0000111"; WHEN OTHERS=>NULL; END CASE;ELSIF TONE="10001"THEN CASE S ISWHEN 0=>SG<="1011011"; WHEN 1=>SG<="0000110"; WHEN OTHERS=>NULL; END CASE;ELSIF TONE="10010"THEN CASE S ISWHEN 0=>SG<="1011011"; WHEN 1=>SG<="1011011"; WHEN OTHERS=>NULL; END CASE;ELSIF TONE="10011"THENCASE S ISWHEN 0=>SG<="1011011";WHEN 1=>SG<="1001111";WHEN OTHERS=>NULL;END CASE;ELSIF TONE="10100"THENCASE S ISWHEN 0=>SG<="1011011";WHEN 1=>SG<="1100110";WHEN OTHERS=>NULL;END CASE;ELSIF TONE="10101"THENCASE S ISWHEN 0=>SG<="1011011";WHEN 1=>SG<="1101101";WHEN OTHERS=>NULL;END CASE;ELSIF TONE="10110"THENCASE S ISWHEN 0=>SG<="1011011";WHEN 1=>SG<="1111101";WHEN OTHERS=>NULL;END CASE;ELSIF TONE="10111"THENCASE S ISWHEN 0=>SG<="1011011";WHEN 1=>SG<="0000111";WHEN OTHERS=>NULL;END CASE;ELSECASE S ISWHEN 0=>SG<="1111001";---错误情况,两个数码管均显示零WHEN 1=>SG<="1111001";WHEN OTHERS=>NULL;END CASE;END IF;END PROCESS;END;5、顶层模块源程序TOPLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY TOP ISPORT(CLK0:IN STD_LOGIC;RES0:IN STD_LOGIC;SG0:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);COL0:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);ROW0:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);INDEX:IN STD_LOGIC_VECTOR(8 DOWNTO 0);AUTO0:IN STD_LOGIC;COMMON0:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); SP:OUT STD_LOGIC;STORE0:IN STD_LOGIC;S_PLAY0:IN STD_LOGIC;CLR0:IN STD_LOGIC);END TOP;ARCHITECTURE BEHAV OF TOP ISCOMPONENT CLK4HZ---节拍控制时钟模块PORT(CLK:IN STD_LOGIC;CLK4HZ:OUT STD_LOGIC);END COMPONENT;COMPONENT PAI---音符编码模块,各模式的切换PORT(RES:IN STD_LOGIC;TONE: OUT STD_LOGIC_VECTOR(4 DOWNTO 0); INDEX_S:IN STD_LOGIC_VECTOR(8 DOWNTO 0); CLK4HZ,AUTO:IN STD_LOGIC;STORE:IN STD_LOGIC;S_PLAY:IN STD_LOGIC;CLR:IN STD_LOGIC);END COMPONENT;COMPONENT TONE---显示模块PORT(TONE:IN STD_LOGIC_VECTOR(4 DOWNTO 0);COM:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);SG:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);COL:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);ROW:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);CLK:IN STD_LOGIC);END COMPONENT;COMPONENT FENPIN---分频模块PORT(TONE:IN STD_LOGIC_VECTOR(4 DOWNTO 0);SPK:OUT STD_LOGIC;CLK:IN STD_LOGIC );END COMPONENT;SIGNAL TONE_0:STD_LOGIC_VECTOR(4 DOWNTO 0);SIGNAL CLK_P:STD_LOGIC;BEGINU1:CLK4HZ PORT MAP(CLK=>CLK0,CLK4HZ=>CLK_P);U2:PAI PORT MAP(RES=>RES0,TONE=>TONE_0,INDEX_S=>INDEX,CLK4HZ=>CLK_P,AUTO=>AUTO0,STORE=>STOR E0,S_PLAY=>S_PLAY0,CLR=>CLR0);U3:TONE PORT MAP(TONE=>TONE_0,COM=>COMMON0,SG=>SG0,COL=>COL0,ROW=>ROW0,CLK=>CLK0);U4:FENPIN PORT MAP(TONE=>TONE_0,SPK=>SP,CLK=>CLK0);END;五.功能说明1、图1点阵显示的电子琴键盘2、用BTN1~BTN7七个按键模拟电子琴手动演奏时的“1 2 3 4 5 6 7”七个音符。

相关文档
最新文档