12小时数字钟电路设计
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
多功能数字钟的电路设计
多功能数字钟的电路设计目录:一、设计题目二、设计任务和要求三、电路原理分析与程序设计四、元器件五、仿真图六、心得体会七、参考文献资料八、实物图一、题目:多功能数字钟的电路设计二、设计任务与要求1)时钟显示功能,能够以十进制显示“时”、“分”、“秒”。
2)具有校准时、分的功能。
3)整点自动报时,在整点时,便自动发出鸣叫声,时长1s。
选做:1)闹钟功能,可按设定的时间闹时。
2)日历显示功能。
将时间的显示增加“年”、“月”、“日”。
三,电路原理分析与程序设计1.数字钟的构成数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。
由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。
通常使用石英晶体振荡器电路构成数字钟。
一个具有计时、校时、报时、显示等基本功能的数字钟主要由振荡器、分频器、计数器、译码器、显示器、校时电路、报时电路等七部分组成。
石英晶体振荡器产生的信号经过分频器得到秒脉冲,秒脉冲送入计数器计数,计数结果通过“时”、“分”、“秒”译码器译码,并通过显示器显示时间。
数字钟的整机逻辑框图如下:译码显示电路时计数器分计数器秒计数器振荡器校时电路报时电路多级分频器1)555秒脉冲发生电路与晶振秒脉冲发生电路的比较555与RC组成的多谐振荡器,产生频率 f=1kHz的方波信号,则可设计出相应的电路,其中RP可微调振荡器的输出频率f。
555由电阻分压器、电压比较器、基本R-S触发器、放电三极管和输出缓冲器5部分组成。
要产生秒脉冲既可以采用555脉冲发生电路也可以采用晶振脉冲发生电路。
但是相比二者的稳定性,晶振电路比555电路能够产生更加稳定的脉冲,所以最后决定采用晶振脉冲发生电路。
石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整,它是电子钟的核心,用它产生标准频率信号,再由分频器分成秒时间脉冲。
晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确及稳定。
数字钟的设计方法及步骤
四川机电职业技术学院数字电子课程设计说明书题目:数字电子钟院系名称:电子电气工程系专业班级:09电气6班学生姓名:姚瑶学号:0907041114指导教师:刘惠兰、刘廷敏、徐贵仁教师职称:2010年12月15日摘要数字电子钟是采用数字电路实现对“时”、“分”、“秒”数字显示的设计装置。
由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度、稳定度远远超过了老式机械钟表。
在数字显示方面,目前还可以直接采用CMOS-LED 光电组合器件,构成模块式石英晶体数字钟。
为了帮助同学们了解数字钟的组成,运用已学过的数字电路基本知识,掌握设计简单数字系统的方法,本课题介绍数字钟的设计制作方法。
关键词:数字集成电路计数器七段数码显示校时电路1设计题目数字电子钟A 纸,页边距为2.5cm数字电子钟是采用数字电路实现对“时”、“分”、“秒”数字显示的设计装置。
由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度、稳定度远远超过了老式机械钟表。
在数字显示方面,目前还可以直接采用CMOS-LED 光电组合器件,构成模块式石英晶体数字钟。
为了帮助同学们了解数字钟的组成,运用已学过的数字电路基本知识,掌握设计简单数字系统的方法,本课题介绍数字钟的设计制作方法。
1.1数字钟的组成和工作原理一个简单的数字钟,主要由六部分组成。
整机电路方框图如图1-1所示。
图1-1数字钟整机方框图(宋体,5号)1.1.1石英晶体振荡器模块振荡器主要用来产生时间标准信号。
因为数字钟的精度,主要取决于时间标准信号的频率及其稳定度,所以要产生稳定的时标信号,一般是采用石英晶体多谐振荡器,从数字钟的精度考虑,晶振频率愈高,钏表的计时准确度就愈高。
但这会使振荡器的耗电量增大,分频器的级数也要增多。
所以在确定频率时应考虑两方面的因素,然后再选定石英晶体的型号。
图1-2晶体振荡器之一100kΩ1.1.2分频器模块因为振荡器产生的时标信号频率很高,要使它变成能用来计时的“秒”信号,需要一定级数的分频电路。
数字电子钟逻辑电路设计
数字电子钟逻辑电路设计一、简述数字电子钟是一种用数字显示秒、分、时、日的计时装置,与传统的机械钟相比,它具有走时准确,显示直观、无机械传动装置等优点,因而得到了广泛的应用;小到人们日常生活中的电子手表,大到车站、码头、机场等公共场所的大型数显电子钟;数字电子钟的电路组成方框图如图所示;图数字电子钟框图由图可见,数字电子钟由以下几部分组成:石英晶体振荡器和分频器组成的秒脉冲发生器;校时电路;六十进制秒、分计数器,二十四进制或十二进制计时计数器;秒、分、时的译码显示部分等;二、设计任务和要求用中、小规模集成电路设计一台能显示日、时、分、秒的数字电子钟,要求如下:1.由晶振电路产生1Hz标准秒信号;2.秒、分为00~59六十进制计数器;3. 时为00~23二十四进制计数器;4. 周显示从1~日为七进制计数器;5. 可手动校时:能分别进行秒、分、时、日的校时;只要将开关置于手动位置,可分别对秒、分、时、日进行手动脉冲输入调整或连续脉冲输入的校正;6. 整点报时;整点报时电路要求在每个整点前呜叫五次低音500Hz,整点时再呜叫一次高音1000Hz;三、可选用器材1. 通用实验底板2. 直流稳压电源3. 集成电路:CD4060、74LS74、74LS161、74LS248及门电路4. 晶振:32768 Hz5. 电容:100μF/16V 、22pF 、3~22pF 之间6. 电阻:200Ω、10K Ω、22M Ω7. 电位器:Ω或Ω8. 数显:共阴显示器LC5011-119. 开关:单次按键10. 三极管:805011. 喇叭:1 W /4,8Ω四、设计方案提示根据设计任务和要求,对照数字电子钟的框图,可以分以下几部分进行模块化设计;1. 秒脉冲发生器脉冲发生器是数字钟的核心部分,它的精度和稳定度决定了数字钟的质量,通常用晶体振荡器发出的脉冲经过整形、分频获得1Hz 的秒脉冲;如晶振为32768 Hz,通过15次二分频后可获得1Hz 的脉冲输出,电路图如图所示;74LS741Hz图 秒脉冲发生器2. 计数译码显示秒、分、时、日分别为60、60、24、7进制计数器、秒、分均为60进制,即显示00~59,它们的个位为十进制,十位为六进制;时为二十四进制计数器,显示为00~23,个位仍为十进制,而十位为三进制,但当十进位计到2,而个位计到4时清零,就为二十四进制了;周为七进制数,按人们一般的概念一周的显示日期“日、1、2、3、4、5、6”,所以我们设计这个七进制计数器,应根据译码显示器的状态表来进行,如表所示;按表状态表不难设计出“日”计数器的电路日用数字8代替;所有计数器的译码显示均采用BCD—七段译码器,显示器采用共阴或共阳的显示器;表状态表3.校时电路在刚刚开机接通电源时,由于日、时、分、秒为任意值,所以,需要进行调整;置开关在手动位置,分别对时、分、秒、日进行单独计数,计数脉冲由单次脉冲或连续脉冲输入;4.整点报时电路当时计数器在每次计到整点前六秒时,需要报时,这可用译码电路来解决;即当分为59时,则秒在计数计到54时,输出一延时高电平去打开低音与门,使报时声按500Hz频率呜叫5声,直至秒计数器计到58时,结束这高电平脉冲;当秒计数到59时,则去驱动高音1KHz频率输出而鸣叫1声;五、参考电路数字电子钟逻辑电路参考图如图所示;图数字电子钟逻辑电路参考图六、参考电路简要说明1. 秒脉冲电路由晶振32768Hz经14分频器分频为2Hz,再经一次分频,即得1Hz标准秒脉冲,供时钟计数器用;2. 单次脉冲、连续脉冲这主要是供手动校时用;若开关K1打在单次端,要调整日、时、分、秒即可按单次脉冲进行校正;如K1在单次,K2在手动,则此时按动单次脉冲键,使周计数器从星期1到星期日计数;若开关K1处于连续端,则校正时,不需要按动单次脉冲,即可进行校正;单次、连续脉冲均由门电路构成;3. 秒、分、时、日计数器这一部分电路均使用中规模集成电路74LS161实现秒、分、时的计数,其中秒、分为六十进制,时为二十四进制;从图3中可以发现秒、分两组计数器完全相同;当计数到59时,再来一个脉冲变成00,然后再重新开始计数;图中利用“异步清零”反馈到/CR端,而实现个位十进制,十位六进制的功能;时计数器为二十四进制,当开始计数时,个位按十进制计数,当计到23时,这时再来一个脉冲,应该回到“零”;所以,这里必须使个位既能完成十进制计数,又能在高低位满足“23”这一数字后,时计数器清零,图中采用了十位的“2”和个位的“4”相与非后再清零;对于日计数器电路,它是由四个D触发器组成的也可以用JK触发器,其逻辑功能满足了表1,即当计数器计到6后,再来一个脉冲,用7的瞬态将Q4、Q3、Q2、Q1置数,即为“1000”,从而显示“日”8;4.译码、显示译码、显示很简单,采用共阴极LED数码管LC5011-11和译码器74LS248,当然也可用共阳数码管和译码器;5.整点报时当计数到整点的前6秒钟,此时应该准备报时;图3中,当分计到59分时,将分触发器QH置1,而等到秒计数到54秒时,将秒触发器QL置1,然后通过QL与QH相与后再和1s标准秒信号相与而去控制低音喇叭呜叫,直至59秒时,产生一个复位信号,使QL清0,停止低音呜叫,同时59秒信号的反相又和QH相与后去控制高音喇叭呜叫;当计到分、秒从59:59—00:00时,呜叫结束,完成整点报时;6.呜叫电路呜叫电路由高、低两种频率通过或门去驱动一个三极管,带动喇叭呜叫;1KHz和500Hz从晶振分频器近似获得;如图中CD4060分频器的输出端Q5和Q6;Q5输出频率为1024Hz,Q6输出频率为512Hz;。
数字钟电路设计(闪烁整点报时)(数电)
数字钟电路设计电气工程及其自动化苏盛指导老师曾繁政【引言】电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。
因此,时钟已不仅仅被看成一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。
【内容摘要】数字时钟实际上是一个对标准频率(1HZ)进行计数的计数电路。
振荡器是数字时钟的核心,选用555定时器构成振荡器电路。
以计数器74LS90来实现时间计数单元的计数功能。
显示译码器74LS48将输入的8421BCD码转化成驱动数码管发光的高、低电平信号,驱动数码显示出不同的六、十和二十四进制数字符。
用门电路实现校时及整点报时电路。
时间以24小时为一周期。
【关键词】数字时钟,振荡器,校时,整点报时一、方案设计与论证论文采取理论分析和实践研究相结合的研究方案。
在理论分析上,论文主要结合数字电路的知识,涉及数字时钟电路的结构和原理分析;在实验验证方面,采用计算机模拟和实物实践的方法,应用PROTEL软件进行电路图设计和PCB的制作,使用元器件完成电路实物的安装,利用电子辅助工具对实物进行调试。
此方案已在毕业设计制作过程中得到论证。
(一)、设计目的数字时钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,节省了电能。
因此得到了广泛的使用。
数字时钟是一种典型的数字电路,包括了组合逻辑电路和时序电路。
通过设计加深对刚刚学习了的数字电子技术的认识。
我们此次设计数字时钟是为了了解数字时钟的原理,加深对我们所学知识的了解和认识、以及知识迁移的能力。
而且通过数字时钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。
且由于数字时钟包括组合逻辑电路和时叙电路,通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法,以及各种电路之间的怎样联系起来的。
十二小时电子钟课设报告
课程设计说明书课程设计名称:数字逻辑课程设计题目:十二小时电子钟学院名称:信息工程学院专业:电子信息工程班级: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)前言基于十二小时电子钟在日常生活中的应用,能够了解生活中一些电子产品的工作原理以及其制作过程,以便能更好的了解生活。
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小时数字钟电路设计与实现院(系):计算机学院专业:计算机科学与技术班级: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表示秒计数器的高位为一个六进制计数器。
数字时钟电路的设计(Multisim仿真)
一、数字时钟电路的设计
1、设计任务和要求
设计一个数字时钟电路,要求显示时、分、秒,频率为1Hz。
2、基本设计思路
设计两个模60计数器(分别作为“秒”和“分”显示)和一个
模24计数器(作为“时”显示)
其中,用两片十进制计数器74LS162,同步级联,时钟频率为1
赫兹,当级联的计数器输出BCD码为01100000时,用一个二输
入与非门将“十位”的QC和QB两个输出接入CLEAR端,同时
接入下一个级联的计数器组,完成“秒”向“分”,同理实现“分”
向“时”的进位。
对于“时”,当计数器输出BCD码为00100100
时,用一个二输入与非门将“十位”的QB和“个位”的QC输
出接入CLEAR端。
最后将各片计数器的输出端都依次接LED数码管,显示时间变
化。
3、电路仿真结果
我们用Multisim进行仿真,得到了正确的结果,仿真过程中若
干时间点的结果如下:
秒分时
秒分时。
数字钟+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小时。
数字电路课程设计(5篇)
数字电路课程设计(5篇)第一篇:数字电路课程设计数字电路课程设计要求:1.结合所学知识设计一简单实用电路(建议选多功能数字钟),并在实验室里完成实物电路的连接调试。
2.每人独立完成一篇课程论文,论文至少2000字,可手写,也可打印(打印稿的格式另附)。
3.要求写出设计背景,理论基础,设计思路,设计过程,调试过程,仿真过程(可选),最终电路等。
4.总结所设计电路的优点,缺点,改进方向。
5.严禁抄袭,所有雷同论文均以0分计。
6.选多功能数字钟的同学在数字电路实验室完成实验。
选其它题目的同学所需软硬件资源请自行解决。
第二篇:数字电路课程设计一、设计报告书的要求: 1.封面2.课程设计任务书(题目,设计要求,技术指标等)3.前言(发展现状、课程设计的意义、设计课题的作用等方面)。
3.目录4.课题设计(⑴ 写出你考虑该问题的基本设计思路,画出一个实现电路功能的大致框图。
⑵ 画出框图中的各部分电路,对各部分电路的工作原理应作出说明。
⑶ 画出整个设计电路的原理电路图,并简要地说明电路的工作原理。
⑷ 用protel画原理电路图。
(5)用Multisim或者Proteus画仿真图。
5.总图。
6.课题小结(设计的心得和调试的结果)。
7.参考文献。
二、评分依据:①设计思路,②单元电路正确与否,③整体电路是否完整,④电路原理说明是否基本正确,⑤报告是否清晰,⑥答辩过程中回答问题是否基本正确。
三、题目选择:(三人一组,自由组合)(设计要求,技术指标自己选择)1、基于DC4011水箱水位自动控制器的设计与实现水箱水位自动控制器,电路采用CD4011四与非门作为处理芯片。
要求能够实现如下功能:水箱中的水位低于预定的水位时,自动启动水泵抽水;而当水箱中的水位达到预定的高水位时,使水泵停止抽水,始终保持水箱中有一定的水,既不会干,也不会溢,非常的实用而且方便。
2、基于CD4011声控、光控延时开关的设计与实现要求电路以CD4011作为中心元件,结合外围电路,实现以下功能:在白天或光线较亮时,节电开关呈关闭状态,灯不亮;夜间或光线较暗时,节电开关呈预备工作状态,当有人经过该开关附近时,脚步声、说话声、拍手声等都能开启节电开关。
12小时制任意点定时数字闹钟设计方案
分别用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.该元件专为数字钟电路而设计,其频率较低,有利于减少分频器级数。
多功能数字钟电路设计
多功能数字钟电路设计
多功能数字钟电路可以用来显示时间、日期、闹钟和定时器等功能。
下面是一个简单的多功能数字钟电路设计,它基于CD4511七段译码器和CD4543 BCD-七段译码器。
1. 时间显示功能
为了显示时间,我们需要使用CD4543 BCD-七段译码器。
该译码器接收来自实时时钟(RTC)模块的BCD编码输出。
RTC模块可以用来跟踪时间和日期,它通常包括一个晶体振荡器、计数器和存储器。
BCD 编码输出通过CD4543译码器转换为七段LED显示。
2. 日期显示功能
类似于时间显示功能,日期显示也需要使用RTC模块。
RTC模块可以提供年份、月份和日期的BCD编码输出。
这些编码输出通过CD4543译码器转换为七段LED显示。
3. 闹钟功能
闹钟功能可以通过计时器和比较器实现。
我们可以使用555定时器作
为计时器,它可以生成一个固定的时间间隔。
然后,我们可以使用一个比较器来比较当前时间和闹钟时间。
如果它们匹配,闹钟就会响起。
4. 定时器功能
定时器功能可以通过555定时器来实现。
我们可以设置计时器的时间间隔,并使用CD4511七段译码器来显示剩余时间。
当定时器完成计时时,它可以触发一个报警器或执行其他操作。
总之,多功能数字钟电路可以实现时间、日期、闹钟和定时器等多种功能。
这些功能可以通过RTC模块、CD4511七段译码器、CD4543 BCD-七段译码器和555定时器等元件来实现。
【精品】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进制计数器,所以以秒计数器作为示例说明其编程思想。
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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
沈阳航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:12小时数字钟电路设计与实现院(系):计算机学院专业:计算机科学与技术班级:34010104学号:*************姓名:指导教师:***完成日期: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沈阳航空航天大学课程设计报告。