ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

74LS194移位寄存器实现循环移位与奇偶分频电路设计

74LS194移位寄存器实现循环移位与奇偶分频电路设计 数字电子技术实验里移位寄存器这道题几乎每个学校都会安排而用74LS194做左右循环移位、再顺手设计一个奇偶分频电路算是经典中的经典。我当年做这个实验时第一反应也是照着功能表把线一插让LED转起来就算完事结果验收时老师问了一句“分频信号从哪来”我当场卡壳。后来把状态转移图完整推了一遍才真正把移位寄存器和分频器这两件事打通。这篇博文就把我实际做下来的完整思路、电路接法、仿真验证和实物调试经验整理出来给正在被这门实验折磨的同学一份可以直接抄作业的参考。这个实验适合所有正在学数字电子技术基础的学生也适合准备课程设计、电子设计竞赛入门的朋友。核心就三件事看懂74LS194的四档工作模式、把左右循环移位的状态转移吃透、理解循环移位天生就是分频器这个本质。你会发现所谓“奇偶分频电路”根本不需要额外堆一堆计数器74LS194自己就能完成大部分工作。1. 拿到题目别急着插线先把任务拆明白很多人一看到“移位寄存器”“左右循环移位”“奇偶分频”三个词堆在一起就以为要做三个独立模块结果电路越搭越乱。实际上这个实验的核心只有一条主线用74LS194构成循环移位电路然后从循环移位的过程中引出分频信号。1.1 这道题真正的考点在哪里我拆解题目的顺序是这样的先不管奇偶分频只做一件事——让74LS194在时钟驱动下实现右循环移位状态能稳定地转圈。把这个圆圈画对分频输出就是白送的。因为分频的本质就是“状态循环 N 次输出端才出现一次高电平”频率自然变成时钟的 N 分之一。课程考核点通常有三个层面能不能正确设置74LS194的工作模式看懂功能表和引脚关系能不能画出左移、右移的状态转移表并解释循环反馈的原理能不能测出分频信号说明分频系数与移位寄存器位数的关系。老师验收时问得最多的就是第三个问题。你要是能当场上手把反馈线从Q3换到Q2让4分频变成3分频再讲清楚为什么周期变了这实验基本就稳过了。1.2 整体方案怎么选不堆芯片复用移位寄存器我当时见到不少同学在图省事分频电路用一片74LS160计数器单独做移位寄存器又用一片74LS194两套系统各玩各的虽然功能都对但完全没体现出这道题想让你理解的东西。正确的思路是让74LS194同时承担“循环移位”和“分频”两个角色。做法很简单最大的难点其实是初值问题。74LS194上电后Q端状态是随机的万一是全0或全1循环移位就失去了“单点流动”的视觉效果分频频率也不容易观察。所以必须先利用并行置数功能把寄存器预置成只有一个1的状态再切到移位模式。我这版方案只用了一片74LS194、几个拨码开关、LED指示、一个时钟源信号发生器或555电路、反馈选择用的单刀双掷开关。把反馈线接到Q3得到4分频偶分频换到Q2得到3分频奇分频一个电路同时覆盖奇数和偶数分频非常优雅。2. 74LS194的四档工作模式不懂功能表后面全白搭74LS194是一块4位双向移位寄存器DIP-16封装工作电压5V。它的核心是模式控制端S1和S0这两个引脚的电平组合决定了芯片在时钟上升沿到来时执行什么操作。2.1 引脚和功能表建议抄在本子上引脚定义我只挑重点说1脚CR是异步清零端低电平有效平时必须接高电平2脚是右移串行输入DSR数据从这里进入Q07脚是左移串行输入DSL数据从这里进入Q33到6脚是并行数据输入D0到D39脚S1和10脚S0控制工作模式11脚CLK上升沿触发12到15脚是输出Q0到Q316脚VCC接5V8脚GND接地。注意有些教材用QA、QB、QC、QD命名输出端就是Q0到Q3对应关系别搞混。CRS1S0CLK工作模式0×××异步清零Q0~Q3全变为0111上升沿并行置数Q0~Q3 D0~D3101上升沿右移DSR → Q0Q0 → Q1Q1 → Q2Q2 → Q3110上升沿左移DSL → Q3Q3 → Q2Q2 → Q1Q1 → Q0100×保持输出不变注意S1是高位S0是低位接线时不要和引脚物理顺序搞混。我曾经见过同学把S1和S0刚好接反结果想右移变成了左移排查了半天。2.2 为什么循环移位之前必须先置数这是个关键认知。如果上电后寄存器状态是0101右移时状态会变成1010、0101来回翻转虽然也在“移”但两个灯来回闪看不出循环流动的效果分频输出的周期也难判断。所以在进入循环移位之前必须先通过并行置数写入一个只有单个“1”的初始状态比如D01、D1D2D30把寄存器设成0001。这样右移的结果就是0001→0010→0100→1000→0001一个“1”在4个输出端之间循环流动视觉上非常直观。实际操作时先把S1S0拨到11把D0D1D2D3设置成1000对应关系注意一下D3是最高位D0是最低位我习惯用Q3Q2Q1Q00001来描述然后给CLK一个上升沿LED立刻显示0001再把S1S0切到移位模式。这个“先置数再移位”的习惯能让后面所有调试都省心不少。3. 左右循环移位电路设计一根反馈线解决的事循环移位的本质是把寄存器移出去的那一位数据通过外部连线重新送回串行输入端。这样做的好处是数据不会丢在寄存器里不断转圈。3.1 右循环把最高位反馈回最低位右移时数据流动方向是DSR→Q0→Q1→Q2→Q3Q3是最终出口。要实现右循环就用一根线把Q3接到DSR2脚。这样一来Q3的数据在下一个时钟上升沿会回到Q0数据周而复始。置数成0001后右循环的状态表如下CLK序号Q3Q2Q1Q00000110010201003100040001可以看到每4个时钟周期状态回到起点形成4个状态的大循环。这个“4”不是巧合它等于参与循环的寄存器位数。3.2 左循环把最低位反馈回最高位左移时数据方向是DSL→Q3→Q2→Q1→Q0Q0成了出口。所以左循环需要把Q0接到DSL7脚。初始状态同样是0001左循环的状态表为CLK序号Q3Q2Q1Q00000111000201003001040001左右循环的状态集合完全一样只是顺序相反。右循环是“1”从Q0向Q3移动左循环是“1”从Q3向Q0移动。用LED观察一个灯顺时针跑一个灯逆时针跑。3.3 方向切换S1S0开关控制S1S0就是方向控制。S10、S01右移S11、S00左移。我用两个拨码开关分别控制S1和S0再加上置数状态11和保持状态00四个模式随时可以切换。这里有个小技巧如果实验箱上只有单个开关可以把S1固定接高电平或低电平用S0一个开关在“置数”和“左移”之间切换或者“置数”和“右移”之间切换。我习惯把S1、S0都做成可拨的调试时自由度更高。另一个经验之谈S1和S0不要悬空。TTL芯片引脚悬空容易被干扰导致模式乱跳状态时好时坏。必须明确接高电平或接低电平哪怕用一根跳线直接插到VCC或GND都行。4. 奇偶分频电路设计循环移位天生就是分频器这是整个实验最精彩的部分。很多人把分频想得太复杂觉得一定要用计数器或触发器才行。但当你把循环移位状态表列出来分频原理自己就跳出来了。4.1 分频的本质状态循环一圈输出才跳一次看右循环状态表Q3这一列0、0、0、1、0。Q3在4个时钟周期里只有1个周期为高电平也就是它每4个CLK周期翻转出一个脉冲频率正好是CLK的四分之一。这就是4分频。其实整个循环里有4个状态任何一个输出端Q0、Q1、Q2、Q3的频率都是f_CLK/4只是脉冲出现的相位不同罢了。推广一下N位移位寄存器做循环移位时状态循环周期是N每个输出端的脉冲频率都是f_CLK/N。这就是“移位寄存器本身是分频器”的数学本质。4.2 偶分频2分频、4分频的实现偶分频最简单4位循环就是4分频反馈线Q3接DSR初始0001输出从Q3取得到f_CLK/4。如果想做2分频有两个思路。思路一只用2位移位寄存器做循环Q1接DSR置数为01状态01→10→01循环Q1输出频率是f_CLK/2。思路二在4分频基础上再接一级T触发器Q3每来一个脉冲触发器翻转一次输出频率又减半变成f_CLK/8。不过对实验课来说偶分频看4分频就够了因为4分频能直观对应4位寄存器的循环周期。4.3 奇分频3分频、5分频的实现奇分频是这道题最容易被问倒的地方。传统做法是用计数器设计模3、模5计数器但既然题目强调“移位寄存器”我推荐一个更贴近主题的方案改变反馈抽头位置。3分频只需要把反馈线从Q3改接到Q2DSR接Q2初始状态仍然是0001。状态转移如下CLK序号Q3Q2Q1Q000001100102010031001注意第3个时钟后状态变成1001而不是0001因为反馈来自Q2Q2的1被送回DSR后进入Q0同时Q3也被原来的Q2置为1。但从第4个时钟开始状态从1001→0010→0100→1001循环一共3个状态Q3每3个CLK出现一次高电平成功实现3分频。这个方案的精妙之处在于初值不用改还是0001只换一根反馈线分频系数就从4变成3。5分频同理需要两片74LS194级联成8位移位寄存器取其中5位做循环反馈从第5位输出Q4接回第一片的DSR初值置为00001输出就能得到f_CLK/5。4.4 用开关切换奇偶分频一个电路搞定既然反馈抽头决定分频系数那我直接用单刀双掷开关选择反馈信号。开关公共端接DSR两个触点分别接Q3和Q2。开关拨到Q3输出Q3为4分频偶分频开关拨到Q2输出Q3为3分频奇分频。我当时在面包板上是这样搭的74LS194的2脚DSR接单刀双掷开关公共端开关一个触点接Q315脚另一个触点接Q214脚输出统一从Q315脚引出到示波器S1接GNDS0接高电平固定右移模式D0接高电平D1、D2、D3接GND置数得到0001置数操作S1S0临时拨到11按一次单脉冲再拨回01。演示的时候先让老师在示波器上看到CLK频率1kHz、Q3频率250Hz然后把反馈开关从Q3拨到Q2Q3频率立刻变成约333Hz。这一个动作就能直观证明奇偶分频切换成功比演示十页PPT都管用。4.5 想要50%占空比方波触发器分频方案循环移位分频得到的是窄脉冲占空比是1/N4分频输出脉冲宽度只有1个CLK周期占空比25%。如果验收要求输出标准方波就得用另一种思路触发器分频。偶分频方波最简单用74LS112双JK触发器或74LS74双D触发器级联。每个触发器JK1或用D触发器把/Q反馈到D前一级Q端接后一级CLK端。输入CLK经过第一级得到2分频方波经过第二级得到4分频方波各级输出都是50%占空比。奇分频方波要麻烦一些需要用D触发器构成模3计数器再用组合逻辑处理。例如两个D触发器状态00→01→10循环Q1输出频率是f/3但占空比只有1/3。要得到严格50%占空比的奇分频方波一般要用双沿计数再合成属于进阶玩法实验课很少硬性要求建议验收时主动说明“循环移位分频输出为窄脉冲如需方波需加触发器整形”老师通常都会认可。5. Multisim仿真验证先把波形跑通再动手焊实物接线之前强烈建议先在Multisim里把电路跑一遍。我在这上面吃过亏直接焊板子结果反馈线接错排查一小时后来学乖了仿真通过再上手。5.1 仿真工程搭建步骤我用的是Multisim 14操作路径如下放置芯片菜单Place → ComponentGroup选TTLFamily选74LSComponent选74LS194D点击OK放置。放置时钟源Place → ComponentGroup选SourcesFamily选SIGNAL_VOLTAGE_SOURCESComponent选CLOCK_VOLTAGE双击设置Frequency为1kHzDuty Cycle为50%。放置逻辑电平输入用Space切换的交互式数字常量Interactive Digital Constant或者直接用普通的开关SPDT接到VCC/GND。放置LED指示从Indicator库选PROBE或LED接到Q0到Q3。放置示波器右侧仪器栏选Oscilloscope接CLK和Q3或者用Logic Analyzer同时观察4个输出端。接好线后先双击74LS194确认电源引脚VCC和GND已经正确连接。Multisim里TTL芯片默认隐藏电源但你实际仿真时最好把VCC和GND显式接出来避免逻辑混乱。5.2 示波器和逻辑分析仪的观测要领仿真最容易犯的错是时序看不清。CLK频率1kHz时周期1ms4分频周期4ms用示波器Time Scale调到2ms/Div左右能同时看到2到3个完整的输出周期。观测要点确认CLK是标准方波频率1kHzQ3输出频率约250Hz周期约4ms把反馈开关切换到Q2后Q3输出周期变成约3ms频率约333HzLED状态依次为0001→0010→0100→1000循环速度每秒约250次太快要降低时钟频率到1Hz左右才方便肉眼观察。我仿真时会放一个逻辑分析仪把CLK、Q0、Q1、Q2、Q3全部接上启动仿真后能清楚看到Q0到Q3依次出现高电平像波浪一样推进。这个画面对于理解循环移位帮助极大强烈建议你亲眼看一次。6. 实物焊接与调试实录面包板到洞洞板的坑我都踩过仿真通过后就进入实物阶段。这个实验用面包板完全够用没必要一上来就焊洞洞板除非是课程设计要求交板子。6.1 接线清单与LED显示学问我整理一份标准接线清单照着插基本不会错功能芯片引脚接到哪里电源正16脚VCC5V电源地8脚GNDGND清零1脚CR经10k电阻接5V再接一个按键到GND做手动复位模式S19脚拨码开关接5V或GND模式S010脚拨码开关接5V或GND时钟11脚CLK信号发生器或555输出右移输入2脚DSR反馈选择开关公共端左移输入7脚DSL接Q0左循环时或接GND并行输入D03脚接5V初值置1用并行输入D1~D34、5、6脚接GND输出Q0~Q312~15脚各接一个LED指示LED接法有个重要细节。74LS系列TTL芯片高电平驱动能力弱低电平灌电流能力强所以最稳的接法是LED阳极接5V阴极串联一个330Ω到1kΩ电阻然后接芯片输出端。输出为低电平时LED点亮。这样点亮逻辑是反的Q00时第一个灯亮。如果你想让“1”对应的灯亮就用拉电流接法Q端→电阻→LED阳极→LED阴极→GND。实测下来拉电流接法在74LS194上也能亮但亮度略低如果LED不亮优先检查是不是接法问题。6.2 上电调试流程按这个顺序能少走弯路我第一次调试走了很多弯路总结了一套固定流程第一步先测电源。芯片先不插量面包板电源轨的5V电压确认供电没问题再插芯片。第二步清零验证。插上芯片CR脚按一下复位按键用万用表量Q0到Q3确认全部为低电平。第三步置数验证。S1S0拨到11D0接5VD1D2D3接GND给一个时钟上升沿量Q0电压变高其他为低说明置数成功。第四步循环验证。S1S0拨到01右移用1Hz左右时钟驱动观察LED是否能按0001→0010→0100→1000循环。第五步分频验证。时钟切换到1kHz示波器探头接Q3先测4分频再切换反馈到Q2测3分频。这五步每一步都有明确的通过标准哪一步不对就停在哪一步排查不要急着往下走。6.3 实物调试中的高频事故现场我在带同学做实验时见到最多的问题集中在这几类提前避开能省大量时间时钟源如果是手动按键必须加消抖。机械按键在按下和松开瞬间会产生多次抖动可能一次按下导致寄存器跳好几个状态看起来就像“乱码”。用555搭建的多谐振荡器没有这个问题强烈推荐作为时钟源。反馈线接触不良。面包板跳线用久了会松动尤其是Q3接DSR这种高频动作的线轻轻一碰就可能掉。调试时先把所有跳线用力按一遍。电源和地搞反。16脚VCC接GND、8脚GND接5V的后果是芯片直接发烫几秒钟就可能烧毁。插电前养成用万用表蜂鸣档核对电源轨的习惯。S1S0悬空。TTL输入悬空等效高电平但抗干扰能力差会导致模式乱跳。所有控制引脚必须明确接高或接地哪怕是插一根短跳线到排针上也好。7. 常见问题速查与避坑技巧做实验最怕的是现象不对又不知道从哪查起我整理了一张速查表按现象、可能原因、解决办法三个维度列出来调试时对着查就行。现象可能原因解决办法LED全灭不动电源没接对CR被拉低初值是全0先测VCC电压检查CR是否接高重新置数LED全亮不动初值是全1反馈没接重新置数0001检查DSR/DSL反馈线状态乱跳、不规律时钟按键抖动S1S0悬空受干扰换555连续时钟S1S0接开关到固定电平循环方向相反DSR和DSL接反核对左移反馈接Q0右移反馈接Q3置数无效S1S0没有同时为1D0~D3接反确认S11、S01核对D输入对应关系4分频正常切到3分频无输出反馈切换开关接触不良检查开关公共端是否可靠接到DSR芯片发烫电源极性接反或引脚短路断电核对VCC、GND检查有无桥接焊锡示波器看不到输出探头接错引脚输出悬空确认探头地接到GND探针接Q37.1 那些正经教材不会写的避坑经验我自己的习惯是不管做哪个实验先手写状态转移表再连一根线。状态转移表就是你的“电路设计图”照着图纸接线错了也能一眼看出来问题出在哪个环节。很多同学反过来线接了一堆再画图逻辑乱成一团。另外面包板上建议把74LS194放在中间位置两边留出足够空间给反馈线和跳线。反馈线是实验里“动得最多”的线4分频换3分频放在顺手的位置能让你演示时动作干净利落。实验报告的数据记录也别等到最后再补每完成一个验证项立刻把状态表、频率读数、波形截图记下来。尤其是示波器的波形截图保存的时候把时间轴刻度和频率读数一起截进去写报告时直接能用不用重做实验。7.2 实验报告的数据要这样记报告里需要体现三组核心数据第一组是右循环状态表4个状态标注每个CLK边沿对应的Q3Q2Q1Q0组合验证状态是否按0001→0010→0100→1000循环。第二组是分频数据记录CLK频率f测出Q3输出频率验证是否等于f/4反馈接Q3和f/3反馈接Q2用公式和实测两个维度列在表里偏差控制在5%以内基本没问题。第三组是波形截图CLK和Q3放在同一个示波器界面上标出CLK周期、Q3周期用数字标注说明“一个Q3周期内包含4个CLK周期”或“3个CLK周期”这就是分频原理最直观的证据。最后再分享一个我个人的小技巧做这类实验每次只改一根线改完立刻测一次不要同时动好几处。多变量的调试是最痛苦的你永远不知道是改了A导致的错误还是B的锅。一根线一根线地推进看着LED的状态一步步变成预期那种踏实感才是实验课真正教给你的东西。
返回列表