一、设计介绍

本设计采用74LS192作为计数器,74LS192具有同步加减计数功能,可以通过引脚电平对它设置达到清零重置的目的,可以达到对计数器清零的功能,使用两片级联74LS192分别显示十位和个位。使用555定时器,通过配置相应电阻电容大小,让他稳定输出1HZ脉冲,作为信号时钟来源。当倒计时结束后,LED由灭转亮,实现报警功能。综上,该设计方法能够实现30S倒计时,并且可以暂停开始,以及复位和报警的功能。

二、设计要求

1、设计秒脉冲发生器,以产生秒脉冲信号。

2、设计一个30s计时电路,并具有时间显示功能。要求计时电路递减计时,每隔1s,计时器减1,当计时器递减计时到零(定时时间到)时,显示器显示“00”,同时发出光电报警信号。

3、设置外部操作开关,控制计数器的直接清零、启动和暂停/计时等。

三、硬件电路设计

1、脉冲发生器

计时器需要一个输出为1HZ的秒脉冲信号源。利用中小规模集成器件构造秒脉冲的方法很多,用得较多的两种方法是利用555定时器实现和利用晶体振荡器实现。本设计采用555定时器实现。555定时器构成的多谐振荡器可以产生脉冲波,并可通过调整定时器外接的电阻和电容元件很方便设定输出脉冲的频率,在脉冲精度要求不高的电路中,经常采用。555定时器通过外接RC电路构成充放电电路,并由两个比较器来比较电容两端电压,来确定输出电平的高低。555定时器的功能主要由两个比较器决定。两个比较器的输出电压控制RS触发器和放电管的状态。在电源与地之间加上电压,当5脚悬空时,则电压比较器C1的同相输入端的电压为2VCC/3,C2的反相输入端的电压为VCC/3。若触发输入端 TR 的电压小于VCC /3,则比较器 C2 的输出为 0,可使 RS 触发器置 1,使输出端 OUT=1。如果阈值输入端 TH 的电压大于 2VCC/3,同时 TR 端的电压大于VCC /3,则 C1 的输出为 0,C2 的输出为 1,可将 RS 触发器置 0,使输出为低电平。

仿真如图所示

周期T = 0.7*(R3+2*R4)*C2 即充电时间加放电时间 可参考http://www.elecfans.com/d/956382.html详细了解,通常C2接小电容有滤波作用。

输出波形如图所示

2、计数报警电路

采用74LS192芯片作为计数器,74LS192是同步的加减计数器,其具有清除和置数的功能。选择两片74LS192作为分别作为30的十位和个位。将作为十位的计数器输入端置为0011而将个位的输入端置为0000。将两片74LS192的置数端连出来与开关相连,开关控制置数端与高电平还是低电平,从而实现当30倒计时到00时,通过手动操作开关而可以重新开始倒计时。74LS192是同步十进制可逆计数器,具有同步预置数端和异步清零端,可以直接级联而无需外接电路,借位和进位两输出端可级联递增计数和递减计数,使用方便。

仿真如图所示

74LS192功能表

左边的74LS192是负责控制高位(即十位计数),DCBA置数为0011(悬空为0),表示的为3;当置数端有效时,该74LS192就被置为3;右边的74LS192设置预置数值为0000,即为0。因此,当置数端有效是,可以实现值为30的置数,可以用一个开关来控制置数端电平的高低,来达到置数和开始计数的目的;因为是倒计时,因此是减计数,用DOWN端接信号;当右边的74LS192减到0时,需要借位右边的74LS192,因此用到借位输出。报警电路选择了一个LED灯,因为需要在显示00的时候LED亮,查询74LS192和74LS48功能表可得,当输出为00时,两片74LS192的输出为0000,0000;因此,且仅在这种情况下输出均为0,因此可以将高位的74LS192的QA,QB,和低位的74LS192的QA,QB,QC,QD相或,当且仅当输出为0时,或的结果为0,因此将或的结果与LED的负极相连,正极与高电平相连,就能实现在0时灯亮,其他时候灯不亮的目的。

3、译码显示

译码显示模块选择了74LS48和七段共阴数码管,7段显示译码器74LS48是输出高电平有效的译码器,74LS48除了有实现7段显示译码器基本功能的输入(DCBA)和输出(Ya~Yg)端外,7448还引入了灯测试输入端(LT)和动态灭零输入端(RBI),以及既有输入功能又有输出功能的消隐输入/动态灭零输出(BI/RBO)端。

功能表

其中ABCD是输入端,与74LS192输出端相连,a~g是译码输出端。它一共有四种工作模式:

(1)7段译码功能(LT=1,RBI=1)

  在灯测试输入端(LT)和动态灭零输入端(RBI)都接无效电平时,输入DCBA经7448译码,输出高电平有效的7段字符显示器的驱动信号,显示相应字符。除DCBA = 0000外,RBI也可以接低电平,见表1中1~16行。

(2)消隐功能(BI=0)

  此时BI/RBO端作为输入端,该端输入低电平信号时,表1倒数第3行,无论LT 和RBI输入什么电平信号,不管输入DCBA为什么状态,输出全为“0”,7段显示器熄灭。该功能主要用于多显示器的动态显示。

(3)灯测试功能(LT = 0)

  此时BI/RBO端作为输出端, 端输入低电平信号时,表1最后一行,与 及DCBA输入无关,输出全为“1”,显示器7个字段都点亮。该功能用于7段显示器测试,判别是否有损坏的字段。

(4)动态灭零功能(LT=1,RBI=1)

此时BI/RBO端也作为输出端,LT 端输入高电平信号,RBI 端输入低电平信号,若此时DCBA = 0000,表1倒数第2行,输出全为“0”,显示器熄灭,不显示这个零。DCBA≠0,则对显示无影响。该功能主要用于多个7段显示器同时显示时熄灭高位的零。

我们显然选择工作模式一,因此将除开输入输出端的端子全部拉高,实现译码功能。七段共阴极数码管有工作电流要求:数码管动态显示时工作电流大约20mA:

I = 5V / 330 = 15.1515ma-

串联电阻保证其不被烧坏。

4、暂停/开始控制模块

实现在暂停和开始计数,需要想到74LS192和脉冲之间的关系,74LS192的低位片的DOWN端口与脉冲相连,当有一个脉冲来时,实现一次减一计数,若要暂停,只需要让输入的信号无脉冲即可,因此可以用一个电平和脉冲相与,只要该电平为0,那么无论如何均不可能有脉冲产生,也就不会计数,实现暂停技术,当该电平为1是,计数的频率就和输入脉冲的频率一样,实现继续计数。而该电平的高低可以用开关控制;同时,考虑到需要在计数到0时保持0不变,且上文提到,当且仅当译码显示为0时,或的结果为0,因此,可以将脉冲、或的结果、控制信号三者相与,再接入低位片的DOWN,即可实现上述功能。

5、控制置数

上文提到,只需控制74LS192置数端的高低电平即可,可用开关控制。

四、总结

本设计能够很好的实现要求的功能,结构简单,计时的时间可以很简单的设置,要完全理解该设计,需要掌握:555定时器构成特定频率的方波发生电路、74LS192的功能以及使用方法、74LS48的功能以及使用

完整的电路仿真图:

2020-06-27 19:38:01

篮球30S定时器设计的更多相关文章

  1. 【科研论文】基于文件解析的飞行器模拟系统软件设计(应用W5300)

    摘要: 飞行器模拟系统是复杂飞行器研制和使用过程中的重要设备,它可以用来模拟真实飞行器的输入输出接口,产生与真实系统一致的模拟数据,从而有效避免因使用真实飞行器带来的高风险,极大提高地面测发控系统的研 ...

  2. 基于STM8的TIM定时器操作---STM8-第三章

    1. 综述 STM8S提供三种类型的 TIM 定时器:高级控制型(TIM1).通用型(TIM2/TIM3/TIM5)和基本型定时器(TIM4/TIM6).它们虽有不同功能但都基于共同的架构.此共同的架 ...

  3. 嵌入式框架Zorb Framework搭建六:定时器的实现

    我是卓波,我是一名嵌入式工程师,我万万没想到我会在这里跟大家吹牛皮. 嵌入式框架Zorb Framework搭建过程 嵌入式框架Zorb Framework搭建一:嵌入式环境搭建.调试输出和建立时间系 ...

  4. μC/OS-III---I笔记4---软件定时器

    软件定时器是在硬件定时器的基础上开发的,通过将一个硬件定时器进行分频及管理就可以的到多个软件定时器.他和时间管理共同组成了系统的时间管理大部分的内容.系统一开始的系统初始化函数OSInit函数内调用了 ...

  5. 痞子衡嵌入式:嵌入式里通用微秒(microseconds)计时函数框架设计与实现

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是嵌入式里通用微秒(microseconds)计时函数框架设计与实现. 在嵌入式软件开发里,计时可以说是非常基础的功能模块了,其应用也非常 ...

  6. Qt与VC编程合作起龌龊

    由于历史原因,某软件项目的界面采用QT,而后台用了VC,界面静态调用了VC生成的dll,一直以来都能够快乐的合作,然而最近出现两个小问题,觉得两者之间的合作并没有想象的那么美好. 在VC下用多媒体定时 ...

  7. 传智播客C语言视频第二季(第一季基础上增加诸多C语言案例讲解,有效下载期为10.5-10.10关闭)

    卷 backup 的文件夹 PATH 列表卷序列号为 00000025 D4A8:14B0J:.│  1.txt│  c语言经典案例效果图示.doc│  ├─1传智播客_尹成_C语言从菜鸟到高手_第一 ...

  8. 传智播客C语言视频第一季(有效下载期为10.1-10.7,10.8关闭)

     J:\传智播客_尹成_C语言从菜鸟到高手├─传智播客_尹成_C语言从菜鸟到高手_第一章C语言概述A│      第一讲1.1C语言第一阶段.mp4│      第二讲1.2c语言入门教程.mp4 ...

  9. HTML5 Canvas JavaScript库 Fabric.js 使用经验

    首先,表明我的态度:采用 Flash 才是最优方案,不建议使用 HTML 5 的 Canvas 做一些生产/工业级的网页应用. Flash的优势一是浏览器支持好,二是代码成熟稳定.而HTML5 的 C ...

随机推荐

  1. 入门大数据---Spring+Mybatis+Phoenix整合

    一.前言 使用 Spring+Mybatis 操作 Phoenix 和操作其他的关系型数据库(如 Mysql,Oracle)在配置上是基本相同的,下面会分别给出 Spring/Spring Boot ...

  2. 函数进化到Lambda表达式的三过程

    假如我们想要从一个整型数组中取出其中是奇数的选项,其实现方式有很多, 接下来通过三种方法的对比理解Lambda表达式的用途,需要了解的朋友可以参考下         //声明委托类型 public d ...

  3. CSS背景颜色透明

    { filter:alpha(opacity=50); -moz-opacity:0.5; -khtml-opacity: 0.5; opacity: 0.5; } 兼容大部分主流浏览器 filter ...

  4. 6.30集训模拟赛4(炸裂的一天qwq)

    T1浇水: 题目描述 在一条长n米,宽m米米的长方形草地上放置着k个喷水装置.假设长方形草地的坐标范围为[ 0 , 0 ] ~ [ n , m ],那么第 i 个喷水装置的位置为(ai,m/2),也就 ...

  5. SpringBoot-读取classpath下文件

    文章目录 开发过程中,必不可少的需要读取文件,对于打包方式的不同,还会存在一些坑,比如以jar包方式部署时,文件都存在于jar包中,某些读取方式在开发工程中都可行,但是打包后,由于文件被保存在jar中 ...

  6. Illustrate Java Access Levels

    https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html 官网教程,清晰明了. (完)

  7. 01 . SaltStack部署配置及简单应用

    SaltStack简介 SaltStack saltstack是一个新的基础平台管理工具,只需要花费数分钟即可运行起来,可以支撑管理上万台服务器的规模,数秒钟即可完成数据传递. saltstack是使 ...

  8. Python-自动用0补取长度

    描述 Python zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0. 语法 zfill()方法语法: str.zfill(width) 参数 width -- 指定字符串的长度. ...

  9. C++输出三角图形

    输出像这样的三角图形 3            1           1 1          1    1         1 1 1 1        1          1       1 ...

  10. python 生成器(四):生成器基础(四)标准库中的生成器函数

    os.walk 这个函数在遍历目录树的过程中产出文件名,因此递归搜索文件系统像for 循环那样简单. 用于过滤的生成器函数 模块  函数  说明 itertools  compress(it,sele ...