我是靠谱客的博主 踏实星月,最近开发中收集的这篇文章主要介绍数电课设之一路交通灯,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

开启新的征程~~


偷懒了很长一段时间,也是因为一直在忙着考试和做课设,然后博客好久没更了⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄。暑假这段时间开始准备电赛,马上自己就大三了,新的征程即将开启,希望自己可以更加更加自律和努力,不要偷懒啦~~~,这篇博客先说一下简易版的一路交通灯(拖了很久啦⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄),emmmm,一路和四路(其实也可以理解为两路)区别不大,原理都一样,做好了一路的,四路的就不成问题啦~(所以可以先做一个一路的作为测试)


  • 设计内容
    (1)要求控制一个十字路口的交通灯的其中一个方向即可;
    (2)要求红黄绿灯用发光二极管表示;
    (3)每一时刻有且仅有一个灯亮;
    (4)按照绿灯(10秒)–黄灯(2秒)–红灯(10秒)自动循环亮起。

  • 设计思路
    系统应该由秒脉冲信号发生器、定时器、控制器、译码器、信号灯指示器和数字显示器六大部分组成。其中秒脉冲信号发生器是定时器的标准时钟信号源,用于给定时器提供秒脉冲信号,实现一秒计时定时器一方面用于实现题目中所要求的定时时间,另一方面用来向控制器发出状态转换信号,一旦控制器接收到状态转换信号就会转至下一个工作状态。控制器用来控制定时器和译码器的工作译码器输出信号灯的控制信号和控制定时器产生不同的定时时间数字显示器用来显示不同时间的变化。
    下面是设计总体框图,便于理解。
    在这里插入图片描述

  • 设计方案
    秒脉冲信号发生器:可由555定时器构成的多谐振荡器实现。
    定时器:74LS192构成。
    控制器:74LS160构成。
    显示器:共阴数码管
    译码器:3 - 8译码器(74LS138)、2 - 4译码器(74LS248)

  • 秒脉冲发生电路
    我是用的比较常用的555秒脉冲信号发生器电路,数电课本上关于这个电路有非常详细的解释,这里我不再赘述,想要详细了解的可以直接百度或者查课本。这个电路主要就是你自己根据输出脉冲的周期计算公式:T = 0.7(R1 + 2R2)C 来计算出相应的电阻值和电容值。
    电路原理图:
    在这里插入图片描述
    这里做一点说明: 电路中加入了滑动变阻器,但是这个滑动变阻器是可以看做和R1一体的,就是说调节滑动变阻器只相当于改变周期计算公式中的R1,而R2是固定不变的,加入滑变是为了使电路具有可调性,以防输出的秒脉冲波形不稳定或者不准确(这个思路可以借鉴一下,设计电路时,可调的电路总比不可调的电路要好很多)。

  • 定时器
    用的是74LS192接成了减计数器,因为想实现的是倒计时功能,这里也可以用其它的可逆计数器(比如74LS168)。
    定时器部分思路解释: 先置数,也就是把 第一个状态(绿灯)的定时时间(10S) 置入74LS192,然后来一个秒脉冲,定时器就减一,那么74LS192的输入就应该接入我们想要的 定时循环状态(10-2-10) 发生端(也就是我们的控制器),那么输出就应该直接接数码管,将定时器的每一秒的值都显示到数码管上。
    emmm,这一部分电路的理解需要结合74LS192的真值表和引脚功能图。(数字电路的设计,每一个芯片的真值表和引脚功能图都非常重要,电路的设计都是按照这两个东东来的
    在这里插入图片描述
    电路原理图:
    在这里插入图片描述
    电路只能先截一部分,我们可以先不看输入和输出的接法,先把74LS192接成减计数状态。
  • CLR:接地(0);
  • LOAD置数端:把两片74LS192的借位输出端BO通过一个或门相连,输出再通过一个RS锁存器接入LOAD置数端;
  • UP:接VCC(1);
  • DOWN:接时钟输入(秒脉冲)。

说明:

  • 关于LOAD置数端的接法说明:
    由于我们需要三个不同的定时状态循环(10-2-10),也就是要在每个定时状态发生改变时(每一次置入的数据减为0时)重新置数(置数端为0),也就是说只有当两片74LS192的借位输出端BO都输出0时,才触发一次置数状态, 将两个BO通过一个或门输出,就保证了只有当两个BO都输出0时才会输出0,而其他任何状态下都输出1。
  • 关于RS锁存器的说明:
    由于置数信号存在的时间比较短,所以可能会导致电路误动作(置数状态和倒计时同步进行),表现就是重新置数结束时,数码管显示的数据会发生跳变外接RS锁存器的方式,人为延长置数信号存在的时间,锁存置数信号,从而解决数据跳变的问题。(这一点也算是一个设计亮点吧,因为仿真时出现了这个问题,用示波器分析了置数信号的输出波形,然后查了一下数电课本,在一个例题上看到了这个问题)。
    可以看一下当时的波形分析:
    在这里插入图片描述
  • 关于LOAD置数端的开关KEY
    如果不接开关的话,初始上电时相当于把或门的初始输出给置数端LOAD,而初始上电时,BO的输出都为1,故或门的输出为1,LOAD为1相当于没有把初始数据10置入74LS192,所以我们需要保证初始上电时LOAD为0,那么我们就需要加入一个开关,上电时先将开关断开,此时LOAD为0,成功置入初始数据10(数码管显示10)后,再将开关接上,如此就实现了初始数据的置入。
  • 关于定时器的输出
    直接通过一个24译码器接入数码管即可,电路原理图(这里的电阻(200欧)是必须要加的,起限流的作用,防止数码管烧坏,阻值我查了网上说的是与译码芯片有关的,emmm,反正仿真时这个芯片如果不用200欧的电阻就会报错,实际电路不太清楚,我还是用的200欧的电阻,没啥问题):
    在这里插入图片描述
  • 关于定时器的输入
    输入接的是控制器的输出,按照(10-2-10)的规律循环输入,后面讲控制器部分再细说。

  • 控制器
    控制器干嘛的?一句话总结:产生固定的循环输出状态,然后利用相应的逻辑将控制器的循环输出改变为我们想要的循环。
    那么我们应该先来看看我们需要什么样的循环状态:
    定时状态循环: 10-2-10
    信号灯的状态循环: 绿-黄-红
    在这里插入图片描述
    OK,那么我们只需要让控制器产生三种输出并循环就可以了,要产生三种输出,那么我们就可以利用计数器(74LS160),至于38译码器是增加输出端,防止出现输出端不够用的情况。这里的电路也要按照芯片的真值表和引脚功能来设计。
    利用74LS160的计数和保持状态来实现三种状态循环。

    在这里插入图片描述
    控制器设计思路说明:
    首先将74LS160接成可计数可保持输入的状态,即将置数端(LOAD)和一个可变信号相连,一旦LOAD端为1则处于计数状态,为0则处于输入保持状态,再以两片74LS192的借位输出端BO的输出信号作为状态转换信号,通过一个或门和一个非门接入74LS160的时钟输入端(CLK),通过74LS160的真值表可以知道,当来一个时钟上升沿且LOAD置数端为1时,计数器处于计数模式。 74LS160初始输出状态为00,故我们只需要再设计两个计数模式,然后再让74LS160处于保持状态,即00(我们将四个输入全部接地了)就可实现三种状态的循环设计。
    控制器状态循环表:
    在这里插入图片描述
    对照两个状态转换表得出相应的逻辑转换(没列出的都为常0,故直接接地):
    在这里插入图片描述
    控制器电路:(emmm,只截了一部分,可以先看这一部分的接线,后面我会给完整的仿真图)
    在这里插入图片描述

  • 信号灯
    这一部分没啥可说的。。。。。

好了,,,大概就这么多了,总的原理就是这样,最后是总的仿真图:
在这里插入图片描述


大家在做实物的时候一定不要忘记多留几个测试口,最好每一部分的电路都留一个测试口,方便后期调试,第一版先调试成功,后面的版本就不需要留那么多测试口啦~ over


oo,元器件清单也列出来叭,仅供参考~
SED数码管(共阴): 2
200Ω电阻: 16
47KΩ电阻: 2
滑动电阻: 1
0.1uF电容: 1
10uF电容 :1
电源开关: 1
555芯片: 1
74LS248N芯片: 2
74LS192N芯片: 2
74LS160N芯片: 1
74LS138N芯片: 1
74LS04N非门: 5
74LS08芯片: 1
7400N与非门: 2
SN74LS32N或门: 1

最后

以上就是踏实星月为你收集整理的数电课设之一路交通灯的全部内容,希望文章能够帮你解决数电课设之一路交通灯所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部