数电实验报告乒乓球游戏机

数电实验报告乒乓球游戏机
数电实验报告乒乓球游戏机

数字系统与逻辑设计

综合实验

——10秒倒计时+简易乒乓球游戏机

设计课题的任务要求

课题任务:

1.设计实现一个10 秒倒计时电路,使用8×8 点阵显示计时结果。

2.自拟功能:简易乒乓球游戏机,倒计时至0 后开始执行该功能。

两人乒乓游戏机是以8个发光二极管代表乒乓球台,中间两个发光管兼作球网,用发光管按一定的方向依次闪亮来表示球的运动。在游戏机两侧各设一个发球/击球开关,当甲方发球时,靠近甲方的第一个发光管亮,然后依次点亮第二个……球向乙方移动,球过网后到达设计者的规定的球位乙方即可击球,若乙方提前击球或未击到球,则甲方得分。然后重新发球进行比赛,直到某一方记分达到规定分,比赛结束。

1.以8个发光二极管代表乒乓球台,中间两个是球网,乒乓球的位置和移动方向由灯亮及依次点亮的方向决定;

2.球移动的速度0.5s;

3.用4个数码管分别显示双方的得分;

4.发3个球后换发球,最边上的发光二极管亮表示发球方;

5.设置复位键,按下后比分清零,重新10秒倒计时,双方重新开始比赛;

6.当某一方比分达到11分时,比赛结束。

设计思路及总体框图

总体电路外部框图:

总体电路外部接口说明:

框图中左边部分为输入信号,右边为输出信号。

输入信号中,clk 为全局时钟信号,由实验板的晶振产生,频率为1MHz ;h1、h2为双方的发球、击球按键,分别锁定到实验板的BTN4及BTN1上;reset 为全局复位,当reset 为高电平时,比分全部清零,重新倒计时,然后比赛重新开始,reset 锁定到BTN2上。

输出信号中,row[7..0]为点阵行选择信号,col[7..0]为列选择信号,table[7..0]控制7个发光二极管(表示球的移动)、catch[3..0] 为数码管选通信号,score[6..0] 控制七段数码管(用来显示比分)。

总体框图:

各模块间电路连接图:

(详见电子版)

设计思路:

1. 考虑到系统的功能比较多且复杂,故采用分块设计的方式,先设计好底层各模块,再到顶层进行综合。根据功能,将系统分为六个底层模块:

①分频模块,将高频时钟(1Mhz)分频,输出两个低频时钟clk1(2hz )和clk2(1hz ),供倒计时模块和乒乓球控制模块使用;

②10秒倒计时模块,从9秒开始倒计时,一直到0,利用逐列扫描的方式,对行像素分别编码,利用人眼视觉暂留效应,以1MHZ 的频率扫描列,点阵上就会出现稳定的数字。若按下”reset” 后,重新开始计时,然后开始兵乓球游戏。

球台控制 电路

倒计时 模块 分频 电路 时钟

输入 译码 显示

当计时结束后输出一个控制信号,点阵熄灭,开始兵乓球游戏;

③兵乓球控制模块,完成控制球的移动、判断击球、复位、计分等功能,其

中包括两个译码显示模块,实现在七段数码管上显示双方的比分;

④数码管扫描显示控制模块,实现4个数码管动态扫描显示功能。

分块电路设计

分频器模块

分频器模块由高频时钟输入和两个低频时钟输出组成,输出时钟clk1(2hz)在乒乓球模块中控制球的移动,clk2(1hz)在倒计时模块中控制计数器的变化。

倒计时模块

用变量count记录输入时钟(1hz)的个数,每来一个时钟,修改一次变量count 的值,用count控制8x8点阵显示的数字,从而实现10秒倒计时。当计时结束后,把sw信号置高,点阵熄灭,开始兵乓球游戏。并且设有复位键”reset”,按下后比分清零,重新开始计时,然后开始兵乓球游戏。

计时流程图如下:

1hz 时钟输入

复位?

count=0;sw=0

计时变量count=9?

Y

N

count=cou nt+1;sw=0

N count=9;sw=1

Y

YES

乒乓球游戏开始

1MHZ 时钟输入

点阵列扫描信号列管脚输出

行管脚输出

点阵行

控制信号case count

数字9的点阵行编码

数字8的点阵行编码

数字0的点阵行编码count=0

count=1

count=9

…sw=0

点阵行管脚信号译码:

比如数字6的点阵行编码为:

乒乓球控制模块

主控模块主要控制击球和状态的转移,模块的接口主要有时钟、倒计时结束信号、双方击球信号,球台显示及计分部分,同时将双方比分送至译码显示模块,

case tmp3 is when 2 =>r<="11111110"; when 5 =>r<="10011110"; when 3|4 =>r<="10010010";

when others =>r<="00000000";

end case;

将其译成数码管的显示信号。 总体的设计思路及状态转移图如下: 流程图:

状态转移图:

N

Y

Y

Y Y N

Y

Y

Y

N

h2准备发球

h1准备发球

h2发球?

h1发球?

N

Y

球向h2移

球向h1移

h2击球?

h1击球?

Y

球到达击球位置? 球到达击球位置?

Y

球 出 界 否?

球 出 界 否?

N

h1获胜 h2获胜

Y Y

一局结束?

N

比分清零

发球权

计时结束?

10秒倒计时

在这个模块中,采用了状态机,共设七个状态,分别为waitfor、begin1、begin2、to1、to2、allow1、allow2,这七个状态所代表的含义及相关状态转移时的设计思路如下:

●waitfor状态: 等待开始状态,当一局比赛结束时便处于这个状态,此状态下

根据发球权信号(当发球计数器计数到3,则交换发球)决定转移到begin1或begin2状态,并且点亮靠近发球方的发光二极管。

●begin1/begin2: 准备发球状态,等待具有发球权一方按下发球/击球键,发球

后若对方立即击球,则一球结束,进行加分,并转移到waitfor状态;否则,转移到to2/to1状态。

●to2/to1: 球从一方向另一方移动,发光二极管以0.5秒的速度依次点亮,此状

态下若对方击球,则一球结束,进行加分,发球计数器加1,并转移到waitfor 状态;否则,当靠近接球方的第2个灯点亮时转移到allow1或allow2状态。

allow1/allow2:等待接球方击球,若接球方按下击球按,转移到球向相反方向移动的状态to2/to1。否则,一球结束,进行加分,发球计数器加1,并转移到waitfor状态。

数码管扫描控制模块

利用人眼视觉暂留效应,让一个高频时钟(1Mhz)对4个七段数码管不断进行选通扫描,使其稳定的显示双方的比分

仿真波形

1.倒计时电路的仿真:由于实际clk1为1Mhz,clk2为1hz,不易仿真。以下的仿真假设高频时钟clk1周期为0.5us,用来控制列扫描信号,低频时钟clk2周期为16us,每来一个clk2改变一次显示的数字。

从9开始倒计时,点阵列管脚从高到低进行扫描,依次赋值为低电平。同时对该列的行管脚进行编码赋值,以较高的频率进行重复扫描,便可以稳定显示相应的数字。从以上的仿真波形中,可以比较明显的看出显示的数字。若按下复位键”st”,则重新开始计时。

倒计时到0后,点阵熄灭,sw被置高,控制乒乓球游戏开始。

2.乒乓球控制模块仿真

波形1:clkp为分频后的低频时钟,sA发球后,控制球移动的二极管依次被点亮,当靠近sB的最后一个灯点亮时,sB成功击球,之后球向sA移动,sA没有击球,球出界,sB得分。

波形2:sB成功击球后,球向sA移动,当靠近sA的最后一个灯点亮时,sA 击球,球向sB移动,之后sB提前击球,sA得分。

波形3:若按下复位键,则sw被清零,比分也被清零。直到倒计时结束,sw 被置高,乒乓球游戏重新开始。

源程序

分频器模块:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

entity divide is

port(

clk0:in std_logic; --clk0为1MHz高频时钟输入

clk1,clk2:out std_logic --clk1为2Hz时钟输出,clk2为1Hz时钟输出

);

end divide;

architecture a of divide is

signal clk_b:std_logic;--产生2hz信号的中间信号

signal tmp:std_logic; --产生1hz信号的中间信号

begin

p1:process(clk0) --500000分频,产生2hz信号

variable tmp2:integer range 0 to 249999; ;--产生2hz信号的计数器begin

if clk0'event and clk0='1' then

if tmp2=249999 then

tmp2:=0;

clk_b<=not clk_b;

else

tmp2:=tmp2+1;

end if;

end if;

end process p1;

p2:process(clk_b) --2分频,产生1hz信号

begin

if clk_b'event and clk_b='1' then

tmp<=not tmp;

end if;

end process p2;

clk1<=clk_b;

clk2<=tmp;

end a;

倒计时模块:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

entity bcount is

port(

clk1:in std_logic;--1Mhz

clk2:in std_logic;--1hz

sw:out std_logic;

st:in std_logic;

col,row:out std_logic_vector(7 downto 0)

);

end bcount;

architecture a of bcount is

signal count:integer range 0 to 9;

signal f:std_logic;

signal c:std_logic_vector(7 downto 0);

signal r:std_logic_vector(7 downto 0);

signal tmp3:integer range 0 to 7;

begin

p1:process(clk2)

begin

if clk2'event and clk2='1' then

if st='0' then

if count=9 then

count<=9;

f<='1';

else

count<=count+1;

f<='0';

end if;

else

count<=0;

f<='0';

end if;

end if;

end process p1;

p2:process(clk1,count)

begin

if clk1'event and clk1='1' then

if tmp3=7 then

tmp3<=0;

else

tmp3<=tmp3+1;

end if;

case tmp3 is

when 0 =>c<="01111111";

when 1 =>c<="10111111";

when 2 =>c<="11011111";

when 3 =>c<="11101111";

when 4 =>c<="11110111";

when 5 =>c<="11111011";

when 6 =>c<="11111101";

when 7 =>c<="11111110";

when others =>c<="00000000";

end case;

if f='0' then

case count is

when 0=>

case tmp3 is

when 2 =>r<="11110010";

when 5 =>r<="11111110";

when 3|4 =>r<="10010010";

when others =>r<="00000000";

end case;

when 1=>

case tmp3 is

when 2|5 =>r<="11111110";

when 3|4 =>r<="10010010";

when others =>r<="00000000";

end case;

when 2=>

case tmp3 is

when 2|3|4 =>r<="10000000";

when 5 =>r<="11111110";

when others =>r<="00000000";

end case;

when 3=>

case tmp3 is

when 2 =>r<="11111110";

when 5 =>r<="10011110";

when 3|4 =>r<="10010010";

when others =>r<="00000000";

end case;

when 4=>

case tmp3 is

when 2 =>r<="11110010";

when 5 =>r<="10011110";

when 3|4 =>r<="10010010";

when others =>r<="00000000";

end case;

when 5=>

case tmp3 is

when 2 =>r<="11110000";

when 3|5 =>r<="00010000";

when 4 =>r<="01111110";

when others =>r<="00000000";

end case;

when 6=>

case tmp3 is

when 5 =>r<="11111110";

when 2|3|4 =>r<="10010010";

when others =>r<="00000000";

end case;

when 7=>

case tmp3 is

when 2 =>r<="10011110";

when 5 =>r<="11110010";

when 3|4 =>r<="10010010";

when others =>r<="00000000";

end case;

when 8=>

case tmp3 is

when 4 =>r<="11111110";

when others =>r<="00000000";

end case;

when others=>

case tmp3 is

when 2|5 =>r<="11111110";

when 3|4 =>r<="10000010";

when others =>r<="00000000";

end case;

end case;

else

r<="00000000";

end if;

end if;

end process p2;

col<=c;

row<=r;

sw<=f;

end a;

乒乓球控制模块:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

entity tennis is

port(

clkp:in std_logic;--2hz时钟信号

sw:in std_logic;--计时结束信号

sA,sB:in std_logic;--双方击球,

score11:out std_logic_vector(6 downto 0);--甲得分(个位)

score12:out std_logic_vector(6 downto 0);--甲得分(十位)

score21:out std_logic_vector(6 downto 0);--乙得分(个位)

score22:out std_logic_vector(6 downto 0);--乙得分(十位)

light:out std_logic_vector(7 downto 0) --发光二极管的显示

);

end tennis;

architecture a of tennis is

component led--七段数码管译码显示模块

port(

cn:in std_logic_vector(3 downto 0);--输入分数

ag1:out std_logic_vector(6 downto 0);--译码输出(十位)

ag2:out std_logic_vector(6 downto 0)--译码输出(个位)

);

end component;

signal score1,score2:std_logic_vector(3 downto 0);--双方的得分

signal lit:integer range 0 to 8;--7个二极管的控制信号

signal m:integer range 0 to 2;--发球计数器

signal send:std_logic;--发球权信号

type ss is (waitfor,begin1,to2,begin2,to1,allow1,allow2);--设置7个状态signal state:ss;

begin

p1:process(clkp,sA,sB)

begin

if clkp'event and clkp='1' then

if sw='1' then --倒计时结束,游戏开始

if m=3 then

m<=0;

send<=not send; --发3个球后,交换发球

end if;

if (score1="1011" or score2="1011") then --比分达到11分时,一局结束lit<=0; --灯全灭

m<=0; --发球计数器清零

send<='0'; --sA先发球

score1<="0000";score2<="0000"; --双方比分清零

state<=waitfor; --进入等待状态,开始新的一局

else

case state is

when waitfor=> --等待状态

case send is

when '0' =>lit<=1;state<=begin1;--若sA发球,则L1亮

when '1' =>lit<=8;state<=begin2; --若sB发球,则L8亮

when others =>lit<=0; --灯全灭

end case;

when begin1 =>

if sA='1' then --甲发球

lit<=2; --L2亮

if sB='1' then

lit<=0;

score1<=score1+1;state<=waitfor;--乙接球判负else

state<=to2;

end if;

else state<=waitfor;

end if;

when begin2 =>

if sB='1' then --乙发球

lit<=7; --L7亮

if sA ='1' then

lit<=0;

score2<=score2+1;state<=waitfor; --甲接球判负else

state<=to1;

end if;

else state<=waitfor;

end if;

when to1 => --乙接球后的状态

if sA='1' then

lit<=0;

score2<=score2+1;m<=m+1;state<=waitfor; --甲接球判负elsif lit=2 then

lit<=1;

state<=allow1; --进入甲接球状态

else lit<=lit-1; --控制灯的走向

end if;

when to2=> --甲接球后的状态

if sB='1' then

lit<=0;

score1<=score1+1;m<=m+1;state<=waitfor; --乙接球判负elsif lit=7 then

lit<=8;

state<=allow2; --进入乙接球状态

else lit<=lit+1; --控制灯的走向

end if;

when allow1=> --甲接球状态

if sA='1' then

state<=to2; --甲接球进入向乙移动的状态

else

score2<=score2+1;m<=m+1;lit<=0;state<=waitfor;

--甲未接球乙加分

end if;

when allow2=> --乙接球状态

if sB='1' then

state<=to1; --乙接球进入向甲移动的状态

else

score1<=score1+1;m<=m+1;lit<=0;state<=waitfor;

--甲未接球乙加分

end if;

end case;

end if;

else --倒计时没有结束,比分清零,游戏终止

lit<=0;

score1<="0000";score2<="0000";

m<=0;

send<='0';

end if;

end if;

end process p1;

with lit select --控制亮灯的顺序

light<="00000000"when 0,

"00000001"when 1,

"00000010"when 2,

"00000100"when 3,

"00001000"when 4,

"00010000"when 5,

"00100000"when 6,

"01000000"when 7,

"10000000"when 8,

"00000000"when others;

q1:led port map(cn=>score1,ag2=>score11,ag1=>score12);--译码模块,显示甲得分q2:led port map(cn=>score2,ag2=>score21,ag1=>score22); --译码模块,显示乙得分end a;

译码显示模块:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

entity led is

port(

cn:in std_logic_vector(3 downto 0); --输入的分数信号

ag1:out std_logic_vector(6 downto 0); --译码输出(十位)

ag2:out std_logic_vector(6 downto 0) --译码输出(个位)

);

end led;

architecture a of led is

begin

process(cn)

begin

case cn is

when "0000" =>ag1<="1111110";ag2<="1111110";--显示0

when "0001" =>ag1<="1111110";ag2<="0110000";

when "0010" =>ag1<="1111110";ag2<="1101101";

when "0011" =>ag1<="1111110";ag2<="1111001";

when "0100" =>ag1<="1111110";ag2<="0110011";

when "0101" =>ag1<="1111110";ag2<="1011011";

when "0110" =>ag1<="1111110";ag2<="1011111";

when "0111" =>ag1<="1111110";ag2<="1110000";

when "1000" =>ag1<="1111110";ag2<="1111111";

when "1001" =>ag1<="1111110";ag2<="1111011";

when "1010" =>ag1<="0110000";ag2<="1111110";

when "1011" =>ag1<="0110000";ag2<="0110000";

when others =>ag1<="1111110";ag2<="1111110";

end case;

end process;

end a;

数码管扫描控制模块

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity sweep is

port(

clkq:in std_logic;--1Mhz时钟信号

score_a1:in std_logic_vector(6 downto 0);--甲得分(个位)

score_a2:in std_logic_vector(6 downto 0); --甲得分(十位)

score_b1:in std_logic_vector(6 downto 0); --乙得分(个位)

score_b2:in std_logic_vector(6 downto 0); --乙得分(十位)

cn:out std_logic_vector(6 downto 0);--最终输出的得分

sel:out std_logic_vector(3 downto 0)--数码管片选信号

);

end sweep;

architecture a of sweep is

signal tmp:integer range 0 to 3;--产生片选信号的计数器

begin

process(clkq)

begin

if clkq'event and clkq='1' then

if tmp=3 then

tmp<=0;

else

tmp<=tmp+1;

end if;

case tmp is

when 0 =>sel<="1110";cn<=score_a1;--数码管的4种状态

when 1 =>sel<="1101";cn<=score_a2;

when 2 =>sel<="1011";cn<=score_b1;

when 3 =>sel<="0111";cn<=score_b2;

when others =>sel<="1111";

end case;

end if;

end process;

end a;

顶层模块的代码见源文件。

功能说明

将程序下载到数字综合实验板上后,启动便进入waiting状态,等待裁判按键比赛开始,可以用sel开关选择首发权,在比赛进行的任何时刻可以用speed_sel 选择球运动的速度。

裁判按键后比赛开始,根据首发权的选择,靠近发球一方的第一个发光二极管被点亮,此时,发球方只要按下发球/击球键,球便开始向另一方移动,而无发球权的一方按键无效。

球开始移动后,另一方可以进行击球,如果在指定位置击玩,则球向相反方向移动,同时对方也可以击球,这样就完成了球来回移动的功能。

如果没有在指定位置击球,或球已经移出了球台,则判为击球失误,对方得一分。

每当有一方得分时,分数自动在数码管上更新(比赛开始时为0:0)。当一

方先达到11分时,赢得该局比赛,总比分自动加1,且比赛暂停,等待裁判按键开始下一轮比赛。下一轮比赛开始时比分被清零但总比分不变,直至一方所赢的局数先达到4(7局4胜),则赢得整场比赛,裁判再按下按键时比分和总比分都将清零,比赛重新开始。

比赛过程中,任何时刻按下全局复位键都将回来开机状态,即所有比分都为0:0且等待裁判开始比赛。

系统具有发球权自动交换功能,在一局比赛中每两个球一换发,由发光二极管点亮的位置来表示哪一方具有发球权。一局比赛结束后,首发权也会自动交换。

所用元器件清单

数字电路综合实验开发板(芯片为Altera EPM7128SLC84-15)

计算机及Quartus编程仿真软件

资源利用率情况:

芯片宏单元:128,已使用宏单元:101,利用率:78%

芯片管脚:68,已使用管脚: 32,利用率:47%

故障及问题分析

一开始在做发球权控制模块时,认为没有必要做仿真,直接下载到实验板上,但是却不能得到正确的结果。后来经仿真观察和分析,原来是该模块采用了时序电路的计数器思想造成了很大的延时,故信号不能迅速的变化而导致结果错误。后来经仔细思考后,该模块其实就是一个组合电路,只需由比分和总比分来决定当前发球权,这样,电路的速度就快了许多,问题得到了解决。

主控模块中,状态机的转移一直是一个比较麻烦的问题,由于游戏者是看到球的位置后,再下一个时钟上升沿才击球,因此,在每一个时钟上升沿到来时,应先判断击球情况,再进行球的位置变化。否则,如果先进行位置变化,虽然比赛能继续进行,但是会给游戏者带来错觉,比如没有在指定位置击球等,击球成功后应让球在指定位置停留一个时钟期,表示击球成功。

多重驱动问题,在两个进程中对同一个信号进行赋值,由于进程之间是并行的,所以系统不知道哪一个赋值是最终值,产生多重驱动错误。解决的办法是分清楚逻辑条件对信号的影响,在一个进程根据条件中完成信号的赋值操作。

总结和结论

这次实验是一个综合性比较强的实验,所要设计的系统完成的功能也比较多,因此,给我最大的感受就是复杂数字电路系统的设计前期的准备工作十分的重要,一定要认真分析系统的构造,根据功能应该分哪几个模块,每个模块应完

成什么样的功能,各模块间的关系是什么,根据这些画出相应的框图。核心部分,必须理清思路,状态机的转移应分清楚各个状态之间的逻辑关系以及转移条件。

综合数字设计中,在用VHDL语言进行描述时,一定要分清楚组合电路和时序电路的区别。由于VHDL是一种硬件描述语言,因此不是像C语言那样只要把逻辑描述清楚就可以,VHDL完成的是对硬件电路的建模,而不仅仅是写代码,这点我在实验过程中一开始并没有完成理解清楚,因此开始所有的程序都要加上PROCESS(),因为这样我才感觉是在写C程序,后来才发现组合电路的描述是不需要PROCESS的,PROCESS的使用很容易产生多重驱动的错误,有时候看逻辑描述能够实现,但是编译却不能通过,这就是硬件描述语言与其它语言的区别所在。

资源利用率与程序设计的是否巧妙有很大的关系,编译器按照逻辑关系进行分析与综合,这就要求程序设计者的程序逻辑关系要清晰,尽可能的按照实际电路进行描述,这些编译器编译后是最优化的。不能乱用if,else语句,否则很有可能造成资源不够。

这次实验中,我写的代码还是有很多地方值得改进的。有些模块中组合和时序分得还不是很清楚,虽然已经把功能实现,但是毕竟不是非常完美。在译码模块中,有些部分还可以进一步简化。此外,还可以扩展一些功能。

总之,通过这次数字综合实验,我对稍复杂的综合数字系统的设计有了一个初步的了解,并且加深了对硬件描述语言的认识,收获还是不小的。

数字电子钟课程设计实验报告

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书2016/2017 学年第一学期 学生姓名:张涛学号: 李子鹏学号: 课程设计题目:数字电子钟的设计 起迄日期:2017年1月4日~2017年7月10日 课程设计地点:科学楼 指导教师:姚爱琴 2017年月日 课程设计任务书

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计开题报告2016/2017 学年第一学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号:

指导教师:姚爱琴 2017 年 1 月 6 日 中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计说明书2016/2017 学年第二学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号: 指导教师:姚爱琴 2017 年月日

目录 1 引言 (6) 2 数字电子钟设计方案 (6) 2.1 数字计时器的设计思想 (6) 2.2数字电路设计及元器件参数选择 (6) 2.2.2 时、分、秒计数器 (7) 2.2.3 计数显示电路 (8) 2.2.5 整点报时电路 (10) 2.2.6 总体电路 (10) 2.3 安装与调试 (11) 2.3.1 数字电子钟PCB图 (11) 3 设计单元原理说明 (11) 3.1 555定时器原理 (12) 3.2 计数器原理 (12) 3.3 译码和数码显示电路原理 (12) 3.4 校时电路原理 (12) 4 心得与体会 (12) 1 引言 数字钟是一种用数字电子技术实现时,分,秒计时的装置,具有较高的准确性和直观性等各方面的优势,而得到广泛的应用。此次设计数字电子钟是为了了解数字钟的原理,在设计数字电子钟的过程中,用数字电子技术的理论和制作实践相结合,进一步加深数字电子技术课程知识的理解和应用,同时学会使用Multisim电子设计软件。 2数字电子钟设计方案 2.1 数字计时器的设计思想 要想构成数字钟,首先应选择一个脉冲源——能自动地产生稳定的标准时间脉冲信号。而脉冲源产生的脉冲信号地频率较高,因此,需要进行分频,使得高频脉冲信号变成适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1Hz)。经过分频器输出的秒脉冲信号到计数器中进行计数。由于计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要分别设计60进制,24进制计数器,并发出驱动信号。各计数器输出信号经译码器、驱动器到数字显示器,是“时”、“分”、“秒”得以数字显示出来。 值得注意的是:任何记时装置都有误差,因此应考虑校准时间电路。校时电路一般

模电课程设计报告

模电课程设计实验报告课题:函数信号发生器 指导老师:________________ 学院:___________________ 班级:___________________ 姓名:___________________ 学号:___________________

日期:__________________ 一.设计目的与要求 1.1设计目的 1.设计电路产生RC桥式正弦波产生电路,占空比可调的矩形波电路,占空比可调的三角波电路,多用信号源产生电路,分别产生正弦波、方波、三角波 2.通过设计,可以将所学的电子技术应用到实际当中,加深对信号产生电路的理解,锻炼自己的动手能力与查阅资料的能力。使自己的对模电的理解更为透彻。 1.2设计内容及要求 1)RC桥式正弦波产生电路,频率分别为300Hz、1KHz、10KHz、500KHz,输出幅值300mV~5V可调、负载1KΩ。 (2)占空比可调的矩形波电路,频率3KHz,占空比可调范围10%~90%,输出幅值3V、负载1KΩ。

(3)占空比可调的三角波电路,频率1KHz,占空比可调范围10%~90%,输出幅值3V、负载1KΩ。 (4)多用信号源产生电路,分别产生正弦波、方波、三角波,频率范围100Hz~3KHz、输出幅值≥5V、负载电阻1KΩ。 软件仿真部分元器件不限,只要元器件库中有即可,但需要注意合理选取。 二.单信号发生电路 2、1 RC桥式正弦波产生电路 参数计算:

器件选择: 2、2占空比可调的矩形波产生电路 参数计算: 器件选择:

2、3占空比可调的三角波产生电路 参数计算: 器件选择:

电子技术乒乓球比赛游戏机课程设计报告书

1绪论 1.1选题背景 1.1.1 课题目的及意义 本次课程设计的容是独立完成一个乒乓球比赛游戏机的设计,采用EWB电路仿真设计软件完成乒乓球比赛游戏机电路的设计及仿真调试,在微机上仿真实现乒乓球比赛游戏机的设计。通过这次课程设计让我们了解和熟悉了乒乓球游戏机的原理和Multisim仿真设计软件的操作,也让我们加深了解了对双向移位寄存器、双D触发器及、加法器及逻辑门电路的一些实际用途,并将理论与实践相结合。 1.1.2 课题的容和要求 独立完成一个乒乓球比赛游戏机的设计,采用EWB电路仿真设计软件完成乒乓球比赛游戏机电路的设计及仿真调试,在微机上仿真实现乒乓球比赛游戏机的设计。 课程设计具体容如下:乒乓球比赛是由甲乙双方参赛,加上裁判的三人游戏(也可以不用裁判),乒乓球比赛模拟机是用发光二极管(LED)模拟乒乓球运 乒乓球比赛模拟机框图 设计要求:

1、基本部分 (1) 至少用8个LED排成直线,以中点为界,两边各代表参赛双方的位置,其中一个点亮的LED(乒乓球)依次从左到右,或从由到左移动,“球”的移动速度能由时钟电路调节。 (2) 当球(被点亮的那只LED)移动到某方的最后一位时,参赛者应该果断按下自己的按扭使“球”转向,即表示启动球拍击中,若行动迟缓或超前,表示未击中或违规,则对方得一分。 (3) 设计自动记分电路,甲乙双方各用一位数码管显示得分,每记满9分为一局。 2、发挥部分(选做) (1) 甲乙双方各设一个发光二极管表示拥有发球权,每得5分自动交换发球权,拥有发球权的一方发球才能有效。 (2) 发球次数能由一位数码管显示。 (3) 一方得分,电路自动响铃3秒,此期间发球无效,等铃声停止后方可比赛。 课题任务要求 1、画出总体设计框图,以说明乒乓球比赛游戏机由哪些相对独立的功能模块组成,标出各个模块之间互相联系,时钟信号传输路径、方向和频率变化。并以文字对原理作辅助说明。 2、设计各个功能模块的电路图,加上原理说明。 3、选择合适的元器件,在EWB上连接验证、仿真、调试各个功能模块的电路。在连接验证时设计、选择合适的输入信号和输出方式,在充分电路正确性同时,输入信号和输出方式要便于电路的仿真、调试和故障排除。 4、在验证各个功能模块基础上,对整个电路的元器件和连接,进行合理布局,进行整个数字钟电路的连接验证、仿真、调试。 5、自行接线验证、仿真、调试,并能检查和发现问题,根据原理、现象和仿真结果分析问题所在,加以解决。学生要解决的问题包括元器件选择、连接和整体设计引起的问题。 1.2 方案选择 根据设计任务,对照图乒乓球比赛模拟及1.1,可以分为三个模块进行设计:

数电课程设计-温度计实验报告(提交版)

一、设计项目名称 温度采集显示系统硬件与软件设计 二、设计内容及要求 1,根据设计要求,完成对单路温度进行测量,并用数码管显示当前温度值系统硬件设计,并用电子CAD软件绘制出原理图,编辑、绘制出PCB印制版。 要求: (1)原理图中元件电气图形符号符合国家标准; (2)整体布局合理,注标规范、明确、美观,不产生歧义。 (3)列出完整的元件清单(标号、型号及大小、封装形式、数量) (4) 图纸幅面为A4。 (4)布局、布线规范合理,满足电磁兼容性要求。 (5)在元件面的丝印层上,给出标号、型号或大小。所有注释信息(包括标号、型号及说明性文字)要规范、明确,不产生歧义。 2.编写并调试驱动程序。 功能要求: (1)温度范围0-100℃。 (2)温度分辨率±1℃。 (3)选择合适的温度传感器。 3.撰写设计报告。 提示:可借助“单片机实验电路板”实现或验证软件、硬件系统的可靠性。 温度传感器 摘要:温度的检测与控制是工业生产过程中比较典型的应用之一,随着传感器在生产和生活中的更加广泛的应用,利用新型单总线式数字温度传感器 实现对温度的测试与控制得到更快的开发,随着时代的进步和发展,单 片机技术已经普及到我们生活,工作,科研,各个领域。一种数字式温 度计以数字温度传感器DS18B20作感温元件,它以单总线的连接方式, 使电路大大的简化。传统的温度检测大多以热敏电阻为传感器,这类传 感器可靠性差,测量温度准确率低且电路复杂。因此,本温度计摆脱了 传统的温度测量方法,利用单片机STC89C52对传感器进行控制。这样

易于智能化控制。 关键词:数字测温;温度传感器DS18B20;单片机STC89C52; 一.概述 传感器从功能上可分为雷达传感器、电阻式传感器、电阻应变式传感器、压阻式传感器、热电阻传感器、温度传感器、光敏传感器、湿度传感器、生物传感器、位移传感器、压力传感器、超声波测距离传感器等,本文所研究的是温度传感器。 温度传感器是最早开发,应用最广泛的一类传感器。温度传感器是利用物质各种物理性质随温度变化的规律把温度转换为电量的传感器。这些呈现规律性变化的物理性质主要有半导体。温度传感器是温度测量仪表的核心部分,品种繁多。 随着科学技术的发展,测温系统已经被广泛应用于社会生产、生活的各个领域,在工业、环境监测、医疗、家庭多方面均有应用。从而使得现代温度传感器的发展。微型化、集成化、数字化正成为发展的一个重要方向。 二.硬件设计 1.DS18B20 DS1820 单线数字温度计特性 ? 独特的单线接口仅需一个端口引脚进行通讯 ? 简单的多点分布应用 ? 无需外部器件 ? 可通过数据线供电 ? 零待机功耗 ? 测温范围-55~+125℃,以 0.5℃递增 ? 温度以 9 位数字量读出 ? 温度数字量转换时间 200ms (典型值) ? 用户可定义的非易失性温度报警设置 ? 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件 ? 应用包括温度控制、工业系统、消费品、温度计或任何热感测系统 DS1820温度传感器外观图(a )和引脚图(b ) ①引脚1接地 ②引脚2数字信号输入/输出 ③引脚3接高电平5V 高电平

数电课程设计报告 乒乓球游戏设计

电子线路综合设计 乒乓球比赛模拟及计分器设计 2014年6月

摘要 在信息社会高速发展的今天,数字电路芯片已经实现高度集成化,并逐步渗透到医学、计算机等各个领域,对人类的生活有着深远的影响。本设计采用基本门电路以及74LS系列芯片的搭建,以multisim 12.0软件为平台进行仿真,实现了对乒乓球游戏的模拟。主要解决的问题有: (1)模拟乒乓球的轨迹:用双向移位4位寄存器74194以及基本门电路实现;(2)球速的调节:利用555电路实现; (3)球被击中、犯规的判断; (4)计数器的使用:采用74LS90和74LS161的组合,给玩家计分; (5)关于比分的显示:通过CD4511译码芯片将计数器的输出状态显示到2位共阴极数码管上。 关键词:双向移位4位寄存器、555电路、译码电路、计数器系统

目录 1 设计任务 (1) 2 电路整体设计 (2) 2.1 译码显示电路设计 (4) 2.2 555定时器组成脉冲发生器 (5) 2.3模拟乒乓球电路的设计 (6) 3 电路整体性能的检测 (7) 3.1 译码显示电路的检测 (7) 3.2 脉冲发生器电路的检测················································································· 3.3模拟乒乓球电路的检测··················································································4实验结论····················································································································5课程设计心得体会以及建议····················································································6 Abstract ······················································································································7附录(包含元器件清单以及各元器件功能表) ······················································8参考文献····················································································································

模电实验报告

模拟电子电路课程设计报告书 题目名称:直流稳压电源 姓名:刘海东潘天德 班级:15电科2 学号:23 26 日期:2017.6.11

目录 绪论 (2) 一设计目的 (3) 二设计要求与指标 (3) 三理论分析 (4) 四器件选择及计算 (9) 五具体制作步骤 (12) 六测试方法 (13) 七问题及总结 (15) 八心得体会 (17) 绪论 直流稳压电源一般由电源变压器,整流滤波电路及稳压电路所组成。变压器把市电交流电压变为所需要的低压交流电。整流器把交流电变为直流电。经滤波后,稳压器再把不稳定的直流电压变为稳定的直流电压输出。本设计主要采用直流稳压构成集成稳压电路,通过变压,整流,滤波,稳压过程将220V交流电,变为稳定的+/- 5v直流电,并实现电压可在8-15V连续可调。电源在生活中是非常常见的一种电器,任何电子电路都离不开电源,就像我们下学期即将学到的单片机一样,需要5V的直流电源,没有电源就不能进行正常的工作,如果用干电池进行供电,则有供电功率低,持续供电能力差,成本高等缺点。而交流电在产生、电能输送等方面具有独特的优点,发电站、各市电网中的电能传输都是以交流电的形式进行输送,如果我们对市电提供的电压进行降压整流等,把交流电转换成直流电,以获得我们所

需要的电压。 一设计目的 1.学习基本理论在实践中综合运用的初步经验,掌握模拟电路设计的基本方法、设计步骤,培养综合设计与调试能力。 2.学会直流稳压电源的设计方法和性能指标测试方法。 3.培养实践技能,提高分析和解决实际问题的能力。 二设计要求与指标 2.1设计要求 (1)分析电路组成及工作原理; (2)单元电路设计计算; (3)采用分立元件电路; (4)画出完整电路图; (5)调试方法; (6)小结与讨论。 2.2设计指标 (1)输出电压:8~15V可调 (2)输出电流:I O=1A (3)输入电压:交流 220V+/-10%

数电课程设计乒乓球比赛word文档

乒乓球比赛游戏机 一、设计任务与要求 1 课题目的及意义 本次课程设计的内容是独立完成一个乒乓球比赛游戏机的设计,采用EWB 电路仿真设计软件完成乒乓球比赛游戏机电路的设计及仿真调试,在微机上仿真实现乒乓球比赛游戏机的设计。通过这次课程设计让我们了解和熟悉了乒乓球游戏机的原理和Multisim仿真设计软件的操作,也让我们加深了解了对双向移位寄存器、双D触发器及、加法器及逻辑门电路的一些实际用途,并将理论与实践相结合。 2 课题的内容和要求 设计一个甲、乙双方参赛,裁判参与的乒乓球比赛游戏模拟机。 基本要求: (1)用8个发光二极管排成一条直线,以中点为界,两边各代表参赛双方的位置,其中点亮的发光二极管代表“乒乓球”的当前位置,点亮的发光二极管依次由左向右或由右向左移动。 (2)当球运动到某方的最后一位时,参赛者应立即按下自己一方的按钮,即表示击球,若击中,则“球”向相反方向运动,若未击中,则对方得1分。(3)设置自动计分电路,双方各用二位数码管来显示计分,每局11分。到达11分时产生报警信号。 提高要求: (4)一方得分时,电路自动响铃3s,这期间发球无效,等铃声停止后方能继续比赛。 (5)设置局数显示,5局结束后有声响提示比赛结束。 课题任务要求 1、画出总体设计框图,以说明乒乓球比赛游戏机由哪些相对独立的功能模块组成,标出各个模块之间互相联系,时钟信号传输路径、方向和频率变化。并以文字对原理作辅助说明。

2、设计各个功能模块的电路图,加上原理说明。 3、选择合适的元器件,在EWB上连接验证、仿真、调试各个功能模块的电路。在连接验证时设计、选择合适的输入信号和输出方式,在充分电路正确性同时,输入信号和输出方式要便于电路的仿真、调试和故障排除。 4、在验证各个功能模块基础上,对整个电路的元器件和连接,进行合理布局,进行整个数字钟电路的连接验证、仿真、调试。 二、方案设计与论证 根据设计任务,对照图乒乓球比赛模拟及1.1,可以分为三个模块进行设计: 1. 球台电路:球迹移动电路可采用双向移位寄存器方法实现,由发光二极管作光点模拟乒乓球移动的轨迹。 2. 驱动控制电路:由双D触发器及逻辑门电路构成,通过此电路来控制并且实现球台灯的左右移位即实现乒乓球的运动。 3. 计分电路:使用十进制的计数器、逻辑门和集成的4管脚的数码管来组成计分电路。 通过多次设计、画图及仿真实验,我们发现方案电路最简洁,原理简单易懂,操作也很方便,且实用性较强。故采用此方案进行设计。 三、单元电路设计

基于FPGA的乒乓球游戏机设计.

摘要 在现代电子设计领域,微电子技术迅猛发展,无论是系统设计、电路设计,还是芯片设计,其设计的复杂度都在增加,传统的手工设计方法已经不能满足设计者的要求,急需新的设计工具来解决。EDA技术的迅速发展顺应了时代的发展,使得电子设计自动化技术有了新的、快的发展,其重要程度日益突出。本文设计了基于FPGA的,用Verilog HDL语言描述的乒乓球游戏机的设计。它由控制模块、数码管的片选信号模块、送数据模块和7段译码器模块组成,连接形成乒乓球游戏机的顶层电路。在QuartusⅡ软件上用Verilog HDL语言分别对每个模块进行描述,然后在软件上进行编译、仿真,最终实现乓乓球比赛的基本过程和规则,并能自动裁判和计分,达到设计的要求。 关键词:EDA ;FPGA ;Verilog HDL Abstract In the field of modern electronic design, the rapid development of microelectronic technology,whether the system design, circuit design and chip design, the design is more complex, the traditional manual design methods have been unable to meet the requirements of designers,in urgent need of new design tools to solve. The rapid development of EDA technology to the development of the times, the electronic design automation technology has been the development of new, fast, its importance is outstanding day by day. This paper is designed based on FPGA, the design of table tennis game is described with Verilog HDL language. It consists of control module, chip select signal module, digital tube to send data module and the 7 segment decoder modules, the top-level circuit connected to form a table tennis game. In the Quartus software by Verilog HDL language for each module are described, and then the compiler, simulation in software, realize the basic process and the rules of table tennis table tennis competition, and can automatically judge and score, to meet the design requirements. Keywords: EDA; FPGA; Verilog HDL

模电课程设计实验报告分析

模电课程设计实验报告 实验内容:一、设计并制作一个能输出+5V 电压的直流稳压电源,输入电压为直流9V。二、利用课程设计(一)制作的电源、电压比较器、电压跟随器设计,驱动三 极管,通过可调电阻,控制LED灯的点亮和熄灭。 实验要求:(1)设计出+5V 直流稳压电源的电路原理图; (2)在万用板上焊接组装给定的元器件并进行调试,输入电压没有极性之分, 输出电压+5V,并点亮电源指示灯(红色); (3)设计一款电压比较器A,参考电压2.5V; (4)设计一款电压跟随器B,跟随电压比较器A 的电压; (5)驱动三极管,通过可调电阻,实现对LED(绿色)灯的控制; (6)完成课程设计报告的撰写。 实验原理: 一、制作稳定电压源 采用二极管、集成运放、电阻、稳压管、电容、二极管、LED发光二极管等元件器件。 输入电压为9V 的直流电源经桥式整流电路和滤波电路形成稳定的直流电源,稳压部分采用 串联型稳压电路。比例运算电路的输入电压为稳定电压;同时,为了扩大输出大电流,集 成运放输出端加晶体管,并保持射极输出形式,就构成了具有放大环节的串联型稳压电路。整体功能结构如图 直流9V 1、单相桥式整流电路 直流5V 为了将电压转换为单一方向的电压,通过整流电路实现。查阅资料可知单相整流电路有单相桥式整流电路(全波整流电路)。桥式整流电路巧妙地利用了二极管的单向导电性,将四个二极管分为两组,根据变压器次级电压的极性分别导通,将变压器次级电压的正极性端与负载电阻的上端相连,负极性端与负载电阻的下端相连,使负载上始终可以得到一个单方向的脉动电压。单相桥式整流电路,具有输出电压高,变压器利用率高、脉动系数小等优点。所以在电路中采用单相桥式整流电路。 2、滤波电路 整流电路滤波电路稳压电路

数电课程设计基于Multisim的乒乓球游戏机控制电路设计

课程设计(论文) 课程名称:数字电子技术基础 题目:基于Multisim的乒乓球游戏机控制电路设计院(系): 专业班级: 姓名: 学号: 指导教师:

任务书 设计题目:基于Multisim乒乓球游戏机的控制设计电路 课题目的: 该乒乓球游戏机电路主要由3块组成:球台驱动电路,控制电路和计分电路组成。其中球台电路主要实现游戏者击球完毕后球的左右移动显示位置功能;控制电路实现游戏者A和B击球,裁判对系统初始化的功能;计分电路具有当A 或B击球有效时加分和当游戏者的分数累计超过10时报警通知裁判对系统初始化以便重新开始比赛计分功能。 课题主要内容与要求: 内容:本课题设计一个以8个二极管的依次被点亮代表球的移动位置双向选择开关J2,J3控制发球,击球信号,在Multisim软件上测试结果。 要求:1、熟悉Multisim软件 2、用8个发光二极管表示球,用俩个按钮分别表示AB俩个球员的球拍; 3、A,B各有一个数码管计分。 4、裁判有一个按钮,用来对系统初始化,每次得分后按下一次。

摘要 乒乓球游戏机通过十分巧妙地设计采用数字芯片实现乒乓球左右移动,选手击球得分,累计得分超10报警灯功能。该设计三个双向开关J1,J2,J3分别作为裁判和游戏者A,B,且选手可以译码显示器上直接读出自己的得分,具有操作简单,结构清晰的优点。 对与模电课题的研究离不开电路图,不过现在都在实行电子化,所以需要借助电子产品。Multisim软件就是一款画电路图的电子软件,在此对不太熟悉或未接触过Multisim软件的朋友简短的介绍下: Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。同时具备可以根据自己的需求制造出真正属于自己的仪器;所有的虚拟信号都可以通过计算机输出到实际的硬件电路上;所有硬件电路产生的结果都可以输回到计算机中进行处理和分析等特点。该乒乓球游戏机电路主要有3块电路:台球驱动电路,控制电路和计分电路组成。其中台球驱动电路主要实现游戏者击球完毕后球的左右移动显示位置功能;控制电路实现游戏者A和B击球,裁判对系统初始化的功能;积分电路具有当A和B击球有效时加分和当游戏者的分数累计超过10分时报警通知裁判对系统进行初始化以便重新开始比赛积分的功能。 关键词:游戏机控制电路系统初始化

乒 乓 球 游 戏 机 设 计

Shaanxi University of Technology 通信工程专业课程设计Ⅱ 题目乒乓球游戏机设计 学生贾潇洒学号0713024056 所在院(系)陕西理工学院电信工程系 专业班级通信工程专业0 7 2 班 指导教师争兵 完成地点陕西理工学院电信工程系实验室 2010年 3 月 19 日

通信工程专业课程设计Ⅱ任务书 院(系) 电信工程系专业班级通信工程专业 072班学生贾潇洒 一、课程设计Ⅱ题目乒乓球游戏机设计 二、课程设计Ⅱ工作自 2010 年 3 月 1 日起至 2010 年 3 月 19 日止 三、课程设计Ⅱ进行地点: 电信工程系实验室 四、课程设计Ⅱ的容要求: [1]本课程设计的目的 本次课程设计为计算机类综合课程设计,通过计算机这个平台使我们将所学习的理论知识应用到实践中的一次尝试,同时也是对计算机辅助软件Max-pulsII的进一步熟悉。 [2]本课程设计的容 采用EDA技术---可采用VHDL或原理图输入法,设计一个乒乓球游戏电路,进行声光模拟,结果应有仿真波形、流程图、并下载在EDA开发板上,测试验证无误。 [3]本课程设计要实现的功能 用8个(或更多个)发光二极管排成一条直线代表乒乓球台,中间两个发光二极管兼做乒乓球网,两边各有两个开关控制双方的发球和接球,并能自动完成裁判、记分等功能。 [4]课程设计时间安排:3月1日-3月3日,熟悉容,方案论证; 3月4日-3月10日,编写程序、运行及仿真; 3月11日-3月12日,下载并验证其功能; 3月16 日,验收课程设计; 3月16日-3月19日,撰写、修改、提交课程设计报告。 指导教师系(教研室) 通信工程教研室接受任务开始执行日期 2010年3月1日学生签名

数电课程设计

一、数字电子钟 1.设计目得 (1)培养数字电路得设计能力。 (2)掌握数字电子钟得设计、组装与调试方法。 2.设计内容及要求 (1)设计一个数字电子钟电路。要求: ①按24小时制直接显示“时”、“分”、“秒”。 ②当电路发生走时误差时具有校时功能。 ③具有整点报时功能,报时音响为4低1高,即在59分51秒、53秒、55秒、57秒输出500Hz信号,在59分59秒时输出1000 Hz信号,音响持续时间为1秒,最后一响结束时刻正好为整点。 (2)用中小规模集成电路组成电子钟,并在实验仪上进行组装、调试。 (3)画出各单元电路图、整机逻辑框图与逻辑电路图,写出设计、实验总结报告。 (4)选作部分:①闹钟系统。②日历系统。 3.数字电子钟基本原理及设计方法 数字电子钟得逻辑框图如图1411所示。它由振荡器、分频器、计数器、译码器、显示器、校时电路与整点报时电路组成。振荡器产生得脉冲信号经过分频器作为秒脉冲,秒脉冲送入计数器计数,计数结果通过“时”、“分”、“秒”译码器显示时间。有得数字电子钟还加有定时响铃、日历显示等其它功能,需增加相应得辅助电路。 图1411 数字电子钟得基本逻辑框图 (1)振荡分频电路 振荡器就是数字电子钟内部用来产生时间标准“秒”信号得电路。构成振荡器得电路很多,图1412(a)就是RC环形多谐振荡器,其振荡周期T≈2、2RC。作为时钟,最主要得就是走时准确,这就要求振荡器得频率稳定。要得到频率稳定得信号,需要采用石英晶体振荡器。石英晶体振荡器电路如图1412(b)所示,这种电路得振荡频率只取决于石英晶体本身得固有频率。 图1412 振荡器

(a)RC环形多谐振荡器 (b)石英晶体多谐振荡器 由于石英晶体振荡器产生得频率很高,要得到秒信号,需采用分频电路。例如,振荡器输出4 MHz信号,先经过4分频变成1 MHz,再经过6次10分频计数器,便可得到1Hz得方波信号作为秒脉冲。 (2)计数器 把秒脉冲信号送入秒计数器个位得CP输入端,经过6级计数器,分别得到“秒”个位、十位,“分”个位、十位,以及“时”个位、十位得计时。“秒”、“分”计数器为60进制,“时”计数器为24进制。 24进制计数器如图1413所示。当“时”个位计数器输入端CP来到第10个触发脉冲时,该计数器归零,进位端Q D5向“时”十位计数器输出进位信号。当第24个“时”脉冲(来自“分”计数器输出得进位信号)到来时,十位计数器得状态为0010,个位计数器得状态位0100,此时“时”十位计数器得Q B6与“时”个位计数器得Q C5输出为1。两者相与后送到两计数器得清零端R0A与R0B,通过74LS90内部得R0A与R0B与非后清零,完成24进制计数。同理可构成60进制计数器。 CP 来自分计数器 的进位信号 图1413 24进制计数器 (3)译码显示电路 译码驱动器采用8421 BCD码七段译码驱动器74LS48,显示器采用共阴极数七段数码显示器,有关74LS48与七段显示器得使用方法前面已经作了介绍,这里不再赘述。 (4)校时电路 当数字电子钟出现走时误差时,需要对时间进行校准。实现校时电路得方法很多,如图1414所示电路即可作为时计数器或分计数器得校时电路。 图1414 校时电路 现设用该电路作为分计数器得校时电路,图中采用RS触发器作为无抖动开关。通过开关K得接入位置,可以选择就是将“1 Hz信号”还就是将“来自秒计数器得进位信号”送至分计数器得CP端。当开关K置于B端时,RS触发器得输出、,“来自秒计数器得进位信号”被送至分计数器得CP端,分计数器正常工作;需要校正分计数器时,将开关K置于A端,这时RS触发器得输出、,“1 Hz信号”被送至分计数器得CP端,分计数器在“1Hz信号”得作用下快速计数,直至正确得时间,再将开关K置于B端,达到了校准时间得目得。 (5)整点报时电路 电路得设计要求在差10 s为整点时开始每隔1 s鸣叫一次,每次持续时间为1 s,共鸣叫5次,前4次为低音500 Hz,最后一次为高音1 kHz。因为分计数器与秒计数器从59分51秒计数到59分59秒得过程中,只有秒个位计数器计数,分十位、分个位、秒十位计数器得状态不变,分别为Q D4Q C4Q B4Q A4=0101,Q D3Q C3Q B3Q A3=1001,Q D2Q C2Q B2Q A2=0101,所以Q C4=Q A4=Q D3=Q A3=Q C2=Q A2=1不变。设Y1=Q C4Q A4Q D3Q A3Q C2Q A2,又因为在51、53、55、57秒时Q A1=1,Q D1=0,输出500Hz信号f2;59秒时Q A1=1,Q D1=1,输出1kHz信号f1,由此可写出整点报时电路得逻辑表达式为:

模电课设实验报告

河北科技大学 课程设计报告 学生姓名:xxx学号:120701103 专业班级:xxx 课程名称:模拟电子技术基础 学年学期:2 013 —2 014 学年第一学期指导教师:王彦朋蔡明伟 2 0 1 3 年12 月

课程设计成绩评定表

目录 一任务.................................................................................................................. - 1 - 二电路原理图...................................................................................................... - 1 - 三单元电路设计.................................................................................................. - 1 - 1.稳压电源单元电路设计............................................................................... - 1 - 2.正弦波单元电路设计................................................................................... - 2 - 3.方波单元电路设计....................................................................................... - 3 - (1)过零比较器及限幅电路.................................................................. - 3 - (2)反相比例运算放大电路.................................................................. - 4 - 4.三角波单元电路设计................................................................................... - 5 - 四元件明细表...................................................................................................... - 6 - 五安装与调试...................................................................................................... - 7 - 六收获体会.......................................................................................................... - 7 - 七附录.................................................................................................................. - 8 - 八参考文献.......................................................................................................... - 8 -

EDA课程设计--乒乓球游戏机

EDA课程设计一乒乓球游戏机

EDA技术课程设计课题:乒乓球比赛游戏机 系别:电气与电子工程系 专业: _______ 姓名: __________________________ 学号: __________________________ 指导教师: _______________________

河南城班学院 2012年6月日 成绩评定? 一、指导教师评语(根据学生设计报告质量、答辩情况及其平时表现综合评定)。

录 一、设计目的 (2) 二、设计要求 (6) 三、总体设计方案要求 (4) 1、设计的总体原理 (4) 2、设计内容 (6) 四、EDA设计与仿真 (6) 1、系统程序设计 (6) 2、系统程序各功能介绍 (12) 3、仿真结果及数据分析 (13) 五、硬件实现 (14) 1、硬件实现步骤 (14) 2、硬件实现结果 (66) 六、设计总结 (20) 七、参考文献 (21) 八、设计生成的电路总图 (21)

一、设计目的 通过对FPGA (现场可编程门阵列)芯片的设计实践,使学生掌握一般的PLD (可编程逻辑器件)的设计过程、设计要求、设计内容、设计方法,能根据用户的要求及工艺需要进行电子芯片设计并制定有关技术文件。培养学生综合运用已学知识解决实 际工程技术问题的能力、査阅图书资料和各种工具书的能力、工程绘图能力、撰写技术 报告和编制技术资料的能力,受到一次电子设计自动化方面的基本训练。 培养学生利用EDA技术知识,解决电子设计自动化中常见实际问题的能力, 使学生积累实际EDA编程。通过本课程设计的学习,学生将复习所学的专业知识,使课堂学习的理论知识应用于实践,通过本课程设计的实践使学生具有一定的实践操作能力。 二、设计要求 1、设计一个由甲、乙双方参赛,有裁判的3人乒乓球游戏机。 2、用8个(或更多个)LED排成一条直线,以中点为界,两边各代表参赛双方的位置,其中一只点亮的LED指示球的当前位置,点亮的LED依此从左到右, 或从右到 左,其移动的速度应能调节。 3、当“球”(点亮的那只LED)运动到某方的最后一位时,参赛者应能果断 地按下位于自己一方的按钮开关,即表示启动球拍击球。若击中,则球向相反方向移动;若未击中,则对方得1分。

基于VHDL的乒乓球游戏机设计

1引言 EDA(Electronic Design Automation,电子设计自动化)技术是现代电子工程领域的一门新技术。它提供了基于计算机和信息技术的电路系统设计方法。EDA技术的发张和推广应用极大地推动了电子工业的发展。EDA技术就是以计算机为工具,在EDA软件平台上,对以硬件描述语言VHDL为系统逻辑描述手段完成的设计文件自动地完成逻辑编译,逻辑化简,逻辑分割,逻辑综合及优化,逻辑布局布线,逻辑仿真,直至对于特定目标芯片的适配编译,逻辑映射和编程下载等工作。设计者的工作仅限于利用软件的方式,即利用硬件描述语言来完成对系统硬件功能的描述,在EDA工具的帮助下就可以得到最后的设计结果[1]。近年来,集成电路制造技术的快速发展, 一方面促进了相应设计技术的发展, 另一方面也对设计技术提出了更高的要求。当前集成电路设计, 面临着功能强、性能好、规模大、成本低、设计周期短等一系列要求和挑战, 这些要求和挑战引起了集成电路设计方法的全面革新。当今, 以行为设计为主要标志的新一代数字系统设计理论已形成并得到发展。在集成电路的数字系统的系统级设计中, VHDL 硬件描述语言构造的描述模型优化设计, 有利于高效利用设计空间, 实现设计结构的精确分析, 使芯片资源得以充分利用。 1.1课题的背景、目的 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。而休闲时间越来越少的人们越来越没太多的时间出去搞户外活动,于是众多电子游戏相应而出,成为大家的娱乐节目。因此设计了这个两人的乒乓球游戏。而电子信息类产品的开发明显地出现了两个特点:一是开发产品的复杂程度加深;二是开发产品的上市时限紧迫。而伴随着如上两个特点的产生,相应的出现了设计上的两个问题。其一,在电子系统日趋数字化、复杂化和大规模集成化的今天,电子厂商们越加迫切地追求电子产品的高功能、优品质、低成本、微功耗和微小封装尺寸,从而使得电子设计日趋复杂。那么如何去完成这些高复杂度的电子设计呢?其二,电子产品设计周期短和上市快是电子厂商们坚持不懈的追求,那么面对日趋复杂的设计,又如何能够缩短开发时间呢?解决以上两个问题的唯一途径是电子设计自动化(EDA),即用计算机帮助设计人员完成繁琐的设计工作。

数字电压表课程设计实验报告

自动化与电气工程学院 电子技术课程设计报告 题目数字电压表的制作 专业 班级 学号 学生姓名 指导教师 二○一三年七月

一、课程设计的目的与意义 1.课程设计的主要目的,是通过电子技术综合设计,熟悉一般电子电路综合设计过程、设计要求、完成的工作内容和具体的设计方法。 2.同时了解双积分式A/D转换器ICL7107的性能及其引脚功能,熟悉集成电路ICL7107构成直流数字电压表的使用方法,并掌握其在电路中的工作原理。 3.通过设计也有助于复习和巩固以往的模电、数电内容,达到灵活应用的目的。在完成设计后还要将设计的电路进行安、调试以加强学生的动手能力。在此过过程中培养从事设计工作的整体观念。 4.利用双积分式A/D转换器ICL7107设计一数字电压表,量程为-1.99—+1.99,通过七段数码管显示。 二、电路原理图 数字电压表原理图

三、课程设计的元器件 1.课程设计所使用的元器件清单: 2.主要元器件介绍 (1)芯片ICL7107: ICL7107的工作原理 双积分型A/D转换器ICL7107是一种间接A/D转换器。它通过对输入模拟电压和参考电压分别进行两次积分,将输入电压平均值变换成与之成正比的时间间隔,然后利用脉冲时间间隔,进而得出相应的数字性输出。 它的原理性框图如图所示,它包括积分器、比较器、计数器,控制逻辑和时钟信号源。积分器是A/D转换器的心脏,在一个测量周期内,积分器先后对输入信号电压和基

准电压进行两次积分。比较器将积分器的输出信号与零电平进行比较,比较的结果作为数字电路的控制信一号。时钟信号源的标准周期Tc 作为测量时间间隔的标准时间。它是由内部的两个反向器以及外部的RC组成的。其振荡周期Tc=2RCIn1.5=2.2RC 。 ICL7106A/D转换器原理图 计数器对反向积分过程的时钟脉冲进行计数。控制逻辑包括分频器、译码器、相位驱动器、控制器和锁存器。 分频器用来对时钟脉冲逐渐分频,得到所需的计数脉冲fc和共阳极LED数码管公共电极所需的方波信号fc。 译码器为BCD-7段译码器,将计数器的BCD码译成LED数码管七段笔画组成数字的相应编码。 驱动器是将译码器输出对应于共阳极数码管七段笔画的逻辑电平变成驱动相应笔画的方波。 控制器的作用有三个:第一,识别积分器的工作状态,适时发出控制信号,使各模拟开关接通或断开,A/D转换器能循环进行。第二,识别输入电压极性,控制LED 数码管的负号显示。第二,当输入电压超量限时发出溢出信号,使千位显示“1" ,其余码全部熄灭。 钓锁存器用来存放A/D转换的结果,锁存器的输出经译码器后驱动LED 。它的每个测量周期自动调零(AZ)、信号积分(INT)和反向积分(DE)三个阶段。

相关文档
最新文档