基于VHDL语言的多功能数字钟设计Word文件下载.docx

上传人:b****6 文档编号:16228391 上传时间:2022-11-21 格式:DOCX 页数:49 大小:1.23MB
下载 相关 举报
基于VHDL语言的多功能数字钟设计Word文件下载.docx_第1页
第1页 / 共49页
基于VHDL语言的多功能数字钟设计Word文件下载.docx_第2页
第2页 / 共49页
基于VHDL语言的多功能数字钟设计Word文件下载.docx_第3页
第3页 / 共49页
基于VHDL语言的多功能数字钟设计Word文件下载.docx_第4页
第4页 / 共49页
基于VHDL语言的多功能数字钟设计Word文件下载.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

基于VHDL语言的多功能数字钟设计Word文件下载.docx

《基于VHDL语言的多功能数字钟设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于VHDL语言的多功能数字钟设计Word文件下载.docx(49页珍藏版)》请在冰豆网上搜索。

基于VHDL语言的多功能数字钟设计Word文件下载.docx

采用了74LS系列中小规模集成芯片。

使用了RS触发器的校时电路。

总体方案设计由主体电路和扩展电路两大部分组成。

其中主体电路完成数字钟的基本功能,扩展电路完成数字钟的扩展功能。

论文安排如下:

1、绪论阐述研究电子钟所具有的现实意义。

2、设计内容及设计方案论述电子钟的具体设计方案及设计要求。

3、单元电路设计、原理及器件选择说明电子钟的设计原理以及器件的选择,主要从石英晶体振荡器、分频器、计数器、显示器和校时电路五个方面进行说明。

4、绘制整机原理图该系统的设计、安装、调试工作全部完成。

二、设计内容及设计方案

(一)设计内容要求

1、设计一个有“时”、“分”、“秒”(23小时59分59秒)显示且有校时功能的电子钟。

2、用中小规模集成电路组成电子钟,并在实验箱上进行组装、调试。

3、画出框图和逻辑电路图。

4、功能扩展:

(1)闹钟系统

(2)整点报时。

在59分51秒、53秒、55秒、57秒输出750Hz音频信号,在59分59秒时,输出1000Hz信号,音像持续1秒,在1000Hz音像结束时刻为整点。

(3)日历系统。

(二)设计方案及工作原理

数字电子钟的逻辑框图如图1所示。

它由石英晶体振荡器、分频器、计数器、译码器显示器和校时电路组成。

振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。

秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。

计数器的输出分别经译码器送显示器显示。

计时出现误差时,可以用校时电路校时、校分。

 

图1数字电子钟逻辑框图

三、单元电路设计、原理及器件选择

(一)石英晶体振荡器

1、重要概念的解释

(1)反馈:

将放大电路输出量的一部分或全部,通过一定的方式送回放大电路的输入端。

(2)耦合:

是指信号由第一级向第二级传递的过程。

2、石英晶体振荡器的具体工作原理

石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整。

它被广泛应用于彩电、计算机、遥控器等各类振荡电路中。

它还具有压电效应:

在晶体某一方向加一电场,晶体就会产生机械变形;

反之,若在晶片的两侧施加机械压力,则在晶片相应的方向上将产生电场,这种物理现象称为压电效应。

在这里,我们在晶体某一方向加一电场,从而在与此垂直的方向产生机械振动,有了机械振动,就会在相应的垂直面上产生电场,从而使机械振动和电场互为因果,这种循环过程一直持续到晶体的机械强度限制时,才达到最后稳定,这种压电谐振的频率即为晶体振荡器的固有频率。

用反相器与石英晶体构成的振荡电路如图2所示。

利用两个非门G1和G2自我反馈,使它们工作在线性状态,然后利用石英晶体JU来控制振荡频率,同时用电容C1来作为两个非门之间的耦合,两个非门输入和输出之间并接的电阻R1和R2作为负反馈元件用,由于反馈电阻很小,可以近似认为非门的输出输入压降相等。

电容C2是为了防止寄生振荡。

例如:

电路中的石英晶体振荡频率是4MHz时,则电路的输出频率为4MHz。

图2石英晶体振荡电路

(二)分频器

1、8421码制,5421码制

用四位二进制码的十六种组合作为代码,取其中十种组合来表示0-9这十个数字符号。

通常,把用四位二进制数码来表示一位十进制数称为二-十进制编码,也叫做BCD码,见表1。

表1

8421码5421码

000000000

100010001

200100010

300110011

401000100

501011000

601101001

701111010

810001011

910011100

2、分频器的具体工作原理

由于石英晶体振荡器产生的频率很高,要得到秒脉冲,需要用分频电路。

例如,振荡器输出4MHz信号,通过D触发器(74LS74)进行4分频变成1MHz,然后送到10分频计数器(74LS90,该计数器可以用8421码制,也可以用5421码制),经过6次10分频而获得1Hz方波信号作为秒脉冲信号。

(见图3)

图3分频电路

3、图中标志的含义

CP——输入的脉冲信号

C0——进位信号

Q——输出的脉冲信号

(三)计数器

秒脉冲信号经过6级计数器,分别得到“秒”个位、十位,“分”个位、十位以及“时”个位、十位的计时。

“秒”、“分”计数器为60进制,小时为24进制。

1、60进制计数器

(1)计数器按触发方式分类

计数器是一种累计时钟脉冲数的逻辑部件。

计数器不仅用于时钟脉冲计数,还用于定时、分频、产生节拍脉冲以及数字运算等。

计数器是应用最广泛的逻辑部件之一。

按触发方式,把计数器分成同步计数器和异步计数器两种。

对于同步计数器,输入时钟脉冲时触发器的翻转是同时进行的,而异步计数器中的触发器的翻转则不是同时。

(2)60进制计数器的工作原理

“秒”计数器电路与“分”计数器电路都是60进制,它由一级10进制计数器和一级6进制计数器连接构成,如图4所示,采用两片中规模集成电路74LS90串接起来构成的“秒”、“分”计数器。

图460进制计数电路

IC1是十进制计数器,QD1作为十进制的进位信号,74LS90计数器是十进制异步计数器,用反馈归零方法实现十进制计数,IC2和与非门组成六进制计数。

74LS90是在CP信号的下降沿翻转计数,QA1和QC2相与0101的下降沿,作为“分”(“时”)计数器的输入信号,通过与非门和非门对下一级计数器送出一个高电平1(在此之前输出的一直是低电平0)。

QB2和QC2计数到0110,产生的高电平1分别送到计数器的清零R0

(1),R0

(2),74LS90内部的R0

(1)和R0

(2)与非后清零而使计数器归零,此时传给下一级计数器的输入信号又变为低电平0,从而给下一级计数器提供了一个下降沿,使下一级计数器翻转计数,在这里IC2完成了六进制计数。

由此可见IC1和IC2串联实现了六十进制计数。

其中:

74LS90——可二/五分频十进制计数器

74LS04——非门

74LS00——二输入与非门

2、24进制计数器

小时计数电路是由IC5和IC6组成的24进制计数电路,如图5所示。

当“时”个位IC5计数输入端CP5来到第10个触发信号时,IC5计数器自动清零,进位端QD5向IC6“时”十位计数器输出进位信号,当第24个“时”(来自“分”计数器输出的进位信号)脉冲到达时,IC5计数器的状态为“0100”,IC6计数器的状态为“0010”,此时“时”个位计数器的QC5和“时”十位计数器的QB6输出为“1”。

把它们分别送到IC5和IC6计数器的清零端R0

(1)和R0

(2),通过7490内部的R0

(1)和R0

(2)与非后清零,从而完成24进制计数。

图524进制计数电路

(四)译码与显示电路

1、显示器原理(数码管)

数码管是数码显示器的俗称。

常用的数码显示器有半导体数码管,荧光数码管,辉光数码管和液晶显示器等。

本设计所选用的是半导体数码管,是用发光二极管(简称LED)组成的字形来显示数字,七个条形发光二极管排列成七段组合字形,便构成了半导体数码管。

半导体数码管有共阳极和共阴极两种类型。

共阳极数码管的七个发光二极管的阳极接在一起,而七个阴极则是独立的。

共阴极数码管与共阳极数码管相反,七个发光二极管的阴极接在一起,而阳极是独立的。

当共阳极数码管的某一阴极接低电平时,相应的二极管发光,可根据字形使某几段二极管发光,所以共阳极数码管需要输出低电平有效的译码器去驱动。

共阴极数码管则需输出高电平有效的译码器去驱动。

2、译码器原理(74LS47)

译码为编码的逆过程。

它将编码时赋予代码的含义“翻译”过来。

实现译码的逻辑电路成为译码器。

译码器输出与输入代码有唯一的对应关系。

74LS47是输出低电平有效的七段字形译码器,它在这里与数码管配合使用,表2列出了74LS47的真值表,表示出了它与数码管之间的关系。

表2

输入输出显示数字符号

LT(——)RBI(——-)A3A2A1A0BI(—)/RBO(———)

a(—)b(—)c(—)d(—)e(—)f(—)g(—)

110000100000010

1X0001110011111

1X0010100100102

1X0011100001103

1X0100110011004

1X0101101001005

1X0110111000006

1X0111100011117

1X1000100000008

1X1001100011009

XXXXXX01111111熄灭

10000001111111熄灭

0XXXXX100000008

(1)LT(——):

试灯输入,是为了检查数码管各段是否能正常发光而设置的。

当LT(——)=0时,无论输入A3,A2,A1,A0为何种状态,译码器输出均为低电平,若驱动的数码管正常,是显示8。

(2)BI(—):

灭灯输入,是为控制多位数码显示的灭灯所设置的。

BI(—)=0时。

不论LT(——)和输入A3,A2,A1,A0为何种状态,译码器输出均为高电平,使共阳极数码管熄灭。

(3)RBI(——-):

灭零输入,它是为使不希望显示的0熄灭而设定的。

当对每一位A3=A2=A1=A0=0时,本应显示0,但是在RBI(——-)=0作用下,使译码器输出全为高电平。

其结果和加入灭灯信号的结果一样,将0熄灭。

(4)RBO(———):

灭零输出,它和灭灯输入BI(—)共用一端,两者配合使用,可以实现多位数码显示的灭零控制。

3、译码器与显示器的配套使用

译码是把给定的代码进行翻译,本设计即是将时、分、秒计数器输出的四位二进制数代码翻译为相应的十进制数,并通过显示器显示,通常显示器与译码器是配套使用的。

我们选用的七段译码驱动器(74LS47)和数码管(LED)是共阳极接法(需要输出低电平有效的译码器驱动)。

译码显示电路如图6所示。

图6译码显示电路

(五)校时电路

1、RS触发器(见图7)

图7基本RS触发器

R(—)S(—)

QQ(—)

说明

01

10

11

000

1

0或1

0

1或0

1置0

置1

保持原来状态

不正常状态,0信号消失后,触发器状态不定

2、无震颤开关电路

无震颤开关电路的原理:

(见图8)当开关K的刀扳向1点时,S(—)=0,R(—)=1,触发器置1。

S(—)端由于开关K的震颤而断续接地几次时,也没有什么影响,触发器置1后将保持1状态不变。

因为K震颤只是使S(—)端离开地,而不至于使R(—)端接地,触发器可靠置1。

当开关K从S(—)端扳向R(—)端时,有同样的效果,触发器可靠置0。

从Q端或Q(—)端反映开关的动作,输出电平是稳定的。

3、校时电路的实现原理

当电子钟接通电源或者计时发现误差时,均需要校正时间。

校时电路分别实现对时、分的校准,由于4个机械开关具有震颤现象,因此用RS触发器作为去抖动电路。

采用RS基本触发器及单刀双掷开关,闸刀常闭于2点,每搬动一次产生一个计数脉冲,实现校时功能,电路如图8所示。

图8校时电路

(六)调试

毕满清等.电子技术实验与课程设计.北京:

机械工业出

版社,1995.131~132

这本书上很全

-=============================================================================================================================================================================================================、

时钟vhdl 

vhdl与数字电路设计 

vhdl数字系统设计 

vhdl数字钟程序 

数字频率计vhdl

vhdl数字钟 

vhdl数字钟设计 

数字锁相环vhdl 

数字秒表vhdl

我们做实验要用把程序发到这里算了`无错无警告

一、设计目的

1.掌握各类计数器及将它们相连的方法;

2.掌握多个数码管动态显示的原理与方法;

3.掌握用FPGA技术的层次化设计方法;

4.进一步掌握用VHDL硬件描述语言的设计思想;

5.了解有关数字系统的设计。

二、设计要求

基本要求:

1、24小时计数显示;

2、具有校时功能(时,分);

附加要求:

1、实现闹钟功能(定时,闹响);

三、源代码

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityszzis

port(clk:

instd_logic;

clk1:

md1:

md2:

instd_logic_vector(1downto0);

speak:

outstd_logic;

dout:

outstd_logic_vector(6downto0);

selout:

outstd_logic_vector(2downto0));

endszz;

architectureoneofszzis

signalsel:

std_logic_vector(2downto0);

signalhou1:

std_logic_vector(3downto0);

signalhou2:

signalmin1:

signalmin2:

signalseth1:

signalseth2:

signalsetm1:

signalsetm2:

signalsec1:

signalsec2:

signalh1:

signalh2:

signalm1:

signalm2:

signals1:

signals2:

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

begin

----------------------------------------------模6计数

choice:

process(clk1)

ifclk1'

eventandclk1='

1'

then

ifsel="

101"

sel<

="

000"

;

else

=sel+1;

endif;

endprocesschoice;

-----------------------------------------------小时十位

h110:

process(clk,hou2,min1,min2,sec1,sec2,md1,md2)

ifclk'

eventandclk='

if(hou1="

0010"

andhou2="

0011"

)and(min1="

0101"

andmin2="

1001"

)and(sec1="

andsec2="

) 

hou1<

0000"

elsifhou1="

andhou2="

andmd1='

0'

andmd2="

01"

then--当时间为23点且处于校时状态时

elsif(hou2="

and(min1="

and

sec2="

))or(hou2="

=hou1+1;

endprocessh110;

-----------------------------------------------小时个位

h220:

process(clk,min1,min2,sec1,sec2,md1,md2,hou1)

)then

hou2<

elsifhou2="

)or(hou1="

--md<

='

elsif((min1="

))or(md1='

=hou2+1;

--speak<

=clk;

endprocessh220;

-----------------------------------------------分钟十位

m110:

process(clk,min2,sec1,sec2,md1,md2)

if(min1="

)then

min1<

elsifmin1="

andmin2="

and(md1='

00"

)then

elsif(min2="

and(sec1="

))or(min2="

=min1+1;

--endif;

endprocessm110;

----------------------------------------------分钟个位

m220:

process(clk,sec1,sec2,md1,md2)

ifmin2="

min2<

elsifmin2="

else 

if(sec1="

)or(md1='

=min2+1;

endprocessm220;

---------------------------------------------秒十位

s110:

process(clk)

if

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 销售营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1