电子技术综合试验
实验报告
班级:29021070
学号:2902107005
姓名:杨 林
指导老师:刘 曦
目录
1 引言 1
1.1 课程设计的目的 1
1.2 课程设计的内容 1
2 EDA、VHDL简介 1
2.1 EDA技术 1
2.2 硬件描述语言——VHDL 3
3设计过程 4
3.1 设计规划 4
3.2 各模块的原理及其程序 5
3.2.1顶层结构体的设计及VHDL源代码 5
3.3秒表各个模块的分析及其VHDL源代码 12
3.3.1控制模块 12
3.3.2时钟分频模块 14
3.3.3计时模块 15
3.3.4秒表显示模块 17
4系统仿真 20
结束语 22
1 引言
在科技高度发展的今天,集成电路和计算机应用得到了高速发展。尤其是计算机应用的发展。它在人们日常生活已逐渐崭露头角。大多数电子产品多是由计算机电路组成,
如:手机、mp3等。而且将来的不久他们的身影将会更频繁的出现在我们身边。各种家用电器多会实现微电脑技术。电脑各部分在工作时多是一时间为基准的。本文就是基于计算机电路的时钟脉冲信号、状态控制等原理设计出的数字秒表。秒表在很多领域充当一个重要的角色。在各种比赛中对秒表的精确度要求很高,尤其是一些科学实验。他们对时间精确度达到了几纳秒级别。
1.1 课程设计的目的
本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,了解EDA技术,对计算机系统中时钟控制系统进一步了解,掌握状态机工作原理,同时了解计算机时钟脉冲是怎么产生和工作的。在掌握所学的计算机组成与结构课程理论知识时。通过对数字秒表的设计,进行理论与实际的结合,提高与计算机有关设计能力,提高分析、解决计算机技术实际问题的能力。通过课程设计深入理解计算机结构与控制实现的技术,达到课程设计的目标。
1.2 课程设计的内容
以FPGA为核心,利用VHDL语言设计基于计算机电路中时钟脉冲原理的数字秒表。该数字秒表能对0秒~59分59.99秒范围进行计时,显示最长时间是59分59秒。设计了复位开关和启停开关。复位开关只可以在秒表暂停的情况下使用,使用以后计时器清零,并做好下一次计时的准备。
2 EDA、VHDL简介
2.1 EDA技术
EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子CAD通用软件包,它根据硬件描述语言HDL完成的设计文件,自动完成逻辑编译、化简、分割、综合、优化、布局布线及仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。目前EDA主要辅助进行三个方面的设计工作:IC设计、电子电路设计和PCB设计。没有EDA技术的支持,想要完成超大规模集成电路的设计制造是不可想象的;反过来,生产制造技术的不断进步又必将对EDA技术提出新的要求。
2.2 硬件描述语言——VHDL
★ VHDL的简介
VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为A I/IEEE的标准(IEEE STD 1076-1987)。1993年更进一步修订,变得更加完备,成为A I/IEEE的A I/IEEE STD 1076-1993标准。目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。
★ VHDL语言的特点
VHDL的程序结构特点是将一项工程设计,关于用VHDL和原理图输入进行CPLD/FPGA设计的粗略比较:在设计中,如果采用原理图输入的设计方式是比较直观的。你要设计的是什么,你就直接从库中调出来用就行了。这样比较符合人们的习惯。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的。
(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。
(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。
(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。
(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。
(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。
★ VHDL的设计流程
它主要包括以下几个步骤:
1.文本编辑:
用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。通常VHDL文件保存为.vhd文件,Verilog文件保存为.v文件
2.功能仿真:
将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)
3.时序仿真:
需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。(也叫后仿真) 通常以上过程可以都在PLD/FPGA厂家提供的开发工具。
4.器件编程
3设计过程
3.1 设计规划
本系统设计采用自顶向下的设计方案,系统的整体组装设计原理图如图3-1所示,它主要由控制模块、时基分频模块,计时模块和显示模块四部分组成。各模块分别完成计时过程的控制功能、计时功能与显示功能。
3.2各模块的原理及其程序
本系统设计由控制模块、时基分频模块,计时模块和显示模块四部分组成。各模块实现秒表不同的功能 。图3-2就是整个系统原理图。
3.2.1顶层结构体的设计及VHDL源代码
在任何自顶向下的VHDL设计描述中,设计人员常常将整个设计的系统划分为几个模块,然后采用结构描述方式对整个系统进行描述。现在我们就来根据前面描述的结构功能,确定使用哪些模块以及这些模块之间的关系。
下面我们就根据各个模块的连接关系来确定各个模块的输入信号和输出信号。
(1) 控制模块
输入信号
l 启/停开关信号ena;
l 时钟信号clk。
输出信号:
l 去除抖动后的启/停信号:pulse;
l 消除抖动后的使能信号:temp.
(2) 时钟分频模块
输入信号
外部时钟信号clk。
输出信号
l 时钟信号clk1k;
l 时钟信号clk100。
(3) 跑表计时模块
输入信号
l 复位信号clr;
l 内部计时时钟信号clk100;
l 定时计数的使能信号temp。
输出信号
l 小时十位信号hr10;
l 小时个位信号hr;
l 分十位信号min10;
l 分个位信号min;
l 秒十位信号sec10;
l 秒个位信号sec;
l 0.1秒位信号sec01;
l 0.01秒位信号sec001。
这部分模块设计中没有直接生成,直接依靠计数器的级联而成
(5) 显示模块
输入信号
l 外部时钟信号clk;
l 小时十位信号hr10;
l 小时个位信号hr;
l 分十位信号min10;
l 分个位信号min;
l 秒十位信号sec10;
l 秒个位信号sec;
l 0.1秒位信号sec01;
l 0.01秒位信号sec001。
输出信号
l LED七段显示数码管的选通信号sel;
l LED七段显示数码管的输出信号display。
下面根据各个模块的连接关系,给出顶层结构体的VHDL源代码。首先在结构体的说明部分进行元件说明,然后在结构体中进行例化调用。同时在结构体的说明部分还定义了许多中间信号,主要用来在模块之间传递信息。
architecture Behavioral of top is
signal XLXN_1 : std_logic;
signal XLXN_2 : std_logic;
signal XLXN_3 : std_logic;
signal XLXN_4 : std_logic;
signal XLXN_5 : std_logic;
signal XLXN_6 : std_logic;
signal XLXN_7 : std_logic;
signal XLXN_9 : std_logic;
signal XLXN_10 : std_logic;
signal m : std_logic_vector (23 downto 0);
COMPONENT clkgne
PORT(
clkin : IN std_logic;
clkout100 : OUT std_logic;
clkout1k : OUT std_logic
);
END COMPONENT;
COMPONENT count10
PORT(
clk : IN std_logic;
clr : IN std_logic;
ena : IN std_logic;
cq : OUT std_logic_vector(3 downto 0);
dout : OUT std_logic
);
END COMPONENT;
COMPONENT count6
PORT(
clk : IN std_logic;
clr : IN std_logic;
ena : IN std_logic;
cq : OUT std_logic_vector(3 downto 0);
dout : OUT std_logic
);
END COMPONENT;
COMPONENT display
PORT(
clkin : IN std_logic;
s8 : IN std_logic_vector(3 downto 0);
s7 : IN std_logic_vector(3 downto 0);
s5 : IN std_logic_vector(3 downto 0);
s4 : IN std_logic_vector(3 downto 0);
s2 : IN std_logic_vector(3 downto 0);
s1 : IN std_logic_vector(3 downto 0);
g : OUT std_logic;
display : OUT std_logic_vector(7 downto 0);
sel : OUT std_logic_vector(2 downto 0)
);
END COMPONENT;
COMPONENT control
PORT(
ena : IN std_logic;
temp : OUT std_logic;
clk: in std_logic;
pulse: out std_logic
);
END COMPONENT;
begin
U1: count10 PORT MAP(
clk=>XLXN_1,
clr=>clr,
ena=>XLXN_9,
cq(3 downto 0)=>m(3 downto 0),
dout=>XLXN_3 );
U2: count10 PORT MAP(
clk=>XLXN_3,
clr=>clr,
ena=>XLXN_9,
cq(3 downto 0)=>m(7 downto 4),
dout=>XLXN_4);
U3: count10 PORT MAP(
clk=>XLXN_4,
clr=>clr,
ena=>XLXN_9,
cq(3 downto 0)=>m(11 downto 8),
dout=>XLXN_5);
U4: count6 PORT MAP(
clk=>XLXN_5,
clr=>clr,
ena=>XLXN_9,
cq(3 downto 0)=>m(15 downto 12),
dout=>XLXN_6);
U5: count10 PORT MAP(
clk=>XLXN_6,
clr=>clr,
ena=>XLXN_9,
cq(3 downto 0)=>m(19 downto 16),
dout=>XLXN_7);
U6: count6 PORT MAP(
clk=>XLXN_7,
clr=>clr,
ena=>XLXN_9,
cq(3 downto 0)=>m(23 downto 20),
dout=>open);
U7: display PORT MAP(
clkin=>XLXN_2,
s1(3 downto 0)=>m(3 downto 0),
s2(3 downto 0)=>m(7 downto 4),
s4(3 downto 0)=>m(11 downto 8),
s5(3 downto 0)=>m(15 downto 12),
s7(3 downto 0)=>m(19 downto 16),
s8(3 downto 0)=>m(23 downto 20),
display(7 downto 0)=>DIS(7 downto 0),
g=>G,
sel(2 downto 0)=>sel(2 downto 0));
U8: control PORT MAP(
ena=>ena,
clk=>clkin,
pulse=>XLXN_10,
temp=>XLXN_9);
U9: clkgne PORT MAP(
clkin=>CLKIN,
clkout1k=>XLXN_2,
clkout100=>XLXN_1);
end Behavioral;
前面已经详细地讨论了秒表系统顶层的设计及其VHDL源代码,这里将重点介绍各个模块的实现及其VHDL源代码。跑表系统被划分为4个模块,而在顶层设计中是将各个模块作为元件来引用的,因此需要将各个模块设计成为独立实体的形式,这样它们就能作为元件被引用了。
3.3.1控制模块
前面已经提到过,由于秒表的复位开关和启/停开关采用按键的输入方式,其产生时刻和持续时间的长短是随机不定的,且存在因开关簧片反弹引起的电平抖动现象,因此必须在每个开关后面加一个消抖控制。消抖控制的作用是保证系统能捕捉到输入脉冲,并保证每按一键,只形成一个宽度为模块时钟周期的脉冲。
该模块功能是产生消抖信号并产生新的使能信号,对计时器进行计时。根据定时关系对该键输入模块进行VHDL描述,功能描述如下面源代码所示。
ibrary IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity control is
Port ( ena : in STD_LOGIC;
clk:in std_logic;
pulse:out std_logic;
temp : out STD_LOGIC);
end control;
architecture Behavioral of control is
signal temp1: integer range 0 to 1:=0;
signal reg1:std_logic;
signal reg2:std_logic;
signal reg3:std_logic;
signal reg4:std_logic;
signal q1:std_logic;
signal q2:std_logic;
signal reg_pulse:std_logic;
begin
q1<= reg1 and reg2 and reg3 and reg4;
reg_pulse<=q1 and not(q2);
pulse<=reg_pulse;
process(clk)
begin
if clk'event and clk='1' then
reg1<=ena;
reg2<=reg1;
reg3<=reg2;
reg4<=reg3;
q2<=q1;
if reg_pulse='1' then
temp1<=(temp1+1)mod 2;
if temp1=1 then
temp<='0';
else temp<='1';
end if;
end if;
end if;
end process;
end Behavioral;
时钟分频模块的功能是将输入的外部时钟信号clk进行分频,从而产生用来消除抖动的1000Hz的时钟信号clk1k和用于跑表内部定时计数的100Hz的时钟信号clk100。。但是需要注意的是,设计中要求时钟信号clk1和时钟信号clk0的有效脉冲宽度为1ms。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity clkgne is
Port ( clkin : in STD_LOGIC;
clkout100 : out STD_LOGIC;
clkout1k : out STD_LOGIC);
end clkgne;
architecture Behavioral of clkgne is
signal cnt100:integer range 1 to 240000;
signal cnt1k: integer range 1 to 24000;
signal clk100:std_logic:='0';
signal clk1k: std_logic:='0';
begin
process(clkin)
begin
if rising_edge(clkin) then
if cnt100=240000 then
cnt100<=1;
clk100<=not clk100;
else
cnt100<=cnt100+1;
end if;
end if;
if rising_edge(clkin) then
if cnt1k=24000 then
cnt1k<=1;
clk1k<=not clk1k;
else
cnt1k<=cnt1k+1;
end if;
end if;
end process;
clkout100<= clk100;
clkout1k<=clk1k;
end Behavioral;
该模块在实际设计中通过计时器级联而成,分别进行0.01s,1s,1min为单位的计时,通过6位计数器与10位计数器的级联组成,而本次设计中并未将其统一到一个顶层文件,故只写出6位计数器与10位计数器的源程序。
6位计数器
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity count6 is
Port ( clk : in STD_LOGIC;
clr : in STD_LOGIC;
ena : in STD_LOGIC;
cq : out STD_LOGIC_VECTOR (3 downto 0);
dout : out STD_LOGIC);
end count6;
architecture Behavioral of count6 is
signal cqi:std_logic_vector (3 downto 0):="0000";
begin
cq<=cqi;
process(clk,clr)
begin
if clr='0' and ena='1' then
cqi<="0000";
elsif rising_edge(clk) then
if ena='0' then
if cqi="0101" then
cqi<="0000";
else
cqi<=cqi+1;
end if;
end if;
end if;
end process;
process(cqi)
begin
if cqi="0000" then
dout<='1';
else
dout<='0';
end if;
end process;
end Behavioral;
10位计数器
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity count10 is
Port ( clk : in STD_LOGIC;
clr : in STD_LOGIC;
ena : in STD_LOGIC;
cq: out STD_LOGIC_VECTOR (3 downto 0);
dout : out STD_LOGIC);
end count10;
architecture Behavioral of count10 is
signal cqi:std_logic_vector (3 downto 0):="0000";
begin
cq<=cqi;
process(clk,clr)
begin
if clr='0' and ena='1' then
cqi<="0000";
elsif rising_edge(clk) then
if ena='0' then
if cqi="1001" then
cqi<="0000";
else
cqi<=cqi+1;
end if;
end if;
end if;
end process;
process(cqi)
begin
if cqi="0000" then
dout<='1';
else
dout<='0';
end if;
end process;
end Behavioral;
秒表还要将定时计数的结果显示出来,因此需要设计一个秒表显示模块来完成该显示功能秒表显示模块的输入信号主要来自于秒表计时模块输出的计时信息;它的输出信号是sel和display,以用来驱动用于计时显示的8个LED七段显示数码管。在输出信号中,为了节省资源,采用循环点亮LED七段显示数码管的方法来显示跑表的计时输出。通过信号sel(3 downto 0)来进行8个LED七段显示数码管的选择,从而将输出信号display(7 downtown 0)送到相应的LED七段显示数码管上以完成跑表计时的显示。
跑表显示模块的结构框图如图3.7所示。
秒表显示模块的结构框图
从图中可以看出,跑表显示模块可由四个部分构成:八进制计数器count8、计时位选择电路、七段显示译码电路和显示位选择译码电路。
源代码如下:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity display is
Port ( clkin : in STD_LOGIC;
s8 : in STD_LOGIC_VECTOR (3 downto 0);
s7 : in STD_LOGIC_VECTOR (3 downto 0);
s5 : in STD_LOGIC_VECTOR (3 downto 0);
s4 : in STD_LOGIC_VECTOR (3 downto 0);
s2 : in STD_LOGIC_VECTOR (3 downto 0);
s1 : in STD_LOGIC_VECTOR (3 downto 0);
g : out STD_LOGIC;
display : out STD_LOGIC_VECTOR (7 downto 0);
sel : out STD_LOGIC_VECTOR (2 downto 0));
end display;
architecture Behavioral of display is
signal cnt:integer range 0 to 7:=0;
signal s3: STD_LOGIC_VECTOR(3 DOWNTO 0);
signal s6: STD_LOGIC_VECTOR(3 DOWNTO 0);
signal a: STD_LOGIC;
begin
process(clkin)
variable num: std_logic_vector(3 downto 0);
begin
a<='0';
g<=a;
s3(3 downto 0)<="1111";
s6(3 downto 0)<="1111";
if rising_edge(clkin) then
if cnt=7 then
cnt<=0;
else
cnt<=cnt+1;
end if;
case cnt is
when 0=>sel<="000";num:=s1;
when 1=>sel<="001";num:=s2;
when 2=>sel<="010";num:=s3;
when 3=>sel<="011";num:=s4;
when 4=>sel<="100";num:=s5;
when 5=>sel<="101";num:=s6;
when 6=>sel<="110";num:=s7;
when 7=>sel<="111";num:=s8;
end case;
case num is
when "0000"=>display<="00000011";
when "0001"=>display<="10011111";
when "0010"=>display<="00100101";
when "0011"=>display<="00001101";
when "0100"=>display<="10011001";
when "0101"=>display<="01001001";
when "0110"=>display<="01000001";
when "0111"=>display<="00011111";
when "1000"=>display<="00000001";
when "1001"=>display<="00001001";
when others=>display<="11111101";
end case;
end if;
end process;
end Behavioral;
4 系统仿真
(1) 时基分频模块的仿真
分析:CLK为时钟信号的输入 ,CO为分频输出信号。
(2) 控制模块的仿真
分析:CLK、CLR和SP为输入信号,EN为输出信号。
(3) 计时电路模块的仿真
① 显示电路模块的仿真
分析:bcd为时钟脉冲输入信号,led是输出信号,如图所示:当输出为“1111110”时候,输入为“0000”;当输出为“0110000”时输入“0001”,当输入为“0010”时输出为“1101101”,当输入为“0011”时输出为“1111001”等等来实现七段译码功能。
结束语
开始做设计时总是会犯一些错误,只有经过不停的改错不停的编译得到正确的程序说明了作为软件编程人员是不能粗心大意的,一个程序的质量的高低与你细心与否有着一定的联系。在编程时,我充分使用了结构化的思想,这样程序检查起来也比较方便,调试时也给了我很大方便,只要一个模块一个模块的进行调就可以了,充分体现了结构化编程的优势。在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。
在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差别及其在电路设计上的优越性。用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法在数字系统设计中发挥越来越重要的作用。
沈阳航空航天大学课程设计说明书数字秒表的设计班级学号学生姓名指导教师沈阳航空航天大学课程设计任务书课程名称电子技术综合课程设计院系…
湖北汽车工业学院课程设计说明书数字秒表的设计班级学号学生姓名指导教师一概述数字式秒表是一种常用的计时工具以其价格低廉走时准确使用方…
数字秒表课程设计目录数字秒表设计实验任务书1一设计实验目的1二设计实验说明及要求1三数字秒表组成及功能1四系统硬件要求1五设计内容…
电子技术综合试验实验报告班级29021070学号2902107005姓名杨林指导老师刘曦122目录1引言111课程设计的目的112…
课程设计总结报告课程名称班级学号姓名指导教师20xx数字秒表陈光胜年7月4日目录1内容摘要22设计课题任务及指标23系统设计方案论…
电子秒表1设计课题任务及指标1通过本设计的选题方案论证设计计算安装调试资料整理撰写设计报告等环节初步掌握电子工程设计方法和组织实施…
微机原理课程设计报告一设计目的培养和锻炼在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力通过课程设计要求熟悉和…
课程设计综合实验报告20xx20xx年度第一学期名称数字电路实验题目电子秒表设计院系电气与电子工程学院班级通信XXXX班学号XXX…
西安郵電學院控制系统课程设计报告书系部名称学生姓名专业名称班级时间信息与控制系XXX测控技术与仪器测控XXXX20xx年9月13日…
西安郵電學院控制系统课程设计报告书系部名称学生姓名专业名称班级时间信息与控制系XXX测控技术与仪器测控XXXX20xx年9月13日…
数字秒表课程设计总结报告一课题名称数字秒表设计二内容摘要本实验要求设计一个计数范围在0099秒的数字秒表电路设计基本包括01秒脉冲…