电子钟毕业设计[VHDL设计报告]

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

题目:多功能数字钟

姓名:

学号:

指导老师:

设计时间:

一、      VHDL的发展

硬件描述语言HDL是一种用形式化方法描述数字电路和系统的语言。利用这种语言,数字电路系统的设计可以从上层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用电子设计自动化(EDA)工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下去,再用专用集成电路ASIC或现场可编程门阵列FPGA自动布局布线工具,把网表转换为要实现的具体电路布线结构。目前,这种高层次(high-level-design)的方法已被广泛采用。据统计,目前在美国硅谷约有90%以上的ASIC和FPGA采用硬件描述语言进行设计。

早在1980年,因为美国军事工业需要描述电子系统的方法,美国国防部开始进行VHDL的开发。1987年,由IEEE(Institute of Electrical and Electro- nics Engineers)将VHDL制定为标准。参考手册为IEEE VHDL语言参考手册标准草案1076/B版,于1987年批准,称为IEEE 1076-1987。应当注意,起初VHDL只是作为系统规范的一个标准,而不是为设计而制定的。第二个版本是在1993年制定的,称为VHDL-93,增加了一些新的命令和属性。虽然有“VHDL是一个4亿美元的错误”这样的说法,但VHDL毕竟是1995年以前唯一制订为标准的硬件描述语言,这是它不争的事实和优势;但同时它确实比较麻烦,而且其综合库至今也没有标准化,不具有晶体管开关级的描述能力和模拟设计的描述能力。目前的看法是,对于特大型的系统级数字电路设计,VHDL是较为合适的。实质上,在底层的VHDL设计环境是由Verilog HDL描述的器件库支持的,因此,它们之间的互操作性十分重要。目前,Verilog和VDHL的两个国际组织OVI、VI正在筹划这一工作,准备成立专门的工作组来协调VHDL和Verilog HDL语言的互操作性。OVI也支持不需要翻译,由VHDL到Verilog的自由表达。

二、设计要求

基本要求:

1、24小时计数显示;

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

附加要求:

1、秒表功能(复位,计时);

三、实验程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY CLOCK IS

 PORT (

        CLK1:IN STD_LOGIC;

        CLK2:IN STD_LOGIC;

        R1:IN STD_LOGIC;

        R2:IN STD_LOGIC;

        scond:IN STD_LOGIC;

        HOUR:IN STD_LOGIC;

        MINI:IN STD_LOGIC;

        RESET:IN STD_LOGIC;

        DOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); 

  CHOICE:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

END CLOCK;

ARCHITECTURE behav OF CLOCK IS

 SIGNAL LED7:STD_LOGIC_VECTOR(3 DOWNTO 0);

 SIGNAL SLIP:STD_LOGIC_VECTOR(2 DOWNTO 0);

 SIGNAL a,b,c,d,e,f,g,h:STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

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

  PROCESS (CLK2)

     BEGIN

     IF CLK2'EVENT AND CLK2='1' THEN    

    IF SLIP<"111" THEN SLIP<=SLIP+1;

    ELSE    SLIP<="000";

       END IF;

          CASE SLIP IS

    WHEN "000"=> CHOICE<="00000001";LED7<=a;

    WHEN "001"=> CHOICE<="00000010";LED7<=b;

    WHEN "010"=> CHOICE<="00000100";LED7<=c;

    WHEN "011"=> CHOICE<="00001000";LED7<=d;

    WHEN "100"=> CHOICE<="00010000";LED7<=e;

    WHEN "101"=> CHOICE<="00100000";LED7<=f;

    WHEN "110"=> CHOICE<="01000000";LED7<=g;

       WHEN "111"=> CHOICE<="10000000";LED7<=h;

    WHEN OTHERS=>CHOICE<="00000001";LED7<=a;

            END CASE;     

          END IF;

 END PROCESS;

                   PROCESS (CLK1)

   

    BEGIN

   IF CLK1'EVENT AND CLK1='1' THEN

    IF a<"1001"THEN a<=a+1;

     ELSE b<=b+1;a<="0000";     END IF; -------0--a

    IF( a="1001"and b="0101")then

       d<=d+1;b<="0000";a<="0000";  end if;

    IF c="1100"THEN c<="1101";f<="1101";

     ELSE c<="1100";   f<="1100";  END IF; -------2--c-f--

    IF d="1010"THEN e<=e+1;d<="0000"; END IF; -------3--d

    IF( d="1001"and e="0101")then

       g<=g+1;e<="0000";d<="0000";end if;

   

    IF g="1010"THEN    

      h<=h+1;g<="0000";   END IF; -------6--g

    IF (h="0010" and g="0011")THEN 

       a<=a+1;h<="0000";   END IF; -------7--h

----------部分[时间可调]开始-----

    IF  RESET='1' THEN

         a<="0000";

         b<="0000";

         c<="0000";

         d<="0000";

         e<="0000";

         f<="0000";

         g<="0000";

         h<="0000";

     END IF; ----复位键

IF scond='1' THEN a<="0000";b<="0000"; END IF;----精确调整秒清零

          IF MINI='1'THEN d<=d+1;END IF;---分钟调整

IF (d="1001" and e="0101")then

d<="0000";e<="0000";g<=g;END IF;--59分时小时不加1

IF d="1010"THEN e<=e+1;d<="0000"; END IF;---分钟不延时

  IF HOUR='1'THEN g<=g+1;END IF;---小时调整

  IF g>"1000"THEN g<="0000";h<=h+1;END IF;--小时不延时

  IF (g="0011" and h="0010")then g<="0000";h<="0000";END IF;--小时调整不延迟

-----------部分[时间可调]结束-----

-----------部分[秒表计时]开始-----

  IF R1='1' THEN

         a<="0000";

         b<="0000";

         c<="1100";

         d<="0000";

         e<="0000";

         f<="1100";

         g<="0000";

         h<="0000";

     END IF;----秒表复位

IF R2='1' THEN a<=a;

else a<=a+1; END IF;---即时计时

-----------部分[秒表计时]结束------

END IF;

 END PROCESS;

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

 PROCESS(LED7)

  BEGIN

   CASE LED7 IS

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

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

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

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

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

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

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

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

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

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

   

    WHEN "1100"=> DOUT<="0000000";

    WHEN "1101"=> DOUT<="1000000";

    WHEN OTHERS=> DOUT<="0000000";

  END CASE;

 END PROCESS;

END behav;

四、    实验仿真效果图

实验程序通过编译,无错误,设置CLK和CLK1的宽度为1输入信号进行仿真,得到仿真效果如下图:

五、实验结果:

1.       实现了基本要求:24小时计时;分钟小时可调;

2.       并在基本要求的基础上增加了复位,以及精确调整时的秒清零功能;

3.       解决了调节时候的分钟和小时进位时候的延迟现象;

4.       分钟调整时,当调整至59时,此时的小时不增加,合理化设计;

5.       简单秒表功能:R1复位开始秒表,R2计时;

以上实验结果现象在实验箱上正常演示,通过老师检查!

六.设计体会

数字钟的原有程序是老师编写的,我只是在原有的基础上加上了一些程序段实现了时钟的可调和简单的秒表功能,调整的过程当中也发现不少问题,比如:进位的时候有2秒的延迟,小时到达23的时候有跳转错误的现象,通过解决每一个细节问题使我学到了不少东西,弄懂了硬件程序控制语言的基本原理,然后再来修改程序控制的功能就简单多了,于是我稍做修改,增加了复位功能,需要精确调整时候的秒个位和十位的清零功能,当我们调节时间的分钟的时候,我们通常希望这个调节到59的时候小时不要加1,实际的电子手表也是如此,我就加上了一个句子来控制调整.秒表功能设计得很简单,复位下来开始工作,简单地计时,只能记下一个人的时间成绩,R2可以的拨动可以继续计时.使用秒表时的数字钟功能不能恢复,秒表使用完毕后回到数字钟的功能时间不再正确,相当于复位了数字钟,这是此次设计的最大失败的地方,曾请教过多位同学查询过很多资料没有找到好的解决方案,实际中我们的电子手表是可以的.

   个人觉得设计的前提是实用性,曾想过将流水灯程序加进去,实现数字钟的同时有流水灯效果,后来想想除了有点美观效果外使用性几乎没有,故略去.下一步思考将音乐芯片和数字钟结合起来实现整点报时功能或者手动较时闹钟功能!个人能力远远不够希望老师多多指点!

七.参考文献

1.现代可编程逻辑器件及SOPC应用设计

2.VHDL设计教程

 

第二篇:毕业设计 数字电子钟——实训报告

目 录()

设计任务书 ···································································································· I

第1章 数字钟原理图的设计 ······························································· 2

1.1 总体方案分析 ··········································································· 3

1.2设计思路 ···················································································· 3

1.3印刷电路板的设计………………………………………….4

第2章 数字钟工作原理的总体分析 ··················································· 7

2.1晶体振荡器电路 ········································································ 9

2.2 各单元模块设计和分析 ························································· 10

2.3时间计数单元 ·············································································· 11

2.4译码驱动及显示单元 ······························································ 13

2.5校时电源电路 ·········································································· 14

第3章 设计小结··················································································· 20

第4章 附录(未经本人(王明珠516682439)同意不得私自用于商业用途)……………………………………………………………………… 21

1

第1章 原理图的设计

1.1总体方案分析

1.有了项目,设计者要首先确定以下各种信息,才能得出一个总的电路设计方案

安装方式。确定印制板的形状,面积及定位孔的数目和位置。

电气性能要求。包括电路功能设计和电路芯片选型。

接口要求。包括确定接插件必元器件的封装的类型。

1.2设计思路

笔者从经济,实惠,电路结构较简单等角的出发设计出了一台自身带60HZ频率源的LED数字钟。该机器走时准确日误差想《1秒。该机整体由,电源,CD4060构成的信号,TMS3450NL构成的译码器,及其由LED构成的显示屏够成。其中60HZ频率源由CD4060产生,其内部由14位2进制穿行计数器和震荡分频器两部分组成R2,C1和晶振为起振原件校准震荡频率可调节C1。检查有无振荡信号输出可侧CD4060第13脚。Q1,Q2是 同步显示驱动电路,在60HZ信号作用下,交替导通,双级驱动显示屏动态发光。Q3是Q1停止,显示屏熄灭。所以,当市电停电后,D1失去电压,电池接着供电,但只是提供给CD4060和TMS3450NL的保持电压,继续计时,等到市电来电后显示屏才显示。R12为平时给电池充电使限流作用。电池可选用无绳电话用的 小型280MA镍镉电池5节串联为6V电压。图中60HZ发生器部分也可单独制作。若用于共阳极双极驱动的数字钟,例如MM5456等,则同步去 动晶体管的极性和电源极性应相反。若用共阴极单电源驱动的数字钟,例如 2

LM8361等则将同步开关的全部元件去掉,直接由CD4060的13脚接入。

1.3 印刷电路板的设计

该电路为双声道大功率放大电路结构复杂所以我们采用A3图纸,电源电路元器件较少结构简单我们采用小尺寸A4图纸来建立一个合适的工作平面。

1.元器件库的载入

将包含有我们所需元器件的元件库载入设计系统中,便于我们从中查找选定所需的元器件。如经查找发现现有的元器件库中不存在所需的元器年,则我们应该用前所讲的知识,设计新的原理图元器件。

2.放置元件

根据功放电路的需要,从元器库里取出所需的元器件放置到工平面上。我们可以根据元器件之间的走线等联系对元器件在工作平面上的位置进行调整、修改,并对元器件的编号、封装进行定义和设定等,为下一步工作打好基础。 文件夹。

(3)再次执行菜单命令【File】/【New】,就会出现【New Document】对话框,双击其中的PCB Document

图标即可在Document中建立一个新的PCB文件,默认名为“黄晓华”扩展名为“pcb”。

以进入Protel99SE-PCB编辑器。

都可以进入Protel99SE-PCB编辑器。

3

操作步骤如下:

(1)打开或新建一个设计数据库文件。

(2)单击PCB管理浏览器中的文件夹图标进入Document文件夹。

(3)再次执行菜单命令【File】/【New】,就会出现【New Document】对话框,双击其中的PCB Document图标即可在Document中建立一个新的PCB(2)单击PCB管理浏览器中的文件夹图标进入Document文件夹。

文件,默认名为“文绍锦”扩展名为“pcb”。

(4)双击浏览器中“文绍锦”文件的图标,便可以启动PCB编辑器,同时自动添设计PCB所需的各种工具栏。

2.2自动布局

1.规划电路板

在绘制印制电路板之前,我们必须对所用的电路板进行初步规划。具体步骤如下:由于功放电路结构复杂为了美观起见我们采用双面板,电路板用8060mil×5000mil的尺寸,电路分立元件较所以不采用总线连接,元件的封装为电路容器采用RAD0.1、电阻用AXIAL0.3、AP500A采用DIP18封装形式等等,电容放在最外层,电位器放置电路板边缘各种元器件都成块、对齐排列等等。

首先规划电路板的物理边界。对电路板机械定义的具体要求是由公司或制造商提出的,通常包括角标、参考孔位置、外部尺寸等。我们一般在Protel99SE所提供的4个机械层中的一个上确定电路板物理边界,而在其他的机械层上放置尺寸、对齐标志等。

4

设定当前的工作层面为Mech1。单击工作窗口下方的标签即可将当前的工作平面切换到Mech1层面。在该层面上确定电路板的物理边界。确定电路板的下边界。执行菜单命令【Place】/【Track】。

规划完电路板的物理边界后,还要确定电路板的电气边界。电气边界是用来限定布线和元器件放置的范围,它是通过在禁止布线层(Keep Out layer)绘制边界来实现的。禁止布线层是PCB工作空间中一个用来确定有效的放置和布线区域的特殊工作层面。通常用户应将电气边界的范围与物理边界的范围规划成相同大小。所有信号层的目标对象(如焊盘、过孔等)和走线都将被限定在电气边界内。

同样,我们还可以在禁止布线层的板边范围内设定禁止放置和布线区域。 规划电路板电气边界的方法与规划物理边界的方法完全相同,只是应将当前工作层面设定为在禁止

布线层(Keep Out layer)。只有规划好了电气边界才能继续进行下面的工作。这里我们将电气边界和物理边界的位置、大小绘制得完全相同。

2.设置参数

启动编辑器后,用户要对元器件的布置参数、板层参数、布线参数等到进行相应的设置。其中有些参数可以直接采用系统的默认值,有些参数必须根据设计要求进行修改,而有些参数可以根据用户自己的习惯进行设置。总之,参数的设定是在满足设计要求的前提下尽量符合设计人员的个人习惯,所以因人而异。

夹。

5

●文件类型:这里有两种类型可共选择,分别是Protel Design files(*.ddb)和Protel Libraries files (*Lib)。前者是Protel 99 SE所持有的设计数据文件,后者是以往版本的 Protel PCB 元器

PCB的过程。PCB设计系统中数据的所有变化,都可以通过网络宏(Nelist Macro)来完成。通过分析网络表和PCB系统内部的数据,可以自动生成网络宏。

如果用户是第一件库文件。这里我们选择设计数据库文件(*.ddb)。

在搜索选项下的文件列表框中选中所需要的文件,然后用鼠标单击Add按钮,则选项中的文件就会出现在 Selected Files 选框中。这里我们通过上述方法依次将需要的文件“Advpcbddn”、“General IC.ddb”和“Miscellaneous.ddb”添加到Selected Files选框中。

(3)添加完所需要的文件后,单击对话框中的OK按钮加以确认,这样就可以将所选中的文件装入到PCB编辑器中。

正确 装入PCB元器件库后,我们就可以开始装入网络表和元器件了。

网络表与元器件的装入过程实际上就是将原理图加以确认,设计的数据装入印刷电路扳设计系统次装入网络表和元器件,则网络宏的产生是针对整个电路的。如果用户不是首次装入网络表和元器件,而是在远原有网络表基础上添加和修改,则网络宏仅仅是针对添加、修改的那部分设计而言的。用户可以通过添加、修改或删除网络宏来更改原先的设计。

利用网络表文件装入网络表和元器件步骤。

(1)在PCB编辑器中执行菜单命令【Design】 /【Nelist】装入网络表。 6

单击对话框中的Browse按钮即可选择网络表文件。系统中默认的文件为当前PCB文件所在设计数据库文件中的所有文本文件。如果想要选择其他设计数据库中或其他位置处的网络表文件,可以单击Add按钮,然后在打开文件对话框中选中所需要的文件,之后单击按钮确认即可。

(2)程序开始自动生成的网络宏之后所有的网络宏都显示在对话框中,用户还可以对任意一个网络宏进行编辑修改。

(3)正确生成所有网络宏后,单击Execute按钮即可以开始装入网络表和元器件。

2.3.元器件的自动布局

在设定好电路板的尺寸和外形并装入网络表后,程序会自动装入元器件,并自动将元器件布置在电路板的边界内。

Protel 99 SE 提供了强大的元器件自动布局功能,可以通过程序算法自动将元器件分开放置在规划好的电路板电气边界内。元器件的自动布局的具体操作步骤如下。

(1)在PCB编辑器中执行菜单命令【Tools】【Auto Place】.

(2)在对话框中选择Cluster Place 成组布局方式,因为这种基于组的元器自动布局方式连接关系将元器件分成组,然后按照几何关系放置元器件的组。所以此方式比较适合元器件少的电路。

尽管程序可以自动根据电路板的外形尺寸布置各个元器件的位置,但是毕竟不可能完全满足设计的要求,因此用户还要对元器件的位置进行手工调整,以便顺利地进行下面的布线工作。

7

这步工作就是如何进入Protel 99 SE印刷电路板(PCB)编辑器的编辑器的编辑环境。

第二单 数字钟工作原理的总体分析

数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。图1所示为数字钟的一般构成框图。

毕业设计数字电子钟实训报告

图1 数字钟的组成框图

一,⑴晶体振荡器电路

晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的脉冲,可保证数字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。

8

⑵分频器电路

分频器电路将32768Hz的高频方波信号经74LS4060和74LS250的二分频的分频后得到1Hz的方波信号,可以供秒计数器进行计数。分频器实际上也就是计数器。

⑶时间计数器电路

时间计数电路由秒个位和秒十位计数器、分个位和分十位计数器及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器、分个位和分十位计数器为60进制计数器,时个位和时十位计数器可以设计为12进制计数器或者24进制计数器,我们这里根据自己的意愿设计成24进制计数器。

⑷译码驱动电路

译码驱动电路将计数器输出的8421BCD码转换为数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流。

⑸数码管

数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管,本设计采用的为LED数码管。

二,各单元模块设计和分析

1)晶体振荡器电路

晶体振荡器是构成数字式时钟的核心,它保证了时钟的走时准确及稳定。

图2所示电路通过CMOS非门构成的输出为方波的数字式晶体振荡电路,这个电路中,CMOS非门U1与晶体、电容和电阻构成晶体振荡 9

器电路,U2实现整形功能,将振荡器输出的近似于正弦波的波形转换为较理想的方波。输出反馈电 阻R1为非门提供偏置,使电路工作于放大

区域,即非门的功能近似于一个高增益的反相放大器。电容C1、C2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了振荡器的功能。由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。

晶体XTAL的频率选为32768HZ。该元件专为数字钟电路而设计,其频率较低,有利于减少分频器级数。

从有关手册中,可查得C1、C2 分别为20pF,和200PF当要求频率准确度和稳定度更高时,还可接入校正电容并采取温度补偿措施。

由于CMOS电路的输入阻抗极高,因此反馈电阻R1可选为20MΩ。较高的反馈电阻有利于提高振荡频率的稳定性。

毕业设计数字电子钟实训报告

图2 晶体振荡器电路图

2)分频器电路

通常,数字钟的晶体振荡器输出频率较高,为了得到1Hz

毕业设计数字电子钟实训报告

的秒信号 10

输入,需要对振荡器的输出信号进行分频。

通常实现分频器的电路是计数器电路,一般采用多级2进制计数器来实现。例如,将32767Hz的振荡信号分频为1HZ的分频倍数为32767(215),即实现该分频功能的计数器相当于15极2进制计数器。

本实验中采用CD4060来构成分频电路。CD4060在数字集成电路中可实现的分频次数最高,而且CD4060还包含振荡电路所需的非门,使用更为方便。

CD4060计数为最高为14级2进制计数器,可以将32767HZ的信号分频为2HZ,而经过74LS90可以将它分为1HZ的信号。如图3所示,可以直接实现振荡和分频的功能。

图3 CD4046和74LS90的分频电路图

3)时间计数单元

11

时间计数单元有时计数、分计数和秒计数等几个部分。

时计数单元一般为24进制计数器计数器,其输出为两位8421BCD码形式;分计数和秒计数单元为60进制计数器,其输出也为8421BCD码。

本实验采取了74LS90 用两块芯片进行级联来产生60进制和24进制 秒个位计数单元为10进制计数器,无需进制转换,只需将Q0与CP1(下降沿有效)相连即可。CP0(下降没效)与1HZ秒输入信号相连,Q3可作为向上的进位信号与十位计数单元的CP1相连。

秒十位计数单元为6进制计数器,需要进制转换。将10进制计数器转换为6进制计数器的电路连接,其中Q2可作为向上的进位信号与分个位的计数单元的CP0相连。

分个位和分十位计数单元电路结构分别与秒个位和秒十位计数单元完全相同,也是分个位计数单元的Q3作为向上的进位信号应与分十位计数单元的CP0相连,分十位计数单元的Q2作为向上的进位信号应与时个位计数单元的CP0相连。60进制的连接如图4所示。

时个位计数单元电路结构仍与秒或个位计数单元相同,但是要求,整个时计数单元应为24进制计数器,所以在两块74LS90构成的100进制中截取24,就得在24的时候进行异步清零。24进制计数功能的电路如图5所示。

12

图4 60进制计数器电路

毕业设计数字电子钟实训报告

图5 24进制计数器电路

4)译码驱动及显示单元

计数器实现了对时间的累计以8421BCD码形式输出,选用显示译码电路将计数器的输出数码转换为数码显示器件所需要的输出逻辑和一定

毕业设计数字电子钟实训报告

13

的电流,选用74LS47作为显示译码电路,选用74LS546八段共阳LED数码管作为显示单元电路,如图6所示。

毕业设计数字电子钟实训报告

图6 译码驱动和显示电路

5)校时电源电路

当重新接通电源或走时出现误差时都需要对时间进行校正。通常,校正时间的方法是:首先截断正常的计数通路,然后再进行人工出触发计数或将频率较高的方波信号加到需要校正的计数单元的输入端,校正好后,再转入正常计时状态即可。

根据要求,数字钟应具有分校正和时校正功能,因此,应截断分个位和时个位的直接计数通路,并采用正常计时信号与校正信号可以随时切换的电路接入其中。图7所示为所设计的校时电路。

14

图7 校正电路

6)整点报时电路

一般时钟都应具备整点报时电路功能,即在时间出现整点前数秒内,数字钟会自动报时,以示提醒。其作用方式是发出连续的或有节奏的音频声波,较复杂的也可以是实时语音提示。

根据要求,电路应在整点前10秒钟内开始整点报时,即当时间在59分51秒到59分59秒期间时,报时电路报时控制信号。报时电路选74HC30,作为选蜂鸣器为电声器件,选用CC4016模拟开关作控制,使蜂鸣器可以一响一停。如图8所示。

毕业设计数字电子钟实训报告

15

5V说明:当时间在59分50秒到59分59秒期间时

分十位、分个 位和秒十位均保持不变,分别为5,9和5;因此,可以将分计数器十位的Qc和QA,个位的QD和QA及秒计数器十位的QC和QA相与,从而产生报时控制信号。

五.电路的安装与调试

在完成了理论设计的基础上,进行对自己设计不大肯定的电路,利用软件Multism进行模拟,根据成功与否再进行修正之后,开始电路的安装和调试。

在拿到了工具的和器材之后,首先对各元器件进行测试,检查是否芯片存在问题。

在确认没有问题之后,就可以按照布线方案来进行布线了。

我的布线方案,

首先安装驱动和计数模块。对译码驱动电路和计数电路同时布线,但是,先只进行它的一个显示管和一块74LS47和一块74LS90(秒的个位)安装,当验证产生的计数没有问题时,才尽一步对它进行扩展,安装秒的十位,分的个位和十位,以及时的个位和十位,并进行检验,为什么不安装完驱动模块再进行计数模块的安装呢? 我认为这样可以方便我们的检验(当然我的检验脉冲现在不一定是1HZ的,所以我利用面包板上自带 16

毕业设计数字电子钟实训报告

的脉冲输出),当装完了那么一个庞大的电路后,一旦哪里出错,进行检查怎么说也是个难事。

其次安装的是晶体振荡电路电路。按照理论设计和已经在Multism 软件中验证过的电路进行安装,当然实际安装中有不可预见的问题可能发生,我才用示波器来观察,果然,象设计和预料的那样,1HZ的脉冲波形出现。

再次安装的模块是校时模块。接出如图7的电路然后和计数模块相连接。在这个连接中,我们原来的设计的是采用单刀双制开关,但是由于在实验室没有这样的开关,我们的设计只好稍微做下修改,这样的设计我觉得在数字电子的设计中是常见的。一种典型的接法。

最后要接的是正点报时电路。这个部分是我们平时没怎么实验和设计过的部分,说实际的,在做这个设计之前,心理真的没有底到底蜂明器是怎么工作的,怎样去驱动它才能让它正常工作。第一个在我脑海里产生的利用555接一个电子琴电路,再加上模拟开关来选择高低声音,理论上设计没问题,也对它包有很大的信心。但是在实习的过程中,在做这个人的时候,到中午了,于是我回来了,我想利用Internet搜索点对自己的设计有用的信息来,偶尔的一个蜂明的电路启发了我,那就是现在如设计图纸中的那个报时电路。不过,先发现报时电路声音比较的低,于是我决定见效电阻使声音合适。

完成了布线的过程之后,就是一个综合的测试,由于在各个模块的安装,布线的认真和有条理性,综合测试,一次成功,本人认为教为不错!而且就整个实验来说由于设计的原理时的态度的认真,严谨和对这次实习 17

的重视,以及考虑问题的全面和方案的多样性,使得装配,布线,和调试几乎没有什么大问题难倒我,一切都还比较的顺利和成功!记得在一个实验室一起做实验的同学中,我的实验是第一个完成的,综合测试成功的那一刻,很兴奋!

18

第三章 总结

1. 设计过程中遇到的问题及其解决方法。

1) 在检测面包板状况的过程中,出现本该相通的地方被断了的导线堵塞,用镊子将其挑出。

2) 在检测74LS47驱动电路的过程中发现有两个数码管显示的数字是没有规律的(不是从0到9的显示),正是由于我们布线的整齐简明,经过检查发现是74LS47其中的两跟译码线与显示管脚连接出错,交换,就OK了!

3) 在连接晶振的过程中,晶振起振,但是输出的脉冲明显不是1HZ的,对照设计电路检查,发现CD4060的输出管脚接错,接上3号管脚,一切OK!。

4) 在制作报时电路的过程中,发现蜂鸣器在57分59秒的时候就开始报时,后经检测电路发现是由于把74HC30芯片当16引脚的芯片来接,以至接线都错位,重新接线后能正常报时。

5) 在布置地线和5V电压线时,不甚把两线接到了一起,导致整个板没法工作。

经认真的检查,排除了问题!

2.设计体会

在此次的数字钟设计过程中,更进一步地熟悉了芯片的结构及掌

握了各芯片的工作原理和其具体的使用方法。

在连接六进制、十进制、六十进制的进位及十二进制的接法中,

要求熟悉逻辑电路及其芯片各引脚的功能,那么在电路出错时便能准 19

确地找出错误所在并及时纠正了。

在设计电路中,往往是先仿真后连接实物图,但有时候仿真和电

路连接并不是完全一致的,例如仿真的连接示意图中,往往没有接高电平的16脚或14脚以及接低电平的7脚或8脚,因此在实际的电路连接中往往容易遗漏。又例如74HC390芯片,其本身就是一个十进制计数器,在仿真电路中必须连接反馈线才能正常显示,而在实际电路中无需再连接,因此仿真图和电路连接图还是有一定区别的。

在设计电路的连接图中出错的主要原因都是接线和芯片的接触不

良以及接线的错误所引起的。

3.对该设计的建议

此次的数字钟设计重在于仿真和接线,虽然能把电路图接出来,

并能正常显示,但对于电路本身的原理并不是十分熟悉。总的来说,通过这次的设计实验更进一步地增强了实验的动手能力。

20

附件

元器件清单

1.实验中所需的器材 ? 5V电源。

? 面包板1块。 ? 示波器。

? 万用表。

? 镊子1把。

? 剪刀1把。

? 拨线铨1把。 ? 导线 若干

? 共阳八段数码管6个。 ? 74LS90芯片7块。 ? 74LS47芯片6块。 ? 74LS51芯片1块。 ? 74LS30芯片1块。 ? 74LS08芯片1块。 ? 74LS04芯片1块。 ? CD4060芯片1块。 ? CC4016芯片1块。 ? 1KΩ电阻1个。 ? 100Ω电阻6个。

21

? 10MΩ电阻1个。

? 20p电容1个。

? 200p电容1个。

? 32.768k时钟晶体1个。

? β=130的三极管。

? 蜂鸣器。

八.参考文献和辅助软件工具

? 《数字电子技术基础》 陈明义 主编 中南大学出版

? 《电工电子实验教程》 陈明义 主编 中南大学出版

? Multism 软件 Interactive Image Technologies. Ltd 出品

访问的网址:

/question/6324033.html?fr=qrl3

22

相关推荐