《数字电子电路》 课程设计:十字路口红绿灯自动控制系统(上)(multisim仿真及PCB实现)

(一)前言

    本系列文章就笔者在大二下学期进行《数字电子线路》课程设计的题目:十字路口红绿灯自动控制系统 进行详细的讲解,希望对读者有所帮助。

(二)目录

一、主要指标及要求

二、电路工作原理

1、工作原理系统框图

       2、方案选择

三、单元电路设计

1、脉冲信号发生器

2、倒计时计数器

3、状态控制器

4、红绿灯控制逻辑与红绿灯显示电路

5、数码管译码器与显示电路

四、完整的电路图

五、仿真及结果

1、单元电路仿真结果

       2、 整体仿真结果

六、PCB的绘制:

七、电路性能指标测试结果

附录:元器件清单

(三)正文

一、主要指标及要求

 设计十字路口红绿灯自动控制系统,同时控制主干道和支干道的红绿灯和倒计时显示,指挥十字路口车辆和行人有序通过,维持交通秩序和保障车辆、行人的安全。

完成红->绿->黄->红->绿->黄……交通信号灯的循环,并添加黄灯闪烁功能,以警告车辆和行人红灯的到来;

主干道和支干道红、绿灯时长相同,为25秒,黄灯闪烁时间为5秒;

用数码管显示倒计时。

二、电路工作原理

1、工作原理系统框图

 

 2、方案选择

    经过前期的调研与对本小组现有能力的结合,我们最终确定了最有可行性的设计方案。十字路口红绿灯自动控制系统由以下五个模块组成:脉冲信号发生器、倒计时计数器、状态控制器、红绿灯控制逻辑与红绿灯显示电路、数码管译码器与显示电路。各个模块的功能如下:

脉冲信号发生器:

由NE555无稳态构成多谐振荡器,利用公式计算配置,产生周期为一秒的时钟脉冲信号。

倒计时计数器:

由两片74LS190N十进制可逆计数器构成,通过控制置数输出个位、十位BCD用于数码管显示,并控制状态控制器的状态变化。

状态控制器:

由一片74LS74N双D触发器构成四进制计数器构成,分配00、01、10、11状态加上一系列逻辑控制红绿灯的显示。

红绿灯控制逻辑与红绿灯显示电路:

由74LS86N异或门、74LS04N非门、74LS10N三输入与非门、74LS08N与门构成组合逻辑电路和发光LED构成,输出信号控制红绿灯的亮灭。

数码管译码器与显示电路:

由74LS48N共阴极数码管译码驱动电路和共阴极数码管构成,将倒计时计数器的十位、个位BCD码显示输出。

三、单元电路设计

1、脉冲信号发生电路(典型电路啦,可以不需要明白原理,直接拿过来用)

脉冲信号发生器由NE555无稳态模式构成多谐振荡器产生周期一秒的脉冲信号。

⑴NE555引脚图及逻辑关系真值表:

利用其无稳态模式构成多谐振荡器:

⑵电路震荡周期可由以下公式得出:

振荡频率:

占空比:

经查阅典型电路,产生一秒周期的脉冲信号,可选取电阻44KΩ和50KΩ、电解电容10uF、无极性电容100nF,具体电路如下:

仿真波形:

周期998.542ms约为1秒,符合设计要求。

2、倒计时计数器(这个是在计数器的基础上改进的,需要理解)

倒计时计数器由两片74LS190N十进制可逆计数器构成,通过在十位置数端置00()0、个位置数端置0101来构成25/5进制倒计时计数器,由的状态控制倒计时为25进制还是5进制。 

74LS190引脚图及真值表如下:

倒计时模式25/05进制切换控制:

用两个74LS190级联构成100进制计数器,再利用异步整体置数法构成25进制计数器,即当=1(状态控制器状态为10或01)时,计数模式为25进制;即当=0(状态控制器状态为00或11)时,计数模式为5进制。电路状态控制器的原理详见3。

倒计时计数器电路原理图如下:

3、状态控制器(设计的精髓)

       状态控制器的设计是本次课程设计的难点,也是很有创新性的巧妙设计。状态控制器由一片双D触发器74LS74及非门74LS04、与门74LS08、异或门74LS86组成。

双D触发器74LS74、非门74LS04、与门74LS08、异或门74LS86引脚图及真值表:

双D触发器74LS74

非门74LS04

门74LS08

 

异或门74LS86

状态控制器的设计:

电路状态分配如下所示:

采用格雷码的编码方式,有效避免了多个跳变沿不能对齐而产生的竞争冒险,使电路能稳定的按……的方式循环。

状态控制器状态转移逻辑推导:

将D触发器的反相输出端反馈接到作为输入,这样就使得每一次D触发器被触发的时候,输出总是与上一次的输出相反,这样,用两个D触发器再配合相应的逻辑就能够构成格雷码状态寄存器,实现00->01->11->10->00...的状态转移。如下图所示:

(格雷码状态寄存器) 

  此时,需要解决的问题是D触发器时钟跳变沿触发的问题,即要使格雷码状态寄存器在正常倒计时的时候保持响应的状态,又要在状态转移的时候引入跳变沿触发格雷码状态寄存器从而使状态发生转移。但是经过查找资料发现现有的方法跟我们目前的电路在思路上有很大区别,并不适用于我们的设计。在设计25/5进制倒计时计数器的时候我们用到了典型的整体置数法,利用其高位74LS190在借位时从0000->1001一瞬间的高电平加非门作为的触发信号的方法,我们将反馈回到状态控制电路,用作为,用作为,这样就能够在合适的时刻实现状态的转移了!真值表如下图所示:

  这种方法不仅巧妙的利用了已有电路,节省了成本,而且十分稳定,没有导线多驱动的问题。

状态控制器电路如图所示:

4、红绿灯控制逻辑与红绿灯显示电路

红绿灯控制逻辑与显示电路由红、黄、绿三色LED以及由三输入与门74LS10、非门74LS04、与门74LS08构成的逻辑组成。这个模块的设计难点在于逻辑推导。

红、黄、绿灯控制逻辑推导:

由于我们的题目是红绿灯需要引人注目,而TTL输出高电平>2.4V,如果限流电阻太大会导致电流很小,LED亮度不高,在明亮的白天不太明显,我们就采用了5V电源驱动,因此LED灯被选中发光的时候是低电平有效,利用状态控制器的输出,有以下控制逻辑真值表:

由真值表可推导出以下控制逻辑表达式:

但是设计要求黄灯闪烁,最简单的方法是引入NE555产生的脉冲信号CLK,修改后的控制逻辑表达式如下:

红绿灯控制逻辑与红绿灯显示电路原理图

5、数码管译码器与显示电路

数码管译码器与显示电路由共阴极数码管译码驱动电路74LS48和八段数码管组成,两个74LS48分别将个位、十位74L90输出的BCD码转化为共阴极数码管段选码,并驱动共阴极数码管的输出。

74LS48引脚图及真值表:

共阴极七段数码管显示原理

数码管由abcdefg7段发光LED排布而成,其阴极接到公共地,输入高电平,对应的数码管段被点亮。由于gfedcba点亮的编码非二进制编码,因而需要译码电路将二进制BCD码转化为共阴极数码管段选码。

数码管译码器与显示电路原理图:

四、完整的电路图


在(上)篇我们一起构建了multisim仿真原理图,在(下)篇笔者将带领大家完成电路的实现工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/686376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P15---总电磁转矩T

正弦波驱动模式工作的永磁同步电动机的总电磁转矩 T clear clc% 15页表达式 syms Omega theta E I e_A E*sind(theta) e_B E*sind(theta-120) e_C E*sind(theta-240)i_A I*sind(theta) i_B I*sind(theta-120) i_C I*sind(theta-240)P e_A*i_A e_B*i_B e_C*i_CT P/Om…

Unity设备分级策略

Unity设备分级策略 前言 之前自己做的设备分级策略,在此做一个简单的记录和思路分享。希望能给大家带来帮助。 分级策略 根据拟定的评分标准,预生成部分已知机型的分级信息,且保存在包内;如果设备没有被评级过,则优…

QKD安全攻击防御方案分析和分级评估研究报告

今天分享的是行业报告:《QKD安全攻击防御方案分析和分级评估研究报告》 (内容出品方:量子信息网络产业联盟) 报告共计:180页 来源:《见鹿报告》 前言 量子通信是量子信息科学的重要分支,它…

572. 另一棵树的子树

Problem: 572. 另一棵树的子树 文章目录 思路解题方法复杂度Code 思路 这个问题可以通过序列化树和KMP算法来解决。首先,我们将两棵树都序列化为一个字符串列表,然后使用KMP算法来检查第二棵树的序列化结果是否为第一棵树的子串。 解题方法 首先&#xf…

【大模型】0.5B的大模型通义千问1.5-0.5B-Chat来了!!

【大模型】0.5B的大模型通义千问1.5-0.5B-Chat来了!! 模型介绍训练细节Requirements拉取模型示例代码多轮对话测试输出示例资源占用参考 模型介绍 Qwen1.5是Qwen2的测试版,这是一个基于转换器的纯解码器语言模型,在大量数据上进行…

快速实现Python/Flask静默获取微信公众号OpenID的完整指南及代码

初步简介 初始授权请求:用户访问 /api/wx_api/get_wx_openid 路由时,服务器端会生成一个微信授权URL,该URL指向微信的授权页面,并包含了必要的查询参数(如appid、redirect_uri、response_type、scope、state&#xff0…

位运算(一)

位运算注意事项 整形在计算机中是以补码的形式进行存储的,因此位运算也是在补码的基础上进行操作的。 复习:正数:原码反码补码 负数:反码原码取反(除符号位) 补码反码1 位运算~:按位取反(在补码上按位取…

Shellcode免杀对抗(Python)

Shellcode Python免杀,绕过360安全卫士、火绒安全、Defender Python基于cs/msf的上线 cs 执行代码2种可供选择 执行代码 1: rwxpage ctypes.windll.kernel32.VirtualAlloc(0, len(shellcode), 0x1000, 0x40) ctypes.windll.kernel32.RtlMoveMemory…

HTTP 请求 400错误

问题 HTTP 请求 400错误 详细问题 客户端发送请求 public static UserInfo updateUserInfo(UserInfo userInfo) {// 创建 OkHttpClient 对象OkHttpClient client new OkHttpClient();// 创建请求体MediaType JSON MediaType.parse("application/json; charsetutf-8&…

代码随想录算法训练营第三十四天丨860.柠檬水找零、406. 根据身高重建队列、860. 柠檬水找零

860. 柠檬水找零 遇到顾客给20块的&#xff0c;优先拿10块的找给他。 class Solution:def lemonadeChange(self, bills: List[int]) -> bool:change {5: 0, 10: 0}for bill in bills:if bill 5:change[5] 1elif bill 10:if change[5] < 1:return Falsechange[5] - …

目标检测算法之YOLOv5的应用实例(医疗影像辅助诊断领域应用的详解)

在医疗影像辅助诊断领域,YOLOv5可以被应用于快速而准确地识别和定位医学影像中的关键结构,比如肿瘤、器官或病变区域。这有助于医生更有效地分析影像资料,提高诊断的准确性和效率。以下是一个使用YOLOv5在医学影像上进行病灶检测的基本代码示例: import cv2 import torch …

Java实现停车场收费系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 停车位模块2.2 车辆模块2.3 停车收费模块2.4 IC卡模块2.5 IC卡挂失模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 停车场表3.2.2 车辆表3.2.3 停车收费表3.2.4 IC 卡表3.2.5 IC 卡挂失表 四、系统实现五、核心代码…

sqlserver 子查询 =,in ,any,some,all的用法

在 SQL Server 中&#xff0c;子查询常用于嵌套在主查询中的子句中&#xff0c;以便根据子查询的结果集来过滤主查询的结果&#xff0c;或者作为主查询的一部分来计算结果。 以下是 、IN、ANY、SOME 和 ALL 运算符在子查询中的用法示例&#xff1a; 使用 运算符进行子查询&a…

android11以上SD卡存储权限适配申请问题

在Android 11&#xff08;API级别30&#xff09;及以上版本中&#xff0c;应用需要获得MANAGE_EXTERNAL_STORAGE权限。这个权限允许应用访问设备上的所有文件&#xff0c;而不仅仅是它自己的文件。然而&#xff0c;由于这个权限对用户的隐私有潜在的影响&#xff0c;因此Google…

Java-String字符串的常见方法总结

常用方法 1.charAt(int index)方法和tocharArray()方法 charAt(int index)方法&#xff1a;括号里传入整型参数&#xff0c;可以获取到该下标位置的String数组内容&#xff0c;通常用于遍历字符串。 tocharArray()方法&#xff1a;将字符串转化为char类型&#xff0c;再存入c…

【初始RabbitMQ】工作队列的实现

工作队列 工作队列&#xff08;又称为任务队列&#xff09;的主要思想是避免立即执行资源密集型任务&#xff0c;而不得不等待它完成。 相反我们安排任务在之后执行。我们把任务封装为消息并将其发送到队列。在后台运行的工作进 程将弹出任务并最终执行作业。当有多个工作线程…

【NI-DAQmx入门】调整数据记录长度再进行数据处理

需要注意的是&#xff0c;初学者很容易造成一个大循环&#xff0c;导致采集循环的执行时间过长&#xff0c;最佳操作是采集循环只干采集的事&#xff0c;另起一个循环做数据拆解或分析。 有时需要以一定的采样率获取数据并记录所需的长度。然而&#xff0c;在处理这些数据时&am…

QT+OSG/osgEarth编译之八十八:osgdb_pic+Qt编译(一套代码、一套框架,跨平台编译,版本:OSG-3.6.5插件库osgdb_pic)

文章目录 一、osgdb_pic介绍二、文件分析三、pro文件四、编译实践一、osgdb_pic介绍 PIC(Pixel Image Format)是一种用于存储和表示图像数据的文件格式。它最初由软件公司Softimage开发,用于存储计算机生成的图像和动画序列。 PIC格式使用无损压缩算法,可以保存包含颜色和…

2-17作业

#!/bin/bash read zifu case $zifu in [[:lower:]]) echo "小写字母" ;; [0-9]) echo "是数字字符" ;; [[:upper:]]) echo "是大写字母" ;; esac #!/bin/bash arr(ls ~) len${#arr…

每日OJ题_算法_递归⑤力扣50. Pow(x, n)

目录 力扣50. Pow(x, n) 解析代码 力扣50. Pow(x, n) 50. Pow(x, n) 难度 中等 实现 pow(x, n) &#xff0c;即计算 x 的整数 n 次幂函数&#xff08;即&#xff0c;xn &#xff09;。 示例 1&#xff1a; 输入&#xff1a;x 2.00000, n 10 输出&#xff1a;1024.0000…