精华内容
下载资源
问答
  • 数字电路课程设计-多功能数字时钟设计报告
  • 多功能数字时钟设计报告 用555定时器 160计时器 仿真图这是我的课程设计报告。可作为参考 含有Multisim仿真图。不过是复制到Word文档里去拉
  • 本文利用 Verilog HDL 语言的设计方法设计多功能数字钟,并通过 vivado 2016.3 完 成综合实现。此程序通过下载到 FPGA 芯片后,可应用于实际的数字钟显示中,实现了基本 的计时显示(时分到分秒的切换)和设置,调整...
  • 摘要实验报告多功能数字钟姓 名: 学 号: 联系方式: 成 绩:在当代,随着人类社会进入到高度发达的信息化社会。信息技术的发展起着越来越大的作用,它几乎涉及到我们日常生活的每个领域,可以说要衡量一个当今社会...

    《EDA课程设计》

    1.摘要

    实验报告

    多功能数字钟

    姓 名: 学 号: 联系方式: 成 绩:

    在当代,随着人类社会进入到高度发达的信息化社会。信息技术的发展起着越来越大的作用,它几乎涉及到我们日常生活的每个领域,可以说要衡量一个当今社会的发展文明程度信息化技术的发展程度是一个非常重要的指标。众所周知,信息化社会的发展离不开电子信息技术产品的开发、产品品质的提高和改善。电子信息产品随着科学技术的进步,其电子器件和设计方法更新、换代的速度快的惊人,几乎是日新月异。然而实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDA,Electronics Design Automation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。目前,在国内电子技术教学和产业界的技术推广中已形成“EDA热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。

    由于基于PLD的EDA技术的发展和应用领域的扩大和深入,EDA技术在电子信息、通信、自动控制及计算机应用领域的重要性日益提高。

    EDA技术在电子系统设计领域越来越普及,本设计主要利用VHDL语言在EDA平台上设计一个电子数字钟,它的计时为24小时小时制,显示满刻度为23时59分59秒,另外还具有校时功能和闹钟功能。总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块,时、分、秒计数和校时程序模块、数据选择器程序模块、显示程序模块和例化程序模块。并且使用QUARTUS II软件进行电路波形仿真,下载到EDA实验箱进行验证。

    作为现在的大学生应熟练掌握这门技术,为以后的发展打下良好的基础,本实验设计是应用QuartusII环境及VHDL语言设计一个时间可调的数字时钟。使自己熟练使用QuartusII环境来进行设计,掌握VHDL语言的设计方法。注重理论与实践之间的不同,从而培养自己的实践能力!

    关键字:EDA,数字钟,QUARTUS II,VHDL,PLD,模块化,分频,校时,仿真, 2.概括

    多功能数字钟应该具有的功能有:显示时-分-秒、整点报时、小时和分钟可调等基本功能。首先要知道钟表的工作机理,整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,但是需要注意的是,小时的范围是从0~23时。

    在实验中为了显示的方便,由于分钟和秒钟显示的范围都是从0~59,所以可以用一个3位的二进制码显示十位,用一个四位的二进制码(BCD码)显示个位,对于小时因为它的范围是从0~23,所以可以用一个2位的二进制码显示十位,用4位二进制码(BCD码)显示个位。

    实验中由于七段码管是扫描的方式显示,所以虽然时钟需要的是1Hz时钟信号,但是扫描确需要一个比较高频率的信号,因此为了得到准确的1Hz信号,必须对输入的系统时钟进行分频。

    对于整点报时功能,用户可以根据系统的硬件结构和自身的具体要求来设计。

    本验设计的是当进行整点的倒计时5秒时,让LED来闪烁进行整点报时的提示。

    要求显示格式为 小时-分钟-秒钟,整点报时,报时时间为5秒,即从整点前5秒钟开始进行报时提示,LED开始闪烁,过整点后,停止闪烁。系统时钟选择时钟模块的10KHz,要得到1Hz时钟信号,必须对系统时钟进行10,000次分频。调整时间的的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时,S2调整分钟,每按下一次,分钟增加一分钟。另外用S12按键作为系统时钟复位,复位后全部显示00-00-00。 3.总体原理

    3.1功能概括

    本实验是通过编程实现多功能的数字时钟,其功能包含了基本的时间显示部分(由00—00—00至23—59—59)的基本显示部分;同时期附带有清零(RES)按键功能(这里用F12表示),当 按下F12是所有的数字清零(00—00—00);此外还有整点报时功能模块,当时间还有5秒到达正点的时候通过指示灯的闪烁以及蜂鸣器的发生实现报时的功能;此外,还具有小时,分钟的调节功能(这里用S1,S2分别表示小时和分钟的调节),当按下S1一次的时候小时显示的数字增加‘1’(直至23后清零00),当按下S2一次的时候分钟上面的数字增加‘1’(直至59后归零00);

    3.2功能结构图

    a.本实验是采用功能分块的模式,通过不同的功能模块的组合,最终实验本实验的功能要求。

    时显示器 分显示器 秒显示器 时译码器 分译码器 秒译码器 报时/闹钟

    时计数器 分计数器 秒计数器 1Hz 校时电路 5HZ

    振荡器 分频器 图1 数字钟的系统框图

    展开全文
  • 设计一个00时00分00秒~23时59分59秒的计时器,使之能完成以下几个功能: (1)能进行正常的时、分、秒计时功能; (2)分别由六个数码管显示时、分、秒的计时; (3)系统有时钟保持功能; (4)系统有时钟清零功能...
  • 有完整的报告及运行文件,希望对大家有帮助
  • 数字逻辑 课程设计 VHDL 多功能数字钟 这个数字钟是我同学根据老师那个改编的,功能很强大!同时免费赠送设计报告以及.scf .vhd文件 1、具有以二十四小时制计时、显示、整点报时、时间设置和闹钟的功能。 2、设计...
  • 成绩成绩课程论文题 目: 基于STM32的多功能电子时钟学生姓名: 梁健学生学号: 1008050120系 别: 电气信息工程系专 业: 电子信息科学与技术年 级: 2010级任课教师: 郑晓东电气信息工程学院制2013年3月PAGE 4 .....

    成绩

    成绩

    课程论文

    题 目: 基于STM32的多功能电子时钟

    学生姓名: 梁健

    学生学号: 1008050120

    系 别: 电气信息工程系

    专 业: 电子信息科学与技术

    年 级: 2010级

    任课教师: 郑晓东

    电气信息工程学院制

    2013年3月

    PAGE 4 淮南师范学院电气信息工程学院电子信息与技术

    PAGE 4

    第 PAGE 1 页

    基于stm32的多功能电子时钟

    学生:梁健

    指导教师:郑晓东

    电气信息工程学院电子信息科学与技术专业

    TOC \o "1-3" \h \u 192 一、设计任务与要求 5

    24640 1、设计任务 5

    15458 2、设计要求 5

    3018 二、方案设计与论证 5

    14106 1、单片机芯片选择方案 7

    22971 2、显示选择方案 7

    28823 三、硬件单元电路设计与参数计算 8

    10870 1、电源电路 8

    20848 2、按键电路 8

    12015 3、rtc时钟 9

    30924 4、12864显示电路 9

    18824 5、温度传感器模块 10

    21139 四、 软件设计与流程图 10

    22623 1、主程序流程图 10

    14038 2、显示子程序流程图 12

    12623 3、按键子程序流程图 14

    4084 五、总原电路及元器件清单 16

    6855 1.总原理图 16

    4921 六、元器件清单 26

    30609 七、主程序 26

    22574 八、 参考文献 30

    摘要:本论文基于单片机原理技术介绍了一款于stm32芯片作为核心控制器的单片机数字电子钟的设计与制作,包括硬件电路原理的实现方案设计、软件程序编辑的实现、数字电子钟正常工作的流程、原理图仿真实现、硬件实物的安装制作与硬件实物的调试过程。该单片机数字电子钟采用stm32自带的RTC,用lLCD12864能够准确显示时间(显示格式为:年月日时分秒),可随时进行时间调整,时间可采用12 小时制显示或24 小时制显示,用12864做成菜单形式,闹铃提醒,可按自己的要求设置扩展的小键盘个数,并增加温度显示。

    关键词:单片机?、数字电子钟?、LCD12864、STM32、RTC,温度传感器

    一、设计任务与要求

    1、设计任务

    用STM32设计一个数字电子钟,采用LCD12864来显示并修改,时间或闹铃。

    2、设计要求

    (1)显示格式为:XX\XX\XX XX\XX\XX 即:年\月\日 时\分\秒。

    (2)具有闹铃功能。

    (3)按键改变时间。

    (4)按键改变闹铃。

    (5)温度的显示。

    二、方案设计与论证

    整个系统用stm32单片机作为中央控制器,由单片机执行采集内部rtc值,时钟信号通过单片机I/O口传给LCD12864,单片机模块控制驱动模块驱动显示模块,通过显示模块来实现信号的输出、LCD12864的显示及相关的控制功能。系统设有按键模块用于对时间进行调整及扩展多个小键盘,系统整体框图如图1所示。

    设置?

    设置?

    显示时间,温度

    跳出?

    开始

    选择

    更改时间,闹铃

    正常显示

    图1 系统整体框图

    1、单片机芯片选择方案

    方案一:stm32是一个低功耗,高性能32位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器。主要性能有:与MCS-51单片机产品兼容、全静态操作:0Hz~33Hz、 三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器、八个中断源、全双工UART串行通道、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符、易编程。

    方案二:AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM)。主要性能有:兼容MCS51指令系统、32个双向I/O口、256x8bit内部RAM、3个16位可编程定时/计数器中断、时钟频率0-24MHz、2个串行中断、可编程UART串行通道、2个外部

    展开全文
  • 多功能数字钟设计

    2020-11-13 21:32:33
    多功能数字钟设计 信息工程学院的电子技术综合实训 注:本实验报告,仅供参考,其中资料文献本文后面有注明来处,侵权删。 文章目录多功能数字钟设计前言一、设计目的和要求二、选题的目的和意义1.引入库2.读入...

    基于Multisim10.0.1的多功能数字钟的设计

    信息工程学院电子技术综合实训

    注:本实验报告,仅供参考,其中资料文献本文后面有注明来处,侵权删。


    课题前言

    电子综合实训包括很多实验,本实验课题选择多功能电子时钟的设计,其中包括模拟电子技术和数字电子技术的知识的运用,本文使用的实验环境是win7(当然win10可以的),仿真软件是Multisim10.0.1,打开界面如下:
    在这里插入图片描述


    提示:以下是本篇文章正文内容,下面案例供参考

    一、设计目的和要求

    设计一个多功能数字钟,能够准确记时并以数字化形式显示时、分、秒的时间,且该数字钟能够有以下功能:

    序号 功能
    1 校正时间
    2 准点报时
    3 定时闹钟

    二、选题的目的和意义

    数字钟从原理上来讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。目前,数字钟的功能越来越多,并且有多种专门的大规模集成电路可供选择,一般由数钟电路、放大执行电路、电源电路等组成。
    设计多功能数字电路,通过简单的电路结构,并更改设定电路,了解通过输入脉冲,达到设计时钟目的,同时运用芯片以及逻辑门来实现进制从而理解数字电路的应用。

    三、方案的可行性论证

    1、方案的设计要求

       1、时间以24小时为周期;
       2、显示时、分、秒;
       3、具有校时功能,可以分别对时、分、秒进行单独校时,使其校正达到标准时间;
       4、具有整点报时功能,即设置时间到达整点前10秒进行蜂鸣器报时;
       5、具有定时闹钟功能。
    

    2、各电路模块初步分析

    时间显示电路

    时间显示模块包括时、分、秒部分,可用显示译码器来显示,从而实现24制以及60制。

    时间校准电路

    时间校准包括时钟校准、分钟校准和秒钟校准三个模块,可在各模块中设置点动开关,需要校准时,对应的显示模块数值随点动开关连续变换,待调到所需要的数值时,停止校准,从而达到对各个模块的单独校时。

    整点报时电路

    将显示译码器电路中加逻辑门与其相连,当整点时,报时可通过蜂鸣器蜂鸣实现,并可设置蜂鸣器的长鸣时间。

    定时闹钟电路

    可通过开关组来设置闹钟时间,芯片与逻辑门

    3、工作原理及图例

    当秒计时器计60后向分计数器进位,分计数器计数60后向小时进位,小时计数器设置成24进制计数器,满24后清零,重新开始计时。计数器的输出直接送到LED显示器,当计时出现误差时可以用校时电路进行校时、校分,校时电路是由一开关接到一个高电位上,当按一下开关就传送一个高位脉冲,计数器加一。

    连续脉冲
    时校
    24进制
    译码器
    显示器
    分校
    24进制
    译码器
    显示器
    秒校
    60进制
    译码器
    显示器

    四、元件、器件明细表

    1、74LS161N:
    可预置四位二进制计数器(并清除异步)
    1.QA~QD:计数输出端,输出二进制代码
    2.A~D:预置数据输入端,输入二进制代码
    3.CLK:相当于CP,接单次脉冲端输入
    4.ENT,ENP:计数控制端
    5.~CLR:直接清零端
    6.~LOAD:预置数控制端
    7.RCO:进位输出端
    在这里插入图片描述
    2、74LS85D:
    四位数字比较器
    通过功能表可知,该比较器的比较原理和两位比较器的比较原理相同。两个4位数的比较是从芯片1的最高位A3和芯片2的最高位B3进行比较,如果它们不相等,则该位的比较结果可以作为两数的比较结果。若最高位A3=B3,则再比较次高位A2和B2,余类推。显然,如果两数相等,那么,比较步骤必须进行到最低位才能得到结果,即可从而达到定时闹钟的效果。
    在这里插入图片描述
    3、74LS04N:
    74LS04是六个单输入端的反相器.它的输出信号与输入信号相位相反。六个反相器共用电源端和接地端,其它都是独立的。输出信号手动负载的能力也有一定程度的放大。
    在这里插入图片描述
    4、7400 输入与非门:
    内含四个独立的2输入端与非门,其逻辑功能是:输入端全部为1时,输出为0;输入端只要有0,输出就为1.
    在这里插入图片描述
    5、74LS08J 2输入四与门:
    与门,详细地说是4二输入与门,即一片74LS08芯片内有共四路二个输入端的与门。
    在这里插入图片描述
    6、74LS20D 4输入双与非门:
    两个4输入与非门,内含两组4与非门。
    在这里插入图片描述
    7、元件、器件明细表:

    序号 名称 数量
    1 显示译码器 6
    2 蜂鸣器 2
    3 74LS161N 6
    4 74LS85D 4
    5 7400N 8
    6 74LS08J 3
    7 74LS20D 2
    8 瞬时开关 3
    9 开关组 4
    10 数字电源VCC 5
    11 时钟脉冲源 1
    12 单刀双置开关 1
    13 电子探针 1

    附:74LS系列通用逻辑电路功能表

    五、各个电路模块分析

    1、闹钟电路

    闹钟电路蛮好做,如图,采用4片74LS85D芯片和4个拨码开关构成闹钟电路,从最低位(分个位)对应的比较器74LS85D(U21)的OAEQB端输出高电平,从而实现闹钟功能。

    在这里插入图片描述

    2、校时电路

    在分、秒的与非门与上一级的脉冲接口之间接瞬间开关即可。当开关按下时,产生一个低电平给计数器,从而在下降沿的时候计数器加一。
    注:瞬时开关是交互组件,在Multisim中可以通过键盘上的一个键或使用鼠标点击激活,
    在这里插入图片描述

    3、时记时电路

    24进制的实现用的是两片74LS161芯片以及与非门实现24进制(00~23)。时计时器的十位是二进制,个位是十进制,同时和与非门相连,实现满24时清零,由于小时位和分为、秒为不同,它是以十进制来显示24进制数,即它有两个清零信号,一是在小时的个位计数到10的瞬间,向本位发送一个清零信号,并同时向十位数发送一个进位脉冲。二是在小时的十位计数到2并且个数计数到4的瞬间,向个位和十位同时发送一个清零信号。
    在这里插入图片描述

    4、分、秒记时电路

    60进制的实现是采用两片74LS161芯片和与非门实现的,分、秒计数器的十位都是60进制,个位都是10进制,共同构成60精致。分、秒计时电路的控制是一样的,采用同一器件74LS161N的反馈置数法来实现10进制功能和6进制功能,根据芯片74LS161N的结构把输出端的0100(十进制为6)用一个与非门7400N引到CLR端便可置0,即当分(秒)的个位计数到10的瞬间,向本位发送一个清零信号,并同时向其个位发送一个进位脉冲。分(秒)的十位加法计数器在计数到6的瞬间,向本位发送一个清零信号,并同时向分(秒)位的个位发送一个进位脉冲。这样就构成了一个级联而形成的60进制带进位与清零的加法计数器。

    在这里插入图片描述

    六、总电路图

    - 不带闹钟总电路图:
    在这里插入图片描述
    - 带闹钟总电路图:
    在这里插入图片描述

    七、测试结果图

    连接好电路图后,准备开始仿真,同时可测试闹钟功能。
    结果如下:
    在这里插入图片描述

    文献

    1、参考作者以及网址

    https://blog.csdn.net/Jason_yesly
    https://blog.csdn.net/Jason_yesly/article/details/85297274


    https://wenku.baidu.com/view/64c63f1edd36a32d737581bc.html
    https://wenku.baidu.com/view/bb573f76700abb68a982fbe5.html

    2、书籍文献

    《电路基础与电子技术》
    《电类专业基础实践教程》

    总结

    以上,就是我对该实验的看法,通过实训,虽然最终电路设计有些缺陷和不足,但掌握了许多知识,学会了用Multisim仿真的基本操作,对改进电路和连接线路方面上有很充分的研究和认识,同时通过查阅大量书籍和网上资料,对元件的选用和代替以及不同元件的不同特性也作了比较到最终的选用,以及最终电路中某些开关以及小型元器件的参数调整进行了反复地测试,到达了基本本课题的基本要求,特别是对Multisim该软件的认识以及运用和该课题中所用到的模拟电子技术和数字电子技术的知识的运用。
    本博客,是我在CSDN上第一次发的博客,毕竟自己忙活了几周的结果,自己学到了不少知识,通过书本资料和网站确实不易。若有不当错误,望评论区订正。

    展开全文
  • 多功能数字电子

    千次阅读 2014-08-10 22:27:57
    多功能数字电子             姓 名:张士卫  班 级:计135班  学 号:201358501149 指导老师:沈春华      ●设计要求  在Quartus II环境下设计芯片完成二十四小时制计时、显示、整点报时、时间...

     

    VHDL课程设计》实验报告

     

     

     

     

     

    多功能数字电子钟

     

     

     

     

     

     

    姓    名:XXX      

    班    级:XX班   

    学    号:XXXXXXXXX

    指导老师:XXX     

     

     

    ●设计要求

      Quartus II环境下设计芯片完成二十四小时制计时、显示、整点报时、时间设置和闹钟的功能。

     

    ●实验目的

      1)充分了解Quartus II运行环境以及基本操作。

    2)学习并熟练掌握控制器、计数器、数据选择器等基本元件的基本原理以及级联方式。

    3)认识数码管的显示原理以及连接方式。

    4)充分理解数字逻辑中硬件与软件相结合的设计方式和思想。

     

    ●整体设计方案

    1整体设计:通过基本的输入输出控制状态的转换以及时间、闹钟的设置以实现的电子钟基本功能。

    2系统输入:setk键控制系统状态及校时、定时中时分秒状态转换;clk1HZ的时钟信号;reset为系统复位信号;p为计数及闹钟设置键;输入信号中只有reset为开关键,其他全由按键产生。

    3系统输出:LED显示输出;蜂鸣器(bell)声音信号输出。

      4结构逻辑框图(多功能数字电子钟) 

    扫描控制电路

     

    显示控制

    电路

     

     

    计时电路

     

                                                1Hz

                                            

    k

                                                                                                                                              

    p                                                         1024Hz

    报时控制定时

    控制电路

     

                                        

    reset                     1024Hz                                                                                 蜂鸣器

                                     512Hz

    set

                                                                                                                                                

    定时电路

     

     clk(1Hz)                                                                                         clk                        1024Hz

       512Hz

                                                                                     1Hz

                                                                                                                                                                                            

                                                                                                                                                                                            

    (5) 控制器的MDS

     

     

     

     

     

     

     

     

    ●系统功能 

      1)计时:正常工作状态下,每日按24h计时制计时并显示,蜂鸣器无声,逢整点报时。

    2)校时:在计时显示状态下,set=0,进入“小时”校准状态,之后按下“k=0”则进入“分”校准状态,继续按下“k=0”则进入“调秒”状态,第三次按下“k键”又恢复到正常计时显示状态。

    ①“小时”校准状态:在“小时”校准状态下,显示“小时”的数码管闪烁,此时按下“p键”,每按一次小时加1

    ②“分”校准状态:在“分”校准状态下,显示“分”的数码管闪烁,此时按下“p键”,每按一次分钟加1

    ③“秒”校准状态:在“调秒”状态下,显示“秒”的数码管闪烁,此时长按“p键”,秒清零。

    3)整点报时:蜂鸣器在“59”分钟的第“54”、“56”、“58”秒发频率为512HZ的低音,在“59”分钟的第“60”秒即整点时发频率为1024HZ的高音。

    4)显示:采用1024HZ的频率扫描,显示驱动6LED数码管显示小时、分、秒。在“时”“分”“秒”之间扫描数码管的“g”管。

    5)闹钟:闹钟定时时间到,蜂鸣器发出周期为1秒频率为1HZ的“滴”、“滴”声,持续时间为60秒。

    6)闹钟定时设置:在正常计数状态下,按下“k=0,进入闹钟设置状态,再按下“set=0”进入闹钟的“时”设置状态,之后按下“k=0”进入闹钟的“分”设置状态,继续按下“k=0”,又恢复到闹钟定时显示状态。

    ①闹钟“小时”设置状态:在闹钟“小时”设置状态下,显示“小时”的数码管闪烁,此时按下“p键”,每按一次小时加1

    ②闹钟“分”设置状态:在闹钟“分”设置状态下,显示“分”的数码管闪烁此时按下“p键”,每按一次分钟加1

    ●各个模块分析

       ()概述:本电子钟整体芯片包括主控芯片(control2)、分频器(fenpin)、计

    数和时钟设置芯片(set_and_count)、闹钟设置芯片、译码芯片(ym)、显示控制芯片(show_control)、模8计数芯片(m8)、8选一芯片(m8_1)、整点报时芯片(sound_control_sec)、闹钟响铃控制芯片(control_sound)、显示闪烁芯片(flash

    其中在计数和时钟控制芯片中又有模24计数芯片(m24)、模60计数芯片(m64)、、21芯片(m2_1)几个底层芯片

                          顶层框图

     

                      功能分割图(计数和时钟设置芯片

     

    (二)分述

    2)主控芯片(control2

    I模块说明

      总体:控制整个电子钟,通过对输入信号的判断,实现状态转换并决定下属芯片是否启动,保证整个电路正常工作和运行。

    输入端口:k,set键来控制8个状态,这八个状态分别是显示计时时间状态,调计时的时、分、秒状态,显示闹铃时间状态调闹铃的时、分、秒的状态,reset键是复位键,用来回复到“00”状态。

    输出端口:outreset是输出清零信号;sethoursetminsetsec分别输出调整计数状态时、分、秒信号,且setsec为输出秒的清零信号;setclkhoursetclkmin分别输出调整闹钟时、分信号;sethourensetminensetsecen

      分别为调节时、分、秒的使能端;hourflaminflasecfla分别为输出调计数时、分、秒的闪烁信号;clkhourflaclkminflaclksecfla分别为输出调闹钟时、分的闪烁信号;changemode输出数码管显示闹钟状态信号。

        II模块图

              

    III仿真图

    IV源代码

    library ieee;

    use ieee.std_logic_1164.all;

    entity control2 is

        port(

              set,reset,k,cp,p:instd_logic;   

         outreset,setmin,setminen,sethour,sethouren,setsec,setsecen,hourfla,minfla,secfla,clkhourfla,clkminfla,changemode,setclkhou,setclkmin,clksecfla:outstd_logic);

    end control2;

    architecture rtl of control2 is

    type state is(s0,s1,s2,s3,t0,t1,t2,t3);

    signal sta:state;

    begin

      process(cp,k,set,reset,p)

      begin

        if(reset='0') then

           outreset<='1';sethouren<='0';setminen<='0';setsecen<='0';    

    sethour<='1';setmin<='1';setsec<='1';setclkhou<='1';setclkmin<='1';hourfla<='0';minfla<='0';secfla<='0';clkhourfla<='0';clkminfla<='0';clksecfla<='0';sta<=s0;

       elsif(rising_edge(cp)) then

          case sta is

    when s0=>changemode<='0';outreset<='0';sethouren<='0';setminen<='0';setsecen<='0';sethour<='1';setmin<='1';setsec<='1';setclkhou<='1';setclkmin<='1';hourfla<='0';minfla<='0';secfla<='0';clkhourfla<='0';clkminfla<='0';clksecfla<='0';

    if(k='0') then

      sta<=t0;

    elsif(set='0')then

     sta<=s1;

    else

     sta<=s0;

    end if;

         when s1=>changemode<='0';outreset<='0';sethouren<='1';setminen<='0';setsecen<='0';sethour<=p;setmin<='1';setsec<='1';setclkhou<='1';setclkmin<='1';hourfla<='1';minfla<='0';secfla<='0';clkhourfla<='0';clkminfla<='0';clksecfla<='0';

          if(k='0')then

            sta<=s2;

          else

            sta<=s1;

          end if;

         when s2=>changemode<='0';outreset<='0';sethouren<='0';setminen<='1';setsecen<='0';sethour<='1';setmin<=p;setsec<='1';setclkhou<='1';setclkmin<='1';hourfla<='0';minfla<='1';secfla<='0';clkhourfla<='0';clkminfla<='0';clksecfla<='0';

          if(k='0')then

            sta<=s3;

          else

            sta<=s2;

          end if;

    whens3=>changemode<='0';outreset<='0';setminen<='0';sethouren<='0';setsecen<='1';sethour<='1';setmin<='1';setsec<=p;setclkhou<='1';setclkmin<='1';hourfla<='0';minfla<='0';secfla<='1';clkhourfla<='0';clkminfla<='0';clksecfla<='0';

           if(k='0')then

             sta<=s0;

           else

             sta<=s3;

           end if;

    when

    t0=>changemode<='1';outreset<='0';setminen<='0';sethouren<='0';setsecen<='0';sethour<='1';setmin<='1';setsec<='1';setclkhou<='1';setclkmin<='1';hourfla<='0';minfla<='0';secfla<='0';clkhourfla<='0';clkminfla<='0';clksecfla<='0';

           if(k='0')then

            sta<=s0;

          elsif(set='0')then

            sta<=t1;

          else

            sta<=t0;

          end if;

        when

    t1=>changemode<='1';outreset<='0';setminen<='0';sethouren<='0';setsecen<='0';sethour<='1';setmin<='1';setsec<='1';setclkhou<=p;setclkmin<='1';hourfla<='0';minfla<='0';secfla<='0';clkhourfla<='1';clkminfla<='0';clksecfla<='0';

    if(k='0')then

           sta<=t2;

          else

           sta<=t1;

          end if;

        when t2=>changemode<='1';outreset<='0';setminen<='0';sethouren<='0';setsecen<='0';sethour<='1';setmin<='1';setsec<='1';setclkhou<='1';setclkmin<=p;hourfla<='0';minfla<='0';secfla<='0';clkhourfla<='0';clkminfla<='1';clksecfla<='0';

          if(k='0')then

            sta<=t3;

          else

            sta<=t2;

          endif;

       when t3=>changemode<='1';outreset<='0';setminen<='0';sethouren<='0';setsecen<='0';sethour<='1';setmin<='1';setsec<='1';setclkhou<='1';setclkmin<='1';hourfla<='0';minfla<='0';secfla<='0';clkhourfla<='0';clkminfla<='0';clksecfla<='1';

          if(k='0')then

            sta<=t0;

          else

            sta<=t3;

          end if;

         whenothers=>sta<=s0;

        end case;

    end if;

    end process;

    end rtl;

    (2)分频芯片(fenpin)

    I模块说明:

    总体:将输入频率(1024Hz)进行分频,输出分频后的频率。

    输入:1024Hz的时钟信号

    输出:分别输出分频后的频率(其中仅有1Hz512Hz1024Hz的频率在该实验中用到)

    II模块图

    III仿真图

    IV源代码:

    library ieee;

    use ieee.std_logic_1164.all;

    useieee.std_logic_unsigned.all;

    entity fenpin is

    port (

          clk:in std_logic;

          put:buffer std_logic_vector(9 downto 0));

    end entity ;

    architecture rt1 of fenpin is

    begin

       process(clk)

          begin

         if(clk'event and clk='0')then

             put<=put+'1';

         end if;

    end process;

    end rt1;

    (3)模24 芯片

    I模块说明

     总体说明:实现24进制的计数芯片

     输入:使能控制信号;时钟信号(本实验中将分的仅为作为时钟信号)。

     输出:24进制中的高低位。

    II模块图

         

    III仿真图 

        IV源代码

    library ieee;

    use ieee.std_logic_1164.all;

    useieee.std_logic_unsigned.all;

    entity m24 is

         port(clk,clr:in std_logic;

               ql,qh:buffer std_logic_vector (3downto 0));

    end   m24;

    architecture aaa of m24 is

    begin

        process(clk,clr)

        begin

         if(clr='1')then

           ql<="0000";

           qh<="0000";

         elsif (clk'event and clk='1')then

             if(qh="0010" andql="0011")then--23

                   ql<="0000";

                   qh<="0000";

             elsif(ql="1001")then--l=9

                  qh<=qh+'1';

                  ql<="0000";

            else

                   ql<=ql+'1';

                   qh<=qh;

               end if;

           end if;  

        end process;

    end aaa;

    (4) 模60芯片(m60)

    I模块说明

    总体说明:实现60进制的计数芯片

      输入:使能控制信号;时钟信号(本实验中将分的仅为作为时钟信号)。

    输出:60进制中的高低位。

    II模块图

     

    III仿真图

    IV源代码

    library ieee;

    use ieee.std_logic_1164.all;

    use ieee.std_logic_unsigned.all;

    entity m60 is

        port(clk,clr,ctr,clr1:in std_logic;

               co:bufferstd_logic;

               ql,qh:bufferstd_logic_vector (3 downto 0));

    end   m60;

    architecture aaa of m60 is

    begin

        process(clk,clr,clr1,ctr)

        begin

         if(clr='1' orclr1='1')then

          ql<="0000";

          qh<="0000";

           co<='0';

         elsif (clk'event andclk='1')then

            if(qh="0101" and ql="1001")then--23

                  ql<="0000";

                   qh<="0000";

                if(ctr='0')then

                   co<='1';

                elsif(ctr='1')then

                   co<='0';

                 end if;

            elsif(ql="1001")then--l=9

                 qh<=qh+'1';

                 ql<="0000";

                   co<='0';

            else

                  ql<=ql+'1';

                   qh<=qh;

                   co<='0';

               end if;

           end if;  

        end process;

    end aaa;

    (5)2选1芯片(m2-1)

     I模块说明

    总体说明:在使能的控制下实现对输入信号(两种)的选择作用。

        输入:使能控制信号;时钟信号;设置时间的时钟信号。

    输出:选择出的时钟或者是调时信号

    II模块图

    III仿真图

    IV源代码

      library ieee;

    use ieee.std_logic_1164.all;

    entity m2_1 is

      port (

            clk,set:instd_logic;

                ctr:instd_logic;

                put:bufferstd_logic);

    end m2_1;

    architecture rt1 of m2_1 is

      begin

         process(clk,set,ctr)

          begin

           if(ctr='1')then

              put<=set;

           else

              put<=clk;

          end if;

         end process;

    end rt1;

    (6)译码芯片(ym)

    I模块说明

    总体说明:通过对输入的判断,实现对输入信号的译码,使其在数码管上显示数字。

        输入:要显示的数字信号。

    输出:点亮数码管的使能信号。

    II模块图

     

    III仿真图

    IV源代码

     library ieee;

    use ieee.std_logic_1164.all;

    entity ym is

    port (

        q:in std_logic_vector(3 downto 0);

        put:bufferstd_logic_vector (0 to 6));

    end entity;

    architecture rt1 of ym is

     begin

        process(q)

        begin

         case q is

         when"0000"=>put<="1111110";

         when "0001"=>put<="0110000";

         when"0010"=>put<="1101101";

         when"0011"=>put<="1111001";

         when"0100"=>put<="0110011";

         when"0101"=>put<="1011011";

         when"0110"=>put<="1011111";

         when"0111"=>put<="1110000";

         when"1000"=>put<="1111111";

         when"1001"=>put<="1111011";

         when "1111"=>put<="0000001";

         whenothers=>put<="0000000";

         end case;

       end process;

    end rt1;

    (7)显示控制芯片---数据选择(show_control)

      I模块说明

    总体说明:在使能的控制下实现对输入信号(两种)的选择作用。

        输入:使能控制信号;时钟信号;设置时间的时钟信号。

    输出:选择出的显示技术状态或者是闹钟状态信号。

    II模块图

     

    III仿真图

    IV源代码

    library ieee;

    use ieee.std_logic_1164.all;

    entity show_control is

    port(

         c,cl:instd_logic_vector (3 downto 0);

          ctr:in std_logic;

            p:outstd_logic_vector (3 downto 0));

    end show_control;

    architecture rt1 of show_control is

    begin

         process(ctr,c,cl)

            begin

            if(ctr='1')then

                p<=cl;

            else

                p<=c;

         end if;

    end process;

    end rt1;

    (8)模8计数芯片(m8)

    I模块说明

     总体说明:实现8进制的计数芯片

     输入:时钟信号。

     输出:当前计数状态。

    II模块图

         

    III仿真图

    IV源代码

    library ieee;

    use ieee.std_logic_1164.all;

    use ieee.std_logic_unsigned.all;

    entity m8 is

       port(cp:in std_logic;

           q:bufferstd_logic_vector(2 downto 0));

    end m8;

    architecture rtl of m8 is

        begin

          process(cp)

            begin

            if(rising_edge(cp)) then

               q<=q+'1';

          end if;

           end process;

    end rtl;

    (9)8选一芯片(m8_1)

    I模块说明

     总体说明:对输入的八种信号进行选择,输出满足输出控制信号(input)的信号。

     输入:八种信号(q0~~q7);输出控制信号(input)。

     输出:选择出来的信号。

    II模块图

     

    III仿真图

    IV源代码

    library ieee;

    use ieee.std_logic_1164.all;

    entity m8_1 is

    port (

         q0,q1,q2,q3,q4,q5,q6,q7:in std_logic_vector (3 downto 0);

          input:instd_logic_vector (2 downto 0);

          output:buffer std_logic_vector(3 downto 0));

          end entity ;

    architecture rt1 of m8_1 is

    begin

      process(q0,q1,q2,q3,q4,q5,q6,q7,input)--此处不用process行不行

      begin

       case input is

        when"000"=>output<=q0;

        when"001"=>output<=q1;

        when"010"=>output<=q2;

        when "011"=>output<=q3;

        when"100"=>output<=q4;

        when"101"=>output<=q5;

        when"110"=>output<=q6;

        when"111"=>output<=q7;

      end case;

    end process;

    end rt1;

    (10)闹钟响铃控制芯片(sound_control)

     I模块说明

       总体说明:对输入闹钟时间的时分和计数时分信号进行比对,当两个时间相同时输出1,启动蜂鸣器,否则输出0

       输入:闹钟时间的时分(hlhhmlmh),计数时分(chlchhcmlcmh)。

       输出:选择出来的信号(put)。

    II模块图

          

    III仿真图

    IV源代码

    library ieee;

    use ieee.std_logic_1164.all;

    entity sound_control2 is

    port(

        hl,hh,ml,mh,chl,chh,cml,cmh:in std_logic_vector (3 downto 0);

                               clk1:in std_logic;

                                put:out std_logic);

    end sound_control2;

    architecture rt1 of sound_control2 is

    begin

          process(hl,hh,ml,mh,chl,chh,cml,cmh,clk1)

            begin

             if(hl=chl andhh=chh and mh=chh and ml=cml)then

                 put<=clk1;

             else 

                 put<='0';

             end if;

           end process;

    end rt1;

    (11)整点报时芯片(sound_control_sec)

      I模块说明

       总体说明:对输入计数分秒信号进行判断,当时间为59分且秒为545658时,将512Hz输出,或者如果时间为整点时,将1024Hz输出,启动蜂鸣器,否则输出0

       输入:计数分秒高低位(mlmhslsh);时钟信号(512Hz1024Hz

       输出:选择出来的信号(put)。

    II模块图

     

    IV源代码

    library ieee;

    use ieee.std_logic_1164.all;

    entity sound_control_sec is

    port(

          ml,mh,sl,sh:instd_logic_vector (3 downto 0);

          clk1024,clk512:instd_logic;

          put:out std_logic);

    end sound_control_sec;

    architecture rt1 of sound_control_sec is

    begin

     process(ml,mh,sl,sh,clk1024,clk512)

        begin

        if(mh="0101" and ml="1001" and sh="0101"and sl="0110") or (mh="0101" and ml="1001" andsh="0101" and sl="1000" ) or (mh="0101" andml="1001" and sh="0101" and sl="0100" )then

            put<=clk512;

        elsif(mh="0000" and ml="0000"and sh="0000" and sl="0000")

    then

           put<=clk1024;

        else 

          put<='0';

        end if;

      end process;

    end rt1;

    (12)显示闪烁芯片(flash)

         I模块说明

       总体说明:由使能端控制是否闪烁,当使能为1时,输出频率为1Hz的高低位信号,否则按照81输出信号正常输出高低位。

       输入:计数高低位(dildih);时钟信号(1Hz);使能控制端。

       输出:处理后的计数高低位(doldoh)。

    II模块图

            

    III仿真图

      IV源代码

      library ieee;

    use ieee.std_logic_1164.all;

    entity flash is

       port(

            en,clk:instd_logic;

            dih,dil:instd_logic_vector(3 downto 0);

            doh,dol:outstd_logic_vector(3 downto 0));

    end flash;

    architecture rt1 of flash is

      begin

      process(en,clk,dih,dil)

       begin

        if(en='1')then

            if(clk='1')then

               doh<=dih;

               dol<=dil;

            else

              doh<="1110";

              dol<="1110";

           end if;

         else

           doh<=dih;

           dol<=dil;

         end if;

    end process;

    end rt1;

    反思总结:

    在本次实验中,犹豫最初对本操作程序不是很了解,导致了很多的错误,以致翻了很多的错误,但是在这个过程里无论是在考虑问题的方式上还是在专业知识层面的认识上确实让我收获了很多,一下是自己的一点认识和总结

    1)设置技巧:

         ①总体设置技巧:在设置一个较为复杂的设计时应该选择“由上到下”,而不是“由下到上”的的设计思路,另外首先要整理好设计思路以及基本的构思,这样能对整体的设计有足够的了解,不至于在实验中频繁出现思路“短路”的现象。

         ②控制器的设置:在设置控制器时应该统筹下设原件的端口设置特点,否则将会出主

    控端口剩余或者是下设端口无法控制的现象。

    ③元件名称及端口设置:在设置元件是应尽量做到功能明确,并且端口设置易于区分,这样在连接时不会出现端口功能不明确而造成难于连接的问题。

         ④底层元件连接:在设置像本设计一样元件比较多且连线复杂的实验的时候,应尽量将最底层的元件连接形成一个新的能完成比较完整的功能的芯片,这样会简化最终的芯片复杂程度更加易于观看和最后的调整、检查。

         ⑤基本元件的使用:在设计时一定注意库中最基本与非门的使用,这样能够使写代码的工作量减少且能是程序尽量的简单化。

    2)合作及成长:

         ①在做实验之前应该有足够的交流,碰撞思想的“火花”以弥补个人想法不全面或是存在错误的局限性,在交流时主要融汇每个人的整体设计思路和实现方法,并且团队中的每一个人都要参与进来,这样也将让每个人都获得巨大的收获。

         ②在做完实验后,务必将本次的实验优缺点进行总结和整理,以便在以后的实验中能进一步的完善和借鉴。

         ③足够的耐心和毅力,我想这是一个合格的设计者的基本素养,在实验中必定会遇到很多棘手的问题,这正是考验自己让自己成长的关键点,所以即使在实验中遇到难以解决的问题,也应该在交流和思考之中尽力解决,将设计做的更好更完美。

     

    展开全文
  • 数字电路课程设计--电子实验报告

    千次阅读 2020-06-24 20:44:24
    江西农业大学 数字电路课程设计–电子实验报告 1.要求 ①要有时钟显示功能,能够实现时、分、秒的显示 ②要有整点报时功能 ③要有设置时间功能。 ④其他功能大家可以自己加,比如设置闹钟等等 2:主要部分的实现...
  • 设计一个多功能数字时钟,具有以下几个功能: 2.1 记时、记分、记秒 计秒:1hz计数脉冲,0-59循环计数,计数到59时产生进位信号。 计分:以秒计数器进位信号作为分计数脉冲,0-59循环计数,59时产生进位。 计时:以分...
  • 课程设计题目:数字钟的设计与制作 (一)设计指标: 1.显示时、分、秒。采用24小时制。 2.制作、调试出一个具有直流电源、简易信号源及用来计“时”“分...3.按设计任务书的要求的格式,撰写或打印课程设计报告书。
  • 数字逻辑之数字时钟显示与校时

    千次阅读 2014-06-28 14:12:34
    数字逻辑课程设计报告设计题目:多功能数字电子钟设计 姓 名: 所学专业: 软件工程 班 级: 指导教师: 日 期:2014.06.26 一.设计内容 41.设计要求 4二.设计方案即总体功能 4三.各部分具体设计 51....
  • 数字电路课程设计–大汇总 ... 多功能数字钟 开关延时报警电路 频率显示 汽车尾灯控制 声光控路灯设计 直流电机控制 重力加速度测定 逆计时数显示定时器 音频放大器 三维模式密码卡关 ...
  • 数字时钟的设计 电气工程系 自控063班 指导老师:王春侠 一、绪论 随着时代科技的迅猛发展,微电子学和计算机等现代电子技术的成就给传统的电子测量与仪器带来了巨大的冲击和革命性的影响。常规的测试仪器仪表和控制...
  • 单片机课程设计 设计并制作一个多功能数字钟
  • 设计一个多功能数字时钟,具有以下几个功能: (1)能进行正常的时、分、秒计时。 ①使用一个二十四进制和两个流逝进制的计数器级联。分计数器以秒计数器的进位作为计数脉冲,小时计数器以分计时器的进位作为技术...
  • 数字逻辑电路设计

    2011-11-26 14:14:30
    用maxplus2软件设计多功能数字钟,采用层次化的设计方法,底层使用VHDL语言设计各模块的功能,然后使用画图方法设计顶层。 设计中包括计时,校时,整点闹铃,闹钟4大模块 计时模块:用VHDL语言设计24进制计时、60...
  • 数字逻辑与数字电路课程时的一些实验报告数字逻辑与数字电路》实验指导 实验1.Verilog HDL输入方式组合电路的设计 路选择器和三人表决电路的设计 (1) 实验目的:进一步熟悉Quartus II的Verilog HDL文本设计...
  • 单片机课程设计5——基于PROTEUS的多功能数字电子设计.doc 单片机控制短信收发.doc 电动自行车遥控检测装置.doc 电风扇智能控制系统设计.doc 电话报警器系统设计.doc 电话智能远程遥控器.doc 电子秤的设计.doc ...
  • 电子设计.doc

    2019-05-28 11:58:28
    0037、基于单片机的数字钟设计论文资料 0038、基于单片机的水温控制系统PDF资料 0039、基于单片机的水温控制系统设计论文资料 0040、基于单片机的作息时间控制钟系统资料 0041、基于单片机的温度控制系统论文资料 ...
  • 此处提供的是Windows 程序设计(第5版)(上、下册)随书光盘 该版本提供了下册详细目录可以快速查阅(当然已经提供详细书签) 基本信息 原书名: Programming Windows (Fifth Edition) 原出版社: Microsoft ...
  • 4.3.3 在sysmets中添加滚动功能 4.3.4 绘图程序的组 4.4 建立更好的滚动 4.4.l 滚动条信息函数 4.4.2 滚动范围 4.4.3 新sysmets 4.4. 4 不用鼠标怎么办 第五章 图形基础 5. 1 gdi的结构 5.1. ...
  • “确认”: 该键完成对其他功能键的确认,防止误按键,在键盘中除“复位”键外,其他功能键都必须加“确认”键才能完成所定义的功能。 “复位”: 该键为重启系统按键。在任何时候或者系统出现不正常状态时都可按下...
  • ✅ 微信公众号 Markdown 编辑器 - OpenWrite:Markdown 微信编辑器是一款专业强大的微信公众平台在线编辑排版工具,提供手机预览功能,让用户在微信图文 、文章、内容排版、文本编辑、素材编辑上更加方便 - 更介绍...
  • vc++ 应用源码包_1

    热门讨论 2012-09-15 14:22:12
    该实例可进行局域网的聊天、一对对一、和的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...
  • vc++ 应用源码包_2

    热门讨论 2012-09-15 14:27:40
    该实例可进行局域网的聊天、一对对一、和的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...
  • vc++ 应用源码包_6

    热门讨论 2012-09-15 14:59:46
    该实例可进行局域网的聊天、一对对一、和的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...
  • vc++ 应用源码包_4

    热门讨论 2012-09-15 14:38:35
    该实例可进行局域网的聊天、一对对一、和的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到...

空空如也

空空如也

1 2 3
收藏数 43
精华内容 17
关键字:

多功能数字钟设计报告