12小时数字钟电路设计说明

合集下载

12小时数字钟电路设计.pptx

12小时数字钟电路设计.pptx
目录
第 1 章 总体设计方案......................................................................2 1.1 设计原理.................................................................................................................2 1.2 设计思路.................................................................................................................2 1.3 设计环境.................................................................................................................2
-I-
沈阳航空航天大学课程设计报告 未指定书签。附录
错误!
第 1 章 总体设计方案
1. 设计原理
通过 Verilog 语言,编写 12 小时数字钟电路设计与实现的 Verilog 程序,一般 的做法是底层文件用 verilog 写代码表示,顶层用写的代码生成的原理图文件链接 组成,最后在加上输入输出端口。采用自上而下的方法,顶层设计采用原理图设 计输入的方式。
第 2 章 详细设计方案...................................................................................................2 2.1 算法与程序的设计与实现...................................................................................3 2.2 流程图的设计与实现...........................................................................................4

十二小时电子钟课设报告

十二小时电子钟课设报告

课程设计说明书课程设计名称:数字逻辑课程设计题目:十二小时电子钟学院名称:信息工程学院专业:电子信息工程班级:130414学号:13041432姓名:何贵涵评分:教师:邓洪峰、陶秋香20 15 年9月14日数字逻辑课程设计任务书20 15-20 16学年第一学期第1周-4周注:1、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。

2、课程设计结束后与“课程设计小结”、“学生成绩单”一并交院教务存档。

摘要这个设计主要以数字电路的基础理论、低频电子线路为指导,采用中、小规模的集成器LM555、CD4060、74LS161和LS248设计而成。

该电路采用模块设计、分模块安装调试等方法设计而成,所选用的器件主要是中小规模的集成芯片,本产品由于采用多片74LS系列的集成芯片组成,生产成本低等原因使这个产品设计既容易实现,又不会浪费太多成本。

产品由石英晶体振荡器产生频率可以调节的时钟脉冲信号,经十五分频得到秒信号秒冲作为数字钟计数器的时钟信号,当到达整点前一秒时,电路通过一个蜂鸣器准时报时。

这个电路还可以通过手动,即过拨动开关来选择是否进行实践校准。

关键词:电子钟、分频、计数、驱动目录前言 (6)第1章电路初步设计 (6)1.1 设计内容以及要求 (6)1.2 系统框图 (6)1.3设计方案 (7)1.4 设计过程 (8)第2章电路详参设计 (8)2.1 晶体振荡器电路 (8)2.2 分频器电路 (9)2.3 时间计数器电路 (10)2.4 译码驱动电路 (12)2.5 数码管 (13)2.6 整点报时电路及倒计时功能 (16)第3章测试及调试 (18)3.1 晶体振荡器电路的测试和调试 (18)3.2 分频器电路的测试和调试 (18)3.3 时间计数器电路的测试和调试 (19)3.4 译码驱动电路的测试和调试 (19)3.5 整点报时电路的测试和调试 (19)结论 (19)参考文献 (20)附录 (20)附录 I 总电路图 (21)附录II 电路图PCB (22)附录III 实物图 (25)附录 IV 元器清单 (26)前言基于十二小时电子钟在日常生活中的应用,能够了解生活中一些电子产品的工作原理以及其制作过程,以便能更好的了解生活。

多功能数字钟设计说明书3

多功能数字钟设计说明书3

课题名称:多功能数字钟设计摘要数字钟是一种用数字电路技术实现时、分、秒计时答案装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命。

因此得到了更加广泛的使用。

数字钟从原理上是一种典型的数字电路,其中包括了组合逻辑和时序电路。

在这次设计中,我们采用LED数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,用12MHz的晶振产生震荡脉冲,定时器计数,可以实现对数字钟的小时和分钟进行校对设置功能,整点报时功能,闹钟功能。

第一章设计要求设计任务:设计一个多功能数字钟电路。

设计要求:设计一个多功能数字钟,其基本功能包括以下方面:1)能够对数字钟的小时和分钟进行校对设置2)具有闹钟功能3)整点报时功能第二章方案论证系统框图如下所示:第三章 系统原理分析数字钟系统共包含四个模块,即分频器模块,计数器模块(包括计数/时间设置和闹钟功能),整点报时和显示译码模块。

数字钟的功能可以从总体上分为三类,分别是正常计时、时钟校对和闹钟设置,所以考虑在系统中设置一个模式控制信号mode 。

模式控制信号对应一个按键,每按一次按键相当于工作模式进行一次变换,多次按下则数字钟将在正常计时,时间校对和闹钟设置三种模式下一次循环变换。

在设计中时钟校对和闹钟设置工作模式都需要对时间进行设置,通常对小时,分钟和秒进行设置,所以需要在系统中设置一个时间设置信号SET ,对应一个按键,每次按键相当于在小时设置,分钟设置和秒设置之间进行转换。

时间设置时,分钟,小时和秒计时单位之间相互独立,不存在进位关系。

同时设置一个时间调整信号(加1按键),每按一次与accum 对应的按键,相当于对需要调整的分钟或小时的数字进行加1操作。

数字钟的计时输出信号是必不可少的,用hour ,min 和sec 信号分别表示需要显示的小时,分钟和秒钟的计时结果,上述计时结果将通过译码显示模块进行译码后,连接到外部的七段数码显示器。

【精品】12小时数字钟电路设计剖析

【精品】12小时数字钟电路设计剖析

12小时数字钟电路设计剖析沈阳航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:12小时数字钟电路设计与实现院(系):计算机学院专业:计算机科学与技术班级:34010104学号:2013040101164姓名:指导教师:胡光元完成曰期:2016年1月13日目录第1章总体设计方案 (1)1.1设计•原理 (1)1.2设计思路 (1)1.3设计环境 (1)第2章详细设计方案 (2)2.1算法与程序的设计与实现 (2)(1)秒钟计时器 (2)(2)分钟钟计时器 (2)(3)小时计时器 (2)(4)时间设置 (3)(5)控制显示模块 (3)2.2流程图的设计与实现 (5)1................................................................................................................................................ 数字钟 (5)2.12小时数字时钟整体 (5)第3章程序调试与结果测试 (6)3.1程序调试 (6)3.2程序测试及结果分析 (6)参考文献 (8)附录(源代码) (9)第1章总体设计方案1.1设计原理通过Verilog语言,编写12小时数字钟电路设计与实现的Verilog程序,一般的做法是底层文件用verilog写代码表示,顶层用写的代码生成的原理图文件链接组成,最后在加上输入输出端口。

采用自上而下的方法,顶层设计采用原理图设计输入的方式。

1.2设计思路1.实时数字钟显示功能,即时、分、秒的正常显示模式,并且在此基础上增加上,下午显示。

2.手动校准。

按动方式键,将电路置于校时状态,则计时电路可用手动方式校准,每按一下校时键,时计数器加1;按动方式键,将电路置于校分状态,以同样方式手动校分。

13设计环境(1)硬件环境•伟福COP2000型计算机组成原理实验仪COP2000计算机组成原理实验系统由.............•COP2000集成调试软件COP2000集成开发环境是为............(2) EDA环境•Xilinx foundation f3.1 设计软件Xilinx foundation f3.1是Xilinx公司的可编程期间.............第2章详细设计方案2.1算法与程序的设计与实现(1)秒钟计时器山于秒讣数器为60进制计数器,所以以秒计数器作为示例说明其编程思想。

数字电子钟设计报告,完整版

数字电子钟设计报告,完整版

一、任务技术指标设计一个数字电子钟(1)能显示小时、分钟和秒;(2)能进行24小时和12小时转换;(3)具有小时和分钟的校时功能。

二、总体设计思想1.基本原理该数字钟由振荡器、分频器、计数器、译码器、显示器和校时电路等六部分组成。

振荡器产生的钟标信号送到分频器,分频电路将时标信号分成每秒一次的方波秒信号。

秒信号送入计数器进行计数,计数到60秒后向分进位,同理计数到60分后向小时进位,并将计数的结果以BCD-七段显示译码器显示出来。

计数选用十进制计数器74LS760D,校时电路通过选通开关对“时”和“分”进行校时。

二十四小时和十二小时的转换也可以用开关进行选择。

2.系统框图如图1:振荡器产生的钟标信号送到分频器,分频电路将时标信号送至计数器。

计数器通过译码显示把累计的结果以“时”、“分”、“秒”的数字显示出来。

整个过程中可选择用校时电路进行校时。

图1 系统框图三、具体设计1.总体设计电路该数字钟由振荡器、分频器、计数器、显示器和校时电路组成。

振荡器产生的钟标信号送到分频器,分频电路将时标信号分成每秒一次的方波秒信号。

秒信号送入计数器进行计数,计数到60秒后向分进位,同理分计数器计数到60分后向小时进位,并将计数的结果以BCD-七段显示译码器显示出来。

计数选用十进制计数器74LS760D,校时电路通过选通开关对“时”和“分”进行校时。

二十四小时和十二小时的转换可以用开关进行选择。

图2 总体电路图2.模块设计(1)振荡器的设计振荡器是数字钟的核心。

振荡器的稳定度及频率的精确度决定了数字钟计时的准确程度,通常选用石英晶体构成振荡器电路。

石英晶体振荡器的作用是产生时间标准信号。

因此,一般采用石英晶体振荡器经过分频得到这一时间脉冲信号。

电路中采用的是将石英晶体与对称式多谐振荡器中的耦合电容串联起来,就组成了如图3所示石英晶体多谐振荡器。

图3振荡器电路图和仿真波形图(2)分频器的设计对于分频器的设计选定74LS90集成芯片。

12时制数字电子钟

12时制数字电子钟

电子课程设计——12时制数字电子钟学院:电子信息工程学院专业、班级:姓名:学号:指导老师2014年12月17日目录一、设计任务与要求 (1)二、总框体图 (1)三、选择器件 (1)四、功能模块 (7)五、总体设计电路图 (10)六、总结 (11)12时制数字显示电子钟一、设计任务与要求任务:设计一个数字显示电子时钟要求:1、时钟的“时”要求用两位显示(1—12); 2、时钟的“分”、“秒”要求各用两位显示;3、整个系统要有校时部分(可以手动,也可以自动),校时时不能产生进位;4、能显示上午、下午标志。

5、5V 电源模块的设计。

二、总框体图数字钟的原理框图如图所示,它是由脉冲电路、计秒电路、计分电路、计时电路、校时电路、校分电路等组成。

三、选择器件1、数码显示器电路原理图:时显示器分显示器秒显示器时计数器分计数器秒计数器秒脉冲信号校时电路 校分电路逻辑图:2、74LS160芯片此芯片为十进制计数器,可加可减,本设计只用到加,其中RCO为进位端,CLR 为清零端,ENT和ENP为使能端,必须接到一起接到高电平,LOAD为置数端,CLK 为脉冲输入端。

其逻辑图如下图管脚图:3、异或门74LS136D其逻辑功能表如下:逻辑电路如下:4、非门74LS04D逻辑功能表:5、与非门74LS01D逻辑功能表K1 K2 y1 1 00 1 11 0 10 0 1 逻辑电路:6、74LS13D其逻辑功能表如图JK触发器具有置0、置1、保持和翻转四个功能四、功能模块(1)秒和分计数器的设计在数字钟的控制电路中,分和秒的控制都是一样的,都是60进制,都是由一个十进制计数器和一个六进制计数器串联而成的,在电路的设计中我采用的是统一的器件74160的置数法来实现十进制功能和六进制功能。

74160为异步复位,同步置数,ENP,ENT同时为一时才可以计时,其中之一为高电平时,则保持。

RCO产生进位信号。

74160相对于其他芯片来说,功能较少,使用简单,但是也因功能简单导致在实现数字钟的某些特定功能时需要加入比较多的附加电路。

12小时数字钟电路设计课件说课讲解

12小时数字钟电路设计课件说课讲解

沈阳航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:12小时数字钟电路设计与实现院(系):计算机学院专业:计算机科学与技术班级:34010104学号:2013040101164姓名:指导教师:胡光元完成日期:2016 年 1月 13 日目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (1)1.3设计环境 (1)第2章详细设计方案 (1)2.1算法与程序的设计与实现 (2)2.2流程图的设计与实现 (3)第3章程序调试与结果测试 (6)3.1程序调试 (6)列举出调试过程中存在的问题 (7)3.2程序测试及结果分析 (6)参考文献 (8)附录(源代码) (9)第1章总体设计方案1.1设计原理通过Verilog语言,编写12小时数字钟电路设计与实现的Verilog程序,一般的做法是底层文件用verilog写代码表示,顶层用写的代码生成的原理图文件链接组成,最后在加上输入输出端口。

采用自上而下的方法,顶层设计采用原理图设计输入的方式。

1.2设计思路1.实时数字钟显示功能,即时、分、秒的正常显示模式,并且在此基础上增加上,下午显示。

2.手动校准。

按动方式键,将电路置于校时状态,则计时电路可用手动方式校准,每按一下校时键,时计数器加1;按动方式键,将电路置于校分状态,以同样方式手动校分。

1.3设计环境(1)硬件环境•伟福COP2000型计算机组成原理实验仪COP2000计算机组成原理实验系统由………•COP2000集成调试软件COP2000集成开发环境是为………….(2)EDA环境•Xilinx foundation f3.1设计软件Xilinx foundation f3.1是Xilinx公司的可编程期间………….第2章详细设计方案2.1 算法与程序的设计与实现(1)秒钟计时器由于秒计数器为60进制计数器,所以以秒计数器作为示例说明其编程思想。

其中秒计数器模块在程序中为always @(posedge clk)的程序段,由上面分析得秒计数器由一个十进制计数器与一个六进制计数器组成,程序中有second0表示秒计数器低位即10进制计数器,second1表示秒计数器的高位为一个六进制计数器。

12小时数字钟电路设计

12小时数字钟电路设计

沈阳航空航天大学课程设计报告课程设计名称:盘算机构成道理课程设计课程设计标题:12小时数字钟电路设计与实现院(系):盘算机学院专业:盘算机科学与技巧班级:34010104学号:姓名:指点教师:胡光元完成日期:2016 年1月13 日目录第1章总体设计计划21.1设计道理21.2设计思绪21.3设计情形2第2章具体设计计划22.1算法与程序的设计与实现32.2流程图的设计与实现4第3章程序调试与成果测试73.1程序调试7列举出调试过程中消失的问题73.2程序测试及成果剖析7参考文献9附录(源代码)10第1章总体设计计划1.1设计道理经由过程Verilog说话,编写12小时数字钟电路设计与实现的Verilog程序,一般的做法是底层文件用verilog写代码暗示,顶层用写的代码生成的道理图文件链接构成,最后在加上输入输出端口.采取自上而下的办法,顶层设计采取道理图设计输入的方法.1.2设计思绪1.及时数字钟显示功效,即时.分.秒的正常显示模式,并且在此基本上增长上,下昼显示.2.手动校准.按动方法键,将电路置于校时状况,则计时电路可用手动方法校准,每按一下校时键,时计数器加1;按动方法键,将电路置于校分状况,以同样方法手动校分.1.3设计情形(1)硬件情形•伟福COP2000型盘算机构成道理试验仪COP2000盘算机构成道理试验体系由………•COP2000集成调试软件COP2000集成开辟情形是为………….(2)EDA情形•是Xilinx公司的可编程时代………….第2章具体设计计划2.1 算法与程序的设计与实现(1)秒钟计时器因为秒计数器为60进制计数器,所以以秒计数器作为示例解释其编程思惟.个中秒计数器模块在程序中为always @(posedge clk)的程序段,由上面剖析得秒计数器由一个十进制计数器与一个六进制计数器构成,程序中有second0暗示秒计数器低位即10进制计数器,second1暗示秒计数器的高位为一个六进制计数器.clk为时钟旌旗灯号,时钟周期1/60(S),当低位second0满10时,主动进一位,即second1主动进位.Second0,second1位宽均为4位reg型变量.(2)分钟钟计时器分钟计时器因为秒计数器为12 进制计数器,示例解释其编程思惟.个中秒计数器模块在程序中为always @(posedge mod )的程序段,由剖析得小时计数器由一个二进制计数器与一个三进制计数器构成,程序中有hour0暗示秒计数器低位即二进制计数器,hour1暗示秒计数器的高位为一个三进制计数器.Mod为时钟旌旗灯号,来自分钟计时模块的mod,时钟周期360(S),当低位hour0满3时,主动进一位,即hour1主动进位.hour1,hour1位宽均为4位reg型变量.(3)小时计时器小时计时器同秒钟计时器个中小时计数器模块在程序中为always @(posedge tun)的程序段,分钟计时器的低位.高位分离由minute0.minute1暗示,但分钟计时器模块的迟钝旌旗灯号为“posedge tun”时钟旌旗灯号,“tun”的产生自秒钟计时器,可知其产生的时钟旌旗灯号为1(S),每触发一次则分钟计数器计数加1一次,同时产生mod的时钟旌旗灯号,同时因为做的是12小时数字钟电路,所有zox暗示的是显示高低午,当小时计数器满12时zox变更一次,个中zox=0暗示的是上午,zox=1暗示的是下昼.(4)时光设置时光设置模块实现的功效为经由过程按键调节可以对当前时光进行手动控制.其主如果在时光设置使能端有用地情形下经由过程SW1和i_SW2两个按键对数字钟的小时和分钟数进行调节.Disp_drive为设置中的显示控制,即经由过程SW1对位的调剂,Disp_drive随之变更.i_SW2为对每一位上的数字在其规模内进行加1调节.Disp_drive取值000.001.010和011分离对应hour1.hour0.minute1和minute0的设置,个中的加1设置在各个计时器模块,如许做的原因是防止两个“always”过程对同一个变量赋值产生错误.(5)控制显示模块控制显示模块在全部数字钟的设计中起着异常重要的感化.它的感化是将时光等数据用数码管显示的控制和数据传输模块,包含数据的传输以及BCD码译码等.经由过程几个控制使能端将其不合功效时的时光在数码管上显示出来.本模块中端口界说比较多,下面是其所对应的功效.clk:时光主动模式工作使能旌旗灯号;Timeset_EN:时光设置使能旌旗灯号;Time_disp_select:时光显示位选旌旗灯号;Disp_select:显示位选旌旗灯号输出;程序设计中,各使能端旌旗灯号为1暗示履行该功效,以时光主动工作模式使能旌旗灯号有用为例解释,当Time_EN为1时,起首将时光显示位选旌旗灯号isp_select的值赋给显示位选旌旗灯号disp_select输出,界说time_disp_select的状况一共有6个,分离为100000.010000.001000.000100.000010和000001,其在各状况下分离依次暗示将.hour0.hour1.minute0.minute1.second0和second1的值赋给data,用case 语句来实现,其实现语句如下:always@(clk,TimeSet_EN,time_disp_select,disp_select,hour1,hour0, minute1,minute0,second1,second0)begin //时钟,秒表显示if((clk || TimeSet_EN) == 1'b1)begindisp_select <= time_disp_select;case(time_disp_select)6'b100000: Data <= hour1;6'b010000: Data <= hour0;6'b001000: Data <= minute1;6'b000100: Data <= minute0;6'b000010: Data <= second1;6'b000001: Data <= second0;default: Data <= 4'b0;endcaseend显示译码数据段重要程序如下:case(Data)4'b0000: disp_data<=7'b1111110;4'b0001: disp_data<=7'b0110000;4'b0010: disp_data<=7'b1101101;4'b0011: disp_data<=7'b1111001;4'b0100: disp_data<=7'b0110011;4'b0101: disp_data<=7'b1011011;4'b0110: disp_data<=7'b1011111;4'b0111: disp_data<=7'b1110000;4'b1000: disp_data<=7'b1111111;4'b1001: disp_data<=7'b1111011;default: disp_data<=7'b0;endcase显示译码程序说清楚明了0到9十个数在7段数码管中所对应的值,在case语句里面最重要的是必定不克不及忘了default,不然仿真会产生所不愿望看到的成果.下图13为闹钟设置使能有用时仿真成果.2.2 流程图的设计与实现2.121、2、3、"endmodule"程序后面没加"endmodule"4、Error (10170): Verilog HDL syntax error at Time.v(56) near text "<="; expecting ".", or an identifier把“<=”改为“=”3.2 程序测试及成果剖析1.从图中可以看出当second0满1010即10时被置为0000,而second1加1,知足秒的低位满十进一位的设置.2.从图中可以看出,在第一个时钟周期内,时光显示位选旌旗灯号time_disp_select的值为000000,此时应履行case语句的default,Data的值为0;在第二个时钟周期内,time_disp_select的值为000001,此时对应其最后一种状况,将second0的值赋给Data,即Data的值为0110,从图中看,仿真成果准确,disp_data暗示的是将当前数据译码显示之后七段数码管的显示,所以在第一个周期内值为1111110,暗示值为0,与Data所暗示的数对应.依次类推,可将Data的值全体暗示出来.3.从图中可以看出,当只有Timeset_EN:时光设置使能旌旗灯号有用时,其七段数码管显示成果,与数字钟主动工作使能端的差别为闹钟设置使能端有用时只需对hour0.hour1.minute0和minute1进行设置,因为其同样须要将值赋给disp_select,为了同一时代,其值也设为6位,其4个状况分离为100000.010000.001000和000100.其他与主动工作模式雷同.参考文献HDL适用教程.成都:电子科技大学出版社,1999[2]齐洪喜,陆颖.VHDL电路设计[M].北京:清华大学出版社,2004[3]江国强,李哲英.EDA技巧与运用[M].北京:电子工业出版社,2004[4]雷伏容.VHDL电路设计[M].北京:清华大学出版社,2006[5]曾繁泰,陈美金.VHDL程序设计[M].北京:清华大学出版社,2000[6]潘松,王国栋.VHDL适用教程.成都:电子科技大学出版社,2000[7]赵雅兴.FPGA道理.设计与运用.天津:天津大学出版社,1998[8]陈俊硕,刘景林,张金萍.基于FPGA的直流电机PWM控制器设计[J].微电机2009(10)[9]卢杰,赖毅.VHDL与数字电路设计.北京:科学出版社,2001[10]张昌凡,龙永红,彭涛.可编程逻辑器件及VHDL设计技巧.广州:华南工学院出版社,2001附录(源代码)源代码:///////////////////////////`timescale 1ns/1nsModule aa(clk,TimeSet_EN,SW1,i_SW2,zox,disp_select,hour1,hour0,minute1,minute0,second1,second0); input clk;input TimeSet_EN; //时光设置使能旌旗灯号input SW1;input i_SW2;output zox; //高低午指导模output [5:0] disp_select;output [3:0] hour1,hour0,minute1,minute0,second1,second0;reg [7:0] second,minute,hour;reg tun,mod,zox;wire r_SW2;reg [2:0] disp_drive;reg [6:0] time_disp_select;reg [6:0] disp_select;reg [3:0] Data,hour1,hour0,minute1,minute0,second1,second0;reg [6:0] disp_data;reg mt,nt;initialbegintun=0;mod=0;zox=0;hour=0;minute=0;second=0;disp_drive=3'b000;endassign r_SW2=i_SW2;////////////////////////////////////////////////////////////////秒钟计时器always @(posedge clk) //上升沿触发beginif(r_SW2==1'b1)beginif(disp_drive==3'b110)second<=0;tun<=0;endelse if(second==8'h59)beginsecond<=0;tun<=1;endelse beginif(second[3:0]==9)beginsecond[3:0]<=0;second[7:4]<=second[7:4]+1;endelsebeginsecond[3:0]<=second[3:0]+1;endtun<=0;endsecond1<=second[7:4];second0<=second[3:0];end////////////////////////////////////////////////////////////// //分钟计时器always @(posedge tun) //上升沿触发beginif(r_SW2==1'b1)begincase(disp_drive)3'b010: begin //分的高位if(minute[7:4]<5)minute[7:4]<=minute[7:4] + 1;elseminute[7:4]<=0;end3'b011: beginif(minute[3:0]< 9)minute[3:0]<=minute[3:0]+1;elseminute[3:0]<=0;enddefault: beginendendcasemod<=0;endelseif(minute==8'h59)beginminute<=0;mod<=1;endelse beginif(minute[3:0]==9)beginminute[3:0]<=0;minute[7:4]<=minute[7:4]+1;endelsebeginminute[3:0]<=minute[3:0]+1;endmod<=0;endminute1<=minute[7:4];minute0<=minute[3:0];end////////////////////////////////////////////////////////////////////// ////////////////////时钟计时器always @(posedge mod ) //上升沿触发beginif(r_SW2==1'b1)begincase(disp_drive)3'b000: beginif(hour[7:4]==0)hour[7:4]<= hour[7:4]+1;else beginhour[7:4]<= 0;if(zox==0)zox<=1;elsezox<=0;endend3'b001: begin //小时的低位if(hour[3:0]<1)hour[3:0]<= hour[3:0] +1;elsehour[3:0]<=0;enddefault: beginendendcaseendelse beginif(hour==8'h11)beginhour<=0;if(zox==0)zox<=1;else zox<=0;endelsehour[3:0]<=hour[3:0]+1;endhour1<=hour[7:4];hour0<=hour[3:0];end////////////////////////////////////////////////////////////////////// ////////////////////时光设置always @(posedge SW1) //手动设置使能beginif(TimeSet_EN == 1'b1)beginif(disp_drive <3'b101)disp_drive <= disp_drive + 3'b1;elsedisp_drive <= 3'b000;endend////////////////////时钟显示always @(clk, TimeSet_EN,time_disp_select,disp_select,hour1,hour0,minute1,minute0,second1,second0)begin //时钟,秒表显示if((clk || TimeSet_EN) == 1'b1)begin //时钟,秒表显示if(clk || TimeSet_EN == 1'b1)begindisp_select <= time_disp_select; case(time_disp_select)6'b100000: Data <= hour1;6'b010000: Data <= hour0;6'b001000: Data <= minute1; 6'b000100: Data <= minute0; 6'b000010: Data <= second1; 6'b000001: Data <= second0; default: Data <= 4'b0;endcaseendcase(Data) //显示数据译码4'b0000: disp_data <= 7'b1111110;4'b0001: disp_data <= 7'b0110000;4'b0010: disp_data <= 7'b1101101;4'b0011: disp_data <= 7'b1111001;4'b0100: disp_data <= 7'b0110011;4'b0101: disp_data <= 7'b1011011;4'b0110: disp_data <= 7'b1011111;4'b0111: disp_data <= 7'b1110000;4'b1000: disp_data <= 7'b1111111;4'b1001: disp_data <= 7'b1111011;default: disp_data <= 7'b0;endcaseendendendmodule。

数字钟设计说明书

数字钟设计说明书

电子课程设计说明书题目:数字钟学生姓名专业学号指导教师日期摘要本说明书介绍了带有校时和整点报时功能的数字钟的实现方案。

包括制作数字钟所需要的各种芯片及具体连接思路和方法,设计过程出现的一些问题和解决方法以及心得体会。

关键词:计数器,触发器分频,555脉冲产生电路,数据选择mul tisim一、完成课题的工作基础和实验条件1.工作基础(1)了解同步十进制计数器CC4518二输入与非门CC4011 四输入与非门CC4012 D触发器CC1013 和非门CC4049的功能和引脚图。

(2)设计电路图,并在进行仿真(采用Multisim进行仿真)。

(3)熟悉面包板、示波器的使用2.实验条件(1)同步时进制计数器CC4518 3个(2)四输入与非门CC4012 1个(3)二输入与非门CC4011 5个(4)非门CC4049 2个(5)D触发器CC4013 1个(6)555定时器2个(7)10kΩ电阻2个(8)100kΩ电阻2个(9)47μF电容1个(11)0.01μF电容4个(12)示波器1台(13)面包板实验台(14)导线若干二、设计任务和要求数字钟设计指标:1、基本指标:(1)时间计数电路采用24进制,从00开始到23后再回到00;各用2位数码管显示时、分、秒;(2)具有校时、校分功能,可以分别对时及分进行单独校时,使其校正到标准时间;(3)计时过程具有报时功能,当时间到达整点前10秒开始,蜂鸣器1秒响1秒停地响5次,前四次蜂鸣器声响频率为500Hz,最后一次,即59分59秒时,蜂鸣器声响频率为1000Hz;(4)为了保证计时的稳定及准确,须由555定时器提供时间基准信号。

2、提高指标:(1)星期计数。

因为只有六个数码显示器,分别显示时、分、秒的个十位,故在基本指达到后,拆除一个数码显示器来显示星期。

星期计数从1~6表示星期一到星期六,星期天由8表示。

(2)暂停功能。

暂停秒钟可辅助校时。

三、电路基本原理1、总体设计框架图2、各部分详细电路图(1)脉冲产生电路由555定时器产生脉冲,具体电路如下(a)1Hz 脉冲产生(b)1kHz脉冲产生其中5nF电容由两个0.01μF电容串联而成(2)分频电路采用CC4013 D触发器进行分频,1kHz脉冲从端口3(CP)中输入,在端口2(~Q)即输出500Hz脉冲。

数字钟电路设计与制作实验报告

数字钟电路设计与制作实验报告

数字钟电路设计与制作实验报告一、实验目的:1、综合应用数字电路知识;2、学习使用protel进行电子电路的原理图设计、印制电路板设计3、学习电路板制作、安装、调试技能。

二、实验任务及要求:任务:设计一个12小时或24小时制的数字钟,显示时、分、秒,有校时功能,可以分别对时及分进行单独校时,使其校正到准确时间。

可以根据兴趣增加其它与数字钟有关的功能。

要求:画出电路原理图,元器件及参数选择,PCB文件生成、制板及实物制作三、实验原理及电路设计:1、设计方案与模块框图利用74LS161和74LS00 ,555,数码管,开关来设计24小时数字时钟,构造它们主要实现时钟的显示,以及对时、分、秒进行调整,即实现调时的功能。

其数字钟系统整体结构①74LS161和74LS00计数器:用来设计24小时②开关与74LS00结合:用来校时,校分,校秒。

③利用555振荡器:产生脉冲信号④数码管:用来显示时分秒。

2、各子模块电路设计及原理说明74LS161 :十六进制的计数器,当秒到60时要进位当分上利用74LS161与74LS00的结合,当秒、分到60时对其进行清零,进位。

当时24时,对其进行清零。

当时分秒个位到9时,对其本位(时分秒)清零和进位。

74LS00 与开关:74LS00与开关的结合,以此来控制校对。

555振荡器:利用555设计一个振荡器产生一个脉冲信号,以此来控制信号的进行与停止、时间的校对。

数码管:显示时分秒。

3、仿真图及仿真方法说明连好图,按一下仿真键,①若能仿真且准确无误,会出现24小时的显示则成功了。

②若不能仿真,数码管不会显示出来示数,或者显示紊乱,则失败,检查电路是否正确,有没有连错,少连错连,不断地改正,不断改进,直到可以仿真,可以显示无错。

③对校时、校分、校秒:按一下开关,脉冲过来就可以,增加一个数,依次按键对其进行时分秒校对。

四、主要实验元件及器材清单:五、系统设计与实现1、总电路图2、工程变化订单3、PCB图(单独A4纸打印,如有飞线请彩色打印,以区别红蓝二色)4、3D图(彩色打印)六、总结1、电路图、PCB图设计及实物制作过程中遇到的主要问题及解决方法电路图:①:清零端与置数端混淆:使用不同的端口,有不同的连接方式。

12时制数字显示电子钟介绍

12时制数字显示电子钟介绍

二〇一七年六月原始资料设计题目:12时制数字显示电子钟设计任务书:设计一个数字显示电子时钟,同时设计一与电路相配合的稳压电源电路。

要求:1、时钟的“时”要求用两位显示(1~12);2、时钟的“分”、“秒”要求各用两位显示;3、整个系统要有校时部分(可以手动,也可以自动),校时时不能产生进位;4、能显示上午、下午标志。

5、5V电源模块的设计。

提示:1、由石英晶体多谐振荡器和分频器产生1HZ标准秒脉冲。

2、“分”、“秒”是60进制,可用两片74160构成;3、“时”是12进制计数器,高位可用T触发器构成,低位可用74160构成。

如果高位为1,低位为2,则再有进位时将置为01;4、标志灯,如果是上午则上面的灯亮;如果是下午则下面的灯亮。

可用一个T 触发器构成。

注意:对于课题相同的同学可以互相讨论,但图纸、课程设计报告内容不允许雷同,否则以0分计论文撰写注意事项:1.论文必须采用黑色钢笔或中性笔书写,不能用蓝色钢笔或圆珠笔书写,论文中的电路图也必须用黑色钢笔或中性笔画出(可用铅笔画出然后用黑色钢笔或中性笔描出)。

2.论文应包括以下基本内容:封面;任务书(签名);题目、摘要(在同一页);目录;(每项都从新一页开始)。

引言;正文(分章节写,每章都从新一页开始,第1章(一级标题),1.1(二级标题))方案比较、论证和选择,方案的总系统框图,各部分单元电路电路图,详述工作原理;单元电路设计计算,元器件的选择,结论,致谢和参考文献;3.论文格式必须规范。

4.论文上交时必须装订成册。

附录部分:设计图纸(A3图纸)。

摘要数字电子钟是一种用数字显示秒、分、时、日的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械转动装置等优点,因而得到了广泛的应用,例如人们日常生活中的电子手表,以及车站、码头、机场等公共场所的大型数显电子钟等。

数字钟是一个对标准频率(1HZ)进行计数的计数电路。

由于计数的起始时间可能不与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。

12时制数字显示电子钟介绍

12时制数字显示电子钟介绍

二〇一七年六月原始资料设计题目:12时制数字显示电子钟设计任务书:设计一个数字显示电子时钟,同时设计一与电路相配合的稳压电源电路。

要求:1、时钟的“时”要求用两位显示(1~12);2、时钟的“分”、“秒”要求各用两位显示;3、整个系统要有校时部分(可以手动,也可以自动),校时时不能产生进位;4、能显示上午、下午标志。

5、5V电源模块的设计。

提示:1、由石英晶体多谐振荡器和分频器产生1HZ标准秒脉冲。

2、“分”、“秒”是60进制,可用两片74160构成;3、“时”是12进制计数器,高位可用T触发器构成,低位可用74160构成。

如果高位为1,低位为2,则再有进位时将置为01;4、标志灯,如果是上午则上面的灯亮;如果是下午则下面的灯亮。

可用一个T 触发器构成。

注意:对于课题相同的同学可以互相讨论,但图纸、课程设计报告内容不允许雷同,否则以0分计论文撰写注意事项:1.论文必须采用黑色钢笔或中性笔书写,不能用蓝色钢笔或圆珠笔书写,论文中的电路图也必须用黑色钢笔或中性笔画出(可用铅笔画出然后用黑色钢笔或中性笔描出)。

2.论文应包括以下基本内容:封面;任务书(签名);题目、摘要(在同一页);目录;(每项都从新一页开始)。

引言;正文(分章节写,每章都从新一页开始,第1章(一级标题),1.1(二级标题))方案比较、论证和选择,方案的总系统框图,各部分单元电路电路图,详述工作原理;单元电路设计计算,元器件的选择,结论,致谢和参考文献;3.论文格式必须规范。

4.论文上交时必须装订成册。

附录部分:设计图纸(A3图纸)。

摘要数字电子钟是一种用数字显示秒、分、时、日的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械转动装置等优点,因而得到了广泛的应用,例如人们日常生活中的电子手表,以及车站、码头、机场等公共场所的大型数显电子钟等。

数字钟是一个对标准频率(1HZ)进行计数的计数电路。

由于计数的起始时间可能不与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。

数字钟+12小时制+时分校正

数字钟+12小时制+时分校正

目录1 课程设计目的 (1)2 课程设计题目描述和要求 (1)3 课程设计报告内容 (1)3.1 设计方案的选定与说明 (1)3.2 论述方案的各部分原理 (1)3.3 相关的计算 (8)3.4 电路的总图 (8)4 总结 (8)5 附图 (10)1 设计的目的(1)会运用电子技术课程所学到的理论知识,独立完成设计课题;(2)会将单元电路组成系统电路的方法;(3)了解数字计时装置的基本工作原理和简单设计方法;(4)熟悉中规模集成电路和半导体显示器件的使用方法;(5)通过查阅手册和文献资料,培养独立分析和解决实际问题的能力。

2 题目描述和要求(1)时间以12小时为一周期;(2)要显示时、分、秒;(3)具体校时功能,可以分别对时及分进时单独校时,使其校正到标准时间;(4)为了保证计时的稳定及准确须由晶体器提供表针时间基准信号。

3 报告内容3.1 计方案的选定与说明数字钟电路是一个典型的数字电路系统,其由时、分、秒计数器以及校时和显示电路组成。

数字钟是一个对秒(即频率为1HZ)进行计数的计数电路。

由于计数电路启动时的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校正(校正时,分等)电路,同时频率为1HZ的信号必须做到准确稳定。

数字式计时器一般都有振荡器、分频器、译码器、显示器等几部分组成。

其中,振荡器和分频器组成标准秒信号发生器,有不同进制的计数器、译码器和显示器组成计时系统。

秒信号送入计数器进行计数,把累加的结果以“时”、“分”、“秒”的数字显示出来。

“时”显示由二十四进制计数器、译码器和显示器构成;“分”和“秒”显示分别由六十进制计数器、译码器和显示器构成。

数字钟原理数字钟的原理框图如图一所示,它由振荡器、计秒电路、计分电路、计时电路译码显示电路等组成,工作时,石英晶体振荡器产生频率稳定的脉冲,经过若干次分频,得到秒脉冲信号,并送计秒电路;当秒计数器给满60秒时,输出秒进位信号,送计分电路,当分计数器满60分时,输出分进位信号,并送计时电路,当时计数满12小时后,时分秒计数器同时自动复0,又开始新的 12小时。

EDA设计报告-数字钟

EDA设计报告-数字钟

一、设计要求1、设计一个能显示1/10秒、秒、分、时的12小时数字钟。

2、熟练掌握各种计数器的使用。

能用计数器构成十进制、六十进制、十二进制等所需进制的计数器。

能用低位的进位输出构成高位的计数脉冲。

3、“时显示”部分应注意12点后显示1点。

4、注意各部分的关系,由低位到高位逐级设计、调试。

5、时钟显示使用数码管显示。

二、系统方案论证与模块划分1、计数器模块计数器模块中,1/10秒采用带进位的10进制功能模块,秒和分采用带进位的60进制功能模块,小时采用不带进位的12进制功能模块。

计数器模块均用Verilog HDL语言编写,实现计数逻辑功能。

(1)十进制计数器设计程序如下:module ssecond(q,rco,clk,reset);input clk,reset;output [3:0] q;output rco;reg rco;reg [3:0] q;always @(posedge clk or negedge reset)beginif(~reset)q<=4'b0000;else if (q==4'b1001) begin q<=4'b0000; rco=1;endelse begin q<=q+1'b1; rco=0;endendendmodule经编译、仿真、下载,满足要求。

然后通过Create Default Symbol,生成符号体如下:(2)六十进制计数器设计程序如下:module second(qh,ql,rco,clk,reset);output[3:0]qh;output[3:0]ql;output rco;reg [3:0]qh;reg [3:0]ql;reg rco;input clk,reset;always @(posedge clk or negedge reset)beginif(~reset){qh,ql}<=0;elsebeginif({qh,ql}==8'h59)begin {qh,ql}<=0;rco<=1;endelsebeginif(ql==9)begin ql<=0; qh<=qh+1;endelsebegin ql<=ql+1;rco<=0;endendendendendmodule经编译、仿真、下载,满足要求。

数电课程设计多功能数字钟的电路设计

数电课程设计多功能数字钟的电路设计

课程设计任务书学生姓名:XXX 专业班级:指导教师:题目: 多功能数字钟电路设计要求完成的主要任务:用中、小规模集成电路设计一台能显示日、时、分秒的数字电子钟,要求如下:1.由晶振电路产生1HZ标准秒信号。

2.秒、分为00-59六十进制计数器。

3.时为00-23二十四进制计数器。

4.可手动校正:能分别进行秒、分、时的校正。

只要将开关置于手动位置。

可分别对秒、分、时进行连续脉冲输入调整。

5.整点报时。

整点报时电路要求在每个整点前鸣叫五次低音(500HZ),整点时再鸣叫一次高音(1000HZ)。

指导教师签名:年月日系主任(或责任教师)签名:年月日多功能数字钟电路设计摘要 (1)Abstract (2)1系统原理框图 (3)2方案设计与论证 (4)2.1时间脉冲产生电路 (4)2.2分频器电路 (7)2.3时间计数器电路 (8)2.4译码驱动及显示单元电路 (9)2.5校时电路 (9)2.6报时电路 (12)3单元电路的设计 (14)3.1时间脉冲产生电路的设计 (14)3.2计数电路的设计 (15)3.2.1 60进制计数器的设计 (15)3.2.2 24进制计数器的设计 (16)3.3 译码及驱动显示电路 (16)3.4 校时电路的设计 (17)3.5 报时电路 (18)3.6电路总图 (20)4仿真结果及分析 (21)4.1时钟结果仿真 (21)4.2 秒钟个位时序图 (21)4.3报时电路时序图 (23)4.4测试结果分析 (23)5心得与体会 (24)6参考文献 (25)附录1原件清单 (26)附录2部分芯片引脚图与功能表 (27)74HC390引脚图与功能表 (27)摘要数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。

数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。

12小时制任意点定时数字闹钟设计方案

12小时制任意点定时数字闹钟设计方案
2.4整点报时
分别用2个或非门接到分和秒的各输出个节点处,再用一个与非门与报时灯,当输出同时为零时,即整点时,报时灯就亮了,起到报时功能。本实验使用LED发光(1s),其电路图如下:
图4
2.5电路调试
调试这部分工作在EWB仿真软件上进行。对于电路的调试应该分为几个部分,分别对电路各个部分的功能都进行调试,之后,每连接一部分都要调试一次。
2.6数字钟的构成
数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路.由于计数的起始时间不可能与标准时间(如时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定.通常使用石英晶体振荡器电路构成数字钟
2.6.1晶体振荡器电路
晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确及稳定.不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路.
用单片机的另一个优点是设计软件将不断积累,不断模块化,形成标准化软件,大大提高了开发效率。
数字电子钟的设计方法有很多种,例如可以用中小规模的集成电路组成电子钟;也可以用专用的电子钟芯片配以显示电路及所需要的外围电路组成电子钟;还可以利用单片机来实现电子钟。这些方法各有特点,其中利用单片机实现的电子钟具有编程灵活,便于电子钟功能的扩充,即可以使用该电电子钟发出控制信号。
2.6.4译码驱动电路
译码驱动电路将计数器输出的8421BCD码转换为数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流。
2.6.5数码管
数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管,本设计提供的为LED数码管。
2.7设计方案
2.7.1晶体振荡器电
晶体振荡器是构成数字式时钟的核心,它保证了时钟的走时准确及稳定.通CMOS非门构成的输出为方波的数字式晶体振荡电路,这个电路中,CMOS非门U1与晶体,电容和电阻构成晶体振荡器电路,U2实现整形功能,将振荡器输出的近似于正弦波的波形转换为较理想的方波.输出反馈电 阻R1为非门提供偏置,使电路工作于放大区域,即非门的功能近似于一个高增益的反相放大器.电容C1,C2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了振荡器的功能.由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。晶体XTAL的频率选为32768HZ.该元件专为数字钟电路而设计,其频率较低,有利于减少分频器级数。

分时区、12小时制和24小时制多功能电子时钟

分时区、12小时制和24小时制多功能电子时钟
/********************************************************************
多功能电子时钟
单片机:STC89C52系列或其兼容型号
外部晶振:12MHZ
功能:1、支持多个时钟同时运行(CLOCKCOUNT)
2、每个时钟都具备12小时模式和24小时模式
#define KEY1(1)//1号按键的键值
#define KEY2(2)//2号按键的键值
#define KEY3(3)//3号按键的键值
#define NOKEY(4)//无按键时的返回键值
#define BEEPON(1)//打开蜂鸣器的电平
#define BEEPOFF(0)//关闭蜂鸣器的电平
}
break;
default:
SEGPORT=DispBuf[i];
FlashCount=FLASHFREQ;
}
WEIPORT=WeiCode;
WeiCode<<=1; WeiCode|=1;
xDelay(10);
}
}
//显示指定时钟的时钟下标(编号)
//aClock——时钟下标
void DisplayClock(unsigned char xClock)
}
//将所选时钟的闹铃时间填充到显示缓冲区
ቤተ መጻሕፍቲ ባይዱ//pClock——指向时钟的指针
void FillAlarmToDispBuf(TClock *pClock)
{
DispBuf[0]=SegCode[10];
DispBuf[1]=SegCode[10];
DispBuf[2]=SegCode[pClock->AlarmHour/10];
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:12小时数字钟电路设计与实现院(系):计算机学院专业:计算机科学与技术班级:34010104学号:64姓名:指导教师:胡光元完成日期:2016 年 1月 13 日目录第1章总体设计方案 (2)1.1设计原理 (2)1.2设计思路 (2)1.3设计环境 (2)第2章详细设计方案 (2)2.1算法与程序的设计与实现 (3)2.2流程图的设计与实现 (4)第3章程序调试与结果测试 (7)3.1程序调试 (7)列举出调试过程中存在的问题 (7)3.2程序测试及结果分析 (7)参考文献 (9)附录(源代码) (10)第1章总体设计方案1.1设计原理通过Verilog语言,编写12小时数字钟电路设计与实现的Verilog程序,一般的做法是底层文件用verilog写代码表示,顶层用写的代码生成的原理图文件组成,最后在加上输入输出端口。

采用自上而下的方法,顶层设计采用原理图设计输入的方式。

1.2设计思路1.实时数字钟显示功能,即时、分、秒的正常显示模式,并且在此基础上增加上,下午显示。

2.手动校准。

按动方式键,将电路置于校时状态,则计时电路可用手动方式校准,每按一下校时键,时计数器加1;按动方式键,将电路置于校分状态,以同样方式手动校分。

1.3设计环境(1)硬件环境•伟福COP2000型计算机组成原理实验仪COP2000计算机组成原理实验系统由………•COP2000集成调试软件COP2000集成开发环境是为………….(2)EDA环境•Xilinx foundation f3.1设计软件Xilinx foundation f3.1是Xilinx公司的可编程期间………….第2章详细设计方案2.1 算法与程序的设计与实现(1)秒钟计时器由于秒计数器为60进制计数器,所以以秒计数器作为示例说明其编程思想。

其中秒计数器模块在程序中为always (posedge clk)的程序段,由上面分析得秒计数器由一个十进制计数器与一个六进制计数器组成,程序中有second0表示秒计数器低位即10进制计数器,second1表示秒计数器的高位为一个六进制计数器。

clk为时钟信号,时钟周期1/60(S),当低位second0满10时,自动进一位,即second1自动进位。

Second0,second1位宽均为4位reg型变量。

(2)分钟钟计时器分钟计时器由于秒计数器为12 进制计数器,示例说明其编程思想。

其中秒计数器模块在程序中为always (posedge mod )的程序段,由分析得小时计数器由一个二进制计数器与一个三进制计数器组成,程序中有hour0表示秒计数器低位即二进制计数器,hour1表示秒计数器的高位为一个三进制计数器。

Mod为时钟信号,来自分钟计时模块的mod,时钟周期360(S),当低位hour0满3时,自动进一位,即hour1自动进位。

hour1,hour1位宽均为4位reg型变量。

(3)小时计时器小时计时器同秒钟计时器其中小时计数器模块在程序中为always (posedge tun)的程序段,分钟计时器的低位、高位分别由minute0、minute1表示,但分钟计时器模块的敏感信号为“posedge tun”时钟信号,“tun”的产生自秒钟计时器,可知其产生的时钟信号为1(S),每触发一次则分钟计数器计数加1一次,同时产生mod的时钟信号,同时由于做的是12小时数字钟电路,所有zox表示的是显示上下午,当小时计数器满12时zox变化一次,其中zox=0表示的是上午,zox=1表示的是下午。

(4)时间设置时间设置模块实现的功能为通过按键调节可以对当前时间进行手动控制。

其主要是在时间设置使能端有效地情况下通过SW1和i_SW2两个按键对数字钟的小时和分钟数进行调节。

Disp_drive为设置中的显示控制,即通过SW1对位的调整,Disp_drive随之变化。

i_SW2为对每一位上的数字在其围进行加1调节。

Disp_drive取值000、001、010和011分别对应hour1、hour0、minute1和minute0的设置,其中的加1设置在各个计时器模块,这样做的原因是防止两个“always”进程对同一个变量赋值发生错误。

(5)控制显示模块控制显示模块在整个数字钟的设计中起着非常重要的作用。

它的作用是将时间等数据用数码管显示的控制和数据传输模块,包括数据的传输以及BCD码译码等。

通过几个控制使能端将其不同功能时的时间在数码管上显示出来。

本模块中端口定义比较多,下面是其所对应的功能。

clk:时间自动模式工作使能信号;Timeset_EN:时间设置使能信号;Time_disp_select:时间显示位选信号;Disp_select:显示位选信号输出;程序设计中,各使能端信号为1表示执行该功能,以时间自动工作模式使能信号有效为例说明,当Time_EN为1时,首先将时间显示位选信号isp_select 的值赋给显示位选信号disp_select输出,定义time_disp_select的状态一共有6个,分别为100000、010000、001000、000100、000010和000001,其在各状态下分别依次表示将、hour0、hour1、minute0、minute1、second0和second1的值赋给data,用case语句来实现,其实现语句如下:always(clk,TimeSet_EN,time_disp_select,disp_select,hour1,hour0, minute1,minute0,second1,second0)begin //时钟,秒表显示if((clk || TimeSet_EN) == 1'b1)begindisp_select <= time_disp_select;case(time_disp_select)6'b100000: Data <= hour1;6'b010000: Data <= hour0;6'b001000: Data <= minute1;6'b000100: Data <= minute0;6'b000010: Data <= second1;6'b000001: Data <= second0;default: Data <= 4'b0;endcaseend显示译码数据段主要程序如下:case(Data)4'b0000: disp_data<=7'b1111110;4'b0001: disp_data<=7'b0110000;4'b0010: disp_data<=7'b1101101;4'b0011: disp_data<=7'b1111001;4'b0100: disp_data<=7'b0110011;4'b0101: disp_data<=7'b1011011;4'b0110: disp_data<=7'b1011111;4'b0111: disp_data<=7'b1110000;4'b1000: disp_data<=7'b1111111;4'b1001: disp_data<=7'b1111011;default: disp_data<=7'b0;endcase显示译码程序说明了0到9十个数在7段数码管中所对应的值,在case 语句里面最重要的是一定不能忘了default,否则仿真会发生所不希望看到的结果。

下图13为闹钟设置使能有效时仿真结果。

2.2 流程图的设计与实现1.数字钟2.12小时数字时钟整体第3章程序调试与结果测试3.1 程序调试1、Error (10170): Verilog HDL syntax error at a.v(65) near text "always"; expecting "end"忘记在begin之后加end结束语2、Error (10161): Verilog HDL error at a.v(165): object "Dat" is not declared在程序开始Dat忘记标记和定义3、Error (10170): Verilog HDL syntax error at Time.v(49) near text "else"; expecting "endmodule"程序后面没加"endmodule"4、Error (10170): Verilog HDL syntax error at Time.v(56) near text "<="; expecting ".", or an identifier把“<=”改为“=”3.2 程序测试及结果分析1.从图中可以看出当second0满1010即10时被置为0000,而second1加1,满足秒的低位满十进一位的设置。

2.从图中可以看出,在第一个时钟周期,时间显示位选信号time_disp_select 的值为000000,此时应执行case语句的default,Data的值为0;在第二个时钟周期,time_disp_select的值为000001,此时对应其最后一种状态,将second0的值赋给Data,即Data的值为0110,从图中看,仿真结果正确,disp_data表示的是将当前数据译码显示之后七段数码管的显示,所以在第一个周期值为1111110,表示值为0,与Data所表示的数对应。

依次类推,可将Data的值全部表示出来。

3.从图中可以看出,当只有Timeset_EN:时间设置使能信号有效时,其七段数码管显示结果,与数字钟自动工作使能端的区别为闹钟设置使能端有效时只需对hour0、hour1、minute0和minute1进行设置,由于其同样需要将值赋给disp_select,为了统一期间,其值也设为6位,其4个状态分别为100000、010000、001000和000100。

其他与自动工作模式相同。

参考文献[1]明.Verilog HDL实用教程.:电子科技大学,1999[2]齐洪喜,陆颖.VHDL电路设计[M].:清华大学,2004[3]江国强,哲英.EDA技术与应用[M].:电子工业,2004[4]雷伏容.VHDL电路设计[M].:清华大学,2006[5]曾繁泰,美金.VHDL程序设计[M].:清华大学,2000[6]松,王国栋.VHDL实用教程.:电子科技大学,2000[7]雅兴.FPGA原理、设计与应用.:大学,1998[8]俊硕,景林,金萍.基于FPGA的直流电机PWM控制器设计[J].微电机2009(10)[9]卢杰,赖毅.VHDL与数字电路设计.:科学,2001[10]昌凡,龙永红,涛.可编程逻辑器件及VHDL设计技术.:华南工学院,2001附录(源代码)源代码:///////////////////////////`timescale 1ns/1nsModule aa(clk,TimeSet_EN,SW1,i_SW2,zox,disp_select,hour1,hour0,minute1,minute0,second1,second0) ;input clk;input TimeSet_EN; //时间设置使能信号input SW1;input i_SW2;output zox; //上下午指示模output [5:0] disp_select;output [3:0] hour1,hour0,minute1,minute0,second1,second0;reg [7:0] second,minute,hour;reg tun,mod,zox;wire r_SW2;reg [2:0] disp_drive;reg [6:0] time_disp_select;reg [6:0] disp_select;reg [3:0] Data,hour1,hour0,minute1,minute0,second1,second0;reg [6:0] disp_data;reg mt,nt;initialbegintun=0;mod=0;zox=0;hour=0;minute=0;second=0;disp_drive=3'b000;endassign r_SW2=i_SW2;////////////////////////////////////////////////////////////////秒钟计时器always (posedge clk) //上升沿触发beginif(r_SW2==1'b1)beginif(disp_drive==3'b110)second<=0;tun<=0;endelse if(second==8'h59)beginsecond<=0;tun<=1;endelse beginif(second[3:0]==9)beginsecond[3:0]<=0;second[7:4]<=second[7:4]+1;endelsebeginsecond[3:0]<=second[3:0]+1;endtun<=0;endsecond1<=second[7:4];second0<=second[3:0];end////////////////////////////////////////////////////////////// //分钟计时器always (posedge tun) //上升沿触发beginif(r_SW2==1'b1)begincase(disp_drive)3'b010: begin //分的高位if(minute[7:4]<5)minute[7:4]<=minute[7:4] + 1;elseminute[7:4]<=0;end3'b011: beginif(minute[3:0]< 9)minute[3:0]<=minute[3:0]+1;elseminute[3:0]<=0;enddefault: beginendendcasemod<=0;endelseif(minute==8'h59)beginminute<=0;mod<=1;endelse beginif(minute[3:0]==9)beginminute[3:0]<=0;minute[7:4]<=minute[7:4]+1;endelsebeginminute[3:0]<=minute[3:0]+1;endmod<=0;endminute1<=minute[7:4];minute0<=minute[3:0];end////////////////////////////////////////////////////////////////////// ////////////////////时钟计时器always (posedge mod ) //上升沿触发beginif(r_SW2==1'b1)begincase(disp_drive)3'b000: beginif(hour[7:4]==0)hour[7:4]<= hour[7:4]+1;else beginhour[7:4]<= 0;if(zox==0)zox<=1;elsezox<=0;endend3'b001: begin //小时的低位if(hour[3:0]<1)hour[3:0]<= hour[3:0] +1;elsehour[3:0]<=0;enddefault: beginendendcaseendelse beginif(hour==8'h11)beginhour<=0;if(zox==0)zox<=1;else zox<=0;endelsehour[3:0]<=hour[3:0]+1;endhour1<=hour[7:4];hour0<=hour[3:0];end////////////////////////////////////////////////////////////////////// ////////////////////时间设置always (posedge SW1) //手动设置使能beginif(TimeSet_EN == 1'b1)beginif(disp_drive <3'b101)disp_drive <= disp_drive + 3'b1;elsedisp_drive <= 3'b000;endend////////////////////时钟显示always (clk, TimeSet_EN,time_disp_select,disp_select,hour1,hour0,minute1,minute0,second1,second0)begin //时钟,秒表显示if((clk || TimeSet_EN) == 1'b1)begin //时钟,秒表显示if(clk || TimeSet_EN == 1'b1)begindisp_select <= time_disp_select;case(time_disp_select)6'b100000: Data <= hour1;6'b010000: Data <= hour0;6'b001000: Data <= minute1;6'b000100: Data <= minute0;6'b000010: Data <= second1;6'b000001: Data <= second0;default: Data <= 4'b0;endcaseendcase(Data) //显示数据译码4'b0000: disp_data <= 7'b1111110;4'b0001: disp_data <= 7'b0110000;4'b0010: disp_data <= 7'b1101101;4'b0011: disp_data <= 7'b1111001;4'b0100: disp_data <= 7'b0110011;4'b0101: disp_data <= 7'b1011011;4'b0110: disp_data <= 7'b1011111;4'b0111: disp_data <= 7'b1110000;4'b1000: disp_data <= 7'b1111111;4'b1001: disp_data <= 7'b1111011;default: disp_data <= 7'b0;endcaseendendendmodule。

相关文档
最新文档