数字电路设计实例
VHDL数字逻辑电路设计19例

VHDL 数字逻辑电路设计19例第1章组合逻辑电路8例1. 2-4译码器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ymq24 ISPORT (EN,A,B:IN STD_LOGIC;YN : OUT STD_LOGIC_vector(3 downto 0 ));END ENTITY ymq24 ;ARCHITECTURE rt1 OF ymq24 ISSIGNAL T:STD_LOGIC_vector(1 downto 0 );BEGINT<=A & B;process(EN,T)beginIF EN='1' THEN YN<="1111";ELSIF T="00" THEN YN<="1110";ELSIF T="01" THEN YN<="1101";ELSIF T="10" THEN YN<="1011";ELSE YN<="0111";END IF;End process;END ARCHITECTURE rt1;2. 3-8译码器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ymq38 ISPORT (G1,G2N,G3N,A,B,C:IN STD_LOGIC;YN : OUT STD_LOGIC_vector(7 downto 0 )); END ENTITY ymq38 ;ARCHITECTURE rt1 OF ymq38 ISSIGNAL T1,T2:STD_LOGIC_vector(2 downto 0 );BEGINT1<=A & B & C;T2<=G1 & G2N & G3N;process(G1,G2N,G3N,T1,T2)beginIF T2/="100" THEN YN<="11111111";ELSIF T1="000" THEN YN<="11111110";ELSIF T1="001" THEN YN<="11111101";ELSIF T1="010" THEN YN<="11111011";ELSIF T1="011" THEN YN<="11110111";ELSIF T1="100" THEN YN<="11101111";ELSIF T1="101" THEN YN<="11011111";ELSIF T1="110" THEN YN<="10111111";ELSE YN<="01111111";END IF;End process;END ARCHITECTURE rt1;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY xzq41 ISPORT(gn: IN STD_LOGIC;d: IN STD_LOGIC_VECTOR(3 DOWNTO 0);a0,a1: IN STD_LOGIC;y: out STD_LOGIC);END ENTITY xzq41;ARCHITECTURE rt1 OF xzq41 ISsignal s: STD_LOGIC_VECTOR(1 DOWNTO 0); BEGINS<= a1 & a0;Process(S,D,gn)beginif gn='0' thenCASE (S) ISWHEN "00"=> Y<=d(0);WHEN "01"=> Y<=d(1);WHEN "10"=> Y<=d(2);WHEN "11"=> Y<=d(3);WHEN OTHERS =>NULL;END CASE;else y<='0';end if;End process;END ARCHITECTURE rt1;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY xzq81 ISPORT(gn: IN STD_LOGIC;d: IN STD_LOGIC_VECTOR(7 DOWNTO 0);a0,a1,a2: IN STD_LOGIC;y: out STD_LOGIC);END ENTITY xzq81;ARCHITECTURE rt1 OF xzq81 ISsignal s: STD_LOGIC_VECTOR(2 DOWNTO 0); BEGINS<= a2 & a1 & a0;Process(S,D,gn)beginif gn='0' thenCASE (S) ISWHEN "000"=> Y<=d(0);WHEN "001"=> Y<=d(1);WHEN "010"=> Y<=d(2);WHEN "011"=> Y<=d(3);WHEN "100"=> Y<=d(4);WHEN "101"=> Y<=d(5);WHEN "110"=> Y<=d(6);WHEN "111"=> Y<=d(7);WHEN OTHERS =>NULL;END CASE;else y<='0';end if;End process;END ARCHITECTURE rt1;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY l75 ISPORT (A,B,C:IN STD_LOGIC;d,g : OUT STD_LOGIC);END ENTITY l75 ;ARCHITECTURE rt1 OF l75 ISCOMPONENT ymq38PORT (G1, G2N, G3N, A, B, C: IN STD_LOGIC;YN : OUT STD_LOGIC_vector(7 downto 0 )); END COMPONENT ;signal ynt : STD_LOGIC_vector(7 downto 0 );BEGINU1 :ymq38 PORT MAP ('1','0','0',a,b,c,YNt(7 DOWNTO 0));d<=not(ynt(1) and ynt(2) and ynt(4) and ynt(7));g<=not(ynt(1) and ynt(2) and ynt(3) and ynt(7));END ARCHITECTURE rt1;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY l76 ISPORT (A,B,C,D:IN STD_LOGIC;F : OUT STD_LOGIC);END ENTITY l76 ;ARCHITECTURE rt1 OF l76 ISCOMPONENT ymq38PORT (G1,G2N,G3N,A,B,C:IN STD_LOGIC;YN : OUT STD_LOGIC_vector(7 downto 0 ));END COMPONENT ;signal yn1t:STD_LOGIC_vector(7 downto 0 );signal yn2t:STD_LOGIC_vector(7 downto 0 );BEGINU1 :ymq38 PORT MAP ('1',A,'0',B,C,D,YN1t(7 DOWNTO 0));U2 :ymq38 PORT MAP (A,'0','0',B,C,D,YN2t(7 DOWNTO 0));F<=not( yn1t(2) and yn1t(4) and yn1t(6) and yn2t(0) and yn2t(2) and yn2t(4) and yn2t(6)); END ARCHITECTURE rt1;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY l78 ISPORT (A,B,C:IN STD_LOGIC;f : OUT STD_LOGIC);END ENTITY l78 ;ARCHITECTURE rt1 OF l78 ISCOMPONENT xzq81PORT(gn: IN STD_LOGIC;d: IN STD_LOGIC_VECTOR(7 DOWNTO 0);a0,a1,a2: IN STD_LOGIC;y: out STD_LOGIC);END COMPONENT ;BEGINU1 :xzq81 PORT MAP ('0',"01101100",c,b,a,f);END ARCHITECTURE rt1;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY l78 ISPORT (A,B,C:IN STD_LOGIC;f : OUT STD_LOGIC);END ENTITY l78 ;ARCHITECTURE rt1 OF l78 ISCOMPONENT xzq41PORT(gn: IN STD_LOGIC;d: IN STD_LOGIC_VECTOR(3 DOWNTO 0);a0,a1: IN STD_LOGIC;y: out STD_LOGIC);END COMPONENT ;signal t:STD_LOGIC;signal dt:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINt<= not c;dt<=t & c & '1' & '0';U1 :xzq41 PORT MAP ('0',dt,b,a,f);【作业】以下所有题目必须用VHDL代码实现。
数字电路课程设计(密码锁)

数字电路课程设计设计报告课题名称:密码锁设计成员1:设计成员2:设计成员3:密码锁一、目录1、设计项目综述 (2)2、设计方案及分析 (3)2.1设计方案 (3)2.2设计分析 (4)2.3方案优缺点 (4)3、电路原理分析 (5)3.1模块1:八进制优先编码器74ls148 (5)3.2模块2:4位双稳锁存器74LS75 (6)3.3模块3:4位数字比较器74LS85 (8)3.4模块4:可预置bcd计数器74LS160 (9)3.5 总图 (14)4、总结 (16)4.1设计中遇到的问题及解决方法 (17)4.2设计方案中需要改进的地方 (17)4.3这次设计中的收获和教训 (17)二、设计项目综述:1、可以预置1位十进制数密码,并保存密码。
2、开锁时,输入正确密码,按开锁键,锁打开。
3、当输入密码时,数码管显示相应的输入数字。
密码输入错误时计数一次,当输入错误密码连续达到四次,拒绝再输入密码。
需用复位键将其还原才能再次输入。
4、输入密码时,数码管8显示密码的数值。
拒绝输入密码时,只显示0。
按开锁键时,数码管5显示密码输入错误的次数;当错误次数连续少于4次以下时,则当输入密码正确时数码管5清“0”。
5、开锁指示灯亮表示锁已经打开。
三、设计方案及分析1、设计方案根据以上密码锁的设计任务,我们拟定的方案可以简略的如以下框图所示:2、方案分析(1)密码输入:由于要求通过每按一个输入键时直接显示为对应的十进制数密码,所以需要将二进制数转换为对应的十进制数。
根据前面这个要求,我们有两个选择74ls147和74ls148。
74ls147与74ls148比较,74ls148比74ls147多一个功能端。
使用74ls148可以实现输入四次错误自动锁定。
虽74ls148总的输入键只有8个,使用两块74ls148,并他们通过级联可以解决0~9输入。
当多过输入端同时出现时,只对其中优先权最高的一个进行编码,这个编码就是我们要的对应的十进制数。
多功能数字钟电路设计

多功能数字钟电路设计1设计内容简介数字钟是一个简单的时序组合逻辑电路,数字钟的电路系统主要包括时间显示,脉冲产生,报时,闹钟四部分。
脉冲产生部分包括振荡器、分频器;时间显示部分包括计数器、译码器、显示器;报时和闹钟部分主要由门电路构成,用来驱动蜂鸣器。
2设计任务与要求Ⅰ以十进制数字形式显示时、分、秒的时间。
Ⅱ小时计数器的计时要求为“24翻1”,分钟和秒的时间要求为60进位。
Ⅲ能实现手动快速校时、校分;Ⅳ具有整点报时功能,报时声响为四低一高,最后一响为整点。
Ⅴ具有定制控制(定小时)的闹钟功能。
Ⅵ画出完整的电路原理图3主要集成电路器件计数器74LS162六只;74LS90三只;CD4511六只;CD4060六只;三极管74LS191一只;555定时器1只;七段式数码显示器六只,74LS00 若干;74LS03(OC) 若干;74LS20 若干;电阻若干,等4设计方案数字电子钟的原理方框图如图(1)所示。
该电路由秒信号发生器、“时,分,秒”计数器、译码器及显示器、校时电路、整点报时电路、闹钟定时等电路组成。
秒信号产生器决定了整个计时系统的精度,故用石英晶体振荡器加分频器来实现。
将秒信号送入“秒计时器”,“秒计时器”采用六十进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。
“分计数器”也采用六十进制计数器,每60分钟,发出一个“时脉冲”,该信号经被送到“时计数器”作为“时计数器”的时钟脉冲,而“时计数器”采用二十四进制计数器,实现“24翻1”的计数方式,可实现对一天二十四小时的累计。
译码显示电路将“时”、“分”、“秒”计数器的输出状态通过七段式显示译码器译码,通过刘伟LED 七段显示器显示出来。
整点报时电路是根据计时系统的输出状态产生一脉冲信号,然后触发一音频发生器实现整点报时,定时电路与此类似。
校时电路是用“时”、“分”、“秒”显示数5电路设计5.1秒信号发生器秒信号发生器是数字钟的核心部分,它的精度和稳定度决定了数字钟的质量,通常用晶体整荡器产生的脉冲经过整形、分频获得1 Hz的秒脉冲。
数模混合信号电路设计

设计前的准备
根据需求分析,设计模拟电路部分,包括放大器、滤波器、比较器等。
模拟电路设计
设计数字电路部分,如逻辑门、触发器、寄存器等。
数字电路设计
设计模拟和数字电路之间的接口,确保信号的正确传输。
接口设计
电路设计
功能仿真
验证电路的功能是否符合设计要求。
优化调整
根据仿真结果,对电路参数进行优化调整,提高性能和降低成本。
元器件选择
布局设计
合理安排模拟和数字部分的布局,避免信号之间的相互干扰。
布线设计
采用合适的线宽和间距,确保信号传输的稳定性和可靠性。
电源设计
优化电源网络设计,减小电源噪声对电路性能的影响。
PCB设计
根据设计需求选择合适的电路板制作工艺,如PCB、FPC等。
制作工艺
搭建符合测试要求的测试环境,包括电源、信号源、测量仪器等。
模拟信号放大电路设计概述
模拟信号放大电路设计主要目的是将微弱的模拟信号放大到足够大的幅度,以便于后续的处理或传输。
模拟信号放大电路设计流程
模拟信号放大电路设计流程包括确定放大倍数、选择合适的放大器件、设计合适的反馈电路等步骤。
模拟信号放大电路应用
模拟信号放大电路广泛应用于音频放大、传感器信号放大、电子测量等领域,对于提高信号的信噪比和传输质量具有重要作用。
集成度高
由于同时涉及数字和模拟电路,数模混合信号电路设计较为复杂,需要考虑数字和模拟电路之间的相互影响和干扰。
设计复杂
数模混合信号电路的特点
03
设计流程和方法
明确电路的功能需求,包括模拟和数字部分的需求,以及性能指标要求。
需求分析
了解相关技术和发展趋势,选择合适的技术和工艺。
EDA技术及应用—基于FPGA的电子系统设计:基于Verilog hdl的数字电路设计

10100
1111
15
10101
8421BC 余三码 D码
0000
0011
0001
0100
0010
0101
0011
0110
0100
0111
0101
1000
0110
1001
0111
1010
1000
1011
1001
1100
-
-
-
-
-
-
-
-
-
-
-
-
4位格雷码
0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000
4'b0011:a_to_g=7'b1111001; //显示3
4'b0100:a_to_g=7'b0110011; //显示4
4'b0101:a_to_g=7'b1011011; //显示5
4'b0110:a_to_g=7'b1011111; //显示6
4'b0111:a_to_g=7'b1110000; //显示7
4: y= {d[2:0],d[3]}; // rol
5: y= {d[3],d[3:1]}; // asr
6: y= {d[1:0],d[3:2]}; // ror2
7: y= d;
// noshift
default: y = d;
图6-2 基本门电路仿真结果
综合结果如图6-3所示。
图6-3 基本门电路综合结果
2、 三态逻辑电路
Proteus数字电路的设计与仿真

目录
CONTENTS
• Proteus软件介绍 • 数字电路设计基础 • Proteus中的数字电路设计 • 数字电路仿真实验 • Proteus与其他EDA软件的比较 • Proteus在数字电路设计中的应用实例
01 Proteus软件介绍
软件特点
集成开发环境
Proteus软件提供了一个完整的集 成开发环境,支持数字电路的设 计、仿真和调试。
实时仿真
Proteus支持实时仿真,可以在设 计阶段实时观察电路的行为,提 高了设计效率。
丰富的元件库
Proteus拥有丰富的元件库,包括 各种数字逻辑门、触发器、存储 器等,方便用户进行电路设计。
软件功能
01
原理图设计
在Proteus中设计矩阵键盘和数码管显示电 路的原理图,编写程序实现键盘输入与数码
管显示的对应关系,并进行仿真测试。
感谢您的观看
THANKS
嵌入式系统开发
Proteus可以用于嵌入式系统的设计和仿真,支持多种微控制器和 外设。
教学与实验
由于Proteus的易用性和丰富的功能,它也被广泛应用于电子工程和 计算机科学的教学中,作为学生进行实验和实践的优秀工具。
02 数字电路设计基础
数字电路概述
数字电路定义
数字电路是处理离散二进制信号的电路,与模拟 电路处理连续信号不同。
06 Proteus在数字电路设计 中的应用实例
4位二进制计数器设计
要点一
总结词
使用Proteus软件设计一个4位二进制计数器,通过仿真验 证其功能。
要点二
详细描述
首先在Proteus软件中绘制4位二进制计数器的电路原理图 ,然后进行仿真测试,观察计数器的计数过程和输出结果 。
电子线路基础数字电路实验7 时序逻辑电路设计

实验七时序逻辑电路设计一、实验目的1. 学习用集成触发器构成计数器的方法。
2. 熟悉中规模集成十进制计数器的逻辑功能及使用方法。
3. 学习计数器的功能扩展。
4. 了解集成译码器及显示器的应用。
二、实验原理计数器是一种重要的时序逻辑电路,它不仅可以计数,而且用作定时控制及进行数字运算等。
按计数功能计数器可分加法、减法和可逆计数器,根据计数体制可分为二进制和任意进制计数器,而任意进制计数器中常用的是十进制计数器。
根据计数脉冲引入的方式又有同步和异步计数器之分。
1. 用D触发器构成异步二进制加法计数器和减法计数器:图10—1是用四只D触发器构成的四位二进制异步加法计数器,它的连接特点是将每只D触发器接成T'触发器形式,再由低位触发器的Q端和高一位的CP端相连接,即构成异步计数方式。
若把图10—1稍加改动,即将低位触发器的Q端和高一位的CP端相连接,即构成了减法计数器。
图10—1本实验采用的D触发器型号为74LS74A,引脚排列见前述实验。
2. 中规模十进制计数器中规模集成计数器品种多,功能完善,通常具有予置、保持、计数等多种功能。
74LS182同步十进制可逆计数器具有双时钟输入,可以执行十进制加法和减法计数,并具有清除、置数等功能。
引脚排列如图10—2所示。
其中LD−−置数端;CP u−−加计数端;CP D−−减计数端;DO−−非同步进位输出端;CO−−非同步借位输出端;Q A、Q B、Q C、Q D−−计数器输出端;D A、D B、D C、D D−−数据输入端;CR−−清除端。
表10—1为74LS192功能表,说明如下:当清除端为高电平“1”时,计数器直接清零(称为异步清零),执行其它功能时,CR置低电平。
当CR为低电平,置数端LD为低电平时,数据直接从置数端D A、D B、D C、D D置入计数器。
当CR为低电平,LD为高电平时,执行计数功能。
执行加计数时,减计数端CP D接高电平,计数脉冲由加计数端Cp u输入,在计数脉冲上升沿进行842编码的十进制加法计数。
数字电路课程设计样本

数字电路课程设计一、概述任务:通过解决一两个实际问题,巩固和加深在课程教学中所学到知识和实验技能,基本掌握惯用电子电路普通设计办法,提高电子电路设计和实验能力,为此后从事生产和科研工作打下一定基本。
为毕业设计和此后从事电子技术方面工作打下基本。
设计环节:依照题目拟定性能指标,电路预设计,实验,修改设计。
衡量设计原则:工作稳定可靠,能达到所规定性能指标,并留有恰当裕量;电路简朴、成本低;功耗低;所采用元器件品种少、体积小并且货源充分;便于生产、测试和维修。
二、惯用电子电路普通设计办法惯用电子电路普通设计办法是:选取总体方案,设计单元电路,选取元器件,计算参数,审图,实验(涉及修改测试性能),画出总体电路图。
1.总体方案选取设计电路第一步就是选取总体方案。
所谓总体方案是依照所提出任务、规定和性能指标,用品有一定功能若干单元电路构成一种整体,来实现各项功能,满足设计题目提出规定和技术指标。
由于符合规定总体方案往往不止一种,应当针对任务、规定和条件,查阅关于资料,以广开思路,提出若干不同方案,然后仔细分析每个方案可行性和优缺陷,加以比较,从中取优。
在选取过程中,惯用框图表达各种方案基本原理。
框图普通不必画得太详细,只要阐明基本原理就可以了,但有些核心某些一定要画清晰,必要潮流需画出详细电路来加以分析。
2.单元电路设计在拟定了总体方案、画出详细框图之后,便可进行单元电路设计。
(1)依照设计规定和已选定总体方案原理框图,拟定对各单元电路设计规定,必要时应详细拟定重要单元电路性能指标,应注意各单元电路互相配合,要尽量少用或不用电平转换之类接口电路,以简化电路构造、减少成本。
(2)拟定出单元电Array路规定后,应全面检查以遍,的确无误后方可按一定顺序分别设计各个单元电路。
(3)选取单元电路构造形式。
普通状况下,应查阅关于资料,以丰富知识、开阔眼界,从而找到合用电路。
如果的确找不到性能指标完全满足规定电路时,也可选用与设计规定比较接近电路,然后调节电路参数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字电路综合设计案例8.1 十字路口交通管理器一、要求设计一个十字路口交通管理器,该管理器自动控制十字路口两组红、黄、绿三色交通灯,指挥各种车辆和行人安全通过。
二、技术指标1、交通管理器应能有效操纵路口两组红、黄、绿灯,使两条交叉道路上的车辆交替通行,每次通行时间按需要和实际情况设定。
2、在某条道路上有老人、孩子或者残疾人需要横穿马路时,他们可以举旗示意,执勤人员按动路口设置的开关,交通管理器接受信号,在路口的通行方向发生转换时,响应上述请求信号,让人们横穿马路,这条道上的车辆禁止通行,即管理这条道路的红灯亮。
3、横穿马路的请求结束后,管理器使道口交通恢复交替通行的正常状态。
三、设计原理和过程:本课题采用自上而下的方法进行设计。
1.确定交通管理器逻辑功能⑴、十字路口每条道路各有一组红、黄、绿灯,用以指挥车辆和行人有序地通行。
其中红灯亮表示该条道路禁止通行;黄灯亮表示停车;绿灯亮表示通行。
因此,十字路口车辆运行情况有以下几种可能:①甲道通行,乙道禁止通行;②甲道停车线以外的车辆禁止通行(必须停车),乙道仍然禁止通行,以便让甲道停车线以内的车辆安全通过;③甲道禁止通行,乙道通行;④甲道仍然不通行,乙道停车线以外的车辆必须停车,停车线以内的车辆顺利通行。
⑵、每条道路的通车时间(也可看作禁止通行时间)为30秒~2分钟,可视需要和实际情况调整,而每条道路的停车时间即黄灯亮的时间为5秒~10秒,且也可调整。
⑶、响应老人、孩子或残疾人特殊请求信号时,必须在一次通行—禁止情况完毕后,阻止要求横穿的那条马路上车辆的通行。
换句话说,使另一条道路增加若干通行时间。
设S1和S2分别为请求横穿甲道和乙道的手控开关,那么,响应S1或S2的时间必定在甲道通乙道禁止或甲道禁止乙道通两种情况结束时,且不必过黄灯的转换。
这种规定是为了简化设计。
由上述逻辑功能,画出交通管理器的示意图如图8-1所示,它的简单逻辑流程图如图8-2所示。
示意图中甲道的红、黄、绿灯分别用R、Y、G表示,而乙道的红、黄、绿灯分别用r、y、g表示。
简单逻辑流程图中设定通行(禁止)时间为60秒,停车时间为10秒。
2.确定系统方案及逻辑划分由确定的逻辑功能,进而来具体地讨论实施方案。
交通管理器与其他数字系统一样,划分成控制器和受控电路两部分,控制器送出对受控部分的控制信号,它接受来自外部的请求信号S1和S2 以及受控部分的反馈信号,决定自身状态转换方向以及输出信号。
⑴设定S1=1时为有人要横穿甲道,又设定S2=1时为有人要横穿乙道,若S1=0,且S2=0,则表示没有穿越马路的特殊请求。
S1和S2信号均用纽子开关产生。
⑵控制器应送出甲、乙道红、黄、绿灯的控制信号。
为简便起见,我们把灯的代号和驱动灯的信号合而为一,因此有如下规定:R=1 甲道红灯亮Y=1 甲道黄灯亮G=1 甲道绿灯亮r=1 乙道红灯亮y=1 乙道黄灯亮g=1 乙道绿灯亮同时又作以下规定:①甲道通行、乙道禁止的一段时间内,即G=1,r=1的时间内(假设调定为60秒),用符号W=0表示,否则W=1。
②乙道通行、甲道禁止的一段时间内,即g=1,R=1的时间内(假设也调定为60秒),用符号P=0表示,否则P=1。
③在黄灯亮的时间内(假设调定为10秒),用L=0表示,否则L=1。
在上述各种情况时,如果无特殊请求横穿马路,那么,甲、乙道交替通行60秒钟,转换时有10秒钟的停车或准备时间。
(3)当交通控制处于甲禁止乙通行的状态时,它只响应S1信号,因为若S2=1时,只需本状态结束,经过10秒钟就转入甲通乙不通状态,行人可以穿越乙道,这样做的目的是为了简化设计。
在甲通乙不通的状态时,管理器能响应S1信号,控制器受到S1信号后,状态转换为甲禁止、乙通行状态;如果S1=0,而控制器收到S2=1信号,则维持甲道通行、乙道禁止状态,让行人通过乙道。
(4)为使交通管理器按照规定的通行和停车时间有效地工作,故设置秒脉冲信号发生器,它作为整个电路的时钟信号和定时电路的参考间。
秒脉冲发生器的构成请参阅“数字钟”的有关内容。
设计者亦可安装一个模拟性的简单的秒信号发生器。
(5)管理器设置60秒通行时间和10秒停车时间的定时电路。
定时电路接受控制器送来C1(甲道禁止乙道通行)和C2(甲道通行乙道禁止)信号,驱动60秒定时电路工作,它接受C3信号,驱动10秒定时电路运行,定时电路的参考时间就是秒脉冲。
申明一点:定时电路的定时时间可由设计者调整。
定时电路的输出信号是W、P、L,其中W和P是60秒定时结束时馈送给控制器的信号,而L是10秒定时结束时定时电路送到控制器的反馈信号。
控制器根据这些信号的状况,发生相应的状态变换。
(6)控制器的状态经译码器译出交通信号灯的控制信号,驱动甲、乙道相应灯点亮。
现在就可以画出交通管理器的结构组成图如图8-3所示。
而它的控制器的详细逻辑流程图可用图8-4示出。
控制器的输出已在流程图各工作块的外侧标明。
3.受控电路的硬件设计由于受控电路的组成已经明确,现在的问题是如何选择具体的器件来实现。
在此作简明介绍。
⑴秒脉冲信号发生器秒脉冲是交通管理器的时间基准,秒脉冲发生器可以参照数字闹钟课题内的标准时间源。
由于本课题对秒信号稳定度、精度的要求并不高,因此建议用一般的环形震荡器组成,电路如图8-5所示。
其中逻辑门选用74LS00四与非门。
由于该电路输出信号的周期约为T=2.2RC在保证(R+Re)<700Ω(TTL门电路关门电阻)的前提下,选择恰当的R和C值组成。
⑵60秒和10秒定时电路定时电路有多种形式,设计者可以任选。
这里介绍一种用MSI 74LS161同步计数器构成定时电路的方法。
由于电路配置秒脉冲信号发生器,如果把秒信号作为计数器的CP输入,那么计数器连接成60进制时就可作为60秒定时电路。
由此推广,模N计数器就是N秒定时电路,这对于灵活调整道路通行时间是相当方便的。
以下讨论用74LS161构成N进制计数器的方法。
74LS161具有同步预置控制端LD,因此可以采用反馈预置法实现N进制计数器。
实现的方法为:首先使L D=0,数据输入端A=B=C=D=0,CP来到将计数器置0(即Q D Q C Q B Q A=0000),并以此作为初态;然后使L D=1,器件在CP作用下开始计数,当计数到(N-1)时,经与非门反馈给预置控制端L D,又使L D=0,再次预置数据0,从而完成一个0到(N-1)的循环,实现了N进制计数器的功能。
图8-6(a)示出了根据上述原理构成的模14计数器的外部连接图。
一片74LS161的最大计数模数为16,大于模16时必须用若干片连接。
但是在连接成同步计数链时,应注意用计数器控制端P、T传递溢出进位信号,使各片计数器快速、正确地工作。
图8-6 (b) 示出了用两片74LS161组成M=60计数器的连接图,因为N=(60)10=(111100)2,故反馈预置端,其中Q A1、Q B1和Q D1是低位片的三个触发器的输出,Q A2和Q B2是高位片的两个低位的输出。
低位片的T·P固定接1,满足计数条件。
而高位片要计数,只有等待低位片输出为全1时,因此用低位片的溢出进位输出Q C控制高位片的T·P端,当Q C=1时,高位片在输入下一个计数脉冲时接受进位,加1计数,否则为保持状态。
再则,74LS161也有异步清零功能,故可使用清零控制端Cr,采用反馈复位法使它成为任意进制计数器。
图8-7(a) 是用用反馈复位法构成的模10计数器,因为(10)10=(1010)2,由于Cr是异步清零端,一旦Q B=1与Q D=1时,立即使计数器复0(0000),故(1010)2这个状态不能持续,计数器状态由0000、0001···1001、0000,实现十进制计数。
图8-7 (b)是反馈复位法连接成的60进制计数器,工作原理请读者自行分析。
本课题允许任选反馈预置法或反馈复位法构成60秒和10秒定时电路。
这里选择反馈预置法组成,如图8-8所示。
我们要注意几点:①选通信号C1、C2和C3来自控制器,它们反映在何时打开哪一个定时电路的CP控制门。
②如果确定两通道通行时间均为60秒,则可用同一定时电路实现。
但考虑到两道通行时间的灵活调整,即每道通行时间可在30秒~2分钟之内变动,甚至甲道和乙道通行时间不相同等等,故可分别用n1和n2秒定时电路来产生P和W应答信号,以供控制器判别、决策,如图8-9所示。
③黄灯亮的定时电路是公用的,设定时时间为n3秒,其输出信号L同样送至控制器。
⑶、交通管理灯选用红、黄、绿不同颜色的发光二极管组成,它们分别受控制器输出信号R、Y、G、r、y、g所驱动。
至此,我们可画出交通管理器受控部分硬件实施简图如图8-9所示。
4.控制器设计⑴导出管理器的MDS图从图8-4所示的交通管理器详细逻辑流程图出发,画出相应的MDS图如图8-10所示。
在图中状态A为甲道禁止乙道通行状态(甲R乙g),状态B为甲道禁止乙道停车状态(甲R乙y),状态C为甲道通行乙道禁止状态(甲G乙r),状态D为甲道停车乙道禁止状态(甲Y乙r)。
⑵状态分配本课题采用D触发器作为控制器记忆元件,四个状态用两个D触发器,状态分配如下:状态A—00、状态B—01、状态C—11、状态D—10,状态分配图如图8-11所示。
⑶、填写激励图根据状态分配的情况,填写两个D触发器激励函数降维卡诺图如图8-12所示。
其中状态变量Q2为高位,Q1为低位。
由激励函数卡诺图求得激励函数为:经化简可得⑷求输出函数方程乙道通行、甲道禁止时(P=0)的定时电路选通信号甲道通行、乙道禁止时(W=0)的定时电路选通信号停车时间(L=0)定时电路的选通信号控制器驱动甲道红、黄、绿灯的信号控制器驱动乙道红、黄、绿灯的信号⑸控制器逻辑电路图设计工作至此,所有方程已经求出,设计者可以选择各种SSI、MSI、LSI器件来实现。
四、讨论1.试用MSI组合器件数据选择器和译码器实现交通管理器控制器,画出相应的控制器逻辑电路图。
2.试用集成单稳电路SN74121或SN74123组成交通管理器道路通行、禁止、停车定时电路。
在此情况下,受控部分硬件实施图和控制器逻辑电路图。
3.假设甲、乙道交叉路口的交通管理按以下规则进行:⑴甲道通行时间为2分钟;⑵甲道停车时间为20秒钟;⑶乙道通行时间为1分钟;⑷乙道停车时间为10秒钟;⑸老人、孩子和残疾人请求过马路时,管理器立即响应,10秒钟后允许行人穿越;⑹交通管理人员有权随时终止甲、乙道交替通行的状况,而使某道连续通行,以解决某道交通堵塞现象或者应付临时需要,如警车、消防车、救护车等特殊车辆的紧急或较长时间的通行。
试设计并实现上述要求的十字路口交通管理器。