当前位置:文档之家› 北邮数电实验电子沙漏实验报告

北邮数电实验电子沙漏实验报告

北邮数电实验电子沙漏实验报告
北邮数电实验电子沙漏实验报告

数字电路与逻辑设计实验报告

选题:电子沙漏的设计与实现

班级:

学号:

姓名:

序号:

2014年11月12日

一、任务要求:

1、相关知识:

沙漏是一种古老的计时工具,也是一种玩具。电子沙漏用发光二极管表示沙粒,模拟沙漏的运动过程。电子沙漏会像真正的沙漏一样,上部的沙粒(点亮的发光二极管)一粒一粒往下掉,下部的沙粒一粒一粒堆起来。

在结构上,两组各16 个发光二极管分别排列成为两个三角形,如图1 所示。其中:VD0 ~VD15位于上部,排列成倒三角形;VD0'~VD15'位于下部,排列成正三角形。两个三角形的顶尖相对,组成沙漏形状。当上部有一个发光二极管熄灭时,相应地下部就有一个发光二极管点亮,模拟了沙粒的运动。

2、基本要求:

①采用8*8双色点阵显示电子沙漏的开机界面,如图2所示。其中红色LED代表沙漏的上半部分沙粒VD0~VD15,绿色LED代表沙漏的下半部分

VD0'~VD15'。

②用拨码开关SW1模拟重力感应器。当SW1为低电平时,沙粒从VD0~VD15向VD0'~VD15'移动;当SW1为高电平时,沙粒从VD0'~VD15'向VD0~VD15移动。

③按键BTN0作为计时启动停止按键,启动后沙粒即可按照SW1设定的方向移动,以SW1为低电平时为例,LED移动的顺序与对应关系如图3的1~16所示(若SW1为高电平,则点阵显示移动顺序为16~1)。每颗沙粒的移动时间为1秒,当移动到图3的16时,若SW1仍为低电平,则保持沙粒不动,但计时继续,直到SW1的电平发生变化或者BTN0计时停止。

④设计实现一个60秒计时器,当按键BTN0启动时开始工作,用于在沙粒移动过程中进行计时校准,并用数码管DISP0~DISP1显示计时结果。

3、提高要求:

①可以调节控制电子沙漏的流动速度。

②用多种方式呈现电子沙漏界面。

③自行设定沙粒的移动路径,显示每颗沙粒的移动过程。

④外接重力感应器,实现真实的电子沙漏功能。

⑤自拟其它功能。

二、系统设计:

总体框图:

分块设计:

① 输入模块:由btn 按钮和拨码开关构成。采用序列存储的方式存储相应的输入。

② 输入译码模块:将输入的符号序列转化成先用状态,以便选取对应的计算方法;将输入的8421bcd 码转化成相应的两位十进制数。

③ 数码管、点阵显示模块:将寄存器内的数进行输出到数码管上。

④ 防抖模块:在用按键输入时,所得到的信号可能 会有抖动,因此加入此抖动电路。

时钟 防抖模块

译码模块

主程序

输入

数码管、点阵显示

输出译码

流程图:

三、仿真波形及波形分析:

点阵显示采用行扫描模式

四、源程序:

----------------------------------------

--File Name :ShaLou.vhd

--System :Quartus II 9.1

--Author :Wang Hongjie 2012210176

--Revision :Version 1.0,2014-11-3

----------------------------------------

library ieee;

use ieee.std_logic_1164.all;

entity shalou is

port(

clk:in std_logic; --系统时钟

sw:in std_logic; --拨码开关SW1控制沙粒移动方向

bto:in std_logic; --启动暂停

bt1:in std_logic; --复位

bt2:in std_logic; --速度

lieh:out std_logic_vector(7 downto 0); --RED

liel:out std_logic_vector(7 downto 0); --GREEN

hang:out std_logic_vector(7 downto 0); --行扫描

a:out std_logic_vector(6 downto 0); --七段数码管

cat:out std_logic_vector(5 downto 0)); --数码管选择

end entity;

Architecture a of shalou is

signal temp:integer range 0 to 49999;

signal clktmp:std_logic;

signal clkout : std_logic;

signal temp1:integer range 0 to 199;

signal clktmp1:std_logic;

signal clkout1 : std_logic;

signal temp2:integer range 0 to 299;

signal clktmp2:std_logic;

signal clkout2 : std_logic;

signal qt: integer range 0 to 5;

signal bto_tmp: std_logic;

signal bto_out: std_logic;

signal qt1: integer range 0 to 5;

signal bto_tmp1: std_logic;

signal bto_out1: std_logic;

signal qt2: integer range 0 to 5;

signal bto_tmp2: std_logic;

signal sudu:integer range 0 to 2;

signal sudu_t:integer range 0 to 299;

signal q:integer range 0 to 60;

signal p:integer range 0 to 16;

signal ge:integer range 0 to 9;

signal shi:integer range 0 to 9;

signal dz_kongzhi:integer range 0 to 7;

signal cat_kongzhi:integer range 0 to 1;

begin

p1:process(clk) --时钟begin

if clk'event and clk='1' then

if temp=49999 then

temp<=0;clktmp<=not clktmp;

else

temp<=temp+1;

end if;

end if;

end process p1;

clkout<=clktmp;

p2:process(clkout) --分频begin

if clkout'event and clkout='0' then

if temp1=199 then

temp1<=0;

clktmp1<= not clktmp1;

else

temp1<=temp1+1;

end if;

end if;

end process p2;

clkout1<=clktmp1;

p3:process(clkout1)

begin

if clkout'event and clkout='0' then

if cat_kongzhi=0 then cat_kongzhi<=1;

else cat_kongzhi<=0;

end if;

if dz_kongzhi=7 then dz_kongzhi<=0;

else dz_kongzhi<=dz_kongzhi+1;

end if;

end if;

end process p3;

p4:process(clkout,qt,bto,qt1,bt1,qt2,bt2) begin

if clkout'event and clkout='0' then if bto='1' then

if qt=5 then

else

qt<=qt+1;

end if;

if qt=4 then

bto_tmp<='1';

else

bto_tmp<='0';

end if;

else

qt<=0;

end if;

end if;

if clkout'event and clkout='0' then

if bt1='1' then

if qt1=5 then

else

qt1<=qt1+1;

end if;

if qt1=4 then

bto_tmp1<='1';

else

bto_tmp1<='0';

end if;

else

qt1<=0;

end if;

end if;

if clkout'event and clkout='0' then

if bt2='1' then

if qt2=5 then

else

qt2<=qt2+1;

end if;

if qt2=4 then

bto_tmp2<='1';

else

bto_tmp2<='0';

end if;

qt2<=0;

end if;

end if;

end process;

p5:process(bto_tmp,bto_tmp1)

begin

if(bto_tmp'event and bto_tmp='1')then

bto_out<=not bto_out;

else

bto_out<=bto_out;

end if;

if(bto_tmp1'event and bto_tmp1='1')then

bto_out1<=not bto_out1;

else

bto_out1<=bto_out1;

end if;

if(bto_tmp2'event and bto_tmp2='1')then

if(sudu=2) then sudu<=0;

else sudu<=sudu+1;

end if;

end if;

end process;

p6:process(sudu)

begin

case sudu is

when 0 =>sudu_t<=199;

when 1 =>sudu_t<=99;

when 2 =>sudu_t<=299;

end case;

end process;

p7:process(clkout,sudu_t) --fen pin begin

if clkout'event and clkout='0' then

if temp2=sudu_t then

temp2<=0;

clktmp2<= not clktmp2;

else

temp2<=temp2+1;

end if;

end if;

clkout2<=clktmp2;

p8:process(bto_out,clkout1,sw) --ji shu qi

begin

if (bto_out='0') then

elsif(bto_out1='1') then

q<=0;p<=0; --q:miao zhong ji shu,p:dian zhen zhuang tai ji shu

elsif (q=60) then

else

if (clkout1'event and clkout1='1' ) THEN

q<=q+1;

end if;

if (clkout2'event and clkout2='1' ) THEN

if(sw='0' ) then

if(p<16) then

p<=p+1;

else

end if;

elsif(sw='1' ) then

if(p>0) then

p<=p-1;

else

end if;

end if;

end if;

end if;

end process ;

shi<=q/10;

ge<=q rem 10;

p9:process(cat_kongzhi,ge,shi)

begin

if cat_kongzhi=0 then

cat<="011111";

case ge is

when 0 =>a<="1111110";--0

when 1 =>a<="0110000";--1

when 2 =>a<="1101101";--2

when 3 =>a<="1111001";--3

when 4 =>a<="0110011";--4

when 5 =>a<="1011011";--5

when 7 =>a<="1110000";--7

when 8 =>a<="1111111";--8

when 9 =>a<="1111011";--9

--when others =>a<="0000000";

end case;

elsif cat_kongzhi=1 then

cat<="101111";

case shi is

when 0 =>a<="1111110";--0

when 1 =>a<="0110000";--1

when 2 =>a<="1101101";--2

when 3 =>a<="1111001";--3

when 4 =>a<="0110011";--4

when 5 =>a<="1011011";--5

when 6 =>a<="1011111";--6

when 7 =>a<="1110000";--7

when 8 =>a<="1111111";--8

when 9 =>a<="1111011";--9

--when others =>a<="0000000";

end case;

end if;

end process ;

p10:process(p)

begin

case p is

when 0 =>

case dz_kongzhi is

when 0 =>hang<="01111111";

lieh<="11111110";liel<="00000000";

when 1 =>hang<="10111111";

lieh<="01111100";liel<="00000000";

when 2 =>hang<="11011111";

lieh<="00111000";liel<="00000000";

when 3 =>hang<="11101111";

lieh<="00010000";liel<="00000000";

when 4 =>hang<="11110111";

lieh<="00000000";liel<="00010000";

when 5 =>hang<="11111011";

lieh<="00000000";liel<="00111000";

when 6 =>hang<="11111101";

lieh<="00000000";liel<="01111100";

when 7 =>hang<="11111110";

lieh<="00000000";liel<="11111110";

end case;

when 1 =>

case dz_kongzhi is

when 0 =>hang<="01111111";

lieh<="11101110";liel<="00010000";

when 1 =>hang<="10111111";

lieh<="01111100";liel<="00000000";

when 2 =>hang<="11011111";

lieh<="00111000";liel<="00000000";

when 3 =>hang<="11101111";

lieh<="00010000";liel<="00000000";

when 4 =>hang<="11110111";

lieh<="00000000";liel<="00010000";

when 5 =>hang<="11111011";

lieh<="00000000";liel<="00111000";

when 6 =>hang<="11111101";

lieh<="00000000";liel<="01111100";

when 7 =>hang<="11111110";

lieh<="00010000";liel<="11101110";

when others =>hang<="11111111";

end case;

when 2 =>

case dz_kongzhi is

when 0 =>hang<="01111111";

lieh<="11001110";liel<="00110000";

when 1 =>hang<="10111111";

lieh<="01111100";liel<="00000000";

when 2 =>hang<="11011111";

lieh<="00111000";liel<="00000000";

when 3 =>hang<="11101111";

lieh<="00010000";liel<="00000000";

when 4 =>hang<="11110111";

lieh<="00000000";liel<="00010000";

when 5 =>hang<="11111011";

lieh<="00000000";liel<="00111000";

when 6 =>hang<="11111101";

lieh<="00000000";liel<="01111100";

when 7 =>hang<="11111110";

lieh<="00110000";liel<="11001110";

when others =>hang<="11111111";

end case;

when 3 =>

case dz_kongzhi is

lieh<="11000110";liel<="00111000";

when 1 =>hang<="10111111";

lieh<="01111100";liel<="00000000";

when 2 =>hang<="11011111";

lieh<="00111000";liel<="00000000";

when 3 =>hang<="11101111";

lieh<="00010000";liel<="00000000";

when 4 =>hang<="11110111";

lieh<="00000000";liel<="00010000";

when 5 =>hang<="11111011";

lieh<="00000000";liel<="00111000";

when 6 =>hang<="11111101";

lieh<="00000000";liel<="01111100";

when 7 =>hang<="11111110";

lieh<="00111000";liel<="11000110";

when others =>hang<="11111111";

end case;

when 4 =>

case dz_kongzhi is

when 0 =>hang<="01111111";

lieh<="10000110";liel<="01111000";

when 1 =>hang<="10111111";

lieh<="01111100";liel<="00000000";

when 2 =>hang<="11011111";

lieh<="00111000";liel<="00000000";

when 3 =>hang<="11101111";

lieh<="00010000";liel<="00000000";

when 4 =>hang<="11110111";

lieh<="00000000";liel<="00010000";

when 5 =>hang<="11111011";

lieh<="00000000";liel<="00111000";

when 6 =>hang<="11111101";

lieh<="00000000";liel<="01111100";

when 7 =>hang<="11111110";

lieh<="01111000";liel<="10000110";

when others =>hang<="11111111";

end case;

when 5 =>

case dz_kongzhi is

when 0 =>hang<="01111111";

lieh<="10000010";liel<="01111100";

when 1 =>hang<="10111111";

lieh<="01111100";liel<="00000000";

lieh<="00111000";liel<="00000000";

when 3 =>hang<="11101111";

lieh<="00010000";liel<="00000000";

when 4 =>hang<="11110111";

lieh<="00000000";liel<="00010000";

when 5 =>hang<="11111011";

lieh<="00000000";liel<="00111000";

when 6 =>hang<="11111101";

lieh<="00000000";liel<="01111100";

when 7 =>hang<="11111110";

lieh<="01111100";liel<="10000010";

when others =>hang<="11111111";

end case;

when 6 =>

case dz_kongzhi is

when 0 =>hang<="01111111";

lieh<="00000010";liel<="11111100";

when 1 =>hang<="10111111";

lieh<="01111100";liel<="00000000";

when 2 =>hang<="11011111";

lieh<="00111000";liel<="00000000";

when 3 =>hang<="11101111";

lieh<="00010000";liel<="00000000";

when 4 =>hang<="11110111";

lieh<="00000000";liel<="00010000";

when 5 =>hang<="11111011";

lieh<="00000000";liel<="00111000";

when 6 =>hang<="11111101";

lieh<="00000000";liel<="01111100";

when 7 =>hang<="11111110";

lieh<="11111100";liel<="00000010";

when others =>hang<="11111111";

end case;

when 7 =>

case dz_kongzhi is

when 0 =>hang<="01111111";

lieh<="00000000";liel<="11111110";

when 1 =>hang<="10111111";

lieh<="01111100";liel<="00000000";

when 2 =>hang<="11011111";

lieh<="00111000";liel<="00000000";

when 3 =>hang<="11101111";

lieh<="00010000";liel<="00000000";

lieh<="00000000";liel<="00010000";

when 5 =>hang<="11111011";

lieh<="00000000";liel<="00111000";

when 6 =>hang<="11111101";

lieh<="00000000";liel<="01111100";

when 7 =>hang<="11111110";

lieh<="11111110";liel<="00000000";

when others =>hang<="11111111";

end case;

when 8 =>

case dz_kongzhi is

when 0 =>hang<="01111111";

lieh<="00000000";liel<="11111110";

when 1 =>hang<="10111111";

lieh<="01101100";liel<="00010000";

when 2 =>hang<="11011111";

lieh<="00111000";liel<="00000000";

when 3 =>hang<="11101111";

lieh<="00010000";liel<="00000000";

when 4 =>hang<="11110111";

lieh<="00000000";liel<="00010000";

when 5 =>hang<="11111011";

lieh<="00000000";liel<="00111000";

when 6 =>hang<="11111101";

lieh<="00010000";liel<="01101100";

when 7 =>hang<="11111110";

lieh<="11111110";liel<="00000000";

when others =>hang<="11111111";

end case;

when 9 =>

case dz_kongzhi is

when 0 =>hang<="01111111";

lieh<="00000000";liel<="11111110";

when 1 =>hang<="10111111";

lieh<="01001100";liel<="00110000";

when 2 =>hang<="11011111";

lieh<="00111000";liel<="00000000";

when 3 =>hang<="11101111";

lieh<="00010000";liel<="00000000";

when 4 =>hang<="11110111";

lieh<="00000000";liel<="00010000";

when 5 =>hang<="11111011";

lieh<="00000000";liel<="00111000";

lieh<="00110000";liel<="01001100";

when 7 =>hang<="11111110";

lieh<="11111110";liel<="00000000";

when others =>hang<="11111111";

end case;

when 10 =>

case dz_kongzhi is

when 0 =>hang<="01111111";

lieh<="00000000";liel<="11111110";

when 1 =>hang<="10111111";

lieh<="01000100";liel<="00111000";

when 2 =>hang<="11011111";

lieh<="00111000";liel<="00000000";

when 3 =>hang<="11101111";

lieh<="00010000";liel<="00000000";

when 4 =>hang<="11110111";

lieh<="00000000";liel<="00010000";

when 5 =>hang<="11111011";

lieh<="00000000";liel<="00111000";

when 6 =>hang<="11111101";

lieh<="00111000";liel<="01000100";

when 7 =>hang<="11111110";

lieh<="11111110";liel<="00000000";

when others =>hang<="11111111";

end case;

when 11 =>

case dz_kongzhi is

when 0 =>hang<="01111111";

lieh<="00000000";liel<="11111110";

when 1 =>hang<="10111111";

lieh<="00000100";liel<="01111000";

when 2 =>hang<="11011111";

lieh<="00111000";liel<="00000000";

when 3 =>hang<="11101111";

lieh<="00010000";liel<="00000000";

when 4 =>hang<="11110111";

lieh<="00000000";liel<="00010000";

when 5 =>hang<="11111011";

lieh<="00000000";liel<="00111000";

when 6 =>hang<="11111101";

lieh<="01111000";liel<="00000100";

when 7 =>hang<="11111110";

lieh<="11111110";liel<="00000000";

when others =>hang<="11111111";

end case;

when 12 =>

case dz_kongzhi is

when 0 =>hang<="01111111";

lieh<="00000000";liel<="11111110";

when 1 =>hang<="10111111";

lieh<="00000000";liel<="01111100";

when 2 =>hang<="11011111";

lieh<="00111000";liel<="00000000";

when 3 =>hang<="11101111";

lieh<="00010000";liel<="00000000";

when 4 =>hang<="11110111";

lieh<="00000000";liel<="00010000";

when 5 =>hang<="11111011";

lieh<="00000000";liel<="00111000";

when 6 =>hang<="11111101";

lieh<="01111100";liel<="00000000";

when 7 =>hang<="11111110";

lieh<="11111110";liel<="00000000";

when others =>hang<="11111111";

end case;

when 13 =>

case dz_kongzhi is

when 0 =>hang<="01111111";

lieh<="00000000";liel<="11111110";

when 1 =>hang<="10111111";

lieh<="00000000";liel<="01111100";

when 2 =>hang<="11011111";

lieh<="00101000";liel<="00010000";

when 3 =>hang<="11101111";

lieh<="00010000";liel<="00000000";

when 4 =>hang<="11110111";

lieh<="00000000";liel<="00010000";

when 5 =>hang<="11111011";

lieh<="00010000";liel<="00101000";

when 6 =>hang<="11111101";

lieh<="01111100";liel<="00000000";

when 7 =>hang<="11111110";

lieh<="11111110";liel<="00000000";

when others =>hang<="11111111";

end case;

when 14 =>

case dz_kongzhi is

lieh<="00000000";liel<="11111110";

when 1 =>hang<="10111111";

lieh<="00000000";liel<="01111100";

when 2 =>hang<="11011111";

lieh<="00001000";liel<="00110000";

when 3 =>hang<="11101111";

lieh<="00010000";liel<="00000000";

when 4 =>hang<="11110111";

lieh<="00000000";liel<="00010000";

when 5 =>hang<="11111011";

lieh<="00110000";liel<="00001000";

when 6 =>hang<="11111101";

lieh<="01111100";liel<="00000000";

when 7 =>hang<="11111110";

lieh<="11111110";liel<="00000000";

when others =>hang<="11111111";

end case;

when 15 =>

case dz_kongzhi is

when 0 =>hang<="01111111";

lieh<="00000000";liel<="11111110";

when 1 =>hang<="10111111";

lieh<="00000000";liel<="01111100";

when 2 =>hang<="11011111";

lieh<="00000000";liel<="00111000";

when 3 =>hang<="11101111";

lieh<="00010000";liel<="00000000";

when 4 =>hang<="11110111";

lieh<="00000000";liel<="00010000";

when 5 =>hang<="11111011";

lieh<="00111000";liel<="00000000";

when 6 =>hang<="11111101";

lieh<="01111100";liel<="00000000";

when 7 =>hang<="11111110";

lieh<="11111110";liel<="00000000";

when others =>hang<="11111111";

end case;

when 16 =>

case dz_kongzhi is

when 0 =>hang<="01111111";

lieh<="00000000";liel<="11111110";

when 1 =>hang<="10111111";

lieh<="00000000";liel<="01111100";

lieh<="00000000";liel<="00111000";

when 3 =>hang<="11101111";

lieh<="00000000";liel<="00010000";

when 4 =>hang<="11110111";

lieh<="00010000";liel<="00000000";

when 5 =>hang<="11111011";

lieh<="00111000";liel<="00000000";

when 6 =>hang<="11111101";

lieh<="01111100";liel<="00000000";

when 7 =>hang<="11111110";

lieh<="11111110";liel<="00000000";

when others =>hang<="11111111";

end case;

end case;

end process ;

end;

五、功能说明及资源利用情况:

本次实验完成了题目的所有基本要求以及调节速度的提高要求,即用8*8双色点阵模拟了电子沙漏,实现了沙粒的流动;用拨码开关sw1模拟了重力感应器;用DISP0~DISP1模拟了60秒计时器;用按键btn0控制启动和暂停,btn1实现复位,btn2实现三种速度的切换。

器件资源使用情况如下:

Total logic elements:2721270(21%)

Total pins:42/116(36%)

北邮模电—实验三、共射放大电路测试仿真(模板)2018-02-26 (1)

实验三共射放大电路计算、仿真、测试分析报告 (请在本文件中录入结果并进行各类分析,实验结束后,提交电子文档报告) 实验目的: 掌握共射电路静态工作点的计算、仿真、测试方法;掌握电路主要参数的计算、中频时输入、输出波形的相位关系、失真的类型及产生的原因;掌握获得波特图的测试、仿真方法;掌握负反馈对增益、上下限截频的影响,了解输入输出间的电容对上限截频的影响等。 实验设备及器件: 笔记本电脑(预装所需软件环境) AD2口袋仪器 电容:100pF、0.01μF、10μF、100μF 电阻:51Ω*2、300Ω、1kΩ、2kΩ、10kΩ*2、24kΩ 面包板、晶体管、2N5551、连接线等 实验内容: 电路如图3-1所示(搭建电路时应注意电容的极性)。 图3-1实验电路 1.静态工作点 (1)用万用表的β测试功能,获取晶体管的β值,并设晶体管的V BEQ=0.64V,r bb’=10Ω(源于Multisim模型中的参数)。准确计算晶体管的静态工作点(I BQ、I EQ、V CEQ,并填入表3-1)(静态工作点的仿真及测量工作在C4为100pF完成); 主要计算公式及结果:

晶体管为2N5551C,用万用表测试放大倍数β(不同的晶体管放大倍数不同,计算时使用实测数据,并调用和修改Multisim中2N5551模型相关参数,计算静态工作点时,V BEQ=0.64V)。静态工作点计算: (2)通过Multisim仿真获取静态工作点(依据获取的β值,修改仿真元件中晶体管模型的参数,修改方法见附录。使用修改后的模型参数仿真I BQ、I EQ、V CEQ,并填入表3-1); (3)搭建电路测试获取工作点(测试发射极对地电源之差获得I EQ,测试集电极与发射极电压差获取V CEQ,通过β计算I BQ,并填入表3-1); 主要测试数据: 4 (4)对比分析计算、仿真、测试结果之间的差异。 分析:可以发现,这三组数据基本吻合,测试值均高于计算值和仿真值,而仿真值比较接近计算值。产生误差得原因可能是实测中在数据的读取时出现读数误差。 2.波形及增益 (1)计算电路的交流电压增益,若输入1kHz 50mV(峰值)正弦信号,计算正负半周的峰值并填入表3-2中(低频电路的仿真及测量工作在C4为100pF完成); 主要计算公式和结果: 输入峰值为50mV的正弦交流信号时,输出电压峰值为: (2)Multisim仿真:输入1kHz 50mV(峰值)正弦信号,观察输入、输出波形(波形屏幕拷贝贴于下方,标出输出正负半周的峰值,将输出的峰值填入表3-2中);

北京邮电大学数电实验一实验报告

北京邮电大学数字电路与逻辑 设计实验 学院: 班级: 作者: 学号:

实验一 Quartus II原理图输入法设计 一、实验目的: (1)熟悉Quartus II原理图输入法进行电路设计和仿真 (2)掌握Quartus II 图形模块单元的生成与调 (3)熟悉实验板的使用 二、实验所用器材: (1)计算机 (2)直流稳压电源 (3)数字系统与逻辑设计实验开发板 三、实验任务要求 (1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模 块单元。 (2)用(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能, 并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。 (3)用3线-8线译码器(74LS138)和逻辑门设计实现函数 ,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。 四、设计思路和过程 (1)半加器的设计 半加器电路是指对两个输入数据位进行加法,输出一个结果位和进位,不产生进位输入的加法器电路。是实现两个一位二进制数的加法运算电路。数据输入AI被加数、BI加数,数据输出SO和数(半加和)、进位C0。 在数字电路设计中,最基本的方法是不管半加器是一个什么样的电路,按组合数字电路的分析方法和步骤进行。 1.列出真值表 半加器的真值表见下表。表中两个输入是加数A0和B0,输出有一个是和S0,另一个是进位C0。

2 该电路有两个输出端,属于多输出组合数字电路,电路的逻辑表达式如下函数的逻辑表达式为:SO=AI⊕BI CO=AB 所以,可以用一个两输入异或门和一个两输入与门实现。

模电实验报告

模拟电子技术 实验报告 实验题目:放大电路的失真研究 学院:电子信息工程学院 专业: 姓名: 学号: 指导教师: 【2017年】

目录 一、实验目的与知识背景 (3) 1.1实验目的 (3) 1.2知识背景 (3) 二、实验内容及要求 (3) 2.1基本要求 (3) 2.2发挥部分 (4) 三、实验方案比较及论证 (5) 3.1理论分析电路的失真产生及消除 (5) 3.2具体电路设计及仿真 (8) 四、电路制作及测试 (12) 4.1正常放大、截止失真、饱和失真及双向失真 (12) 4.2交越失真 (13) 4.3非对称失真 (13) 五、失真研究思考题 (13) 六、感想与体会 (16) 6.1小组分工 (16) 6.2收获与体会 (16) 6.3对课程的建议 (17) 七、参考文献 (17)

一、实验目的与知识背景 1.1实验目的 1. 掌握失真放大电路的设计和解决电路的失真问题——针对工程问题,收集信息、查阅文献、分析现有技术的特点与局限性。提高系统地构思问题和解决问题的能力。 2. 掌握消除放大电路各种失真技术——依据解决方案,实现系统或模块,在设计实现环节上体现创造性。系统地归纳模拟电子技术中失真现象。 3. 具备通过现象分析电路结构特点——对设计系统进行功能和性能测试,进行必要的方案改进,提高改善电路的能力。 1.2知识背景 1.输出波形失真可发生在基本放大、功率放大和负反馈放大等放大电路中,输出波形失真有截止失真、饱和失真、双向失真、交越失真,以及输出产生的谐波失真和不对称失真等。 2.基本放大电路的研究、乙类功率放大器、负反馈消除不对称失真以及集成运放的研究与应用。 3.射极偏置电路、乙类、甲乙类功率放大电路和负反馈电路。 二、实验内容及要求 2.1基本要求 1.输入一标准正弦波,频率2kHz,幅度50mV,输出正弦波频率2kHz,幅度1V。

北京邮电大学 模拟电路实验

矿石收音机论坛?〓基础知识普及〓?面包板及其使用法 面包板及其使用法 面包板及其使用法 编者注:为了提高青少年的电子技术素养,促进学生全面发展,培养创业意识和创造技能,本刊(无线电)特约多年从事科普教育的特级教师,北京市有特殊贡献的专家孙心若撰写“电子控制技术入门”系列文章。他根据丰富的电子技术、发明创造教学体验,结合青少年的身心特点,进行有趣的“做中学”和“学中做”电路实验,引导青少年由表及里、由浅入深、循序渐进,获得“操作”体验,熏陶科学情感、发展技术能力,特别提供电子技术发展信息,增强创新意识并为他们展示创造能力营造条件。在内容选择上以电子控制技术内容为中心,以基本电路实验为基础,以数字集成电路为重点,并涉及实验所必需的基本理论及技能技巧,同时介绍青少年感兴趣的一些电子器件、小制作和小发明实例。配刊光盘中将用活动图像的形式讲解和演示这些电路实验的过程和现象,光盘中还加入了一些生活中的应用实例。 一、什么是"面包板"? 1.面包板的构造 面包板即"集成电路实验板",就是一种插件板,此"板"上具有若干小型"插座(孔)".在进行电路实验时,可以根据电路连接要求,在相应孔内插入电子元器件的引脚以及导线等,使其与孔内弹性接触簧片接触,由此连接成所需的实验电路。图1为SYB—118型面包板示意图: 为4行59列,每条金属簧片上有5个插孔,因此插入这5个孔内的导线就被金属簧片连接在一起。簧片之间在电气上彼此绝缘。插孔间及簧片间的距离均与双列直插式(DIP)集成电路管脚的标准间距2.54mm相同,因而适于插入各种数字集成电路。 2.面包板使用注意事项 插入面包板上孔内引脚或导线铜芯直径为0.4~0.6mm,即比大头针的直径略微细一点。元器件引脚或导线头要沿面包板的板面垂直方向插入方孔,应能感觉到有轻微、均匀的摩擦阻力,在面包板倒置时,元器件应能被簧片夹住而不脱落。面包板应该在通风、干燥处存放,特别要避免被电池漏出的电解液所腐蚀。要保持面包板清洁,焊接过的元器件不要插在面包板上。 3.面包板实验套材

北邮模电简易晶体管图示仪实验报告

模拟综合实验 实 验 报 告 课题名称:简易晶体管图示仪 学院:信息与通信工程学院 专业: 班级: : 学号: 指导老师:王丹志

2016.04.15 摘要 本报告主要介绍了简易晶体管图示仪的设计原理、部结构、设计框图及仿真电路图;并且给出了各个分块电路和总体电路的设计原理、功能说明、电路图等;同时展示了实验中示波器上的波形和其他重要数据;最后分析了实际操作中遇到的问题并提出了解决办法,还有对本次实验的结论与总结。 关键词:阶梯波、三角波、晶体管、输出特性曲线

一.设计任务要求: 1.基本要求: 1)设计一个阶梯波发生器,f≥500Hz,Uopp≥3V,阶数 N=6; 2)设计一个三角波发生器,三角波Vopp≥2V; 3)设计保护电路,实现对三极管输出特性的测试。 2.提高要求: 1)可以识别NPN,PNP管,并正确测试不同性质三极管; 2)设计阶数可调的阶梯波发生器。 二.设计思路及总体结构框图: 1.设计思路: 本实验要求用示波器稳定显示晶体管的输出特性曲线,因此可用阶梯波和三角波对晶体管进行周期性扫描,并将结果以图示的方式显示在示波器上。 具体思路如下: 1)首先利用NE555时基振荡器产生符合条件的方波; 2)将方波输入到双运算放大器LF353中,其中一个运放作 为积分器产生锯齿波,另一个运放构成反相放大电路得 到合适幅值的三角波; 3)将方波作为时钟信号输入到四位同步二进制计数器 74LS169中,取其低三位输出作为地址输入到CD4051

的地址端,通过分压在CD4051的数据输入端输入等间 隔的电位值,CD4051作为数据选择器,根据输入的地 址对数据进行选择性输出,从而获得阶梯波; 4)将三角波输入到三极管的集电极,阶梯波作为基极电位 输入到三极管的基极作为扫描电压。通过示波器两通道 分别接集电极和射极,以X-Y模式显示晶体管的输入输 出特性曲线。 2.总体结构框图: 三.分块电路和总体电路设计: 1.方波电路: 1)原理:

北邮模电实验声控报警电路

北京邮电大学 《电子电路测量与设计实验》实验报告 题目:声控报警电路 姓名:李英民 学号:2014210579 班级: 2014211120 学院: 信息与通信工程学院 2016年 4 月

一、课题名称 声控报警电路 二、摘要及关键字 (一)摘要: 当今社会,对报警系统的需求越来越大,电子报警器应用于安全防范,系统故障,交通运输,医疗救护等领域,和社会生产密不可分。 本实验就针对声控报警电路进行设计和电路拼搭,通过实际面包板电路和仿真电路对报警电路的局部电路和整体电路两方面进行电路介绍和功能分析。并分析在实验中遇见的问题,困难及解决方法,最后总结本实验结束后的心得体验。 (二)关键字: 报警器;CD4011;无源蜂鸣器;LM358 三、设计任务要求 1、基本要求:在麦克风近处击掌(模拟异常响动),电路能发出报警声,持续时间大于5 秒。声音传感器用驻极体式咪头,蜂鸣器用无源压电式蜂鸣器 2、提高要求: A、增加报警灯,使其闪烁报警。 B、增加输出功率,提高报警音量,加强威慑力。 四、设计思路及总体结构框图 (一)设计思路: 驻极体式咪头作为声音传感器,将击掌产生的声信号转化为电信号,微弱 的电信号经过反相放大器放大,放大信号进入同相比较器,比较器根据实验可以设置合理的比较电压 VREF,当放大信号高于比较电压 VREF 时,放大器输出高电平促发方波振荡器开始工作,振荡产生的方波经三极管放大即可驱动无源式蜂鸣器发出报警声音。但由于一次拍手产生的电信号只有短暂的信号,故还需要在比较器后加入延时电路,利用时间常数的特性来延长报警时间 (二)总体结构框图: 五、分块电路和总体电路的设计

北京邮电大学数字电路实验报告

北京邮电大学 数字电路与逻辑设计实验 实验报告 实验名称:QuartusII原理图输入 法设计与实现 学院:北京邮电大学 班级: 姓名: 学号:

一.实验名称和实验任务要求 实验名称:QuartusII原理图输入法设计与实现 实验目的:⑴熟悉用QuartusII原理图输入法进行电路设计和仿真。 ⑵掌握QuartusII图形模块单元的生成与调用; ⑶熟悉实验板的使用。 实验任务要求:⑴掌握QuartusII的基础上,利用QuartusII用逻辑 门设计实现一个半加器,生成新的半加器图像模 块。 ⑵用实验内容(1)中生成的半加器模块以及逻辑门 实现一个全加器,仿真验证其功能,并能下载到实 验板上进行测试,要求用拨码开关设定输入信号, 发光二级管显示输出信号。 ⑶用3线—8线译码器(74L138)和逻辑门实现要求 的函数:CBA F+ C + =,仿真验证其 + B C B A A A B C 功能,,并能下载到实验板上进行测试,要求用拨 码开关设定输入信号,发光二级管显示输出信号。二.设计思路和过程 半加器的设计实现过程:⑴半加器的应有两个输入值,两个输出值。 a表示加数,b表示被加数,s表示半加和, co表示向高位的进位。

⑵由数字电路与逻辑设计理论知识可知 b a s ⊕=;b a co ?= 选择两个逻辑门:异或门和与门。a,b 为异 或门和与门的输入,S 为异或门的输出,C 为与门的输出。 (3)利用QuartusII 仿真实现其逻辑功能, 并生成新的半加器图形模块单元。 (4)下载到电路板,并检验是否正确。 全加器的设计实现过程:⑴全加器可以由两个半加器和一个或门构 成。全加器有三个输入值a,b,ci ,两个输 出值s,co :a 为被加数,b 为加数,ci 为低 位向高位的进位。 ⑵全加器的逻辑表达式为: c b a s ⊕⊕= b a ci b a co ?+?⊕=)( ⑶利用全加器的逻辑表达式和半加器的逻 辑功能,实现全加器。 用3线—8线译码器(74L138)和逻辑门设计实现函数 CBA A B C A B C A B C F +++= 设计实现过程:⑴利用QuartusII 选择译码器(74L138)的图形模块

模电仿真实验报告。

模拟电路仿真实验报告 张斌杰生物医学工程141班 MUltiSim软件使用 一、实验目的 1、掌握MUltiSim软件的基本操作和分析方法。 二、实验内容 1、场效应管放大电路设计与仿真 2、仪器放大器设计与仿真 3、逻辑电平信号检测电路设计与仿真 4、三极管Beta值分选电路设计与仿真 5、宽带放大电路设计与仿真 三、MUItiSim软件介绍 MUItiSim是美国国家仪器(NI)有限公司推出的以WindOWS为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。工程师们可以使用MUItiSinl交互式地搭建电路原理图,并对电路进行仿真。MUltiSiIn提炼了SPICE 仿真的复杂内容,这样工程师无需懂得深入的SPlCE技术就可以很快地进行捕获、仿真和分析新的设计,这也使其更适合电子学教育。通过MUItiSiIn和,PCB设计工程师和电子学教育工作者可以完成从理论到原理图捕获与仿真再到和测试这样一个完整的综合设计流程。 实验名称:

仪器放大器设计与仿真 二、实验目的 1、 掌握仪器放大器的设计方法 2、 理解仪器放大器对共模信号的抑制能力 3、 熟悉仪器放大器的调试功能 4、 掌握虚拟仪器库中关于测试模拟电路仪器的使用方法,如示波器,毫伏 表信 号发生器等虚拟仪器的使用 三、设计实验电路图: 四、测量实验结果: 出为差模放大为399mvo 五、实验心得: 应用MUIti S im 首先要准备好器件的PSPiCe 模型,这是最重要的,没有这个 东西免谈,当然SPiCe 高手除外。下面就可以利用MUItiSinl 的元件向导功 能制作 差模分别输入信号InW 第二条线与第三条线: 共模输入2mv 的的电压,输出为2mv 的电压。 第一条线输

2016年北邮数电实验报告

数字电路与逻辑设计 实验报告 学院:电子工程学院 班级: 姓名: 学号: 班内序号:

目录 (一)实验名称及实验任务要求 (1) (二)模块端口说明及连接图 (2) 1.1实验三(3)模块端口说明 (2) 1.2实验三(3)连接图 (2) 2.1实验四模块端口说明 (2) 2.2实验四连接图 (2) (三)原理图或VHDL代码 (3) 1.实验一(2)原理图 (3) 2.实验三(3)VHDL代码 (4) 3.实验四VHDL代码 (7) (四)仿真波形 (10) 1.实验一(2)仿真波形 (10) 2.实验三(3)仿真波形 (11) 3.实验四仿真波形 (11) (五)仿真波形分析 (11) 1.实验一(2)仿真波形分析 (11) 2.实验三(3)仿真波形分析 (11) 3.实验四仿真波形分析 (11) (六)故障及问题分析 (12) (七)总结和结论 (13)

(一)实验名称及实验任务要求 实验一 名称:QuartusII原理图输入法设计与实现 实验任务要求:EDA基础实验1(1)、(2)、(3)必做,选做VHDL 实现加法器。 实验二 名称:用VHDL设计与实现组合逻辑电路 实验任务要求:四人表决器、8421码转格雷码、数码管译码器(下载测试)。 实验三 名称:用VHDL设计与实现时序逻辑电路 实验任务要求:分频器、8421十进制计数器、将分频器/8421十进制计数器/数码管译码器3个电路进行连接并下载。 实验四 名称:用VHDL设计与实现相关电路 实验任务要求:数码管动态扫描控制器、点阵扫描控制器。

(二)模块端口说明及连接图 1.1实验三(3)模块端口说明 cp:时钟信号输入; rst:8421十进制计数器异步置位; c[6...0]:七段二极管数码管显示; cat[7...0]:数码管显示。 1.2实验三(3)连接图 2.1实验四模块端口说明 cp:时钟信号输入; rst:8421计数器异步复位; lgt[6...0]:七段二极管数码管显示; cat[7...0]:数码管显示。 2.2实验四连接图

北邮arduino实验报告

电子电路综合实验设计 实验名称: 基于 Arduino 的电压有效值测量电路设计与实现 学院: 班级: 学号: 姓名: 班内序号:

实验 基于Arduino 的电压有效值测量电路设计与实现 一. 摘要 Arduino是一个基于开放原始码的软硬件平台,可用来开发独立运作、并具互动性的电子产品,也可以开发与PC 相连的周边装置,同时能在运行时与PC 上的软件进行交互。为了测量正弦波电压有效值,首先我们设计了单电源供电的半波整流电路,并进行整流滤波输出,然后选择了通过Arduino设计了读取电压有效值的程序,并实现使用此最小系统来测量和显示电压有效值。在频率和直流电压幅度限定在小范围的情况下,最小系统的示数基本和毫伏表测量的值相同。根据交流电压有效值的定义,运用集成运放和设计的Arduino最小系统的结合,实现了运用少量元器件对交流电压有效值的测量。 关键字:半波整流整流滤波 Arduino最小系统读取电压有效值 二. 实验目的 1、熟悉Arduino 最小系统的构建和使用方法; 2、掌握峰值半波整流电路的工作原理; 3、根据技术指标通过分析计算确定电路形式和元器件参数; 4、画出电路原理图(元器件标准化,电路图规范化); 5、熟悉计算机仿真方法; 6、熟悉Arduino 系统编程方法。 三. 实验任务及设计要求 设计实现 Arduino 最小系统,并基于该系统实现对正弦波电压有效值的测量和显示。 1、基本要求 (1)实现Arduino 最小系统,并能下载完成Blink 测试程序,驱动Arduino 数字13 口LED 闪烁; (2)电源部分稳定输出5V 工作电压,用于系统供电; (3)设计峰值半波整流电路,技术指标要求如下:

北邮数电实验报告

北京邮电大学实验报告 实验名称:数字电路与逻辑设计实验报告 学院:信息与通信工程学院 班级: 姓名: 学号: 序号: 日期:

实验三:用VHDL语言设计与实现逻辑电路 一、实验内容 1. 用VHDL语言设计实现一个带异步复位的8421码十进制计数器,仿真验证其功能,并下载到实验版测试。要求用按键设定输入信号,发光二极管显示输出信号; 2.用VHDL语言设计实现一个分频系数为12,分频输出信号占空比为50%的分频器,仿真验证其功能; 3.将(1),(2)和数码管译码器3个电路进行连接,并下载到实验板显示计数结果。 二、模块端口说明及连接图 1.分频器 2. 计数器 clk: 时钟输入信号 clk: 时钟信号输入 clear: 复位信号输入 clear: 复位信号输入 clk_out: 时钟分频后的信号输出 q: 计数器的输出 3.数码管显示 b: 数码管的输入信号 seg: 译码显示输出 onoff: 数码管的输出控制

4.连接图 三、实验分析 1.设计思路 本实验将之前的分频器和计数器以及数码管显示模块组合起来,实现了单个数码管现显示0~9,每隔0.5s切换一次显示内容。 COMPONENT div_12实现了时钟分频,将50MHz的单片机晶振时钟进行分频,输出频率2HZ占空比50%的方波时钟,以此时钟作为内部时钟驱动计数器。 COMPONENT jishuqi是一个十进制计数器,NUM从“0000”到“1001”循环变化,模为10。计数器的输出传递给数码管译码显示电路。 COMPONENT seg7_1是数码管译码显示电路,将收到的信号NUM译码并控制数码管的段锁存来控制数码管的显示。 整体来看,div-12提供了分频后2Hz的时钟,驱动计数器计数,计数的结果作为数码管译码显示模块的输入,根据计数器实时的数进行数码管的显示。综合起来就实现了设计的功能。 在进行电路的连接时,可直接在代码中分成三个进程来实现,也可通过为每个模块建立符号,连接电路图来实现。 2. 具体代码如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY fenpinjishu IS PORT( clear2 :IN STD_LOGIC; clk1:IN STD_LOGIC; b1:OUT STD_LOGIC_VECTOR(6 downto 0); CAT:OUT STD_LOGIC_VECTOR(7 downto 0) );

北邮数字电路综合实验报告

数字电路综合实验报告 简易智能密码锁 一、实验课题及任务要求 设计并实现一个数字密码锁,密码锁有四位数字密码和一个确认开锁按键,密码输入正确,密码锁打开,密码输入错误进行警示。 基本要求: 1、密码设置:通过键盘进行 4 位数字密码设定输入,在数码管上显示所输入数字。通过密码设置确定键(BTN 键)进行锁定。 2、开锁:在闭锁状态下,可以输入密码开锁,且每输入一位密码,在数码管上显示“-”,提示已输入密码的位数。输入四位核对密码后,按“开锁”键,若密码正确则系统开锁,若密码错误系统仍然处于闭锁状态,并用蜂鸣器或led 闪烁报警。 3、在开锁状态下,可以通过密码复位键(BTN 键)来清除密码,恢复初始密码“0000”。闭锁状态下不能清除密码。 4、用点阵显示开锁和闭锁状态。 提高要求: 1、输入密码数字由右向左依次显示,即:每输入一数字显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。 2、密码锁的密码位数(4~6 位)可调。 3、自拟其它功能。 二、系统设计 2.1系统总体框图 2.2逻辑流程图

2.3MDS图 2.4分块说明 程序主要分为6个模块:键盘模块,数码管模块,点阵模块,报警模块,防抖模块,控制模块。以下进行详细介绍。 1.键盘模块 本模块主要完成是4×4键盘扫描,然后获取其键值,并对其进行编码,从而进行按键的识别,并将相应的按键值进行显示。 键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出高电平,在读入输出的行值时,通常高电平会被低电平拉低,当当前位置为高电平“1”时, 没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按

北邮模电综合实验-简易电子琴的设计与实现.

电子测量与电子电路实验课程设计 题目: 简易电子琴的设计和制作 姓名孙尚威学院电子工程学院 专业电子信息科学与技术 班级学号班内序号指导教师陈凌霄 2015年 4 月 目录 一、设计任务与要求 (3) 1.1 设计任务与要求 (3) 1.2 选题目的与意义 (3) 二、系统设计分析 (3) 2.1系统总体设计 (3) 2.2 系统单元电路设计 (4) 2.2.1 音频信号产生模块 (4) 2.2.2 功率放大电路 (7) 2.2.3 开关键入端(琴键) (8) 三、理论值计算 (9) 3.1 音阶频率对应表 (9) 3.2 键入电路电阻计算 (9) 四、电路设计与仿真 (10) 4.1 电路设计 (10) 4.2 Multisim仿真 (11) 五、实际电路焊接 (11) 六、系统调试 (13)

6.1 系统测试方案 (13) 6.2 运行结果分析 (14) 七、设计体会与实验总结 (15) 一、设计任务与要求 1.1 设计任务与要求 了解由555定时器构成简易电子琴的电路及原理。设计并利用NE555集成运算电路以及外加电阻,电容在第一级产生不同频率的音乐,再利用LM386功率放大电路对音乐信号进行放大,最后通过扬声器产生21个音符。 1.2 选题目的与意义 (1)培养理论联系实际的正确设计思想,训练综合运用已经学过的理论和生产实际知识去分析和解决工程问题的能力。 (2)学习较复杂的电子系统设计的一般方法,了解和掌握模拟,数字电路等知识解决电子信息方面常见实际问题的能力。 (3)学习调试电子电路的方法,提高实际动手能力。了解由555定时器构成简易电子琴的电路及原理。 二、系统设计分析 2.1系统总体设计 由555电路组成的多谐振荡器,它的振荡频率可以通过改变振荡电路中的RC元件的数值进行改变。根据这一原理,通过设定一些不同的RC数值并通过控制电路,按照一定的规律依次将不同值的RC组件接 入振荡电路,就可以使振荡电路按照设定的需求,有节奏的发出已设定的音频信号,再利用LM386功率放大电路对音乐信号进行放大,最后通过扬声器产生音符。 图1:系统组成框图 2.2 系统单元电路设计 2.2.1 音频信号产生模块 利用NE555集成运算电路以及外加电阻,电容在第一级产生不同频率的音乐。555定时器是一种中规模集成电路,外形为双列直插8脚结构,体积很小,使用起来方便。只要在外部配上几个适当的阻容元件,就可以构成史密特触发器、单稳态触发器及自激多谐振荡器等脉冲信号产生与变换电路。它在波形的产生与变换、测量与控制、定时电路、家用电器、电子玩具、电子乐器等方面有广泛的应用。

北邮-数电实验报告

北邮-数电实验报告

数字电路实验报告 学院:信息与通信工程 专业:信息工程 班级:2013211125 学号:2013210681 姓名:袁普

②:仿真波形图以及分析 波形图: 波形分析:通过分析ab ci三个输入在8中不同组合下的输出,发现与全加器的真值表吻合,说明实现了全加器的逻辑功能。同时看见波形中出现了毛刺(冒险),这也与事实一致。 ③:故障及问题分析 第一次在做全加器的时候发现找不到已经生成的半加器模块,后来发现是因为在建立工程时这两个项目没有建在同一个文件夹里,在调用的时候就找不到。后来我将全加器工程建在同一个文件夹里解决了此问题。

实验二:用VHDL设计和实现组合逻辑电路 一:实验要求 ①:用VHDL设计一个8421码转换为格雷码的代码转换器,仿真验证其功能。 ②:用VHDL设计一个4位二进制奇校验器,要求在为奇数个1时输出为1,偶数个1时输出为0,仿真验证其功能。 ③:用VHDL设计一个数码管译码器,仿真验证其功能,下载到实验板测试,要求用拨码开关设定输入信号,数码管显示输出信号,并且只使一个数码管有显示,其余为熄灭状态。 二:故障及问题分析 在刚开始实现让一个数码管显示的时候,我本来准备再设置6个输入和输出,通过实验板上的拨码来输入信息分别控制不同的数码管的的开闭状态,但是后来发现这样效率很低而且实验板上的拨码开关数量根本不够。在老师的提醒下,我最终在VHDL里直接增加了一个向量输出”011111”来直接控制cat0~5六个管脚,从而达到了实验的要求。

实验三:用VHDL设计和实现时序逻辑电路 一:实验要求 ①:用VHDL语言设计实现一个8421十进制计数器,要求有高电平复位功能,仿真验证其功能。 ②:用VHDL语言设计实现一个分频系数为12,输出为占空比50%方波的分频器,有高电平复位功能,仿真验证其功能。 ③:将(1),(2)和数码管译码器三个电路进行连接,仿真验证其功能,并下载到实验板进行测试,要求第三个数码管显示数字。二:报告内容 ①实验三(3)模块端口说明及模块代码 模块一:div12为一个有高电平复位功能的分频系数为12的分屏器,其输出是一个占空比50%的方波。此模块输入连接一个时钟输入,即可在输出端得到一个周期更大的方波输出。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity div12 is port( clear,clk:in std_logic; clk_out:out std_logic ); end div12; architecture struct of div12 is signal temp:integer range 0 to 5; signal clktmp:std_logic; begin process(clk,clear) begin if(clear='1') then

北邮模电综合设计实验

电子电路综合设计实验 实验5自动增益控制电路的设计与实现 信息与通信工程学院 一.课题名称:自动增益控制电路的设计与实现 二.实验目的

1.了解AGC(自动增益控制)的自适应前置放大器的应用; 2.掌握AGC电路的一种实现方法; 3.提高独立设计电路和验证实验的能力。 三.实验摘要 自动增益控制电路的功能是在输入信号幅度变化较大时,能使输出信号幅度稳定不变或限制在一个很小范围内变化的特殊功能电路,简称为 AGC 电路。本实验采用短路双极晶体管直接进行小信号控制的方法,简单有效地实现AGC功能。 四.设计任务要求 1.基本要求: 设计一个AGC电路,要求设计指标以及给定条件为: ·输入信号:0.5~50mVrms; ·输出信号:0.5~1.5Vrms; ·信号带宽:100~5KHz。 2.提高要求: 设计一种采用其他方式的AGC电路。 五.设计思路与实验各部分功能 自动增益总体框图,主要包括驱动缓冲电路,级联放大电路,输出跟随电路和增益反馈电路四个部分组成。 1.驱动缓冲电路: 输入缓冲极,其设计电路图如图3所示; 输入信号V IN驱动缓冲极Q1,它的旁路射极电阻R3有四个作用:它将Q1的微分输出电阻提高到接近公式(1)所示的值。该电路中的微分输出电阻增加很多,使R4的阻值几乎可以唯一地确定这个输出电阻。 R D1≈r be+(1+βr ce/r be)(R3//r be) 由于R3未旁路,使Q1电压增益降低至: A Q1=-βR4/〔r be+(1+β)R3〕≈-R4/ R3 未旁路的R3有助于Q1集电极电流-电压驱动的线性响应。 Q1的基极微分输入电阻升至R dBASE=r be+(1+β)R3,与只有r be相比,它远远大于Q1的瞬时工作点,并且对其依赖性较低。

北邮数电实验报告

北京邮电大学 实验报告实验名称:数电电路与逻辑设计实验 学院:信息与通信工程学院 班级: 姓名: 学号: 班内序号: 日期:

一. 实验一:Quartus II 原理图输入法设计 1. 实验名称和实验任务要求 (1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块 元。 (2)用(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号入信号。 (3)用3线-8线译码器(74LS138)和逻辑门设计实现函数 F=A B C +A B C +A B C + A B C 。 2. 实验原理图及波形图 (1)半加器 (2)全加器

(3)74LS38 3.仿真波形图分析 (1)半加器: 输入为a,b,输出S,CO(进位)。 当ab都为0时,半加和s=0,进位端co=0。 当ab都为1时,半加和s=0,进位端co=1。 当a=1,b=0 或a=0,b=1时,半加和s=1,进位端co=0。 (2)全加器:

输入a,b,输出S,CO(进位),ci(低进位)。 当a=0,b=0,ci=0,输出s=0,co=0。 当a=0,b=1或a=1,b=0又 ci=0,输出s=1,co=0。 当a=0,b=0,ci=1,输出s=1,co=0。 (3)74LS138 输入A,B,C,输出为3。 四个输出对应F中的四个最小项,Y0、Y2、Y4、Y7,以实现函数功能。 二.实验二:用 VHDL 设计与实现组合逻辑电路 1.实验名称和实验任务要求 (1)用VHDL语言设计实现一个共阴极7段数码管译码器,仿真验证其功能。要求用拨码开关设定输入信号,7段数码管显示输出信号。 (2) 用VHDL语言设计实现一个8421码转换为余3码的代码转换器,仿真验证其功能。要求用拨码开关设定输入信号,发光二极管显示输出信号。 (3) 用VHDL语言设计实现一个4位二进制奇校验器,输入奇数个’1’时,输出为’1’,否则输出’0’,仿真验证其功能。要求用拨码开关设定输入信号,发光二极管显示输出信号。 2.实验代码及波形图 (1)共阴极7段数码管译码器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY GUAN IS PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0); B:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); C:OUT STD_LOGIC_VECTOR(5 DOWNTO 0)); END GUAN; ARCHITECTURE encoder_arch OF GUAN IS BEGIN PROCESS(A) BEGIN C<="011111"; CASE A IS WHEN"0000"=> B<="1111110";--0 WHEN"0001"=> B<="0110000";--1 WHEN"0010"=> B<="1101101";--2 WHEN"0011"=> B<="1111001";--3 WHEN"0100"=> B<="0110011";--4 WHEN"0101"=> B<="1011011";--5 WHEN"0110"=> B<="1011111";--6 WHEN"0111"=> B<="1110000";--7 WHEN"1000"=> B<="1111111";--8 WHEN"1001"=> B<="1111011";--9

北邮数电实验分析报告-信息

北邮数电实验报告-信息

————————————————————————————————作者:————————————————————————————————日期:

数字电路与逻辑设计实验 姓名*** 学院信息与通信工程学院 专业信息工程 班级*** 学号**** 班内序号***

实验一 一、实验名称和实验任务要求 1.实验内容:QuartusII原理图输入法设计与实现。 2.实验目的: (1)熟悉用QuartusII原理图输入法进行电路设计和仿真。 (2)掌握QuartusII图形模块单元的生成与调用。 (3)熟悉实验板的使用。 3.实验任务要求: (1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图像模块。 (2)用实验内容1中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板上测试。要求用拨码开关设定输入信 号,发光二极管显示输出信号。 (3)用3线—8线译码器(74LS138)和逻辑门实现函数 F=(/)(/)(/)+(/)(/)+(/)(/)+,仿真验证其功能,并下载到实 验板测试。要求用拨码开关设定输入信号,发光二极管显示输出信号。 二、原理图 半加器模块和逻辑门设计实现的全加器: 三、仿真波形图及分析 电路实现了全加器的功能。全加器是实现两个1位二进制数及低位来的进位相加求得和数及向高位进位的逻辑电路。由其原理可得逻辑表达式:sum=ain⊕bin⊕cin

cout = (ain⊕bin)cin + ain*bin。 列出真值表: 输入输出 ain bin cin cout sum 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 仿真波形对比真值表,可以看出波形图与理论值完全符合。 四、故障及问题分析 1、问题:按照逻辑表达式连接了全加器电路后,仿真波形很乱。 解决方法:思考后知道了应该把输入信号依次设成2的n次方,这样的仿真波形清楚容易分析。 2、问题:把代码下载到板子上的过程中,进行到37%的时候停了,等了2分钟 也没继续下载。 解决方法:再次重连USB尝试下载,手紧握着接线口,下载成功了,分析可能是接线口接触不好。 实验二 一、实验名称和实验任务要求 1.实验内容:用VHDL设计与实现组合逻辑电路。 2.实验目的: (1)熟悉用VHDL语言设计组合逻辑电路的方法。 (2)熟悉用QuartusII文本输入法进行电路设计。 3.实验任务要求: (1)用VHDL语言设计实现一个4位二进制奇校验器,输入奇数个‘1’时,输出为‘1’,否则输出‘0’,仿真验证其功能,并下载到实验板测 试。要求用拨码开关设定输入信号,发光二极管显示输出信号。 (2)用VHDL语言设计实现一个8421码转换为余3码的代码转换器,仿真验证其功能,并下载到实验板测试。要求用拨码开关设定输入信号, 发光二极管显示输出信号。

北邮电磁场与电磁波演示试验

. 频谱特性测量演示实验 1.ESPI 测试接收机所测频率范围为: 9KHz—3GHz 2.ESPI 测试接收机的RF输入端口 最大射频信号: +30dbm,最大直流:50v 3.是否直观的观测到电磁波的存在?(回答是/否) 否 4.演示实验可以测到的空间信号有哪些,频段分别为: 广播:531K~1602KHz GSM900:上行:890~915 MHz 下行:935~960 MHz GSM1800:上行:1710~1755 MHz 下行:1805~1850 MHz WCDMA:上行:1920~1980MHz 下行:2110~2170MHz CDMA2000:上行:1920~1980MHz 下行:2110~2170MHz TD-SCDMA:2010~2025MHz 5.课堂演示的模拟电视和数字电视频谱图:如何判断是模拟还是数字电视? 模拟信号以残留边带调幅方式频分复用传输,有明确的载波频率,不同频道的图像有不同的载波频率。模拟信号频谱为:每8MHz带宽即一个频道内,能量集中分布在图像载频上,在该载频附近有一个跳动的峰,为彩色副载波所在,再远一点(在8MHz内)还有一个峰,为伴音副载波的峰。 数字信号:一个数字频道的已调信号像一个抬高了的噪声平台, 均匀地平铺于整个带宽之内, 它的能量是均匀分布在整个限定带宽内的。 6.课堂演示GSM900上下行频谱图,CDMA下行频谱图,3G下行频谱图: GSM900上行: '. .

GSM900下行: '. . CDMA下行:

3G下行: '. . 7.该频谱仪能检测的频谱范围,是否能观察到WIFI、电磁炉、蓝牙等频谱?(请分别说明,并指出其频率) 可以 该频谱仪能检测的频谱范围为9KHz—3GHz 所以,能够观察到:WIFI:2.4G

模电仿真实验报告。

模电仿真实验报告。

————————————————————————————————作者:————————————————————————————————日期:

模拟电路仿真实验报告 张斌杰生物医学工程141班学号6103414032 Multisim软件使用 一、实验目的 1、掌握Multisim软件的基本操作和分析方法。 二、实验内容 1、场效应管放大电路设计与仿真 2、仪器放大器设计与仿真 3、逻辑电平信号检测电路设计与仿真 4、三极管Beta值分选电路设计与仿真 5、宽带放大电路设计与仿真 三、Multisim软件介绍 Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。工程师们可以使用Multisim交互式地搭建电路原理图,并对电路进行仿真。Multisim提炼了SPICE仿真的复杂内容,这样工程师无需懂得深入的SPICE技术就可以很快地进行捕获、仿真和分析新的设计,这也使其更适合电子学教育。通过Multisim和虚拟仪器技术,PCB设计工程师和电子学教育工作者可以完成从理论到原理图捕获与仿真再到原型设计和测试这样一个完整的综合设计流程。 一、实验名称: 仪器放大器设计与仿真 二、实验目的 1、掌握仪器放大器的设计方法 2、理解仪器放大器对共模信号的抑制能力 3、熟悉仪器放大器的调试功能 4、掌握虚拟仪器库中关于测试模拟电路仪器的使用方法,如示波器,毫伏表信 号发生器等虚拟仪器的使用 三、设计实验电路图:

北京邮电大学数字电路实验报告

北京邮电大学数字电路实验报告

北京邮电大学 数字电路与逻辑设计实验 实验报告 实验名称:QuartusII原理图输入 法设计与实现 学院:北京邮电大学 班级: 姓名: 学号:

一.实验名称和实验任务要求 实验名称:QuartusII原理图输入法设计与实现 实验目的:⑴熟悉用QuartusII原理图输入法进行电路设计和仿真。 ⑵掌握QuartusII图形模块单元的生成与调用; ⑶熟悉实验板的使用。 实验任务要求:⑴掌握QuartusII的基础上,利用QuartusII用逻辑 门设计实现一个半加器,生成新的半加器图像模 块。 ⑵用实验内容(1)中生成的半加器模块以及逻辑门 实现一个全加器,仿真验证其功能,并能下载到实 验板上进行测试,要求用拨码开关设定输入信号, 发光二级管显示输出信号。 ⑶用3线—8线译码器(74L138)和逻辑门实现要求 的函数:CBA F+ C + =,仿真验证其 + B C B A A A B C 功能,,并能下载到实验板上进行测试,要求用拨 码开关设定输入信号,发光二级管显示输出信号。二.设计思路和过程 半加器的设计实现过程:⑴半加器的应有两个输入值,两个输出值。 a表示加数,b表示被加数,s表示半加和, co表示向高位的进位。

⑵由数字电路与逻辑设计理论知识可知b a s ⊕=;b a co ?= 选择两个逻辑门:异或门和与门。a,b 为异或门和与门的输入,S 为异或门的输出,C 为与门的输出。 (3)利用QuartusII 仿真实现其逻辑功能,并生成新的半加器图形模块单元。 (4)下载到电路板,并检验是否正确。 全加器的设计实现过程:⑴全加器能够由两个半加器和一个或门构成。全加器有三个输入值a,b,ci ,两个输 出值s,co :a 为被加数,b 为加数,ci 为低 位向高位的进位。 ⑵全加器的逻辑表 示式为: c b a s ⊕⊕= b a ci b a co ?+?⊕=)(

相关主题
文本预览
相关文档 最新文档