数电实验报告

合集下载

郑大数电实验报告

郑大数电实验报告

一、实验目的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.组合逻辑电路:由多个逻辑门组成的逻辑电路,称为组合逻辑电路。

在组合逻辑电路中,各个逻辑门输出与输入的关系是由逻辑门之间的位置和连接方式决定的。

实验仪器和材料:1.数字电路实验箱2.数字逻辑集成电路(例如74LS00、74LS02、74LS04等)3.连线实验步骤:1.实验前准备:将所需的74系列数字集成电路插入到数字电路实验箱的插槽中并连接好电源。

2.实验一:实现逻辑门的基本逻辑运算a.连接和经逻辑门74LS08,将A、B作为输入,将其输出接到LED指示灯上;b.依次给A、B输入不同的逻辑电平,观察输出结果,并记录下来;c.尝试连接其他逻辑门实现不同的逻辑运算,并观察其输出结果。

3.实验二:组合逻辑电路的设计a.根据实验需求,设计一个3输入与门电路;b.使用74LS08等逻辑门实现该电路;c.给输入端依次输入不同的逻辑电平,观察输出结果,并记录下来。

4.实验三:数字电路的简化和优化a.给定一个复杂的逻辑电路图,使用布尔代数等方法进行化简,寻找最简布尔方程;b.结合实际情况,将最简布尔方程转换为最简的逻辑电路图;c.根据设计的逻辑电路图,使用逻辑门组装出该电路,并验证其功能。

实验数据和结果:1.实验一结果:A,B,输:-------:,:-------:,:---------0,0,0,1,1,0,1,1,2.实验二结果:A,B,C,输:-------:,:-------:,:-------:,:--------0,0,0,0,0,1,0,1,0,0,1,1,1,0,0,1,0,1,1,1,0,1,1,1,3.实验三结果:(示例)原始布尔方程:F=A'B+AB'+AC+B'C最简化布尔方程:F=A⊕B⊕C逻辑电路图:![逻辑电路图](logic_circuit.png)实验结论:通过本次实验,我们学习到了逻辑门的基本原理、应用和各个逻辑门的特点。

数电实验报告实验

数电实验报告实验

一、实验目的1. 理解和掌握数字电路的基本原理和设计方法。

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

3. 提高分析问题和解决问题的能力。

二、实验原理数字电路是一种以二进制为基础的电路,其基本元件是逻辑门和触发器。

本实验主要涉及以下几种逻辑门:与门、或门、非门、异或门、同或门、与非门、或非门等。

1. 与门(AND Gate):当所有输入端都为高电平时,输出才为高电平。

2. 或门(OR Gate):当至少一个输入端为高电平时,输出为高电平。

3. 非门(NOT Gate):对输入信号取反。

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

5. 同或门(NOR Gate):当输入端信号相同时,输出为高电平。

6. 与非门(NAND Gate):与门和非门的组合。

7. 或非门(NOR Gate):或门和非门的组合。

三、实验器材1. 数字电路实验箱2. 逻辑门芯片3. 电源4. 连接线5. 测试仪器四、实验步骤1. 组成基本逻辑门电路:根据实验原理,搭建与门、或门、非门、异或门、同或门、与非门、或非门等基本逻辑门电路。

2. 测试电路功能:使用测试仪器对搭建的电路进行测试,验证电路是否满足基本逻辑功能。

3. 组成组合逻辑电路:根据实验要求,搭建组合逻辑电路,如全加器、半加器、译码器、编码器等。

4. 测试组合逻辑电路:使用测试仪器对搭建的组合逻辑电路进行测试,验证电路是否满足设计要求。

5. 组成时序逻辑电路:根据实验要求,搭建时序逻辑电路,如触发器、计数器、寄存器等。

6. 测试时序逻辑电路:使用测试仪器对搭建的时序逻辑电路进行测试,验证电路是否满足设计要求。

五、实验结果与分析1. 基本逻辑门电路测试结果:根据测试数据,搭建的与门、或门、非门、异或门、同或门、与非门、或非门等基本逻辑门电路均满足设计要求。

2. 组合逻辑电路测试结果:根据测试数据,搭建的全加器、半加器、译码器、编码器等组合逻辑电路均满足设计要求。

数电实验报告

数电实验报告

一、实验名称1. 实验一QuartusⅡ原理图输入法设计与实现2. 实验二用VHDL设计与实现组合逻辑电路(一)3. 实验三用VHDL设计与实现时序逻辑电路(二)4.实验四用VHDL设计与实现时序逻辑电路(三)(数码管动态扫描控制器)二、实验任务要求1.实验一:○1用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元;○2用上面生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号;○3用3线-8线译码器(74LS138)和逻辑门设计实现函数F=CBA+CBA+CBA+CBA,仿真验证其功能,并下载到实验班测试。

要求用拨码开关设定输入信号,发光二极管显示输出信号;2.实验二:○1用VHDL语言设计实现一个4位二进制奇校验器,输入奇数个…1‟时,输出为…1‟,否则输出为…0‟,仿真验证其功能,并下载到实验板测试。

要求用拨码开关设定输入信号,发光二极管显示输出信号;○2用VHDL语言设计实现一个8421码转换为余3码的代码转换器,仿真验证其功能,并下载到实验板测试。

要求用拨码开关设定输入信号,发光二极管显示输出信号;○3用VHDL语言设计实现一个共阴极7段数码管译码器,仿真验证其功能,并下载到实验班测试。

要求用拨码开关设定输入信号,发光二极管显示输出信号;3.实验三:○1用VHDL语言设计实现一个分频系数为12,分频输出信号占空比为50%的分频器。

要求在Quartus Ⅱ平台上设计程序并仿真验证设计;○2用VHDL语言设计实现一个带异步复位的8421码十进制计数器,仿真验证其功能,并下载到实验板测试。

要求用拨码开关设定输入信号,发光二极管显示输出信号;○3将分频器、8421十进制计数器、数码管译码器3个电路进行连接并下载测试。

4.实验四:○1用VHDL语言设计并实现六个数码管串行扫描电路,要求同时显示0、1、2、3、4、5这6个不同的数字图形到6个数码管上,仿真验证其功能,并下载到实验板测试;(必做)○2用VHDL语言设计并实现六个数码管循环左滚动,时钟点亮6个数码管,坐出右进,状态为:012345→123450→234501→345012→450123→501234→012345;(选做)○3用VHDL语言设计并实现六个数码管向左滚动,用全灭的数码管填充右边,直至全部变灭,然后再一次从右边一个一个地点亮。

数字电路实训报告

数字电路实训报告

一、设计目的及要求:(一)实验目的:1. 通过实验培养学生的市场素质,工艺素质,自主学习的能力,分析问题解决问题的能力以及团队精神。

2. 通过本实验要求学生熟悉各种常用中规模集成电路组合逻辑电路的功能与使用方法,学会组装和调试各种中规模集成电路组合逻辑电路,掌握多片中小规模集成电路组合逻辑电路的级联、功能扩展及综合设计技术,使学生具有数字系统外围电路、接口电路方面的综合设计能力。

(二)实验要求1. 数字显示电路操作面板:左侧有16个按键,编号为0到15数字,面板右侧有2个共阳7段显示器。

2. 设计要求:当按下小于10的按键后,右侧低位7段显示器显示数字,左侧7段显示器显示0;当按下大于9的按键后,右侧低位7段显示器显示个位数字,左侧7段显示器显示1。

若同时按下几个按键,优先级别的顺序是15到0。

二、电路框图及原理图原理图概要:数字显示电路由键盘、编码、码制转换、译码显示组成。

各部分作用:1. 键盘:用于0~15数字的输入。

可以由16个自锁定式的按键来排列成4×4键盘。

2.编码:采用两片74ls148级联来完成对0~15的编码,并且是具有优先级的编码。

3.码制转换:本电路采用了2个74ls00、1个74ls04、1个74ls283来完成对0~15出事编码的码制转换,转换成个位与十位的8421bcd码,为下一步的解码做准备。

4.译码显示:本电路采用了两个74ls47分别对码制转换后的bcd码进行译码,并且由这两个芯片分别驱动两片七段共阳极数码管。

原理图:三、设计思想及基本原理分析:篇二:数电实验实验报告数字电路实验报告院系:电气工程学院专业:电气工程极其自动化班级:09级7班姓名:王哲伟学号:2009302540221 实验一组合逻辑电路分析一.试验用集成电路引脚图74ls00集成电路 74ls20集成电路四2输入与非门双4输入与非门二.实验内容 1.实验一x1abdabcd按逻辑开关,“1”表示高电平,“0”表示低电平2.5 vc示灯:灯亮表示“1”,灯灭表示“0”自拟表格并记录: 2.实验二密码锁的开锁条件是:拨对密码,钥匙插入锁眼将电源接通,当两个条件同时满足时,开锁信号为“1”,将锁打开。

数电实验报告实验一心得

数电实验报告实验一心得

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数电实验报告

数电实验报告

数电实验报告引言:数电实验是电子信息科学与技术专业中一门重要的实验课程。

通过数电实验,我们可以掌握数字电路的基本原理与设计方法,加深对电子电路原理的理解与应用。

本实验报告将对我们进行的数电实验进行总结与评述,以便更好地理解数电实验的内容和意义。

实验目的:本次数电实验的主要目的是通过实验的方式,掌握数字电路的设计与实现原理,以及相应的实验工具和测试设备的使用方法。

通过实际操作,我们将验证数字电路的可靠性和正确性,并培养我们的实验技能和分析问题的能力。

实验内容:本次数电实验涵盖了多个实验项目,其中包括:逻辑门的实验、组合逻辑电路的实验以及时序逻辑电路的实验等。

1. 逻辑门的实验这一部分我们主要学习并实验了与门、或门、非门、异或门等逻辑门的基本原理与应用。

透过实际连接与测试,我们进一步了解了逻辑门之间的相互转换关系和应用场景。

通过使用示波器、万用表等仪器设备,我们能够验证逻辑门的逻辑功能与实际输出是否一致。

2. 组合逻辑电路的实验在组合逻辑电路的实验中,我们学习了多种组合逻辑电路的设计原理和真值表的绘制方法。

通过实际搭建和测试,我们验证了布尔代数的基本运算规则在实际电路中的应用,并掌握了基本的编码器、解码器和多路选择器等组合逻辑电路的设计与实现方法。

3. 时序逻辑电路的实验时序逻辑电路实验是本次数电实验的重点和难点部分。

通过实验,我们学习了时钟信号的产生与作用原理,掌握了触发器的工作原理和应用方法。

我们还学习了时序逻辑电路的分析与设计技巧,实践了状态图和状态表的绘制方法,进一步体验了时序逻辑电路在数字系统中的重要性和应用价值。

实验结果与分析:通过实验操作和测试数据,我们得出了相应的实验结果,并对实验结果进行了分析。

通过实验数据的处理和对比,我们可以进一步验证电路设计的正确性,找出问题所在并加以改正。

同时,我们还对实验结果进行了数据处理和图表绘制,以便更好地展示实验结果。

总结与反思:通过本次数电实验,我们不仅掌握了数字电路的基本原理和设计方法,还提高了实验操作技能、问题分析和解决能力。

数电实验报告(含实验内容)

数电实验报告(含实验内容)

数电实验报告(含实验内容)班级:专业:姓名:学号:实验一用与非门构成逻辑电路一、实验目的1、熟练掌握逻辑电路的连接并学会逻辑电路的分析方法2、熟练掌握逻辑门电路间的功能变换和测试电路的逻辑功能二、实验设备及器材KHD-2 实验台集成 4 输入2 与非门74LS20集成 2 输入4 与非门74LS00 或CC4011三、实验原理本实验用的逻辑图如图 2-1 所示图1-1图1-1四、实验内容及步骤1、用与非门实现图1-1电路,测试其逻辑功能,将结果填入表1-1中,并说明该电路的逻辑功能。

2、用与非门实现图1-1电路,测试其逻辑功能,将结果填入表1-2中,并说明该电路的逻辑功能。

3、用与非门实现以下逻辑函数式,测试其逻辑功能,将结果填入表1-3中。

Y(A,B,C)=A’B+B’C+AC班级:专业:姓名:学号:五、实验预习要求1、进一步熟悉 74LS00、74LS20 和CC4011 的管脚引线2、分析图 1-1 (a)、的逻辑功能,写出逻辑函数表达式,并作出真值表。

六、实验报告1、将实验数据整理后填入相关的表格中2、分别说明各逻辑电路图所实现的逻辑功能A B C Z A B C Y表1-1 表1-2A B C Y 表1-3班级:专业:姓名:学号:实验二组合逻辑电路的设计与测试一、实验目的1、掌握组合逻辑电路的设计与测试方法2、进一步熟悉常用集成门电路的逻辑功能及使用二、实验设备及器材KHD-2 实验台4 输入2 与非门74LS202 输入4 与非门74LS00 或CC4011三、实验原理使用中、小规模集成电路来设计组合电路是最常见的逻辑电路的设计方式。

设计组合电路的一般步骤如图2-1 所示。

图 2-1 组合逻辑电路设计流程图根据设计任务的要求建立输入、输出变量,并列出真值表。

然后用逻辑代数或卡诺图化简法求出简化的逻辑表达式。

并按实际选用逻辑门的类型修改逻辑表达式。

根据简化后的逻辑表达,画出逻辑图,用标准器件构成逻辑电路。

数电实验报告

数电实验报告

数电实验报告实验目的:本实验旨在通过实际操作,加深对数电原理的理解,掌握数字电子技术的基本原理和方法,培养学生的动手能力和实际应用能力。

实验仪器和设备:1. 示波器。

2. 信号发生器。

3. 逻辑分析仪。

4. 电源。

5. 万用表。

6. 示教板。

7. 电路元件。

实验原理:数电实验是以数字电子技术为基础,通过实验操作来验证理论知识的正确性。

数字电子技术是一种以数字信号为工作对象,利用电子器件实现逻辑运算、数字存储、数字传输等功能的技术。

本次实验主要涉及数字逻辑电路的设计与实现,包括基本逻辑门的组合、时序逻辑电路、触发器等。

实验内容:1. 实验一,基本逻辑门的实验。

在示教板上搭建与非门、或门、与门、异或门等基本逻辑门电路,通过输入不同的逻辑信号,观察输出的变化情况,并记录实验数据。

2. 实验二,时序逻辑电路的实验。

利用触发器、计数器等元件,设计并搭建一个简单的时序逻辑电路,通过改变输入信号,验证电路的功能和正确性。

3. 实验三,逻辑分析仪的应用。

利用逻辑分析仪对实验中的数字信号进行观测和分析,掌握逻辑分析仪的使用方法,提高实验数据的准确性。

实验步骤:1. 按照实验指导书的要求,准备好实验仪器和设备,检查电路连接是否正确。

2. 依次进行各个实验内容的操作,记录实验数据和观察现象。

3. 对实验结果进行分析和总结,查找可能存在的问题并加以解决。

实验结果与分析:通过本次实验,我们成功搭建了基本逻辑门电路,观察到了不同输入信号对输出的影响,验证了逻辑门的功能和正确性。

在时序逻辑电路实验中,我们设计并搭建了一个简单的计数器电路,通过实验数据的记录和分析,验证了电路的正常工作。

逻辑分析仪的应用也使我们对数字信号的观测和分析有了更深入的了解。

实验总结:本次数电实验不仅加深了我们对数字电子技术的理解,还培养了我们的动手能力和实际应用能力。

在实验过程中,我们遇到了一些问题,但通过认真分析和思考,最终都得到了解决。

这次实验让我们深刻体会到了理论与实践相结合的重要性,也让我们对数字电子技术有了更加深入的认识。

数电设计实验报告

数电设计实验报告

一、实验目的1. 熟悉数字电路的基本组成和设计方法。

2. 学习组合逻辑电路和时序逻辑电路的设计与实现。

3. 掌握Verilog HDL语言进行数字电路的设计与仿真。

4. 提高数字电路分析与设计能力。

二、实验内容本次实验主要设计一个数字钟电路,要求实现以下功能:1. 显示时、分、秒,时间周期为24小时。

2. 时间基准为1秒对应1Hz的时钟信号。

3. 可通过按键进行校时。

三、实验原理数字钟电路主要由以下部分组成:1. 振荡器:产生基准时钟信号。

2. 分频器:将基准时钟信号分频,得到1Hz的时钟信号。

3. 计数器:对1Hz的时钟信号进行计数,实现秒、分、时的计时。

4. 显示器:将计时结果显示出来。

5. 校时电路:通过按键进行校时操作。

四、实验步骤1. 使用Verilog HDL语言编写数字钟电路的代码。

2. 使用ModelSim进行仿真,验证电路功能。

3. 将代码编译并下载到FPGA芯片上。

4. 在FPGA开发板上进行实验,测试电路功能。

五、实验代码```verilogmodule digital_clock(input clk, // 基准时钟信号input rst_n, // 复位信号,低电平有效 input set, // 校时按键output [5:0] h, // 时output [5:0] m, // 分output [5:0] s // 秒);reg [23:0] counter; // 计数器reg [23:0] h_counter; // 时计数器reg [23:0] m_counter; // 分计数器reg [23:0] s_counter; // 秒计数器// 时计数器always @(posedge clk or negedge rst_n) beginif (!rst_n) beginh_counter <= 24'd0;end else beginif (counter >= 24'd86400) beginh_counter <= h_counter + 24'd1;counter <= 24'd0;end else begincounter <= counter + 24'd1;endendend// 分计数器always @(posedge clk or negedge rst_n) begin if (!rst_n) beginm_counter <= 24'd0;end else beginif (h_counter >= 24'd24) beginm_counter <= m_counter + 24'd1; h_counter <= 24'd0;end else beginm_counter <= m_counter + 24'd1; endendend// 秒计数器always @(posedge clk or negedge rst_n) begin if (!rst_n) begins_counter <= 24'd0;end else beginif (m_counter >= 24'd59) begins_counter <= s_counter + 24'd1;m_counter <= 24'd0;end else begins_counter <= s_counter + 24'd1;endendend// 时、分、秒输出assign h = h_counter[5:0];assign m = m_counter[5:0];assign s = s_counter[5:0];endmodule```六、实验结果1. 仿真结果:使用ModelSim对代码进行仿真,验证电路功能。

数电实验报告东大

数电实验报告东大

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数电实验报告

数电实验报告

(1)加法器实现2位乘法电路原理?利用的是2位二进制乘法的展开式来设计电路的,先用与门做二进制的与运算,再把与结果高位对高地址,低位对低地址相加就可以设计出电路。

(2)4位可控加/减法电路控制模块关键是什么?关键模块在于BCD加法器,在利用补码进行累加计算的过程中需要修正电路。

(3)DACo832工作方式有哪些?直通型方式、单缓冲方式和双缓冲方式。

①当I1E为高电平,CS和WRI位高电平时,1E1信号是的8位输入数据锁存器有效,输入的数据存入输入锁存器。

当需要DA转换时,使WR2和XFER位高电平,1E2信号使得8位DA锁存器有效,将数据置入DA锁存器中,并进行DA转换,这是双缓冲工作方式。

②在DAC0832中,使两个锁存器中的一个常处于开通状态,只控制一个锁存器的锁存或者使两个锁存器同时工作,这是单缓冲工作方式。

③使两个锁存器完全处于开通状态,锁存器输出随数字变化而变化,称为直通工作方式。

(5)引入竞争与冒险现象,探究其产生原因。

在电路设计中使用多种逻辑门如:与非门、或非门等,将一个门电路多个输入端信号同时跳变,或者一个信号经由不同的路径传到同一个门的输入端致使信号到达的时间不同,从而在电路输出端产生尖峰脉冲,这种现象称为竞争一一冒险。

(6)测量输出信号失真方法有哪些?失真度是用一个未经放大器放大前的信号与放大后的信号作比较的差别,其单位为百分比,在这里表征一个信号偏离纯正弦信号的程度。

信号处理方法大致可分为两类:模拟法和数字化方法。

模拟法:指测量中直接应用模拟电路对信号处理测量失真度的方法。

基于模拟法的失真度测量仪由于前级电路有源器件的非线形,因此对小信号的测量不够准确。

具体包含基波抑制法和谐波分析法。

数字化方法:是指首先通过数据采集卡将被测信号量化,再对测量数据处理计算出失真度的测量方法。

按照量程分为一般失真度测量0.1%~100%、小失真度测量0.01%~30%和超低失真度测量0.001%-10%,按照自动化的程度可分为半自动失真度测量和自动失真度测量;信号处理方法大致可分为两类:(7)估算或测量【发挥部分】输入到输出的时间?ADC0809转换时间为130μs(时钟为SOOKHz时)。

数电项目实验报告(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. 理解数字电路的基本组成和工作原理。

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

3. 熟悉数字电路实验设备和工具的使用。

4. 培养实际操作能力和创新思维。

二、实验原理数字电路是利用数字信号进行信息处理和传输的电路。

它主要由逻辑门、触发器、计数器、译码器等基本单元组成。

本实验主要涉及以下几种数字电路:1. 逻辑门:实现基本的逻辑运算,如与、或、非、异或等。

2. 触发器:存储一位二进制信息,是实现时序逻辑的基础。

3. 计数器:对输入脉冲进行计数,广泛应用于计时、分频等领域。

4. 译码器:将二进制代码转换为其他形式的信号。

三、实验内容1. 逻辑门电路实验:验证基本逻辑门的功能,包括与门、或门、非门、异或门等。

2. 触发器电路实验:验证D触发器、JK触发器、SR触发器等的功能。

3. 计数器电路实验:设计并验证二进制计数器、十进制计数器、可逆计数器等。

4. 译码器电路实验:设计并验证二进制译码器、七段显示译码器等。

四、实验步骤1. 逻辑门电路实验:- 将基本逻辑门电路连接到实验板上。

- 输入不同的逻辑信号,观察输出结果。

- 验证基本逻辑门的功能。

2. 触发器电路实验:- 将D触发器、JK触发器、SR触发器等电路连接到实验板上。

- 输入不同的时钟信号和输入信号,观察输出结果。

- 验证触发器的功能。

3. 计数器电路实验:- 设计并搭建二进制计数器、十进制计数器、可逆计数器等电路。

- 输入不同的时钟信号,观察计数器的输出结果。

- 验证计数器的功能。

4. 译码器电路实验:- 设计并搭建二进制译码器、七段显示译码器等电路。

- 输入不同的二进制代码,观察译码器的输出结果。

- 验证译码器的功能。

五、实验结果与分析1. 逻辑门电路实验:通过实验验证了基本逻辑门的功能,如与门、或门、非门、异或门等。

2. 触发器电路实验:通过实验验证了D触发器、JK触发器、SR触发器等的功能,掌握了触发器的基本工作原理。

3. 计数器电路实验:通过实验设计并验证了二进制计数器、十进制计数器、可逆计数器等,掌握了计数器的设计方法和应用。

北邮 数电实验报告

北邮 数电实验报告

北邮数电实验报告北邮数电实验报告数电实验是电子信息科学与技术专业的一门重要课程,通过实验可以帮助学生巩固理论知识,培养实践能力。

本次实验我们进行了基于数字逻辑电路的设计与实现,探索了数字电路的原理和应用。

以下是对本次实验的总结和分析。

1. 实验目的本次实验的主要目的是学习数字逻辑电路的设计与实现,了解数字电路的基本原理和应用。

通过实验,我们可以熟悉数字电路的搭建过程,掌握数字电路的设计方法和测试技巧。

2. 实验原理本次实验主要涉及到的数字逻辑电路有与门、或门、非门、异或门等。

这些逻辑门可以通过逻辑运算实现各种功能,如加法器、减法器、比较器等。

我们需要根据实验要求,设计并搭建相应的数字电路,然后通过示波器等仪器进行测试,验证电路的正确性。

3. 实验步骤首先,我们根据实验要求,设计了一个4位全加器电路。

通过逻辑门的组合,实现了4位二进制数的加法运算。

然后,我们搭建了一个4位比较器电路,用于比较两个4位二进制数的大小关系。

最后,我们设计了一个4位减法器电路,实现了4位二进制数的减法运算。

4. 实验结果通过实验,我们成功搭建了4位全加器、4位比较器和4位减法器电路,并进行了测试。

实验结果表明,我们设计的电路能够正确地完成加法、比较和减法运算,符合预期的逻辑规则。

5. 实验总结通过本次实验,我们深入了解了数字逻辑电路的设计与实现过程。

我们学会了使用逻辑门进行电路设计,并通过实验验证了电路的正确性。

实验过程中,我们也遇到了一些问题,如电路连接错误、示波器读数不准确等。

但通过仔细分析和调试,我们最终解决了这些问题,并取得了满意的实验结果。

6. 实验感想数电实验是一门非常重要的实践课程,通过实验我们不仅巩固了理论知识,还培养了实践能力和解决问题的能力。

在实验过程中,我们需要细心观察、仔细分析,并灵活运用所学的知识。

实验不仅考验了我们的动手能力,还锻炼了我们的思维能力和团队合作精神。

7. 实验的意义数电实验的意义在于将理论知识与实际应用相结合,帮助我们更好地理解和掌握数字电路的原理和应用。

数电 实验报告

数电 实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数电综合实验报告(3篇)

数电综合实验报告(3篇)

第1篇一、实验目的1. 巩固和加深对数字电路基本原理和电路分析方法的理解。

2. 掌握数字电路仿真工具的使用,提高设计能力和问题解决能力。

3. 通过综合实验,培养团队合作精神和实践操作能力。

二、实验内容本次实验主要分为以下几个部分:1. 组合逻辑电路设计:设计一个4位二进制加法器,并使用仿真软件进行验证。

2. 时序逻辑电路设计:设计一个4位计数器,并使用仿真软件进行验证。

3. 数字电路综合应用:设计一个数字时钟,包括秒、分、时显示,并使用仿真软件进行验证。

三、实验步骤1. 组合逻辑电路设计:(1)根据题目要求,设计一个4位二进制加法器。

(2)使用Verilog HDL语言编写代码,实现4位二进制加法器。

(3)使用ModelSim软件对加法器进行仿真,验证其功能。

2. 时序逻辑电路设计:(1)根据题目要求,设计一个4位计数器。

(2)使用Verilog HDL语言编写代码,实现4位计数器。

(3)使用ModelSim软件对计数器进行仿真,验证其功能。

3. 数字电路综合应用:(1)根据题目要求,设计一个数字时钟,包括秒、分、时显示。

(2)使用Verilog HDL语言编写代码,实现数字时钟功能。

(3)使用ModelSim软件对数字时钟进行仿真,验证其功能。

四、实验结果与分析1. 组合逻辑电路设计:通过仿真验证,所设计的4位二进制加法器能够正确实现4位二进制加法运算。

2. 时序逻辑电路设计:通过仿真验证,所设计的4位计数器能够正确实现4位计数功能。

3. 数字电路综合应用:通过仿真验证,所设计的数字时钟能够正确实现秒、分、时显示功能。

五、实验心得1. 通过本次实验,加深了对数字电路基本原理和电路分析方法的理解。

2. 掌握了数字电路仿真工具的使用,提高了设计能力和问题解决能力。

3. 培养了团队合作精神和实践操作能力。

六、实验改进建议1. 在设计组合逻辑电路时,可以考虑使用更优的电路结构,以降低功耗。

2. 在设计时序逻辑电路时,可以尝试使用不同的时序电路结构,以实现更复杂的逻辑功能。

数电逻辑实验报告

数电逻辑实验报告

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

2. 掌握逻辑门电路的连接方法,并能设计简单的逻辑电路。

3. 熟悉数字实验仪器的使用,并能进行基本的逻辑测试。

4. 通过实验加深对数字电路理论知识的理解。

二、实验原理数字电路是由逻辑门、触发器等基本单元构成的电路。

逻辑门是数字电路的核心元件,根据输入信号的不同,输出信号也会随之改变。

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

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

2. 或门(OR):当任意一个输入信号为高电平时,输出信号就为高电平。

3. 非门(NOT):将输入信号的逻辑值取反,即输入高电平时输出低电平,输入低电平时输出高电平。

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

三、实验仪器与设备1. 数字实验仪2. 逻辑门芯片(如74LS00、74LS86等)3. 电源4. 连接线5. 测试仪四、实验内容与步骤1. 逻辑门测试(1)将数字实验仪的输入端与逻辑门芯片的输出端相连,通过测试仪观察输出信号。

(2)按照实验指导书的要求,将逻辑门芯片的输入端连接不同的电平,观察输出端信号的逻辑值。

(3)验证与门、或门、非门、异或门的逻辑功能。

2. 组合逻辑电路设计(1)根据实验要求,设计一个组合逻辑电路。

(2)根据逻辑表达式,绘制电路图。

(3)将电路图连接到数字实验仪上,观察输出信号是否符合预期。

3. 逻辑测试(1)使用测试仪测试逻辑门的逻辑功能。

(2)测试组合逻辑电路的逻辑功能。

(3)验证电路的正确性。

五、实验结果与分析1. 通过实验,验证了与门、或门、非门、异或门的逻辑功能。

2. 设计并实现了实验要求的组合逻辑电路,验证了电路的正确性。

3. 通过逻辑测试,发现并解决了电路中存在的问题。

六、实验总结通过本次实验,我们掌握了数字电路的基本概念和逻辑门的工作原理,熟悉了数字实验仪器的使用,并能设计简单的逻辑电路。

数电实验报告

数电实验报告

数字电子技术实验报告学号:姓名:班级:实验一组合逻辑电路分析一、实验用集成电路引脚图74LS00集成电路:74LS20集成电路:二、实验内容1.ABCD接逻辑开关,“1”表示高电平,“0”表示低电平。

电路图如下:A=B=C=D=1时(注:逻辑指示灯:灯亮表示“1”,灯不亮表示“0”。

)表格记录:结果分析:由表中结果可得该电路所实现功能的逻辑表达式为:F=AB+CD。

在multisim软件里运用逻辑分析仪分析,可得出同样结果:2.密码锁的开锁条件是:拨对密码,钥匙插入锁眼将电源接通,当两个条件同时满足时,开锁信号为”1”,将锁打开。

否则,报警信号为”1”,则接通警铃。

试分析密码锁的密码ABCD是什么?电路图如下:A=B=C=D=1时A=B= D=1,C=0时2.5 VA= D=1,B=C=0时记录表格:结果分析:由表可知,只有当A=D=1,B=C=0时,开锁灯亮;其它情况下,都是报警灯亮。

因此,可知开锁密码是1001。

三、实验体会与非门电路可以实现多种逻辑函数的功能模拟,在使用芯片LS7400和LS7420时,始终应该注意其14脚接高电平,8脚接地,否则与非门无法正常工作。

利用单刀双掷开关,可以实现输入端输入高/低电平的转换;利用LED灯可以指示输出端的高低电平。

实验二组合逻辑实验(一)半加器和全加器一、实验目的熟悉用门电路设计组合电路的原理和方法步骤。

二、预习内容1.预习用门电路设计组合逻辑电路的原理和方法步骤。

2.复习二进制数的运算。

①用与非门设计半加器的逻辑图。

②完成用异或门、与非门、与或非门设计全加器的逻辑图。

③完成用异或门设计的三变量判奇电路的原理图。

三、参考元件74LS283: 74LS00:74LS51: 74LS136:四、实验内容1.用与非门组成半加器,用异或门、与或非门、与非门组成全加器。

实验结果填入表中。

(1)与非门组成的半加器。

电路图如下(J1、J2分别代表Ai、Bi,图示为Ai、Bi分别取不同的电平时的仿真结果):2.5 V2.5 V2.5 V记录表格:(2)异或门、与或非门、与非门组成的全加器。

数电实验报告_触发器

数电实验报告_触发器

一、实验目的1. 理解触发器的概念和基本原理;2. 掌握触发器的逻辑功能和应用;3. 熟悉触发器电路的搭建和调试方法;4. 通过实验验证触发器的功能和应用。

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

它根据输入信号的变化,在一定的条件下可以改变其输出状态,从而实现数据的存储和传递。

触发器是数字电路中的基本单元,广泛应用于计数器、寄存器、存储器等数字系统中。

触发器主要分为两大类:电平触发器和边沿触发器。

电平触发器在输入信号保持一定电平期间,输出状态才会发生变化;而边沿触发器仅在输入信号的跳变沿处改变输出状态。

常见的触发器有RS触发器、D触发器、JK触发器和T触发器等。

以下分别介绍这些触发器的原理和逻辑功能。

1. RS触发器:由两个与非门交叉耦合而成,具有两个输入端(S、R)和两个输出端(Q、Q')。

当S=0,R=1时,触发器置1;当S=1,R=0时,触发器置0;当S=0,R=0时,触发器保持原状态;当S=1,R=1时,触发器处于不确定状态。

2. D触发器:由一个与非门和两个反相器组成,具有一个输入端(D)和两个输出端(Q、Q')。

当输入信号D变化时,触发器的输出状态随之变化,即D=1时,Q=1;D=0时,Q=0。

3. JK触发器:由两个与非门交叉耦合而成,具有两个输入端(J、K)和两个输出端(Q、Q')。

当J=K=0时,触发器保持原状态;当J=1,K=0时,触发器置1;当J=0,K=1时,触发器置0;当J=K=1时,触发器翻转。

4. T触发器:由一个与非门和两个反相器组成,具有一个输入端(T)和两个输出端(Q、Q')。

当T=1时,触发器翻转;当T=0时,触发器保持原状态。

三、实验内容及步骤1. 触发器电路搭建:根据实验原理,搭建RS触发器、D触发器、JK触发器和T触发器电路。

2. 触发器功能测试:通过改变输入信号,观察输出端Q的逻辑信号及其下一逻辑状态,验证触发器的逻辑功能。

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

数字电路与逻辑设计综合实验实验报告课题名称:数字钟班级:08211102班学号:070062班内序号:33姓名:何慧芳一.设计课题的任务要求1.实验目的1.熟练掌握VHDL 语言和QuartusII 软件的使用;2.理解状态机的工作原理和设计方法;3.掌握利用EDA 工具进行自顶向下的电子系统设计方法;2.实验任务A.基本任务:设计制作一个能显示时、分、秒的时钟1. 可手动校对时间,能分别进行时和分的校正;2. 12 小时(有上、下午显示)、24 小时计时制可选;B.提高要求:1. 整点报时功能;2. 闹铃功能,当计时到预定时间时,蜂鸣器发出闹铃信号,闹铃时间为5 秒,可提前终止闹铃;3. 自拟其它功能。

3.实验器材1.计算机;2.示波器;3.直流稳压电源;4.万用表;5.EDA 开发板及相应元器件。

二.系统设计(设计思路、总体框图、分块设计)1.设计思路数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。

它的计时周期为24小时,显示满刻度为23 时59 分59 秒;或者计时周期为12 小时并配有上下午指示,显示满刻度为12 时59 分59 秒;另外还应有校时功能和报时功能。

电路由晶体振荡器、时钟计数器、译码驱动电路和数字显示电路以及时间调整电路组成。

其中,时钟计数器、译码驱动电路及时间调整电路由CPLD 设计完成,晶体振荡器负责给CPLD 提供所需的高频时钟脉冲信号。

1、晶体振荡器晶体振荡器的作用是产生时间标准信号。

数字钟的精度,主要取决于时间标准信号的频率及其稳定度。

因此,一般采用石英晶体振荡器经过分频得到这一信号。

也可采用由门电路或555 定时器构成的多谐振荡器作为时间标准信号源。

2、计数器有了时间标准“秒”信号后,就可以根据60 秒为1 分、60 分为1 小时、24 小时为1 天的计数周期,分别组成两个六十进制(秒、分)、一个二十四进制(时)的计数器。

将这些计数器适当地连接,就可以构成秒、分、时的计数,实现计时的功能。

3、译码和数码显示电路译码和数码显示电路是将数字钟和计时状态直观清晰地反映出来,被人们的视觉器官所接受。

显示器件选用LED 七段数码管。

在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。

4、校时电路实际的数字钟表电路由于秒信号的精确性不可能做到完全(绝对)准确无误,加之电路中其它原因,数字钟总会产生走时误差的现象。

因此,电路中就应该有校准时间功能的电路。

2.模块划分采用自顶向下的设计方法,通过对数字钟实现功能的分析,决定将各个功能由一个个模块实现,核心模块就是秒计时器、分计时器和小时计时器。

其他的功能主要围绕在计时器的周边添加,这样系统设计简单明了,并且功能容易扩展。

将模块分为:分频模块:div50m,div500计时模块:second,minute,hour整点报时和闹铃模块:speaker,alarm,beep译码和数码显示:seltime,display3.总体框图(1).设计的时钟的系统结构图(对外接口图)(2).各模块连接图(逻辑划分方框图):(3)设计的时钟的逻辑流程图(4)逻辑图对应的MDS图方框图三.仿真波形及波形分析1,秒计时器仿真波形:冲,同时秒从0开始继续计时;波形分析:设置set设置时间有效时,使set-sec有效,则秒按照计时规律变化,在59秒的时候,不产生进位enmin。

2,分计时器仿真波形:波形分析:可以看到在进位enmin为1的时候,分钟按照规律变为加1。

当分钟变化到59的时候产生进位enhour。

Enmin为0的时候,即秒还没有进位的时候,分钟保持不表。

3,小时计时器仿真波形:波形分析:可以看到enhour为1的时候小时按照规律变化,到23时小时从0开始计数。

Enhour 为0的时候小时不变化。

4,小时,分,秒总体仿真波形波形分析:从图中可以看出置0信号置0,调时,调分信号为高电平分,时分别进1的情况。

5整点报时仿真波形:6,12/24小时进制波形分析:从图中可以看到每个24小时制对应的12小时制的数值和上下午显示。

从仿真来看没有出现错误。

7,闹铃模块仿真波形:波形分析:alarm_on为1的时候,当输入的时间和设置时间相等,则beep输出1,完成了闹铃的功能。

8,分时扫描模块仿真波形:波形分析:可以看出在时钟周期下六个数码管分时输出有效,在大于300hz的频率下人眼会看到六个数码管持续稳定的点亮。

9,数码管显示仿真波形:10,轰鸣器仿真波形:波形分析:可以看到a 和b 任一个为1,则输出bp 为1四.源程序1.分频模块use ieee.std_logic_unsigned.all;entity div50m isport(clk_in : in std_logic; --时钟输入clk_out : out std_logic); --时钟输出end;architecture a of div50m issignal cnt : integer range 0 to 24999999;signal clk_tmp : std_logic;beginprocess(clk_in)beginif (clk_in'event and clk_in='1') thenif cnt=24999999 thencnt<=0;clk_tmp<= not clk_tmp;elsecnt<=cnt+1;end if;end if;end process;clk_out<=clk_tmp;end;--div500将50mhz的时钟分频到500hz,供分时扫描模块使用library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity div500 isport(clk_in : in std_logic;clk_out : out std_logic);end;architecture b of div500 issignal cnt : integer range 0 to 49999;signal clk_tmp : std_logic;beginprocess(clk_in)beginif (clk_in'event and clk_in='1') thenif cnt=49999 thencnt<=0;clk_tmp<= not clk_tmp;elsecnt<=cnt+1;end if;end if;end process;clk_out<=clk_tmp;end;2.秒计时器enmin<='1';tmp1<="0000";tmp2<="0000";elsif(tmp2="1001") then –秒的个位到9则十位加1,个位变0enmin<='0';tmp2<="0000";tmp1<=tmp1+1;elseenmin<='0';tmp2<=tmp2+1;end if;elsif(set='1') then –设置时间有效则进入设时,改变秒的数值if(set_sec='1') thenif(tmp1&tmp2="01011001") thentmp1<="0000";tmp2<="0000";elsif(tmp2="1001") thentmp2<="0000";tmp1<=tmp1+1;elsetmp2<=tmp2+1;end if;end if;end if;end if;end process;daout_h<=tmp1;daout_l<=tmp2;end sec;3.分计时器enhour<='1';tmp1<="0000";tmp2<="0000";elsif(tmp2="1001") then --分的个位到9的时变为0,十位加1enhour<='0';tmp2<="0000";tmp1<=tmp1+1;elseenhour<='0';tmp2<=tmp2+1;end if;end if;elsif(set='1') then –set有效时则分钟随规律变化if(set_min='1') thenif(tmp1&tmp2="01011001") thentmp1<="0000";tmp2<="0000";elsif(tmp2="1001") thentmp2<="0000";tmp1<=tmp1+1;elsetmp2<=tmp2+1;use ieee.std_logic_unsigned.all;entity hour isport(clk,reset,set,set_hour,enhour:in std_logic;时钟,复位,设置时,设置分,小时进位daout_h:out std_logic_vector(3 downto 0);小时高位daout_l:out std_logic_vector(3 downto 0));小时低位end hour;architecture hou of hour issignal tmp1,tmp2:std_logic_vector(3 downto 0);小时高低位中间信号beginprocess(clk,reset,set,set_hour,enhour)beginif(clk'event and clk='1') thenif(reset='1') then --reset有效则清零tmp1<="0000";tmp2<="0000";elsif(set='0') thenif(enhour='1') then --enhour为1时才变化if(tmp1&tmp2="00100011") then --小时到23时变成0tmp1<="0000";tmp2<="0000";elsif(tmp2="1001") then —小时个位到9时,个位变0,十位加1tmp2<="0000";tmp1<=tmp1+1;elsetmp2<=tmp2+1;end if;end if;elsif(set='1') then --set有效则按规律改变小时if(set_hour='1') thenif(tmp1&tmp2="00100011") thentmp1<="0000";tmp2<="0000";elsif(tmp2="1001") thentmp2<="0000";tmp1<=tmp1+1;elsetmp2<=tmp2+1;end if;end if;end if;end if;end process;daout_h<=tmp1; daout_l<=tmp2; end hou;5.整点报时模块end mode;architecture mo of mode issignal tmp1,tmp2:std_logic_vector(3 downto 0);beginprocess(cmode)beginif(cmode='0') then --cmode为0,为24小时制,此时am、pm都是0 tmp1<=hour_h;tmp2<=hour_l;am<='0';pm<='0';else --cmode为1,为12小时制,下面是将24小时换成12小时if(hour_h&hour_l>"00100001") then --小时大于21时的转换tmp1<=hour_h-"0001";tmp2<=hour_l-"0010";am<='0';pm<='1';elsif(hour_h&hour_l>"00011001") then --小时大于19时的转换tmp1<=hour_h-"0010";tmp2<=hour_l+"1000";am<='0';pm<='1';elsif(hour_h&hour_l>"00010010") then--小时大于12时的转换tmp1<=hour_h-"0001";tmp2<=hour_l-"0010";am<='0';pm<='1';else --小于等于12小时的为上午,时间不用转换tmp1<=hour_h;tmp2<=hour_l;am<='1';pm<='0';end if;end if;end process;daout_h<=tmp1;daout_l<=tmp2;end mo;仿真波形:entity alarm isport(clk,reset,set_a,alarm_on,set_min,set_hour:in std_logic;时钟,复位,设置闹钟,闹铃开关,设分,设时s_h,s_l,m_h,m_l,h_h,h_l:in std_logic_vector(3 downto 0);秒,小时,分,高低位beep2:out std_logic; 报时信号douts_h,douts_l,doutm_h,doutm_l,douth_h,douth_l:out std_logic_vector(3 downto 0));秒,分,时的高低位end alarm;architecture al of alarm issignal ds_h,ds_l,dm_h,dm_l,dh_h,dh_l,tmpm1,tmpm2,tmph1,tmph2:std_logic_vector(3 downto 0);时,分,秒的高低位;中间信号时分高低位beginp1:process(clk,set_a) –进程1,主要实现模块时间的输出beginif(clk'event and clk='1') thenif(set_a='0') then --set_a为0时输出的为输入的时间信号ds_h<=s_h;ds_l<=s_l;dm_h<=m_h;dm_l<=m_l;dh_h<=h_h;dh_l<=h_l;elsif(set_a='1') then --set_a为1时输出的为寄存器中的闹铃时间ds_h<="0000";ds_l<="0000";dm_h<=tmpm1;dm_l<=tmpm2;dh_h<=tmph1;dh_l<=tmph2;end if;end if;end process p1;p2:process(clk,alarm_on) --进程2主要实现的是闹铃的声音输出beginif(clk'event and clk='1') thenif(set_a='0') thenif(alarm_on='1') then --如果闹铃的开关alarm_on为1时if(dh_h&dh_l&dm_h&dm_l=tmph1&tmph2&tmpm1&tmpm2) then --输入时间与设定闹铃时间相等,则闹铃beep2为1beep2<='1';else --否则闹铃beep2为0beep2<='0';end if;elsebeep2<='0';--闹铃开关alarm_on为0,则beep2为0end if;end if;end if;end process p2;p3:process(clk,reset,set_a) --进程3,主要实现闹铃时间的设置beginif(clk'event and clk='1')thenif(reset='1') then --reset有效则清零tmpm1<="0000";tmpm2<="0000";tmph1<="0000";tmph2<="0000";elsif(set_a='1') then --输出显示为闹铃时间时才可设置闹铃时间if(set_min='1') then --设置闹铃的分钟if(tmpm1&tmpm2="01011001") then--59tmpm1<="0000";tmpm2<="0000";elsif(tmpm2="1001") thentmpm2<="0000";tmpm1<=tmpm1+1;elsetmpm2<=tmpm2+1;end if;end if;if(set_hour='1') then --设置闹铃的小时if(tmph1&tmph2="00100011") then --23tmph1<="0000";tmph2<="0000";elsif(tmph2="1001") thentmph2<="0000";tmph1<=tmph1+1;elsetmph2<=tmph2+1;end if;end if;end if;end if;end process p3;douts_h<=ds_h;douts_l<=ds_l;doutm_h<=dm_h;doutm_l<=dm_l;douth_h<=dh_h;douth_l<=dh_l;end al;8.分时扫描模块cat:out std_logic_vector(5 downto 0)); --选通end seltime;architecture sel of seltime issignal tmp:std_logic_vector(2 downto 0);beginprocess(clk)beginif(clk'event and clk='1') then --设置一个模为6的计数器if(tmp="101") then--计数器加到5则从0开始计数tmp<="000";elsetmp<=tmp+1;end if;case tmp is --分时选择when "000" => cat<="111110";daout<=sec_l;when "001" => cat<="111101";daout<=sec_h;when "010" => cat<="111011";daout<=min_l;when "011" => cat<="110111";daout<=min_h;when "100" => cat<="101111";daout<=hou_l;when "101" => cat<="011111";daout<=hou_h;when others =>daout<="1111";end case;end if;end process;end sel;when "0011" => led<="1111001"; --3when "0100" => led<="0110011"; --4when "0101" => led<="1011011"; --5when "0110" => led<="1011111"; --6when "0111" => led<="1110000"; --7when "1000" => led<="1111111"; --8when "1001" => led<="1111011"; --9when others => led<="0000000";end case;end process;end disp;10.蜂鸣器模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity clock isport(clk,reset,set,set_sec,set_min,set_hour,cmode,set_a,alarm_on:in std_logic;bp,am,pm:out std_logic;cat:out std_logic_vector(5 downto 0);led:out std_logic_vector(6 downto 0));end clock;architecture clo of clock issignal clk1,clk2,senmin,senhour,bp1,bp2:std_logic;signal ssech,ssecl,sminh,sminl,shouh,shoul:std_logic_vector(3 downto 0);signal mhourh,mhourl,sh,sl,mh,ml,hh,hl:std_logic_vector(3 downto 0);signal dout:std_logic_vector(3 downto 0);component div50m is --分频器模块port(clk_in : in std_logic;clk_out : out std_logic);end component;component div500 is –分频器模块port(clk_in : in std_logic;clk_out : out std_logic);end component;component second is --秒计时器port(clk,reset,set,set_sec:in std_logic;enmin:out std_logic;daout_h:out std_logic_vector(3 downto 0);daout_l:out std_logic_vector(3 downto 0));end component;component minute is --分计时器port(clk,reset,set,set_min,enmin:in std_logic;enhour:out std_logic;daout_h:out std_logic_vector(3 downto 0);daout_l:out std_logic_vector(3 downto 0));end component;component hour is --小时计时器port(clk,reset,set,set_hour,enhour:in std_logic;daout_h:out std_logic_vector(3 downto 0);daout_l:out std_logic_vector(3 downto 0));end component;component speaker is --整点报时port(reset:in std_logic;a,b,c,d:in std_logic_vector(3 downto 0);beep1:out std_logic);end component;component mode is --12/24小时显示port(cmode:in std_logic;hour_h,hour_l:in std_logic_vector(3 downto 0);daout_h,daout_l:out std_logic_vector(3 downto 0);am,pm:out std_logic);end component;component alarm is --闹铃模块port(clk,reset,set_a,alarm_on,set_min,set_hour:in std_logic;s_h,s_l,m_h,m_l,h_h,h_l:in std_logic_vector(3 downto 0);beep2:out std_logic;douts_h,douts_l,doutm_h,doutm_l,douth_h,douth_l:out std_logic_vector(3 downto 0));end component;component seltime is --分时扫描port(clk:in std_logic;sec_h,sec_l,min_h,min_l,hou_h,hou_l:in std_logic_vector(3 downto 0);daout:out std_logic_vector(3 downto 0);cat:out std_logic_vector(5 downto 0));end component;component display is-- 数码管显示port(num:in std_logic_vector(3 downto 0);led:out std_logic_vector(6 downto 0));end component;component beep is --蜂鸣器模块port(a,b:in std_logic;bp:out std_logic);end component;begin --元件连接u1: div50m port map(clk_in=>clk,clk_out=>clk1);u2: div500 port map(clk_in=>clk,clk_out=>clk2);u3: second port map(clk=>clk1,reset=>reset,set=>set,set_sec=>set_sec,enmin=>senmin,daout_h=>ssech,daout_l=>ssecl);u4: minute port map(clk=>clk1,reset=>reset,set=>set,set_min=>set_min,enmin=>senmin,enhour=>senhour,daout_h=>sminh,daout_l=>sminl);u5: hour port map(clk=>clk1,reset=>reset,set=>set,set_hour=>set_hour,enhour=>senhour,daout_h=>mhourh,daout_l=>mhourl);u6: speaker port map(reset=>reset,a=>sminh,b=>sminl,c=>ssech,d=>ssecl,beep1=>bp1);u7: mode port map(cmode=>cmode,hour_h=>mhourh,hour_l=>mhourl,daout_h=>shouh,daout_l=>shoul,am=>am,pm=>pm);u8: alarm port map(clk=>clk1,reset=>reset,set_a=>set_a,alarm_on=>alarm_on,set_min=>set_min,set_hour=>set_hour,s_h=>ssech,s_l=>ssecl,m_h=>sminh,m_l=>sminl,h_h=>shouh,h_l=>shoul,beep2=>bp2,douts_h=>sh,douts_l=>sl,doutm_h=>mh,doutm_l=>ml,douth_h=>hh,douth_l=>hl);u9: seltime port map(clk=>clk2,sec_h=>sh,sec_l=>sl,min_h=>mh,min_l=>ml,hou_h=>hh,hou_l=>hl,daout=>dout,cat=>cat);u10: display port map(num=>dout,led=>led);u11: beep port map(a=>bp1,b=>bp2,bp=>bp);end clo;RTL图:由quartusII自动生成的RTL图可以看出,顶层文件的连接图与系统设计时的模块连接图相同。

相关文档
最新文档