文档库 最新最全的文档下载
当前位置:文档库 › vhdl秒表 实验报告

vhdl秒表 实验报告

vhdl秒表 实验报告
vhdl秒表 实验报告

EDA大作业实验报告

——数字秒表的设计实验

一、实验目的:

1.通过实验了解数字秒表的工作原理,并实现。

2.进一步熟悉VHDL语言的编写驱动七段数码管显示的代码,熟悉quartes2软件的操作。3.掌握VHDL编写的一些技巧。

二、实验要求:

1.数字秒表的计数范围是0秒~59分59.99秒,即有分、秒、1%秒显示,显示的最长

时间为59分59秒。

2.数字秒表的计时精度是10ms。

3.复位开关可以在任何情况下使用,即便在计时过程,只要按下复位开关,计时器就

清零,并做好下次计时的准备。

4.具有启/停开关,即按一下此开关,则可以启动计时器开始计时,再按一下此开关便

可以停止计时。

三、系统设计方案:

根据系统的设计要求,可以的到如图1的系统组成框图。系统设计采用自顶向下的设计方法,系统的整体组装设计原理图如图2所示,它主要由控制模块,分频模块,计时模块和显示模块四部分组成。

秒表工作原理和多少数字电子钟大致一样,不同的是秒表为0.01秒,整个秒表的时钟信号输入为40MHZ。所以,需要对时钟信号进行分频假设该秒表应用场合小于1小时,秒表的显示格式为mm-ss-xx(mm表示分钟:0~59;ss表示秒:0~59;xx表示百分之一秒:0~99)。

(1)控制模块

计时控制模块主要是对计时过程进行控制。计时控制模块可以由两个按钮开关来完成秒表的启动,停止和复位。

(2)计时模块

计时模块实现的是计时功能,及时的方法是对标准时钟脉冲计数。由于秒表的计时范围是0秒~59分59.99秒,所以计数器可以由四个十进制计数器和两个六进制计数器构成,其中毫秒位,秒位和分位采用十进制计数器来实现,十秒位和十分位采用六进制计数器。

(3)显示模块

计时显示模块是将计时值在LED 七段数码管显示出来。

图一,系统组成框图

该时钟以六进制加法器和十进制加法器连接而成。 故原理图方案:整个秒表由两个六进制和四个十进制搭接而成(原理图如下)。

其中mh 表示分钟的高位,ml 表示分钟的地位,sh 表示秒的高位,sl 表示秒的地位,s100h 表示十分之一秒,s100l 表示百分之一秒。实验使用了异步使能,异步清零。时钟信号为100HZ 。

数字秒表

计时控制电计时电路 七段译码器 控制状态机 分频电路 显示电路 十进制计数器 计数器 一百进制计数器

图二,系统的整体组装设计原理图

四.源程序

1.40MHZ分频器的设计程序:

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL; entity FP400K is

Port ( RESET : in std_logic;

CLK : in std_logic;

CLKOUT : out std_logic);

end FP400K;

architecture Behavioral of FP400K is

signal div_val : integer range 0 to 200000; --分频值=256*2

signal div_clk : std_logic;--因为CLKOUT是out类型,

--故不能在<=的右边,

--用div_clk来暂存

begin

process(CLK,RESET)

begin

if(RESET='0') then--RESET的优先级最高

div_clk <= '0';

elsif(CLK'event and CLK='1') then --'event是指

--信号的属性,意为此信号不稳定,

--再加上CLK='1',故此句判断CLK的上升沿if(div_val=200000) then

div_val <= 0;

div_clk <= not div_clk;

else

div_val <= div_val + 1;--在CLK的上升

--沿div_val自加1,加到256时清零并将div_clk取反

end if;

end if;

end process;

CLKOUT <= div_clk;

end Behavioral;

2.:十进制计数器源程序:

--cnt10

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY cnt10 IS

PORT(clr:IN STD_LOGIC;

en,clk:IN STD_LOGIC;

co : out std_logic;

cnt:BUFFER INTEGER RANGE 9 DOWNTO 0);

END cnt10;

ARCHITECTURE example OF cnt10 IS

BEGIN

PROCESS(clr,clk)

BEGIN

IF clr='1' THEN cnt<=0;

ELSIF en<='1' then if clk'EVENT AND clk='1' THEN

IF (cnt=9) THEN

cnt<=0;co<='1';

elsif en<='0' then cnt<=cnt;

ELSE

cnt<=cnt+1;co<='0';

END IF;

END IF;

end if;

END PROCESS;

END example;

3:六进计数器设计

程序如下:

--Cnt6

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY cnt6 IS

PORT(clr:IN STD_LOGIC;

en,clk:IN STD_LOGIC;

co : out std_logic;

cnt:BUFFER INTEGER RANGE 9 DOWNTO 0);

END cnt6;

ARCHITECTURE example OF cnt6 IS

BEGIN

PROCESS(clr,clk)

BEGIN

IF clr='1' THEN cnt<=0;

ELSIF en<='1' then if clk'EVENT AND clk='1' THEN

IF (cnt=5) THEN

cnt<=0;co<='1';

elsif en<='0' then cnt<=cnt;

ELSE

cnt<=cnt+1;co<='0';

END IF;

END IF;

end if;

END PROCESS;

END example;

4.七段译码器:

程序如下:

--DecL7S

LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL ;

ENTITY DecL7S IS

PORT ( A : IN STD_LOGIC_VECTOR(3 DOWNTO 0) ;

LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ) ; END ;

ARCHITECTURE one OF DecL7S IS

BEGIN

PROCESS( A )

BEGIN

CASE A(3 DOWNTO 0) IS

WHEN "0000" => LED7S <= "1000000" ; -- X?°80?±0

WHEN "0001" => LED7S <= "1111001" ; -- X?°79?±1

WHEN "0010" => LED7S <= "0100100" ; -- X?°24?±2

WHEN "0011" => LED7S <= "0110000" ; -- X?°30?±3

WHEN "0100" => LED7S <= "0011001" ; -- X?°19?±4

WHEN "0101" => LED7S <= "0010010" ; -- X?°12?±5

WHEN "0110" => LED7S <= "0000010" ; -- X?°02?±6

WHEN "0111" => LED7S <= "1111000" ; -- X?°78?±7

WHEN "1000" => LED7S <= "0000000" ; -- X?°00?±8

WHEN "1001" => LED7S <= "0010000" ; -- X?°10?±9

WHEN "1010" => LED7S <= "0001000" ; -- X?°08?±10

WHEN "1011" => LED7S <= "0000011" ; -- X?°03?±11

WHEN "1100" => LED7S <= "1000110" ; -- X?°46?±12

WHEN "1101" => LED7S <= "0100001" ; -- X?°21?±13

WHEN "1110" => LED7S <= "0000110" ; -- X?°06?±14

WHEN "1111" => LED7S <= "0001110" ; -- X?°0E?±15

WHEN OTHERS => NULL ;

END CASE ;

END PROCESS ;

END ;

5.顶层设计的VHDL 源程序:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY TIMES IS

PORT(CLR:IN STD_LOGIC;

CLK:IN STD_LOGIC;

ENA:IN STD_LOGIC;

DOUT:OUT STD_LOGIC_VECTOR(23 DOWNTO 0));

END TIMES;

ARCHITECTURE ART OF TIMES IS

COMPONENT CLKGEN

PORT(CLK:IN STD_LOGIC;

NEWCLK:OUT STD_LOGIC);

END COMPONENT;

COMPONENT CNT10

PORT(CLK,CLR,ENA:IN STD_LOGIC;

CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

CARRY_OUT:OUT STD_LOGIC);

END COMPONENT;

COMPONENT CNT6

PORT(CLK,CLR,ENA:IN STD_LOGIC;

CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

CARRY_OUT:OUT STD_LOGIC);

END COMPONENT;

SIGNAL NEWCLK:STD_LOGIC;

SIGNAL CARRY1:STD_LOGIC;

SIGNAL CARRY2:STD_LOGIC;

SIGNAL CARRY3:STD_LOGIC;

SIGNAL CARRY4:STD_LOGIC;

SIGNAL CARRY5:STD_LOGIC;

BEGIN

U0:CLKGEN PORT MAP(CLK=>CLK,NEWCLK=>NEWCLK);

U1:CNT10 PORT MAP(CLK=>NEWCLK,CLR=>CLR,ENA=>ENA, CQ=>DOUT(3 DOWNTO 0),CARRY_OUT=>CARRY1); U2:CNT10 PORT MAP(CLK=>CARRY1,CLR=>CLR,ENA=>ENA, CQ=>DOUT(7 DOWNTO 4),CARRY_OUT=>CARRY2); U3:CNT10 PORT MAP(CLK=>CARRY2,CLR=>CLR,ENA=>ENA, CQ=>DOUT(11 DOWNTO 8),CARRY_OUT=>CARRY3); U4:CNT6 PORT MAP(CLK=>CARRY3,CLR=>CLR,ENA=>ENA, CQ=>DOUT(15 DOWNTO 12),CARRY_OUT=>CARRY4); U5:CNT10 PORT MAP(CLK=>CARRY4,CLR=>CLR,ENA=>ENA, CQ=>DOUT(19 DOWNTO 16),CARRY_OUT=>CARRY5); U6:CNT6 PORT MAP(CLK=>CARRY5,CLR=>CLR,ENA=>ENA,

CQ=>DOUT(23 DOWNTO 20));

END ART;

五.实验结果

(Cnt6波形图)

(cnt10波形图)

(秒表波形图)

六.遇到的问题及解决方案

1.在对程序进行编译时出现了很多错误,因此需要耐心进行排错,要充分利用上课时所学的理论知识,找出其中的语法错误

2.在用软件进行时序仿真时,刚开始没考虑信号的延迟也没考虑仿真的延迟,因此波形和理论不一致,因此需要设置合理的初值。

七.建议及意见

1.对于此种课程,我觉得应该在老师引导的前提下多给学生操作,实践的机会,让学生能够及时的进行理论与实践的相结合。

2.对于一些新的软件,我希望老师能够首先大体的把操作过程跟我们讲一下,让我们能有一个大体的思路,因此不至于只是跟着老师的步骤知道点那些项而不了解自己在干什么,要实现的是什么?

3.老师能够及时的了解学生的情况并引导学生解决问题。

学号:02091370

班级:020914

姓名:吴再婕

VHDL实验报告

《创新实验》实验报告 —基于VHDL的编程和硬件实现

一、实验目的 1.熟悉和掌握硬件描述语言VHDL的基本语法及编写; 2.掌握软件Xilinx ISE 10.1的使用; 3.熟悉SDZ-6电子技术实验箱的使用; 4.了解节拍脉冲发生器等基本电路的实现; 5.了解八位二进制计数器的功能与设计; 6.学习键盘和七段数码管显示的控制和设计。 二、实验内容 1.Xilinx ISE 10.1软件的使用; 2.节拍脉冲发生器等基本电路的实现; 3.八位二进制计数器的实现 4.键盘扫描及显示的实现 三、实验器材 1、PC机 2、SDZ-6电子技术实验箱 3、正负5V电源 4、I/O接口线 四、软件的使用 在安装Xilinx10.1软件时,需要一个ID号,其实这个ID号是可以重复使用的,几个同学在官网注册后就可以共享ID号了。 安装完成之后就可以使用这个软件编写相应的VHDL的程序。 1.新建工程 File—>New Project 弹出下面的对话框 输入工程名后单击Next。然后根据本实验的实验箱进行以下设置。

以后的步骤一般都是单击Next(有些资料上会介绍有些这些步骤的具体功能,但对于本实验不必用到),最后单击Finish,完成新建一个工程。在窗口的左边会出现刚刚新建的工程,如下: 2.新建一个VHDL的源文件。 在上图中,右击工程选择New Source ,弹出如下对话框。

在对画框的左边选择VHDL Module,输入文件的名字(改名字最好是你定义的实体的名字)。单击Next。出现下面的对话框。 该对话框主要是对外部端口的编辑。可以直接跳过,即单击Next,在源文件上编辑端口。然后在接下来的对话框中单击Finish。完成建立一个源文件。窗口右边就会出现刚才编辑的源文件。 3.编写和编译代码 将事先编好的代码复制到源文件里,然后保存文件。 选中左边的文件名,在窗体的左边出现如下编辑文档内容。

数字秒表的设计与实现实验报告

电子科技大学《数字秒表课程设计》 姓名: xxx 学号: 学院: 指导老师:xx

摘要 EDA技术作为电子工程领域的一门新技术,极大的提高了电子系统设计的效率和可靠性。文中介绍了一种基于FPGA在ISE10.1软件下利用VHDL语言结合硬件电路来实现数字秒表的功能的设计方法。采用VHDL硬件描述语言,运用ModelSim等EDA仿真工具。该设计具有外围电路少、集成度高、可靠性强等优点。通过数码管驱动电路动态显示计时结果。给出部分模块的VHDL源程序和仿真结果,仿真结果表明该设计方案的正确,展示了VHDL语言的强大功能和优秀特性。 关键词:FPGA, VHDL, EDA, 数字秒表

目录 第一章引言 (4) 第二章设计背景 (5) 2.1 方案设计 (5) 2.2 系统总体框图 (5) 2.3 -FPGA实验板 (5) 2.4 系统功能要求 (6) 2.5 开发软件 (6) 2.5.1 ISE10.1简介 (6) 2.5.2 ModelSim简介 (6) 2.6 VHDL语言简介 (7) 第三章模块设计 (8) 3.1 分频器 (8) 3.2 计数器 (8) 3.3 数据锁存器 (9) 3.4 控制器 (9) 3.5 扫描控制电路 (10) 3.6 按键消抖电路 (11) 第四章总体设计 (12) 第五章结论 (13) 附录 (14)

第一章引言 数字集成电路作为当今信息时代的基石,不仅在信息处理、工业控制等生产领域得到普及应用,并且在人们的日常生活中也是随处可见,极大的改变了人们的生活方式。面对如此巨大的市场,要求数字集成电路的设计周期尽可能短、实验成本尽可能低,最好能在实验室直接验证设计的准确性和可行性,因而出现了现场可编程逻辑门阵列FPGA。对于芯片设计而言,FPGA的易用性不仅使得设计更加简单、快捷,并且节省了反复流片验证的巨额成本。对于某些小批量应用的场合,甚至可以直接利用FPGA实现,无需再去订制专门的数字芯片。文中着重介绍了一种基于FPGA利用VHDL硬件描述语言的数字秒表设计方法,在设计过程中使用基于VHDL的EDA工具ModelSim对各个模块仿真验证,并给出了完整的源程序和仿真结果。

“秒表测时”实验报告Word版

“秒表测时”实验报告 一、实验任务 利用秒表对电脑主机主要元件装配作业进行测时,计算标准时间 二、实验目的 1、掌握秒表测时技术; 2、掌握标准时间的制定原理、方法、程序和步骤; 3、学会正确划分各测时单元及其计时点,并学会确定正确的宽放率; 4、掌握必要的软件工具。 三、实验原理 1、秒表测时的定义 2、秒表测时的用途 3、测时单元的划分 四、实验设备、仪器、工具及资料 1、电脑主机 2、计算机 3、装拆工具、笔、纸、记录表格 4、秒表、计算器 五、实验过程 1、实验分组,每四人一组,两人负责装配产品,两人负责观测记录 2、收集资料,实验准备,布置工作地 3、划分操作单元,确定计时点 4、测时 采用连续法记录时间研究,在现场记录时用铅笔填写秒表读数“W.R”,见附件:时间研究表(一)。计算基本时间“B.T”。 4、填写时间研究表(二),剔除异常值,用三倍标准法决定正常值范围(正常值范围在x±3σ内)。 5、决定宽放时间 取宽放率为:15%。宽放时间=正常时间×宽放率

6、计算标准时间:标准时间=平均操作时间×评比系数+宽放时间 六、整理时间研究表(一)和时间研究表(二) 时间研究表(一)(现场记录)

时间研究表(二)(统计表)

七、绘制管制界限图 对每一个操作单元进行异常值剔除,选取其中一个操作单元绘制其管制界限图 1、剔除异常值 (1)、操作单元1: n X X n i i ∑== 1 11(其中n=8) 计算得69.71=X n X X n i i ∑=-= 1 2 111)(σ 计算得=1σ 1.48 正常值为σ3±X 之内,即在(3.25,12.13)之间,所以操作单元1无异常值 (2)、操作单元2: n X X n i i ∑== 1 22(其中n=8) 计算得=2X 6.79 n X X n i i ∑=-= 1 2 222)(σ 计算得=2σ0.28 正常值为σ3±X 之内,即在(5.95,7.63)之间,所以操作单元2无异常值 (3)、操作单元3: n X X n i i ∑== 1 33(其中n=8) 计算得=3X 6.42 n X X n i i ∑=-= 1 2 333)(σ 计算得=3σ0.32 正常值为σ3±X 之内,即在(5.46,7.38)之间,所以操作单元3无异常值 (4)、操作单元4: n X X n i i ∑== 1 44(其中n=8) 计算得=4X 6.55 n X X n i i ∑=-= 1 2 444)(σ 计算得=4σ0.90

VHDL实验报告03137

VHDL实验报告 60 庄炜旭实验三. 4位可逆计数器,4位可逆二进制代码-格雷码转换器设计 一.实验目的 学习时序电路的设计,仿真和硬件测试,进一步熟悉VHDL设计技术 1. 学习4位可逆计数器的设计 2. 学习4位可逆二进制代码-格雷码转换器设计 二.实验内容 设计4位可逆计数器,及4位可逆二进制代码-格雷码转换器,并仿真,下载。 [具体要求] 1.4位可逆计数器 a)使用CLOCK_50作为输入时钟,其频率为50MHz(对于频率大于50Hz的闪烁, 人眼会看到连续的光),因而,对其进行225的分频后,再用于时钟控制。(可 利用实验一) b)使用拨码开关SW17作为模式控制,置‘1’时为加法计数器,置‘0’时为减 法计数器,同时使用LEDR17显示SW17的值。 c)使用KEY3作为异步复位开关(按下时为0,不按为1),当为加法计数器时, 置“0000”,当为减法计数器时,置“1111”。 d)使用LEDR3,LEDR2,LEDR1,LEDR0作为转换后的输出结果显示,LEDR3为高 位,LEDR0为低位。 2.4位可逆二进制代码――格雷码转换器 a)使用拨码开关SW17作为模式控制,置‘1’时为二进制代码―>格雷码转换, 置‘0’时为格雷码―>二进制代码,同时使用LEDR17显示SW17的值。 b)使用拨码开关SW3, SW2, SW1, SW0作为输入的被转换数,SW3为高位,SW0 为低位。 c)使用LEDR3,LEDR2,LEDR1,LEDR0作为转换后的输出结果显示,LEDR3为高 位,LEDR0为低位。 三.管脚设定 SW[0]PIN_N25 SW[1]PIN_N26 SW[2]PIN_P25 SW[3] PIN_AE14 SW[17] PIN_V2 LEDR[0] PIN_AE23 LEDR[1] PIN_AF23 LEDR[2] PIN_AB21 LEDR[3] PIN_AC22 LEDR[17] PIN_AD12 KEY[3] PIN_W26

简易秒表设计实验报告

实 验 报 告 系别 信工系 专业 班级 姓名 学号 简易秒表设计 实验目的: 1、 熟悉Keil C51软件的使用方法及proteus 仿真软件的使用; 2、 综合运用所学的理论知识(数码管、按键),通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。 3、 通过本次试验,增强自己的动手能力。认识单片机在日常生活中的应用的广泛性,实用性。 设计要求: 制作简易秒表,用三个按键分别实现秒表的启动、停止与复位,利用两位共阴级的数码管显示时间。 设计思路: 硬件设计:数码管部分采用2位共阴极的数码管,在P0口接上拉电阻,公共端低电平扫描。按键电路部分,将按键一侧与单片机任一I/O 口相连。 软件设计:模块化思想,使用定时器T0的工作方式1,编写显示子程序,延时子程序,初始化程序,主程序设计时注意按键消抖。 原理图: XTAL218XTAL119ALE 30EA 31PSEN 29RST 9P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 33P0.7/AD7 32P1.01P1.12P1.23P1.34P1.45P1.56P1.6 7P1.7 8P3.0/RXD 10P3.1/TXD 11P3.2/INT0 12P3.3/INT1 13P3.4/T0 14P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27U1AT89C51C1 1nF C21nF R110k C31uF 234567891 RP1 RESPACK-8 源代码: #include<>

秒表实验报告

实验三:秒表实验报告 一、实验目的 1、了解74ls273的工作原理; 2、看懂8086工作的时序图,并且掌握8086总线的技术; 3. 通过此实验,熟悉protues7.9的基本操作和工作环境以及MASM32文件的建立与运行; 二、实验原理 用74ls273扩展IO口,通过片选信号和写信号奖数据总线上的值锁存在273中,同时在273的输出端口输出,当数据总线上的值撤销以后,由于74ls273能够锁存信号,所以273的输出端保持不变,直到下次有新的数据被锁存,通过按键可以控制数据的变化,cpu根据按键变化控制输出,通过总线就可以控制数码管的变化,显示出秒表的效果。 3、实验步骤 1、根据实验目的及内容在proteus画出电路图,如下图所示 2、画好电路图后用汇编软件,按要求写出实验代码,代码如下: .MODEL SMALL .8086 .stack .code

.startup MOV DX,0200H LOOP0: MOV BL,SEC AND BX,000FH MOV SI,BX MOV AL,SITUATION[SI] MOV BL,SEC AND BX,00F0H MOV CL,4 SHR BX,CL MOV SI,BX MOV AH,SITUATION[SI] OUT DX,AX CALL DELAY MOV AL,SEC ADD AL,1 DAA MOV SEC,AL CMP SEC,60H JB LOOP0 MOV SEC,0 JMP LOOP0 DELAY PROC NEAR PUSH BX PUSH CX MOV BX,50 DEL1: MOV CX,5882 DEL2: LOOP DEL2 DEC BX JNZ DEL1 POP CX POP BX RET DELAY ENDP .data SEC DB 00H

电子秒表电路实验报告1

电子技术课程设计 报告 设计题目:电子秒表 院(部):物理与电子信息学院 专业班级:电子信息工程 学生姓名: 学号: 指导教师: 摘要

秒表应用于我们生活、工作、运动等需要精确计时的方面。它由刚开始的机械式秒表发展到今天所常用的数字式秒表。秒表的计时精度越来越高,功能越来越多,构造也日益复杂。 本次数字电路课程设计的数字式秒表的要求为:显示分辨率为1s/100,外接系统时钟频率为100KHz;计时最长时间为60min,五位显示器,显示时间最长为59m59.99s;系统设置启/停键和复位键。复位键用来消零,做好计时准备、启/停键是控制秒表起停的功能键。 针对上述设计要求,先前往校图书馆借阅了大量的数字电路设计方面的书籍,以及一本电子元件方面的工具书,以待查阅各种设计中所需要的元件。其次安装并学习了数字电路设计中所常用的Multisim仿真软件,在课程设计过程的电路图设计与电路的仿真方面帮助我们发现了设计电路方面的不足与错误之处。 关键字:555定时器十进制计数器六进制计数器多谐振荡器

目录 1.选题与需求分析 (1) 1.1设计任务 (1) 1.2 设计任务 (1) 1.3设计构思 (1) 1.4设计软件 (2) 2.电子秒表电路分析 (3) 2.1总体分析 (3) 2.2电路工作总体框图 (3) 3.各部分电路设计 (4) 3.1启动与停止电路 (4) 3.2时钟脉冲发生和控制信号 (4) 3.3 设计十进制加法计数器 (6) 3.4 设计六进制加法计数器 (7) 3.5 清零电路设计 (8) 3.7 总体电路图: (10) 4 结束语与心得体会 (12)

基于VHDL语言的EDA实验报告(附源码)

EDA 实验报告 ——多功能电子钟 姓名:张红义 班级:10级电科五班 学号:1008101143 指导老师:贾树恒

电子钟包括:主控模块,计时模块,闹钟模块,辅控模块,显示模块,蜂鸣器模块,分频器模块。 1.主控模块: 主要功能:控制整个系统,输出现在的状态,以及按键信息。 源代码: libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_arith.all; useieee.std_logic_unsigned.all; entity mc is port(functionswitch,k,set,lightkey: in std_logic; chose21,setout: out std_logic; lightswitch:bufferstd_logic; modeout,kmodeout : out std_logic_vector(1 downto 0); setcs,setcm,setch,setas,setam,setah:outstd_logic); end mc; architecture work of mc is signalmode,kmode:std_logic_vector(1 downto 0); signal light,chose21buf:std_logic; signalsetcount:std_logic_vector(5 downto 0); begin process(functionswitch,k,set,lightkey) begin iffunctionswitch'event and functionswitch='1' then mode<=mode+'1'; end if; iflightkey'event and lightkey='1' then lightswitch<=not lightswitch; end if; if mode="01" thenchose21buf<='0'; else chose21buf<='1'; end if; ifk'event and k='1' then if mode="01" or mode="11" then kmode<=kmode+'1'; end if;end if; if set='1' then if mode = "01" then ifkmode="01" then setcount<="000001"; elsifkmode="10" thensetcount<="000010"; elsifkmode="11" then setcount<="000100";

VHDL实验报告论文

硬件描述语言期末实验报告 题目:硬件描述语言实现秒表功能 姓名xxxx 学号xxxxxxxxxx 年级专业xxxxxxxxxxxxx 指导教师xxxx 2012年6月20日

河北大学本科生VHDL硬件实验论文(设计) 硬件描述语言实现秒表功能 摘要 应用VHDL语言设计数字系统,很多设计工作可以在计算机上完成,从而缩短了数字系统的开发时间。我们尝试利用VHDL为开发工具设计数字秒表。 秒表的逻辑结构较简单,它主要由十进制计数器、六进制计数器、数据选择器、和显示译码器等组成。在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外整个秒表还需有一个启动信号,暂停信号和一个清零信号,以便秒表能随意停止及启动。 关键词:VHDL语言数字秒表时序仿真图

目录 一、实验目的 (1) 二、硬件要求 (1) 三、引脚说明 (1) 四、模块介绍 (2) 4.1.计数器(六、十进制) (2) 4.2.蜂鸣器 (2) 4.3.译码器 (3) 4.4.控制器 (4) 五、整体连接图 (5) 六、实验结果 (6) 七、实验总结 (6) 八、谢辞 (7) 九、附录 (7)

一实验目的 学习使用VHDL语言,以及EDA芯片的下载仿真。 二硬件要求 (1)主芯片EPF10K10LC84-4。 (2)蜂鸣器。 (3)8位八段扫描共阴极数码显示管。 (4)二个按键(暂停,开关)。 三引脚说明 3.1引脚设置 3.2信号说明 signal q:std_logic_vector(3 downto 0); --q是用于分频的信号。 signal state: std_logic_vector(3 downto 0); --state为状态信号,state为1时为暂停记录状态,为0时为正常显示计数状态。signal led: std_logic_vector(3 downto 0); --led为数码管扫描信号,通过对d1~d6的选择使数码管发光。

实验九电子秒表

实验九电子秒表 一、实验目的 1、学习数字电路中基本RS触发器、单稳态触发器、时钟发生器及计数、译码显示 等单元电路的综合应用。 2、学习电子秒表的调试方法。 二、实验原理 图形17-1为电子秒表的电原理图。按功能分成四个单元电路进行分析。 1、基本RS触发器 图形17-1中单元I为用集成与非门构成的基本RS触发器。属低电平直接触发的触发器,有直接置位、复位的功能。 它的一路输出Q作为单稳太触发器的输入,另一跟路输出Q作为与非门5的输入控制信 号。按动按钮开关K2(接地),则门1输出=1;门2输出Q=0,K2复位后Q、状态保持不变。再按动按钮开关K1;则Q由0变为1,门5开启,为计数器启动作为准备。 由1变0,启动单稳态触发器工作。 基本RS触发器在电子秒表中的职能是启动和停止秒表的工作。 2、单稳态触发器 图17-1中单元II为用集成与非门构成的微分型单稳态触发器,图17-2为各点波形图。 单稳态触发器的输入触发脉冲信号V1由基本RS触发器端提供,输出负脉冲V0通过非门加到计数器的清除端R。 静态时,门4应处于截止状态,故电阻R必须小于门的关门电阻R OFF。定时元件RC取值不同,输出脉冲宽度也不同。当触发脉冲宽度小于输出脉冲宽度时,可以省去输入微分电路的RP和C P。 单稳态触发器在电子秒表中的职能是为计数器提供清零信号。 图17-1 电子秒表原理图 3时钟发生器

图17-1中单元III为用555定时器构成的多谐振荡器,是一种性能较好的时钟源。 调节电位器RW,使在输出端3获得频率为50HZ的矩形波信号,当基本RS触发器Q=1时,门5开启,此时50HZ脉冲信号通过门5作为计数脉冲加于计数器①的计数输入端CP2。 3、计数及译码显示 二—五—十进制加法计数器74LS90构成电子秒表的计数单元,如图17—1中单元IV所示。其中计数器①接成五进制形式,对频率为50HZ的时钟脉冲进行五分频,在输出端QD 取得周期为0.1S的矩形波脉冲,作为计数器②的时钟输入。计数器②及计数器③接成8421码十进制形式,其输出端与实验装置上译码显示单元的相应输入端连接,可显示0.1~0.9秒;1~9.9秒计时。 注:集成异步计数器74LS90 74LS90是异步二—五—十进制加法计数器,它既可以作二进制加法计数器,又可以作五进制和十进制加法计数器。 图17—3为74LS90引脚排列,表17—1为功能表。 通过不同的连接方式,74LS90可以实现四种不同的逻辑功能;而且还右借助R0(1)、R0(2)对计数器清零,借助S9(1)、S9(2)将计数器置9。其具体功详述如下: (1)计数脉冲从CP1输入,Q A作为输出端,为二进制计数器。 (2)计数脉冲从CP2输入,Q D Q L Q H作为输出端,为异步五进制加法计数器。 (3)若将CP2和QA相连,计数脉冲由CP1输入,Q D、Q C、Q B、Q A作为输出端,则构成异步8421码十进制加法计数器。 (4)若将CP1与QD相连,计数脉冲由CP2输入,Q A、Q D、QC、QB作为输出端,则构成异步5421码十进制加法计数器。 (5)清零、置9功能。 a)异步清零 当R0(1)、R0(2)均为“1”;S9(1)、S9(2)中有“0”时,实现异步清零功能,即Q D QC QBQA=0000。 b)置9功能 当S9(1)、S9(2)均为“1”;R0(1)、R0(2)中有“0”时,实现置9功能,即Q D Q C QB QA =1001. 表17-1

单片机秒表实验报告

安徽科技学院机电与车辆工程学院 《电子电路课程综合实训》 验收材料 题目: 电子秒表 姓名(学号) 胡斌1609110208 李绪1609110214 王增龙1609110227 段鑫鹏 专业: 电气工程及其自动化 班级: 112班 指导教师:叶爱芹 2013 年 12 月 29日

目录 第一章单片机课程设计任务书 (1) 一、目的意义 (1) 二、设计时间、地点和班级 (1) 三、设计内容 (1) 四、参考电路图形 (2) 五、单片机的相关知识 (3) 第二章硬件设计 (5) 一、单片机简介 (5) 二、电源电路 (5) 三、晶振振荡电路 (5) 四、复位电路 (5) 五、显示电路 (6) 六、键盘电路 (6) 七、硬件主电路图设计 (7) 八、元件清单 (7) 第三章软件设计 (8) 一、软件设计概述 (8) 二、主程序流程图 (8) 三、程序中各函数设计 (8) 四、C语言主程序设计 (10) 第四章课程设计体会 (13) ..

五、单片机相关知识 本课题在选取单片机时,充分借鉴了许多成形产品使用单片机的经验,并根据自己的实际情况,选择了AT89C51。 AT89C51单片机采用40引脚的双列直插封装方式。图1.2为引脚排列图,40条引脚说明如下: 主电源引脚Vss和Vcc ①Vss接地 ②Vcc正常操作时为+5伏电源 外接晶振引脚XTAL1和XTAL2 ①XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。 ②XTAL2内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。 图1.2 AT89C51单片机引脚图 控制或与其它电源复用引脚RST/VPD,ALE/PROG,PSEN和EA/Vpp ①RST/VPD 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在Vcc掉电期间,此引脚可接上备用电源,由VPD向内部提供备用电源,以保持内部RAM中的数据。 ②ALE/PROG正常操作时为ALE功能(允许地址锁存)提供把地址的低 字节锁存到外部锁存器,ALE 引脚以不变的频率(振荡器频率的1/6)周期性地发出正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。但要注意,每当访问外部数据存储器时,将跳过一个ALE脉冲,ALE 端可以驱动(吸收或输出电流)八个LSTTL电路。对于EPROM型单片机,在EPROM编程期间, 此引脚接收编程脉冲(PROG功能)

VHDL实验报告

专用集成电路实验报告 13050Z01 1305024237 刘德文

实验一开发平台软件安装与认知实验 实验内容 1、本实验以三线八线译码器(LS74138)为例,在Xilinx ISE 9.2软件平台上完成设计 电路的VHDL文本输入、语法检查、编译、仿真、管脚分配和编程下载等操作。下载芯片选择Xilinx公司的CoolRunner II系列XC2C256-7PQ208作为目标仿真芯片。 2、用1中所设计的的三线八线译码器(LS74138)生成一个LS74138元件,在Xilinx ISE 9.2软件原理图设计平台上完成LS74138元件的调用,用原理图的方法设计三线八线译 码器(LS74138),实现编译,仿真,管脚分配和编程下载等操作。 源程序: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; -- Uncomment the following lines to use the declarations that are -- provided for instantiating Xilinx primitive components. --library UNISIM; --use UNISIM.VComponents.all; entity ls74138 is Port ( g1 : in std_logic; g2 : in std_logic; inp : in std_logic_vector(2 downto 0); y : out std_logic_vector(7 downto 0)); end ls74138; architecture Behavioral of ls74138 is begin process(g1,g2,inp) begin if((g1 and g2)='1') then case inp is when "000"=>y<="00000001"; when "001"=>y<="00000010";

电子秒表设计实验报告

淮阴工学院 《数字电子技术》课程实验期末考核 2014-2015学年第2学期实验名称:电子秒表电路的设计 班级: 学号: 姓名: 学院:电子与电气工程学院 专业:自动化 系别:自动化 指导教师:《数字电子技术》实验指导教师组成绩: 2015年07月

电子秒表电路的设计 一、实验目的 1 .学习数字电路中基本RS 触发器、单稳态触发器、时钟发生器及计数、译码显示等单元电路的综合应用。 2 .学习电子秒表的调试方法。 二、实验原理 图11 -1 为电子秒表的电原理图。按功能分成四个单元电路进行分析。

1.基本RS 触发器 图11 -1 中单元I 为用集成与非门构成的基本RS 触发器。属低电平直接触发的触发器,有直接置位、复位的功能。 它的一路输出作为单稳态触发器的输入,另一路输出Q 作为与非门5 的输入控制信号。 按动按钮开关K 2(接地),则门1 输出=1 ;门2 输出Q =0 ,K 2 复位 后Q 、状态保持不变。再按动按钮开关K 1 , 则Q 由0 变为1 ,门5 开启, 为计数器启动作好准备。由1 变0 ,送出负脉冲,启动单稳态触发器工作。 基本RS 触发器在电子秒表中的职能是启动和停止秒表的工作。 2. 时钟发生器 图11 -1 中单元Ⅲ为用555 定时器构成的多谐振荡器,是一种性能较好的 时钟源。 调节电位器 R W ,使在输出端3 获得频率为50HZ 的矩形波信号,当基本RS 触发器Q =1 时,门5 开启,此时50HZ 脉冲信号通过门5 作为计数脉冲加于 计数器①的计数输入端CP 2 。

图11-2 单稳态触发器波形图图11-3 74LS90引脚排列 3.计数及译码显示 二—五—十进制加法计数器74LS90 构成电子秒表的计数单元,如图11 -1 中单元Ⅳ所示。其中计数器①接成五进制形式,对频率为50HZ 的时钟 取得周期为0.1S 的矩形脉冲,作为计数器②的脉冲进行五分频,在输出端Q D 时钟输入。计数器②及计数器③接成8421 码十进制形式,其输出端与实验装置上译码显示单元的相应输入端连接,可显示0.1 ~0.9 秒;1 ~9 秒计时。 注:集成异步计数器74LS90 74LS90 是异步二—五—十进制加法计数器,它既可以作二进制加法计数器,又可以作五进制和十进制加法计数器。

vhdl实验报告--蜂鸣器

VHDL 实验报告 一、实验目的 1、掌握蜂鸣器的使用; 2、通过复杂实验,进一步加深对VHDL语言的掌握程度。 二、实验原理乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在蜂鸣器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让蜂鸣器能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间。由此可见,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个关键因素。 乐曲的12 平均率规定:每2 个八度音(如简谱中的中音1 与高音1)之间的频率相差1 倍。在2个八度音之间,又可分为12个半音。另外,音符A(简谱中的低音6)的频率为440Hz, 音符B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音I至高音1 之间每个音符的频率,如表所示。 音名频率/Hz 音名频率/Hz 音名频率/Hz 低音1 中音1 高音1 低音2 中音2 高音2 低音3 中音3 高音3 低音4 中音4 高音4 低音5 392 中音5 784 高音5 1568 低音6 440 中音6 880 高音6 1760 低音7 中音7 高音7 表简谱音名与频率的对应关系 产生各音符所需的频率可用一分频器实现, 由于各音符对应的频率多为非整数, 而分频系数又不能为小数, 故必须将计算得到的分频数四舍五入取整。若分频器时钟频率过低, 则由于分频系数过小, 四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但分频数将变大。实际的设计应综合考虑两方面的因素, 在尽量减小频率误差的前提下取合适的时钟频率。实际上,只要各个音符间的相对频率关系不变,演奏出的乐曲听起来都不会走调。 音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定。因此, 要控制音符的音 长,就必须知道乐曲的速度和每个音符所对应的节拍数, 本例所演奏的乐曲的最短的音符为四分音符,如果将全音符的持续时间设为1s 的话,那么一拍所应该持续的时间为秒,则只需要提供一个4HZ的时钟频率即可产生四分音符的时长。 本例设计的音乐电子琴选取40MHZ的系统时钟频率。在数控分频器模块,首先对时钟频率进行40分频,得到1MHZ的输入频率,然后再次分频得到各音符的频率。由于数控分频器 输出的波形是脉宽极窄的脉冲波, 为了更好的驱动蜂鸣器发声, 在到达蜂鸣器之前需要均衡占空比, 从而生成各音符对应频率的对称方波输出。这个过程实际上进行了一次二分频, 频率变为原来的二分之一即。 因此,分频系数的计算可以按照下面的方法进行。以中音1为例,对应的频率值为 523. 3Hz,它的分频系数应该为: 0.375MHZ 0.375 106 716 523.3 523.3

电子电工综合实验报告

电工电子综合试验——数字计时器实验报告 学号: 姓名: 学院: 专业:通信工程

目录 一,实验目的及要求 二,设计容简介 四,电路工作原理简述 三,设计电路总体原理框图五,各单元电路原理及逻辑设计 1. 脉冲发生电路 2. 计时电路和显示电路 3. 报时电路 4. 较分电路 六引脚图及真值表

七收获体会及建议 八设计参考资料 一,实验目的及要求 1,掌握常见集成电路实现单元电路的设计过程。 2,了解各单元再次组合新单元的方法。 3,应用所学知识设计可以实现00’00”—59’59”的可整点报时的数字计时器 二,设计容简介: 1,设计实现信号源的单元电路。( KHz F Hz F Hz F Hz F1 4 , 500 3 , 2 2 , 1 1≈ ≈ ≈ ≈ ) 2,设计实现00’00”—59’59”计时器单元电路。 3,设计实现快速校分单元电路。含防抖动电路(开关k1,频率F2,校分时秒计时器停止)。4,加入任意时刻复位单元电路(开关K2)。 5,设计实现整点报时单元电路(产生59’53”,59’55”,59’57”,三低音频率F3,59’59”一高音频率F4)。 三,设计电路总体原理框图 设计框图: 四,电路工作原理简述 电路由振荡器电路、分频器、计数器、译码器、显示器、校时电路和报时电路组成。振荡器产生的脉冲信号经过十二级分频器作为秒脉冲,秒脉冲送入计数器,计数器通过“时”、“分”、“秒”译码器显示时间,将分秒计时器分开,加入快速校分电路与防抖动电路,并控制秒计

时器停止工作。较分电路实现对“分”上数值的控制,而不受秒十位是否进位的影响,在60进制控制上加入任意时刻复位电路。报时电路通过1kHz或2kHz的信号和要报时的时间信号进行“与”的运算来实现的顶点报时的,通过两个不同频率的脉冲信号使得在不同的时间发出不同的声响。 五,各单元电路原理及逻辑设计 (1)脉冲发生电路 脉冲信号发生电路是危机时期提供技术脉冲,此次实验要求产生1HZ的脉冲信号。用NE555集成电路和CD4040构成。555定时器用来构成多谐振荡器,CD4040产生几种频率为后面电路使用。 实验电路如下(自激多谐振荡电路,周期矩形波发生电路) 震荡周期T=0.695(R1+2*R2)C,其中R1=1KΩ,R2=3KΩ,C=0.047uf,计算T=228.67*10-6 s ,f=4373.4Hz产生的脉冲频率为4KHz,脉冲信号发生电路 和CD4040连接成如图所示的电路,则从Q12输出端可以得到212分频信号F1,即1Hz的信号,Q11可以得到F2即2Hz的信号提供给D触发器CP和校分信号,Q3输出分频信号500Hz,Q2输出1KHz提供给报时电路 二,秒计时电路 应用CD4518及74LS00可以设计该电路,CD4518是异步清零,所以在进行分和秒十位计数的时候,需要进行清零,而在个位计数的时候不需要清零。所以Cr2=2QcQb,Cr4=4Qc4QB。当秒个位为1001时,秒十位要实现进位,此时需要EN2=1Qd,同理分的个位时钟EN3=2Qc,分十位时钟端EN4=3Qd。因此,六十进制计数器逻辑电路如下图所示

vhdl实验报告

福建农林大学计算机与信息学院 信息工程类 实验报告 2013年11 月13 日

实验项目列表

福建农林大学计算机与信息学院信息工程类实验报告 系:电子信息工程系专业:电子信息工程年级: 2010级 姓名:学号:实验课程: VHDL数字系统设计 实验室号:__ 田C407 实验设备号: 07 实验时间: 11.12 指导教师签字:成绩: 实验一数控分频器的设计 1.实验目的和要求 学习数控分频器的设计、分析和测试方法。 2.实验原理 信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相接即可,详细设计程序如例1所示。 数控分频器的仿真波形如图1所示:输入不同的CLK频率和预置值D,给出如图1的时序波形。 100.0μs200.0μs300.0μs400.0μs 图1 当给出不同输入值D时,FOUT输出不同频率(CLK周期=50ns) 3.主要仪器设备(实验用的软硬件环境) 实验的硬件环境是: 微机一台 GW48 EDA实验开发系统一套 电源线一根 十芯JTAG口线一根 USB下载线一根 USB下载器一个 示波器 实验的软件环境是: Quartus II 9.0软件

4.操作方法与实验步骤 (1)创建工程,并命名位test。 (2)打开QuartusII,建立VHDL文件,并输入设计程序。保存为DVF. (3)选择目标器件。Acex1k—EP1K100QC208-3。 (4)启动编译。 (5)建立仿真波形图。 (6)仿真测试和波形分析。 (7)引脚锁定编译。 (8)编程下载。 (9)硬件测试 5.实验内容及实验数据记录 在实验系统上硬件验证例5-20的功能。可选实验电路模式1(第一章图4);键2/键1负责输入8位预置数D(PIO7-PIO0);CLK由clock0输入,频率选65536Hz 或更高(确保分频后落在音频范围);输出FOUT接扬声器(SPKER)。编译下载后进行硬件测试:改变键2/键1的输入值,可听到不同音调的声音。 6.实验数据处理与分析 1)实验代码 【例1】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DVF IS PORT ( CLK : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); FOUT : OUT STD_LOGIC ); END; ARCHITECTURE one OF DVF IS SIGNAL FULL : STD_LOGIC; BEGIN P_REG: PROCESS(CLK) VARIABLE CNT8 : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF CLK'EVENT AND CLK = '1' THEN IF CNT8 = "11111111" THEN CNT8 := D; --当CNT8计数计满时,输入数据D被同步预置给计数器CNT8 FULL <= '1'; --同时使溢出标志信号FULL输出为高电平 ELSE CNT8 := CNT8 + 1; --否则继续作加1计数 FULL <= '0'; --且输出溢出标志信号FULL为低电平 END IF; END IF; END PROCESS P_REG ; P_DIV: PROCESS(FULL) VARIABLE CNT2 : STD_LOGIC; BEGIN IF FULL'EVENT AND FULL = '1' THEN CNT2 := NOT CNT2; --如果溢出标志信号FULL为高电平,D触发器输出取反

VHDL实验报告一2选1多路选择器

实验一 实验目的: 熟悉quartus的vhdl文本设计流程全过程,学习简单的组合电路的设计,多层次的电路设计,仿真和硬件测试 二、实验内容 内容(一)用vhdl语言设计2选1多路选择器 参考例3-1程序设计如下: library ieee; use mux21a is port (a,b,s:in bit; y: out bit); end entity mux21a; architecture one of mux21a is begin y<=a when s='0' else b; end architecture one 全程编译后软件提示0错误,3警告,可以继续下面仿真操作。 程序分析: 这是一个2选1多路选择器,a和b分别为两个数字输入端的端口名,s为通道选择控制信号输入端的端口名,y为输出端的端口名。 时序仿真及分析: 时序仿真输入图: 时序仿真输出图: 时序分析: 由上面两图可以得知:当s=0时,y口输出a,当s=1时,y口输出b 下载和硬件测试: 引脚锁定图: 程序下载完成后,选择实验电路模式5,通过短路帽选择clock0接256Hz 信号,clock2接8Hz信号。通过键一控制s,当键一进行切换时,明显能听到扬声器发出两种不同音调的声音。 实验内容(二)双二选一多路选择器设计

程序设计: library ieee; use mux21a is port (a,b,s:in bit; y: out bit); end entity mux21a; architecture one of mux21a is begin y<=a when s='0' else b; end architecture one; entity muxk is port (a1,a2,a3,s0,s1:in bit; outy:out bit); end entity muxk; architecture bhv of muxk is component mux21a port (a,b,s:in bit; y:out bit); end component; signal tmp: bit; begin u1:mux21a port map(a=>a2,b=>a3,s=>s0,y=>tmp); u2:mux21a port map(a=>a1,b=>tmp,s=>s1,y=>outy); end architecture bhv; 全程编译后软件提示0错误,2警告 程序分析: 这是一个双2选1多路选择器,a1、a2和a3分别为两个数字输入端的端口名,s0、s1为通道选择控制信号输入端的端口名,outy为输出端的端口名。实体mux21a是一个2选一选通电路,实体muxk是元件的例化,其作用是将两个mux21a组合成一个3选1多路选择器。 时序仿真及分析: 时序仿真输入图 时序仿真输出图 时序分析: 从仿真出来的结果,我们不难发现,s0和s1做为a1、a2、a3的选通控制信号。当s0=0.、s1=0时,outy输出a1;当s0=0.、s1=1时,outy输出a2;当s0=1.、s1=0时,outy输出a1;当s1=1.、s2=1时,outy输出a3; 下载和硬件测试: 引脚锁定图

数字电路实验电子秒表设计

* * 交通大学 信息科学与工程学院 综合性实验报告 姓名:*** 学号631206050*** 班级:2012 级软件2班 实验项目名称:电子秒表 实验项目性质:设计性实验 实验所属课程:数字电路技术基础 实验室(中心):电子电工实验室 指导教帅: *** _________________________ 实验完成时间:2013 年J2 月20 日

一、实验目的 1. 熟悉计数器的工作原理及特点; 2. 了解和掌握四位同步可预置二进制计数器 74LS161的使用方法; 3. 学习设计N进制加法计数器的方法; 4. 了解电子秒表的设计原理; 5. 掌握电子秒表的设计方法; 二、实验内容及要求 1. 自己设计的同学可以在实验中验证; 2. 按老师要求做的最好回去用EW殷计60分钟的电子秒表; 3. 完成实验报告,附上电路图及仿真结果; 4. 总结数字电路设计的一般方法,掌握常见的数字电路设计的软件。 三、实验原理 本实验采用4枚74LS161计数器及少量的门电路组成。当原有计数器从全0状态开始计数并接收了n个脉冲后,电路进入SN状态;如果将SN状态译码产生一个置零信号加入到计数器的置零输入端,则计数器立刻返回S0状态,因此可以得到相应进制 的计数器。由丁电路一旦进入SN状态后立刻乂被置成S0状态,所以SN状态只在极短的时间

出现,在稳定的状态循环中不包括SN状态。 本实验采用的4枚74LS161计数器中其中两枚采用十进制计数,另外两枚采用六进制计数用丁实现60分钟秒表的设计。 五、实验过程及原始记录(含电路图) 本实验采用4枚74LS161计数器进行实验设计,用丁构成秒表;设计过程中其中两枚需设计成十进制计数器;另外两枚需设计成6进制计数器。 六进制计数器:当Q3Q2Q1Q0=0110时,置零输入端输入置零信号使计数器活零;当Q3Q2Q1Q0=0101时,产生一个进位信号输入下一级计数器的EP、ET工作状态控制端。 十进制计数器:当Q3Q2Q1Q0=1010时,置零输入端输入置零信号使计数器活零;当Q3Q2Q1Q0=1001时,产生一个进位信号输入下一级计数器的EP、ET工作状态控制端。 其电路图实现如下:

相关文档