文档库 最新最全的文档下载
当前位置:文档库 › 定时器VHDL设计

定时器VHDL设计

定时器VHDL设计
定时器VHDL设计

定时器

1.实验任务

设计要求:整体清零;可以定时最高到99min;以秒速度递增至预定时间,以分速度递减至零。

总体框图如下图所示:

clr 用来整体复位清零;clk 提供了秒信号,频率为1HZ(在仿真中取10MHZ);clky 是用来扫描输出的,选用频率大于50HZ的方波(为便于观察结果,在仿真中取10MHZ);set 是用来置位的,低电平时有效,将以秒的速度,从零递增到所需定时的时间,为高电平时以分的速度递减,实现定时,直到零,定时结束;alm 输出高电平,可启动各种电路或发出警报。时间的变化都将在数码管上显示出来。

2.模块及模块功能

模块AAA见下图示。它是核心模块,用来实现定时器的逻辑功能,计数结果用十进制数输出。

LIBRARY ieee;

USE ieee.std_logic_1164.all;

USE ieee.std_logic_unsigned.all;

ENTITY aaa IS

PORT(clk, clr, set: in std_logic;

alm: out std_logic;

q1,q0: out std_logic_vector(3 downto 0));

END aaa;

ARCHITECTURE aaa_arc OF aaa IS

BEGIN

PROCESS (clk,clr)

variable cnt1,cnt0:std_logic_vector(3 downto 0);

variable cnt: integer range 0 to 59;

BEGIN

IF clr='0' THEN --整体复位

alm<='0';

cnt:=0;

cnt1:="0000";

cnt0:="0000";

ELSIF clk'EVENT AND clk='1' THEN --设计数初值

IF set='0' THEN

cnt:=0;

IF cnt0<"1001" THEN

cnt0:=cnt0+1;

ELSE

cnt0:="0000";

IF cnt1<"1001" THEN

cnt1:=cnt1+1;

ELSE

cnt1:="0000";

END IF;

END IF;

ELSE

IF cnt<59 THEN --60分频

cnt:=cnt+1;

ELSE

cnt:=0;

IF cnt0>"0000" THEN

cnt0:=cnt0-1;

IF cnt1="0000" AND cnt0="0000" THEN --判断计时是否结束

alm<='1';

END IF;

ELSE

cnt0:="1001";

IF cnt1>"0000" THEN

cnt1:=cnt1-1;

ELSE

cnt1:="1001";

END IF;

END IF;

END IF;

END IF;

END IF;

q0<=cnt0;

q1<=cnt1;

END PROCESS;

END aaa_arc;

模块CH如下图示。由于只用了两个数码管,所以片选信号直接接一个较快的时钟。此模块的功能是对应片选信号,送出要显示的数据。

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY ch IS

PORT(sel:in std_logic;

a1,a0:in std_logic_vector(3 downto 0);

q:out std_logic_vector(3 downto 0));

END ch;

ARCHITECTURE ch_arc OF ch IS

BEGIN

PROCESS(sel,a0,a1)

BEGIN

IF sel='0' THEN

q<=a0;

ELSE

q<=a1;

END IF;

END PROCESS;

END ch_arc;

模块DISP如下图示。该模块为七段译码器。

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY disp IS

PORT(a:in std_logic_vector(3 downto 0);

q:out std_logic_vector(6 downto 0));

END disp;

ARCHITECTURE disp_arc OF disp IS BEGIN

PROCESS(a)

BEGIN

CASE a IS

WHEN "0000"=>q<="0111111";

WHEN "0001"=>q<="0000110";

WHEN "0010"=>q<="1011011";

WHEN "0011"=>q<="1001111";

WHEN "0100"=>q<="1100110";

WHEN "0101"=>q<="1101101";

WHEN "0110"=>q<="1111101";

WHEN "0111"=>q<="0000111";

WHEN "1000"=>q<="1111111";

WHEN "1001"=>q<="1101111";

WHEN others=>q<="0000000";

END CASE;

END PROCESS;

END disp_arc;

3.仿真结果分析

总体仿真结果如下:

由图可见,clr =’0’可实现整体复位功能。set =’0’,输出以秒的速度从零递增。

本图中当递增到26后,set =’1’,输出经60分频后以分的速度递减,实现定时,直到零,定时结束。

定时结束后,clm =’1’,此时可启动各种电路或发出报警,定时结束。

clr =’0’,整体复位,clm =’0’。

两位结果。sel=’1’时输出高位,sel=’0’时输出低位。

自动售货机控制器

一、设计一个自动售货机的控制电路。该自动售货机销售价格为25美分的糖果,利用有限状态机进行电路设计。

控制器的输入输出如图所示:

输入信号是nickel_in(投入5美分),dime_in(投入10美分),quarter_in(投入25美分)。另外两个必要的输入是clk(时钟)和rst(复位)。控制器相应的有3个输出:candy_out用于控制发放糖果, nickel_out用于控制找回5美分的零钱, dime_out用于控制找回10美分的零钱。

自动售货机控制器的顶层电路图和状态转移图

信号说明:ni=nickel_in, di=dime_in, qi=quarter_in, no=nickel_out, do=dime_out,

co=candy_out

上图给出了有限状态机的状态转移图。圆圈里的数代表顾客投进来的总钱数(接受5美分、10美分或25美分的硬币)。状态0是空闲状态。从它开始,如果投入5美分硬币,将跳转到状态5;如果投入10美分硬币,将跳转到状态10;如果投入25美分硬币,将跳转到状态25。随着投币数量的增加,状态不断跳转,如果投入的币值达到25美分,就可以进入状态25,然后售货机会发放糖果,并跳转回状态0。如果投入的币值超过了25美分,那么售货机要进入与找零钱相关的状态。例如,当投入的币值达到40美分时,需要先退出5美分硬币(进入状态35),然后再退出10美分,发放糖果并进入状态0。

二、该设计的VHDL源码如下:

在代码中定义了枚举类型state,它包含10个状态,所以至少需要用4位对其进行编码(将产生4个寄存器)。在默认状态下,编译器将按照它们的排列顺序对其进行编码,所以有st0=”0000”(十进制的0),st5=”0001”(十进制的1),…和st45=”1001”(十进制的9)。在仿真中,这些数字将替代状态的名称出现在仿真波形中。

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY vending_machine IS

PORT (clk, rst:IN STD_LOGIC;

nickel_in, dime_in, quarter_in: IN BOOLEAN;

candy_out, nickel_out, dime_out: OUT STD_LOGIC);

END vending_machine;

ARCHITECTURE fsm OF vending_machine IS

TYPE state IS(st0,st5,st10,st15,st20,st25,st30,st35,st40,st45);

SIGNAL present_state,next_state: STA TE;

BEGIN

PROCESS(rst,clk)

BEGIN

IF(rst='1') THEN

present_state<=st0;

ELSIF (clk'EVENT AND clk='1') THEN

present_state<=next_state;

END IF;

END PROCESS;

PROCESS(present_state, nickel_in, dime_in, quarter_in)

BEGIN

CASE present_state IS

WHEN st0=>

candy_out<='0';

nickel_out<='0';

dime_out<='0';

IF(nickel_in) THEN next_state<=st5;

ELSIF(dime_in) THEN next_state<=st10;

ELSIF(quarter_in) THEN next_state<=st25;

ELSE next_state<=st0;

END IF;

WHEN st5=>

candy_out<='0';

nickel_out<='0';

dime_out<='0';

IF(nickel_in) THEN next_state<=st10;

ELSIF(dime_in) THEN next_state<=st15;

ELSIF(quarter_in) THEN next_state<= st30;

ELSE next_state<=st5;

END IF;

WHEN st10=>

candy_out<='0';

nickel_out<='0';

dime_out<='0';

IF(nickel_in) THEN next_state<=st15;

ELSIF(dime_in) THEN next_state<=st20;

ELSIF(quarter_in) THEN next_state<=st35;

ELSE next_state<=st10;

END IF;

WHEN st15=>

candy_out<='0';

nickel_out<='0';

dime_out<='0';

IF(nickel_in) THEN next_state<=st20;

ELSIF(dime_in) THEN next_state<=st25;

ELSIF(quarter_in) THEN next_state<=st40;

ELSE next_state<=st15;

END IF;

WHEN st20=>

candy_out<='0';

nickel_out<='0';

dime_out<='0';

IF(nickel_in) THEN next_state<=st25;

ELSIF(dime_in) THEN next_state<=st30;

ELSIF(quarter_in) THEN next_state<=st45;

ELSE next_state<=st20;

END IF;

WHEN st25=>

candy_out<='1';

nickel_out<='0';

dime_out<='0';

next_state<=st0;

WHEN st30=>

candy_out<='1';

nickel_out<='1';

dime_out<='0';

next_state<=st0;

WHEN st35=>

candy_out<='1';

nickel_out<='0';

dime_out<='1';

next_state<=st0;

WHEN st40=>

candy_out<='0';

nickel_out<='1';

dime_out<='0';

next_state<=st35;

WHEN st45=>

candy_out<='0';

nickel_out<='0';

dime_out<='1';

next_state<=st35;

END CASE;

END PROCESS;

END fsm;

三、仿真结果分析

仿真结果如下图示:

由上图可以看到:第一个周期内,一共投入了3个5美分硬币和1个25美分硬币。在第一个5美分硬币投进去后的第一个时钟上升沿出现时,有限状态机的状态从st0(十进制的0)转到了st5(十进制的1)。在投入第二个5美分硬币后状态转到st10(十进制的2),投入第二个5美分硬币后状态转到st15(十进制的3),在25美分硬币投进去以后,状态变为st40(十进制的8)。此后,售货机退还顾客一个5美分硬币(nickle_out=’1’),同时状态机进入st35(十进制的7),接着退还10美分硬币(dime_out=’1’)并发放糖果(candy_out=’1’),同时状态回到空闲状态(st0)。

其他输入组合的分析同上。

二、2. 设计帧同步检测电路,输入位宽1位的二进制序列及时钟,输出高电平脉冲的检测

结果。对输入的二进制序列检测帧同步序列“01011”,即当输入的二进制序列中出现帧同步序列时,输出一个高电平脉冲。

(1).设计原理

用状态机,状态转换图如下图示:

状态转换图

各状态定义如下:S0:空闲状态或仅输入“1”;

S1:输入一个“0”后的状态;

S2:输入序列“01”后的状态;

S3:输入序列“010”后的状态;

S4:输入序列“0101”后的状态;

S5:输入帧同步序列“01011”后的状态,此时输出一个高电平脉冲。

管脚图

管脚说明:CLK—时钟信号;X—输入二进制序列;Y—输出变量。

(2).VHDL源程序:

LIBRARY ieee;

USE ieee.std_logic_1164.all;

USE ieee.std_logic_arith.all;

USE ieee.std_logic_unsigned.all;

ENTITY check IS

PORT(clk,x:in std_logic;

y:out std_logic);

END check;

ARCHITECTURE check_arc OF check IS

type state is(s0,s1,s2,s3,s4,s5);

signal present_state:state;

signal next_state:state;

BEGIN

s:PROCESS(clk)

BEGIN

IF clk'event and clk='1' THEN

present_state<=next_state;

END IF;

END PROCESS s;

c:PROCESS(x,present_state)

BEGIN

case present_state is

when s0 => y<='0';

if x='0' then

next_state<=s1;

else

next_state<=s0;

end if;

when s1 => y<='0';

if x='1' then

next_state<=s2;

else

next_state<=s1;

end if;

when s2 => y<='0';

if x='0' then

next_state<=s3;

else

next_state<=s0;

end if;

when s3 => y<='0';

if x='1' then

next_state<=s4;

else

next_state<=s1;

end if;

when s4 => y<='0';

if x='1' then

next_state<=s5;

else

next_state<=s3;

end if;

when s5 => y<='1';

if x='1' then

next_state<=s0;

else

next_state<=s1;

end if;

when others=>null;

end case;

END PROCESS c;

END check_arc;

(3).仿真结果及其分析

仿真结果如下图示:

仿真结果分析:由以上截图可以看到,当输入的二进制序列x=“01011”,即检测到帧同步序列时,y输出一个高电平脉冲。

10Hz时,输出有12.6ns/12.8ns的延时。

且由第三个图可见,当clk取7

二、3. 设计可以对两个运动员赛跑计时的秒表,要求如下:

(1)秒表的输入只有时钟(clk)和一个按键(key),假设key已经经过防抖动和脉冲宽度处理,每按一次key产生持续一个时钟周期的高电平脉冲,可以满足设计的需要,不需要对key再做任何处理。

(2)秒表输出用0-59的整数表示,不需要对十位和个位分别计数,不需要7段译码。(3)键key的功能如下:

(A)按第一下key,开始计数,并输出计数值;

(B)第一个运动员到终点时按第二下key,秒表记住第一个运动员到终点的时间,但还在继续计数并输出计数值;

(C)第二个运动员到终点时按第三下key,停止计数,这时输出的计数值就是第二个运动员用的时间;

(D)然后按第四下key,秒表输出第一个运动员到终点的时间,即按第二下key时记住的计数值;

(E)按第五下key,秒表清0,开始新的周期。

(4)画出秒表的状态转移图,标明各个状态的转移条件和输出。

(5)用VHDL完成秒表的设计。

(1). 设计原理:

该设计的状态转移图如下:

其中,S0:空闲状态,输出为0;

S1:第一个key按下后的状态,输出计数值;

S2:第二个key按下后的状态,输出计数值,并记下第一个运动员到达终点的时间;

S3:第三个key按下后的状态,输出第二个运动员所用时间;

S4:第四个key按下后的状态,输出第一个运动员所用时间;

S5:第五个key按下后的状态,输出清零。

(2). VHDL源程序如下:

LIBRARY ieee;

USE ieee.std_logic_1164.all;

USE ieee.std_logic_arith.all;

USE ieee.std_logic_unsigned.all;

ENTITY second IS

PORT(clk,key:in std_logic;

count:out integer range 0 to 59);

END second;

ARCHITECTURE second_arc OF second IS type state is(s0,s1,s2,s3,s4,s5);

signal present_state:state;

signal next_state:state;

BEGIN

h:PROCESS(key)

BEGIN

IF key='1' THEN

present_state<=next_state;

END IF;

END PROCESS h;

s:PROCESS(present_state)

BEGIN

CASE present_state IS

WHEN s0 => next_state<=s1;

WHEN s1 => next_state<=s2;

WHEN s2 => next_state<=s3;

WHEN s3 => next_state<=s4;

WHEN s4 => next_state<=s5;

WHEN s5 => next_state<=s1;

WHEN others => null;

END CASE;

END PROCESS s;

c:PROCESS(clk,present_state)

variable c1,c2:integer range 0 to 59;

BEGIN

IF clk'event and clk='1' THEN

case present_state is

when s0 => c1:=0;

c2:=0;

count<=0;

when s1 => c1:=c1+1;

c2:=c2+1;

count<=c1;

when s2 => c2:=c2+1;

count<=c2;

when s3 => count<=c2;

when s4 => count<=c1;

when s5 => c1:=0;

c2:=0;

count<=0;

when others=>null;

end case;

END IF;

END PROCESS c;

END second_arc;

(3). 仿真结果及其分析

仿真结果如下图示:

仿真结果分析:

10Hz,(实际应用中采用1Hz)。

仿真中clk时钟频率为6

由以上3副截图可以看出:在第一个计数周期内,按第一下key(2us)后,clk上升沿到来时,系统开始计数,并同时输出计数值;

第一个运动员到终点(23us)时按第二下key,秒表记住第一个运动员到终点的时间(23us-2us=21us),但还在继续计数并输出计数值;

第二个运动员到终点(30us)时按第三下key,停止计数,这时输出的计数值(28)就是第二个运动员用的时间(30us-2us=28us);

然后按第四下key,秒表输出第一个运动员到终点的时间(21),即按第二下key时记住的计数值;

按第五下key,秒表清0,开始新的周期。

此外,由图可见,present_state的变化发生在key=“1”且时钟上升沿来临时。其改变与状态转换图给出的一致。

二、自选题三层电梯控制器

1.实验任务

(1) 每层电梯入口处设有上下请求开关,电梯内设有乘客到达层次的停站请求开关。

(2) 设有电梯处所处位置指示装置及电梯运行模式(上升或下降)指示装置。

(3) 电梯每秒升(降)一层楼(在仿真中取1μs)。

(4) 电梯到达有停站请求的楼层后,经过1s(在仿真中取1μs)电梯门打开,开门指示灯亮,开门4s(在仿真中取2μs)后,电梯门关闭(开门指示灯灭),电梯继续运行,直

至执行完最后一个请求信号后停在当前层。

(5) 能记忆电梯内外的所有请求信号,并按照电梯运行规则次序响应,每个请求信号保留至执行后清除。

(6) 电梯运行规则:当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直至最后一个上楼请求执行完毕,如更高层有下楼请求,则直接升到下楼请求的最高楼接客,然后便进入下降模式。当电梯处于下降模式时,则与上升模式相反。

(7) 电梯初始状态为一层开门。

总体框图如下图所示:

2.模块及模块功能

模块veryharrd见下图。将电梯的状态划分为四个:一层状态(c1),二层状态(c2),三层状态(c3),开门状态(kai)。对每一个状态分析其所有的可能。

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY veryhardd IS

PORT(up1,up2,clk,down2,down3,k1,k2,k3:in std_logic;

--up1,up2:是一层、二层的上升要求

--down1,down2:是二层、三层的下降要求

--k1,k2,k3:是在一层、二层、三层停电梯的要求

--up1,up2,clk,down2,down3,k1,k2,k3均与键开关相连

site:out std_logic_vector(3 downto 1); --site:显示电梯现在在哪一层

a1,a2,a3:out std_logic; --a1,a2,a3:显示在哪一层有停电梯要求

mode,door:out std_logic);

--door:显示现在门的状态("0"表示关,"1"表示开)

--mode:显示电梯现在的运行模式(上升或下降)

--a1,a2,a3,door:均与发光二极管相连

END veryhardd;

ARCHITECTURE veryhardd_arc OF veryhardd IS

type state_type is (c1,c2,c3,kai);

BEGIN

PROCESS (clk)

variable upl,downl,tingl,cengl:std_logic_vector(3 downto 1);

variable mo,x,y,z:std_logic;

variable cnt1,cnt2:integer;

variable state:state_type;

BEGIN

if clk'event and clk='1' then

if up1='0' then

upl(1):='1';

end if;

if up2='0' then

upl(2):='1';

end if;

if down3='0' then

downl(3):='1';

end if;

if down2='0' then

downl(2):='1';

end if;

if k1='0' then

tingl(1):='1';

end if;

if k2='0' then

tingl(2):='1';

end if;

if k3='0' then

tingl(3):='1';

end if;

if cnt1<10 then --每秒升降一层楼(在仿真中取1 s)

cnt1:=cnt1+1;

else

case state is

when c1 => cengl:="001";

mo:='0'; --电梯在一层转为上升模式

if upl/="000" or downl/="000" or tingl/="000" then

多功能定时器课程设计

摘要 在日常生活照,555定时器的应用非常广泛,我们常常用到定时控制。在早期运用的是模拟电路设计的,它的准确性和精度都不是很理想。然而现在基本上都是运用数字技术。定时器可以控制一些常用电器,也可以构成复杂的工业过程控制系统。它的功能强大,体积小且灵活,配以适当的芯片可以实现许多功能。随着电子技术的飞速发展,家用电器逐渐增多,不同的设备需要实现不同的功能,需要自己的控制器,设计十分不便。根据这种情况,本设计设计了一个多功能定时器,可以对许多电器进行定时。这种具有智能化的产品有效的减轻了人们的劳动,带人们走进智能化的时代,为家庭数字化的实现提供了可能。 关键词:555定时器;多功能;电器

目录 1方案论证 (1) 1.1方案的比较环节 (1) 1.2实验方案 (1) 2原理及技术指标 (2) 2.1实验原理 (2) 2.2实验技术指标 (2) 3单元电路设计及参数计算 (3) 3.1单元电路设计 (3) 3.1.1控制电路 (3) 3.1.2可控脉冲发生电路 (3) 3.1.3延时控制电路 (5) 3.1.4电源电路 (6) 3.2实验的连接与处理 (7) 3.2.1各部件实现功能 (7) 3.2.2实验处理 (8) 4电路图 (9) 4.1电路图 (9) 5设计小结 (10) 5.1个人感悟 (10) 5.2遇到问题及解决途径 (10) 参考文献 (11) 附录 (12)

1方案论证 1.1 方案的比较环节 方案一:通过51单片机进行编程设计一个电路系统 方案二:采用555定时器组成的多谐振荡器产生时钟脉冲。。 方案三:采用晶振产生时钟脉冲。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定、精确的单频振荡。 比较分析:三种方案相比较,方案一需要进行编程,而我们无法在短时间内编写好完整的程序,可实现性不强。方案二:555定时器芯片是一种广泛应用的中规模集成电路,只要外围配以几个适当的阻容元件,就可以构成无稳态触发器、单稳态触发器以及双稳态触发器等应用电路,以此为基础可设计各种实用的电路形式。而方案三的晶振的作用是为系统提供基本的时钟信号,但采用晶振需要较多的元器件,并且电路图比较麻烦,而且也不能达到锻炼思考能力、电路分析的目的。 因此,通过比较实用性,合理性,选择方案二。 1.2 实验方案 电源电路采用桥式整流电路从220VAC到5VDC的整流,可控脉冲发生器采用555多谐振荡器产生秒脉冲,延时电路由6级74LS160芯片组成前两级为秒脉冲触发,不参与判断,后四级为分钟脉冲触发,用74LS160控制置位端的A,B,C,D门一个脉冲开关控制此计数器的触发连接74LS21,可通过选通来确定所需要的输出位,当满足条件就会输出一个信号通过继电器的闭合控制用电器开关。

用VHDL实现数字时钟的设计[1]

收稿日期:2007-06-04 第一作者 刘竹林 男 27岁 助教 用V HDL 实现数字时钟的设计 刘竹林 李晶骅 (十堰职业技术学院电子工程系,湖北十堰442000) 摘 要:以一款数字钟设计为例,较详细的介绍了如何用VHDL 语言设计数字电路,并给出了部分程序、仿真 波形图,并在MAX +plusII 中进行编译、仿真、下载。由此说明利用VHDL 开发数字电路的优点。 关键词:VHDL ;设计;数字钟;应用电路中图分类号:TN953 文献标识码:A 0 引言 VHDL 硬件描述语言在电子设计自动化(EDA )中扮演 着重要的角色,它的出现极大的改变了传统的设计方法、设 计过程乃至设计观念。由于采用了“自顶向下” (Top 2Down )的全新设计方法,使设计师们摆脱了大量的辅助设计工作, 而把精力集中于创造性的方案与概念构思上,用新的思路来发掘硬件设备的潜力,从而极大地提高了设计效率,缩短了产品的研制周期。 这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证。然后用综合优化工具生成具体门电路的网表,其对应的物理实现级可以是印刷电路板或专用集成电路。由于设计的主要仿真和调试过程是在高层次上完成的,这不仅有利于早期发现结构设计上的错误,避免设计工作的浪费,而且也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。 1 用V HDL 设计一款数字钟 我们设计的数字时钟原理框图如图1。其基本功能划 分为:计数模块(包括秒、分、时)、译码模块、扫描显示控制模块。计数模块由两个60进制计数器和一个24进制计数器组成,分别对秒、分、小时进行计数,当计数到23点59分59秒的时候,即一天结束,计数器清零, 新的一天重新开始计数。 图1 数字时钟原理框图 秒计数器的计数时钟信号为1Hz 的标准信号,可以由系 统板上提供的4MHz 信号通过222分频得到。秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计数信号。设计一个同时显示时、分、秒6个数字的数字钟,则需要6个七段显示器。若同时点亮这6个七段显示器,则电路中会产生一个比较大的电流,很容易造成电路烧坏,我们通过扫描电路来解决这一问题,通过产生一个扫描信号CS (0)-CS (5)来控制6个七段显示器,依次点亮6个七段显示器,也就是每次只点亮一个七段显示器。只要扫描信号CS (0)-CS (5)的频率超过人的眼睛视觉暂留频率24Hz 以上,就可以达到尽管每次点亮单个七段显示器,却能具有6个同时显示的视觉效果,而且显示也不致闪烁抖动。 其中6位扫描信号一方面控制七段显示器依次点亮,一方面控制6选1选择器输出相应显示数字。 2 模块设计 2.1 VHDL 语言的基本结构 一个独立的设计实体通常包括:实体(EN TIT Y )、结构体(ARCHITECTURE )、配置(CONFIGURA TION )、包集合(PACKGE )、和库(L IBRAR Y )5个部分。其中实体用于描述所设计的系统的外部接口信号;构造体用于描述系统内部的结构和行为;建立输入和输出之间的关系;配置语句安装具体元件到实体—结构体对,可以被看作是设计的零件清单;包集合存放各个设计模块共享的数据类型、常数和子程序等;库是专门存放预编译程序包的地方。VHDL 程序设计基本结构如图2 。 图2 VHDL 程序设计基本结构 2.2 各模块的实现 2.2.1 计数模块(建立VHDL 语言的工程文件) 计数模块由两个60进制计数器和一个24进制计数器组成,分别对秒、分、小时进行计数。其VHDL 源程序相差不大由于篇幅有限,这里我们以秒模块的实现为例。程序如下: library ieee ; use ieee.std -logic -1164.all ;entity counter -60-bcd is 山西电子技术 2008年第1期 应用实践

数字逻辑课程设计(定时器)

一.内容摘要: 定时器的设计: 设计一个0~60分钟之内的定时器,定时开始的时候红指示灯亮,结束的时候绿指示亮,可以随意以分钟为单位,在六十分钟的范围内设定定时时间,随着定时的开始,显示器开始显示时间,即依次显示出0,1,2,3,4….直到定时结束,当定时结束的时候进行手动清零。首先设计一个秒脉冲发生器,一个计数电路,一个比较电路,然后对电路进行输出。当开始定时之前手动对要定时的时间进行预置数,然后运用秒脉冲发生器输入脉冲,用计数器对脉冲的个数进行计数,把编码器的数据与脉冲的个数通过数值比较器进行比较,最后按照要求进行红绿等输出表示定时的状态是正在进行定时,或者是已经定时结束,在定时的过程中显示定时的时间。 二.方案的论证与选择: 方案1 例如设计一个六十分钟的定时器,就需要六十进制的分钟计数器。设计秒脉冲发生器,当计数器完成六十分钟的记数时,就手动清零。需要设定其他的时间时, 只需将计数器的进制改变一下就行。这个方案只适用于特定的定时器,设定的时间 不变。如果本课设用此方案,就需要设计从1——60进制的计数器,工程量太大。 方案2, 设计一个定时器,可以在0~60分之间一分钟为单位任意可调,定时开始的时候红灯亮,定时结束的时候绿灯亮,定时结束之后手动清零,满足设计的要求,故本次课程设计中采用的是这种设计方案。

三.总设计思想框图: 总体的完整电路图: 就是将各个单元电路用导线连接起来,然后进行仿真处理,开始进行定时的时候红指示灯亮。图中所示的是定时为16分钟的定时仿真结果,完整的电路图。

2.5 V 图2 四.单元电路的设计与参数的计算 1.秒脉冲发生器的选择: (1)采用石英晶体的多谐振荡器,在RC环形振荡器电路中,接入RC可以获得较小 的频率,而且通过RC的调节可以调节频率,用于对频率稳定性要求比较高的电路,

基于VHDL的电子计时器的设计

EDA技术及应用课程设计 题目:基于VHDL的数字计时器 班级:电气1202班 姓名:李玉靖 学号:20121131080 指导老师:汪媛 (课程设计时间:2015年1月5日——2015年1月9日) 华中科技大学武昌分校

目录 1引言 (1) 1.1 EDA简介 (1) 1.2 VHDL简介 (2) 1.3 VHDL的特点 (3) 1.4 VHDL的设计结构 (4) 1.5 VHDL的设计步骤 (4) 2设计主要内容 (5) 3内部各功能模块 (6) 3.1六十进制计数模块 (6) 3.2二十四进制计数模块 (8) 3.3分频器模块 (10) 3.4LED显示模块 (11) 4顶层系统联调 (15) 5结语 (21) 6参考文献 (22) 7附录 (23)

1.引言 随着科学技术的迅猛发展,电子工业界经历了巨大的飞跃。集成电路的设计正朝着速度快、性能高、容量大、体积小和微功耗的方向发展。基于这种情况,可编程逻辑器件的出现和发展大大改变了传统的系统设计方法。可编程逻辑器件和相应的设计技术体现在三个主要方面:一是可编程逻辑器件的芯片技术;二是适用于可逻辑编程器件的硬件编程技术,三是可编程逻辑器件设计的EDA开发工具,它主要用来进行可编程逻辑器件应用的具体实现。在本实验中采用了集成度较高的FPGA 可编程逻辑器件, 选用了VHDL硬件描述语言和MAX + p lusⅡ开发软件。VHDL硬件描述语言在电子设计自动化( EDA)中扮演着重要的角色。由于采用了具有多层次描述系统硬件功能的能力的“自顶向下”( Top - Down)和基于库(L ibrary - Based)的全新设计方法,它使设计师们摆脱了大量的辅助设计工作,而把精力集中于创造性的方案与概念构思上,用新的思路来发掘硬件设备的潜力,从而极大地提高了设计效率,缩短 了产品的研制周期。MAX + p lusⅡ是集成了编辑器、仿真工具、检查/分析工具和优化/综合工具的这些所有开发工具的一种集成的开发环境,通过该开发环境能够很方便的检验设计的仿真结果以及建立起与可编程逻辑器件的管脚之间对应的关系。 1.1 EDA简介 20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL 完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射

课程设计-单片机定时器的设计

摘要 单片机是一种集成在电路芯片,是采用超大范畴集成电路技能把具有数据处理本事的中心处理器CPU 随机存储器RAM、只读存储器ROM、多种I/O 口和间断系统、定时器/计时器等成果(大要还包括表现驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完竣的计较机系统。单片机具有特点具有良好的性能价格比;低电压、低功耗;集成度高、体积小、可靠性高;控制成果强等优点。 计算机暂时中止正在执行的主程序,转去执行中断服务程序,并在中断服务程序执行完了之后能自动回到原主程序处继续执行,这个过程叫做“中断”。中断需要解决两个主要问题:一是如何从主程序转到中断服务程序;二是如何从中断服务程序返回主程序。 关键词:单片机,中断,延时

目录 1.设计目的 (1) 2.设计任务的内容和要求 (1) 3.设计原理 (1) 4.程序说明 (3) 5.心得体会 (6)

定时器试验 1.设计目的 (1)熟练运用汇编语言编程,并且掌握键盘查表来运行相应的功能 (2)熟悉启东硬件仿真系统,熟练应用该系统调试软件 (3)熟悉单片机应用系统的组成,并能运用程序控制外部流水灯 2.设计任务的内容和要求 (1)初始化定时器,使之采用定时器0,方式2,定时100us时间 (2)通过设置中断,产生总时间为1秒 (3)1秒时间到,控制发光二极管点亮 3.设计原理 在实际的控制系统中常要求有外部实时时钟,以实现定时或延时控制;还要求有外部计数器,以实现对外界事件进行计数。 MCS-51单片机由两个可编程定时/计数器(以下简称T/C)。T0,T1 T/C的核心是1个加1计数器,它的输入脉冲有两个来源:一个是外部脉冲源,另一个是系统机器周期(时钟振荡器经12分频以后的脉冲信号)。T0,T1是2 个16位寄存器。加1到满溢出产生中断 T0(TH0,TL0);8CH,8AH地址不连续 T1(TH1,TL1);8DH,8BH 都具有定时或者计数功能。 图一 图一有2个模拟的位开关,前者决定了T/C的工作状态:当开关处于上方时为定时状态,处于下方时为计数状态。工作状态的选择由特殊功能寄存器TMOD的C/T位来决定。C/T=0表示定时,C/T=1表示计数。 当T/C处于定时方式时,加1计数器在每个机器周期加1,因此,也可以把它看作在累计机器周期。由于一个机器周期包含12个振荡周期,所以它的计数速率是振荡频率的1/12。 如果主频12M,机器周期为1us,每1us定时寄存器完成1次加1操作。一旦振荡周期确定,机

基于VHDL的多功能数字钟设计报告

基于VHDL的多功能数字钟 设计报告 021215班 卫时章 02121451

一、设计要求 1、具有以二十四小时制计时、显示、整点报时、时间设置和闹钟的功能。 2、设计精度要求为1秒。 二、设计环境:Quartus II 三、系统功能描述 1、系统输入:时钟信号clk采用50MHz;系统状态及较时、定时转换的控制信号为k、set,校时复位信号为reset,均由按键信号产生。 2、系统输出:LED显示输出;蜂鸣器声音信号输出。 3、多功能数字电子钟系统功能的具体描述如下: (一)计时:正常工作状态下,每日按24h计时制计时并显示,蜂鸣器无声,逢整点报时。 (二)校时:在计时显示状态下,按下“k”键,进入“小时”待校准状态,若此时按下“set”键,小时开始校准;之后按下“k”键则进入“分”待校准状态;继续按下“k”键则进入“秒”待复零状态;再次按下“k”键数码管显示闹钟时间,并进入闹钟“小时”待校准状态;再次按下“k”键则进入闹钟“分”待校准状态;若再按下“k”键恢复到正常计时显示状态。若校时过程中按下“reset”键,则系统恢复到正常计数状态。 (1)“小时”校准状态:在“小时”校准状态下,显示“小时”的数码管以2Hz 闪烁,并按下“set”键时以2Hz的频率递增计数。 (2)“分”校准状态:在“分”校准状态下,显示“分”的数码管以2Hz闪烁,并按下“set”键时以2Hz的频率递增计数。 (3)“秒”校准状态:在“秒复零”状态下,显示“秒”的数码管以2Hz闪烁,并以1Hz的频率递增计数。 (4)闹钟“小时”校准状态:在闹钟“小时”校准状态下,显示“小时”的数码管以2Hz闪烁,并按下“set”键时以2Hz的频率递增计数。 (5)闹钟“分”校准状态:在闹钟“分”校准状态下,显示“分”的数码管以2Hz闪烁,并按下“set”键时以2Hz的频率递增计数。 (三)整点报时:蜂鸣器在“59”分钟的第“51”、“53”、“55”、“57”秒发频率为500Hz的低音,在“59”分钟的第“59”秒发频率为1000Hz的高音,结束时为整点。 (四)显示:采用扫描显示方式驱动4个LED数码管显示小时、分,秒由两组led灯以4位BCD 码显示。 (五)闹钟:闹钟定时时间到,蜂鸣器发出频率为1000Hz的高音,持续时间为60秒。 四、各个模块分析说明 1、分频器模块(freq.vhd) (1)模块说明:输入一个频率为50MHz的CLK,利用计数器分出 1KHz的q1KHz,500Hz的q500Hz,2Hz的q2Hz和1Hz的q1Hz。 (2)源程序: library ieee;

单片机课程设计篮球计时器

单片机课程设计篮 球计时器

绪论 篮球比赛中除了有总时间倒计时外,为了加快比赛的节奏,规则还要求进攻方在24秒内有一次投篮动作,否则视为违例。以下为一个篮球比赛计时器,该计时器采用按键操作、数码管显示,非常实用。此计时器也可作为其它球类比赛的计时器。 本课程设计介绍了一个基于单片机的篮球比赛计时器硬件设计,包括STC89C51, 2个八段共阳数码管显示、上电复位电路、时钟发生电路等基本模块的设计。其功能土要有:一场篮球比赛共分四节,每节12分:每次进攻为24秒,计时器的显示均为倒计时方式,24秒计时用两位数码管显示;所有的计时都要具有暂停、继续、复位;当球员的持球时间超过24秒时,24秒倒计时减为零且有蜂鸣器报警提示。本次课程设计是采用单片机C语言实现倒计时24秒篮球比赛计时器。

1系统工作原理 1.1 功能说明 随着信息时代的到来,电子技术在社会生活中发挥着越来越重要的作用,运用模电和数电知识设计的电子产品成为社会生活中不可缺少的一部分。在篮球比赛中,规定了球员的持球时间不能超过24秒,否则就犯规了。 大多数篮球计时器的主控芯片为AT89C51,采用12MHz晶振,P0.0-P0.7作数码显示端。24秒计时开始,A3为24秒复位开启键(投篮或交换控球时按下此键);A4为24秒计时停止键(有违例时按下此键); A5为24秒计时启动键;A6为总复位键。而此次我们设计的是1个简易篮球比赛计时器。 最简单的篮球球计时器是24秒倒计时计时器。也就是本次课程设计的课题。24秒篮球计时器要求设置外部操作开关,控制计数器的直接复位、启动和暂停,而且计时电路递减计时,每隔1秒钟,计时器减1,当计时器减0时,显示器上显示00,同时发出蜂鸣器报警信号。 1.2基本原理 24秒计时器的总体参考方案框图如图1所示,它包括秒脉冲发生器、计数器、译码显示电路、报警电路和辅助时序控制电路

单片机定时器设计

摘要 摘要 随着时代的进步,电子行业的发展,定时器的应用也越来越广泛,单片机以其强大的功能,成为许多功能电子产品的首选。本次电子定时器电路根据设计要求采用AT89C51单片机来实现最大99秒倒计时,采用两位数码管显示。文章的核心主要是硬件介绍及连接和软件编程两个大的方面。硬件电路主要包括AT89C51、晶振电路、数码管,发光二级管,按键。软件用汇编语言实现,主要包括主程序、倒计时、重启控制程序等软件模块。采用软硬件配合基本能实现设定定时时间倒计时功能,达到了设计的要求和目的。并在Proteus软件上进行了仿真和调试。 关键词 AT89C51单片机;定时器;倒计时

目录 摘要…………………………………………………………………………………………… 第一章绪论......................................................... 1.1定时器的发展................................................. 1.2 电子定时器的应用............................................... 1.3选题的目的和意义................................................ 1.4 本章小结 第二章单片机的基础知识 (3) 2.1单片机简介 (3) 2.2单片机的特点 (3) 2.3 本章小节 第三章功能实现及硬件介绍 (4) 3.1 设计功能实现 (4) 3.2 C51单片机引脚介绍 (9) 3.3时钟和复位电路 3.4数码管显示 (10) 3.5键盘 (12) 3.6电气原理图……………………………………………………… 3.7本章小结 第四章软件设计 (15) 4.1 程序流程图 (15) 4.2定时1秒设计 (16) 4.3重新启动 (17) 4.4程序 (17) 4.5 本章小结 结论................................................................ 参考文献............................................................ 致谢.........................................................................

vhdl课程设计(电子钟+闹铃)

数字钟的设计 一、系统功能概述 (一)、系统实现的功能: 1、具有“时”、“分”、“秒”的十进制数字显示(小时从00 ~ 23)。 2、具有手动校时、校分、校秒的功能。 3、有定时和闹钟功能,能够在设定的时间发出闹铃声。 4、能进行整点报时。从59分50秒起,每隔2秒发一次低音“嘟”的信号,连续5次, 最后一次为高音“嘀”的信号。 (二)、各项设计指标: 1、显示部分采用的6个LED显示器,从高位至低位分别显示时、分、秒。 2、有一个设置调闹钟定时时间、正常时间的按钮,选择调的对象。 3、有三个按钮分别调时、分、秒的时间。 4、有一个按钮用作开启/关闭闹铃。 5、另外需要两个时钟信号来给系统提供脉冲信号,使时钟和闹钟正常工作,分别为1Hz、 1kHz的脉冲。 二、系统组成以及系统各部分的设计 1、系统结构描述//要求:系统(或顶层文件)结构描述,各个模块(或子程序)的功能描述;(一)系统的顶层文件: 1、顶层文件图:(见下页) 2、各模块的解释: (1)、7个输入量clk_1khz、clk_1hz、key_slt、key_alarm、sec_set、min_set、hour_set:其中clk_1khz为闹铃模块提供时钟,处理后能产生“嘟”、“嘀”和变化的闹铃声音;clk_1hz为计时模块提供时钟信号,每秒计数一次;key_slt选择设置对象:定时或正常时间;key_alarm能够开启和关闭闹铃;sec_set、min_set、hour_set用于设置时间或定时,与key_slt相关联。各按键输出为脉冲信号。 (2)、CNT60_A_SEC模块: 这个模块式将clk_1hz这个时钟信号进行60进制计数,并产生一个分钟的触发信号。该模块能将当前计数值实时按BCD码的格式输出。将该输出接到两位LED数码后能时时显示秒的状态。通过alarm_clk可以选择设置对象为时间还是定时值。在设置时间模式上,key上的一个输入脉冲可以将clk的输入信号加一。在设置定时模式上,key 上的脉冲只修改定时值,不影响时间脉冲clk的状态。 同时该模块具有两个输出口out_do、out_di来触发整点报时的“嘟”、“嘀”声音。 (3)、CNT60_A_MIN模块: 这个模块式将CNT60_A_SEC的输出信号进行60进制计数,并产生一个时位的触发信号。该模块能将当前计数值实时按BCD码的格式输出。将该输出接到两位LED数码后能时时显示分的状态。通过alarm_clk可以选择设置对象为时间还是定时值。在设置时间模式上,key上的一个输入脉冲可以将clk的输入信号加一。在设置定时模式上,key上的脉冲只修改定时值,不影响时间脉冲clk的状态。 同时该模块具有三个输出口out_do、out_di、out_alarm来触发整点报时的“嘟”、“嘀”、闹铃声音。

定时器_课程设计

二○一四~二○一五学年第一学期 西安理工大学 高科学院 课程设计报告书 课程名称:微机原理课程设计 班级: 学号: 姓名: 指导教师:

二○一四年十二月二十日 课程设计任务书 2014 年秋季学期

目录 第1章方案论证 1.1 课程设计的目的和要求 (1) 1.2 总体设计 (1)

第2章硬件设计 (2) 2.1 AT89S51芯片概述 (2) 2.2 LED数码管显示器概述 (5) 2.3 其他元器件介绍及参数选择 (7) 第3章软件设计 (8) 3.1 程序框图 (8) 3.2 定时/计数器初值计算 (8) 3.3 软件程序…………………………………………………………………………………………………………………………………………………9第4章调试与仿真 4.1 Keil软件介绍及使用 (10) 4.2 Proteus软件介绍及使用 (10) 课程设计心得体会 (11) 参考文献 (11) 第一章方案论证 1.1课程设计的目的和要求 1.目的

课程设计是微机原理课程教学的最后一个环节,是对学生进行全面的系统的训练。进行课程设计可以让学生把学过的比较零碎的知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的热情,因此课程设计是必不可少的,是非常必要的。 课程设计是提高学生单片机技术应用能力以及文字总结能力的综合训练环节,是配合单片机课程内容掌握、应用得的专门性实践类课程。通过典型实际问题的实际,训练学生的软硬件的综合设计、调试能力以及文字组织能力,建立系统设计概念,加强工程应用思维方式的训练,同时对教学内容做一定的扩充。2.要求 利用T0产生1秒的定时,当1秒定时时间到,秒计时器价1。秒计时到60时,自动从0开始。 3. 目标 通过课程设计,使自己深刻理解并掌握基本概念,掌握单片机的基本应用程序设计及综合应用程序设计的方法。通过做一个综合性训练题目,达到对内容的消化、理解并提高解决问题的能力的目的。 1.2 总体设计 本设计由硬件设计和软件设计两部分组成,总电路如图1所示,硬件设计主要包括单片机芯片选择,数码管选择及晶振,电容,电阻等元器件的选择及其参数的确定;软件设计主要是实现60秒计数程序的编写,包括利用中断实现1秒的定时及60秒的计数。 图1:60秒计数总体电路设计

vhdl数字时钟设计

数字时钟设计 一、题目分析 1、功能介绍 1)具有时、分、秒计数显示功能,以24小时循环计时。 2)时钟计数显示时有LED灯的花样显示。 3)具有调节小时、分钟及清零的功能。 4)具有整点报时功能。 2、总体方框图 3、性能指标及功能设计 1)时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分——60进制计数,即从0到59循环计数,时钟——24进制计数,即从0到23循环计数,并且在数码管上显示数值。 2)时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来

一个脉冲,即计数一次。 3)清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位。 4)蜂鸣器在整点时有报时信号产生,蜂鸣器报警。产生“滴答.滴答”的报警声音。 5)LED灯在时钟显示时有花样显示信号产生。即根据进位情况,LED不停的闪烁,从而产生“花样”信号。 二、选择方案 1、方案选择 方案一:根据总体方框图及各部分分配的功能可知,本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。显示:小时采用24进制,而分钟均是采用6进制和10进制的组合。 方案二:根据总体方框图及各部分分配的功能可知,本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。显示:小时采用24进制,而分钟和秒均60进制。 终上所述,考虑到试验时的简单性,故我选择了方案二。 三、细化框图 根据自顶向下的方法以及各功能模块的的功能实现上述设计方案应系统细化框图:

课程设计--篮球24秒定时器的制作

随着电子技术的飞速发展,电子技术在社会生活中发挥越来越重要的作用,特别是各种竞技运动中,定时器成为检验运动员成绩的重要工具。 篮球是一项大众化的运动,现实生活中的比赛有很多规则,正规比赛中我们知道,在一次进攻中,一方队员只有24秒的进攻时间,超过这个时间则表示一次违例。本课程设计题目紧密联系生活实际,用简单的数字逻辑电路实现24秒减数计时器,每隔一秒计数一次直到减到零并发生光报警,计数器有置数功能,最初置数为24,并且有清零功能和暂停功能,使设计电路具有很好的实用价值; 计时器主要是由即使电路、控制电路、以及译码显示电路3个部分组成。电路结构简单,功能方便、快捷。 篮球24秒定时器的制作 结构设计与方案选择 本设计是以555构成震荡电路,由74LS192来充当计数器,构成NBA24秒倒计时电路。该电路简单,无需用到晶振,芯片都是市场上容易购得的。设计功能完善,能实现直接清零、启动和暂停/连续计时,还具有报警功能。 一、设计原理与电路 原理方框图图: 包括秒脉冲发生器、计数器、译码与显示电路、报警电路和控制电路(辅助时序控制电路)等五个部分组成。计时电路递减计时,每隔1秒钟,计时器减1其中计数器和控制电路是系统的主要部分。计数器完成24秒计时功能,而控制电路完成计数器的直接清零、启动计数器、暂停/连续计数、译码显示电路的显

示与灭灯、定时时间到报警等功能。当计时器递减计时到零(即定时时间到)时,显示器上显示00,同时发出光电报警信号。 二、电路 方案中采用两片192芯片,能实现暂停、清零、置数的功能。结构比较简单,开关3为清零控制端,开关2为置数端,开关1为暂停/继续开关。秒脉冲由555定时器构成。 它的工作原理是:只有当低位BO1端发出借位脉冲时,高位计数器才做减数器。当高低位全部变为零时,且CPD为0时置数端LD2=0,计数器完成置数,在CPD脉冲信号的作用下,计数器再次进入下一轮减计数。 秒脉冲发生器产生的信号是电路的时钟脉冲和定时标准,但本设计对此信号要求并不是太高,电路采用555集成电路或由TTL与非门组成的多谐振荡器的构成。 译码显示电路用74LS48和共阴极七段LED显示器组成。报警电路在实验中可用发光二极管代替。 三、单元电路的设计 1、进制计数器的设计 计数器选用集成电路74LS192是十进制可编码同步加法计数器,它有可逆计数功能,CPU、CPD分别是加计数器、减计数器的时钟脉冲输入端(上升沿触发)其中RD是异步清零端,高电平有效,PL是异步并行置数控制端(低电平有效)预置数据输入端包括P0,P1,P2,P3,其中最高端为P3。TCU为加法计数的进位输出端,TCD是减法计数的借位输出端,MR是并行数据输入端,Q3-Q0是输出端。 计数器选用中规模继承74LS192进行设计较为简便,74LS192是十进制可编程同步加/减计数功能。下图是74LS192外引线排列图与功能表:

vhdl数字电子钟的设计与实现

基于VHDL数字电子钟的设计与实现 摘要:本课程设计完成了数字电子钟的设计,数字电子钟是一种用数字显示秒、分、时的计时装置,由于数字集成电路技术的发展和采用了先进的石英技术,它使数字钟具有走时准确、性能稳定、携带方便等优点。数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活带来极大的方便。在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路的能力。 关键词:电子钟;门电路及单次按键;琴键开关

目录 第一章引言----------------------------------------------------------------1 1.1 课题的背景、目的------------------------------------------1 1.2 课程设计的内容------------------------------------------1 第二章EDA与VHDL简介--------------------------------------------------2 2.1 EDA的介绍---------------------------------------------2 2.2 VHDL的介绍--------------------------------------------3 2.2.1 VHDL的用途与优点-----------------------------------------------------------------3 2.2.2 VHDL的主要特点---------------------------------------------------------------------- 2.2.3 用VHDL语言开发的流程------------------------------------------------------------ 第三章数字电子钟的设计方案------------------------------------------6 3.1秒脉冲发生器--------------------------------------------7 3.2可调时钟模块--------------------------------------------8 3.3校正电路------------------------------------------------8 3.4闹铃功能------------------------------------------------10 3.5日历系统------------------------------------------------11 第四章结束语---------------------------------------------------------------13 4.1致谢----------------------------------------------------14 4.2参考文献------------------------------------------------15

单片机课程设计--定时器

单片机课程设计--定时器

题目名称:定时器时钟数码管显示姓名: 班级: 学号: 日期:2012年6月29日

单片机时钟 1.摘要: 时钟是人类生活中必不可少的的工具,本设计从日常生活中的事物入手,通过对时钟计时器的设计,让我们认识到单片机已经深入到我们生活的每个领域,该设计不仅可以锻炼我们的动手能力,而且可以加深我们对单片机的认识和激发我们队位置科学领域的探索。 利用单片机实现教学数字时钟计时的主要功能,采用独立式按键进行时间调整,其中AT89C52是核心元件同是采用数码管LED动态显示“时”,“分”,“秒”的现代计时装置。与传统机械表相比,它具有走时精确,显示直观等特点。它的计时周期为24小时,显满刻度为“23时59分59秒”。该系统同时具有硬件设计简单,工作稳定性高,价格低廉等优点。 1.1. 关键词 AT89C52 、LED显示 1.2. 功能要求 1)七位数码管显示时、分、秒,以24小时运算 2)可实现时分调整 1.3. 主要硬件元器件的介绍 1.3.1 51单片机芯片 根据初步这几方案的分析,设计这样一个简单的应用系统,可以选择带有EPROM的单片机,应用程序直接存储在片内,不用在外部扩展程序存储器,电路可以简化。该系统的设计我们采用8051芯片。 下图所示为双列直插式封装的8051AH芯片的管脚图,功能如下:

8051AH芯片的管脚图 1.电源管脚 Vcc(40脚):接+5V;Vss(20)脚:接地。 2.时钟信号管脚 X1(19脚), X2(18脚):外部时钟信号的两个管脚。 3.控制线 1)RESET(9脚):用作复位输入端。 2)EA’/VP(31脚):EA’为访问内部或外部程序存储器的选择信号。对片内EPROM编程时,此管脚(作VP)接入21V编程电压。 3)ALE/P’(30脚):当访问外部存储器时,ALE信号的负跳变将P0口上的低8位地址送入锁存器。当对内EPROM编程时,该管脚(P’)用于输入编程脉冲。 4)PSEN’(29脚):外部程序存储器读选通控制信号。 4.输入/输出口线 1)P0口(32-39脚):8路漏极开路型双向并行I/O口。在访问外部存储器时,P0口作为低8位地址/数据总线复用口,通过分时操作,先传送低8位地址,利用ALE信号的下降沿将地址锁存,然后作为8位数据总线使用,用来传送8位数据。在对片内EPROM编程时,P0口接受指令代码;而在内部程序校验时,则输出指令代码,并要求外接上拉电阻。外部不拓展位单片应用,则作双向I/O口用,P0口能以吸收电流的方式驱动8个LSTTL 负载。 2)P1口(1-8脚):具有内部上拉电阻的8位准双向I/O口。在对片内EPROM编程及校验时,它接收低8位地址。P1口能驱动4个LETTL负载。

定时器_课程设计

二○一四~二○一五学年第一学期 理工大学 高科学院 课程设计报告书 课程名称:微机原理课程设计 班级: 学号: 姓名: 指导教师:

二○一四年十二月二十日课程设计任务书

目录 第1章方案论证 1.1 课程设计的目的和要求 (1) 1.2 总体设计 (1)

第2章硬件设计 (2) 2.1 AT89S51芯片概述 (2) 2.2 LED数码管显示器概述 (5) 2.3 其他元器件介绍及参数选择 (7) 第3章软件设计 (8) 3.1 程序框图 (8) 3.2 定时/计数器初值计算 (8) 3.3 软件程序…………………………………………………………………………………………………………………………………………………9第4章调试与仿真 4.1 Keil软件介绍及使用 (10) 4.2 Proteus软件介绍及使用 (10) 课程设计心得体会 (11) 参考文献 (11) 第一章方案论证 1.1课程设计的目的和要求 1.目的

课程设计是微机原理课程教学的最后一个环节,是对学生进行全面的系统的训练。进行课程设计可以让学生把学过的比较零碎的知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的热情,因此课程设计是必不可少的,是非常必要的。 课程设计是提高学生单片机技术应用能力以及文字总结能力的综合训练环节,是配合单片机课程容掌握、应用得的专门性实践类课程。通过典型实际问题的实际,训练学生的软硬件的综合设计、调试能力以及文字组织能力,建立系统设计概念,加强工程应用思维方式的训练,同时对教学容做一定的扩充。 2.要求 利用T0产生1秒的定时,当1秒定时时间到,秒计时器价1。秒计时到60时,自动从0开始。 3. 目标 通过课程设计,使自己深刻理解并掌握基本概念,掌握单片机的基本应用程序设计及综合应用程序设计的方法。通过做一个综合性训练题目,达到对容的消化、理解并提高解决问题的能力的目的。 1.2 总体设计 本设计由硬件设计和软件设计两部分组成,总电路如图1所示,硬件设计主要包括单片机芯片选择,数码管选择及晶振,电容,电阻等元器件的选择及其参数的确定;软件设计主要是实现60秒计数程序的编写,包括利用中断实现1秒的定时及60秒的计数。 图1:60秒计数总体电路设计

数字时钟设计VHDL

实验十七数字时钟 实验目的 设计一个可以计时的数字时钟,其显示时间范围是00:00:00~23:59:59,且该时钟具有暂停计时、清零等功能。 实验器材 1、SOPC实验箱 2、计算机(装有Quartus II 7.0软件) 实验预习 1、了解时钟设计原理和各主要模块的设计方法。 2、提前预习,编写好主模块的VHDL程序。 实验原理 数字时钟框图如图17.1所示,一个完整的时钟应由4部分组成:秒脉冲发生电路、计数部分、译码显示部分和时钟调整部分。 1、秒脉冲发生:一个时钟的准确与否主要取决秒脉冲的精确度。可以设计分频电路对系统时钟50MHz进行50000000分频从而得到稳定的1Hz基准信号。定义一个50000000进制的计数器,将系统时钟作为时钟输入引脚clk,进位输出即为分频后的1Hz信号。 2、计数部分:应设计1个60进制秒计数器、1个60进制分计数器、1个24进制时计数器用于计时。秒计数器应定义clk(时钟输入)、rst(复位)两个输入引脚,Q3~Q0(秒位)、Q7~Q4(十秒位)、Co(进位位)9个输出引脚。分、时计数器类似。如需要设置时间可再增加置数控制引脚Set和置数输入引脚d0~d7。 3、译码显示部分:此模块应定义控制时钟输入、时分秒计数数据输入共25个输入引脚;8位显示码输出(XQ7~XQ0)、6位数码管选通信号(DIG0~DIG5)共14个输出引脚。在时钟信号的控制下轮流选择对十时、时、十分、分、十秒、秒输入信号进行译码输出至XQ7~XQ0,并通过DIG0~DIG5输出相应的选通信号选择数码管。每位显示时间控制在1ms 左右。时钟信号可由分频电路引出。 4、各模块连接方式如图17.1所示。 图17.1 数字时钟框图

双路定时器课程设计

单片机原理与接口技术B 课程设计 双路定时器设计 所在学院:信息工程学院 专业名称: 通信工程09-2 学生姓名:任庆芳王媛媛梁芳孙泉指导教师:葛振 2012 年6月

目录 一题目 (1) 二设计任务 (1) 三设计思路?1 基本设计思路?1 (一)硬件电路设计?1 1.单片机的选择 (1) 2..LED显示电路 (2) LED数码显示器简介?2 LED数码显示器的结构与原理?2 LED数码显示器显示方式 (2) (二).软件设计?4 (三).程序设计 (5) 四实验源程序 (6) 五设计体会 (14) 六参考文献?15

三、题目:双路定时器设计 四、设计任务 1、以MCS—51系列单片机为核心器件,组成一个双路定时器系统 2、显示器由6位LED数码管组成,分别显示时、分、秒 3、用于棋类比赛,对两选手的思考时间分别计时 4、将一开关与P3.3相连,当开关置低电平时,为甲选手思考时间,当开关置高电平时,为乙选手思考时间,两个时间各自累加 五、设计思路 (一)、基本设计思路 (1)本课题设计关键是必须统计好二个时间,第一个是甲选手思考时间,第二个是,乙选手思考时间 (2)计时单元由单片机内部的定时/计数器0来实现 (3)时间显示由6段LED数码管,动态扫描方式 (4)LED数码管的段码输入,由并行端口P1低四位产生 (5)LED数码管的位码输入,由并行端口P1高四位产生 (6)通过一个开关来控制双方计时的转换 (7)时间调整通过接入按键电路来实现 (二)、硬件电路设计 1、单片机选择 根据初步设计方案的分析,设计这样一个应用系统,可选择带有EPROM的单片机,应用程序直接存储在片内,不用外部扩展程序存储器,电路可简化,可选用INTEL公司的8051芯片.

相关文档