篮球计分器数电课程设计:74LS160脉冲控制与74LS192累加仿真
2026/9/17 18:52:36 网站建设 项目流程

简介:《数电课程设计-篮球计分器》是一份面向网络工程等专业学生的数字系统课程设计报告,围绕篮球计分器的加分、减分与清零功能,讲解如何用74LS160、74LS192构成计数与累加电路,并通过DCD_HEX译码显示器呈现比分,适合作为数字电子技术课程设计或综合实验的参考。整份资源为单个PDF文档,约913KB,内容覆盖设计任务、总体方案、主要元件介绍、计分/显示/加减置换/清零/时钟信号等模块电路及仿真结果,并附有小组分工说明,结构清晰、便于按章节查阅。目前已有3890人浏览学习。借助该PDF,读者可以快速理解二进制与十进制可逆计数器、译码器在计分器中的具体应用,获得从电路设计到仿真验证的完整思路,为完成类似数字系统设计打下基础。

1. 数电课程设计里的篮球计分器:先把时序关系捋清楚

篮球计分器这道数电课程设计题,最大的迷惑点不是加法器和译码器,而是“一次按键到底怎么变成1、2、3个计数脉冲”。很多网络工程专业的学生拿到题目第一反应是直接上单片机,但课程设计的考核点恰恰是74LS160、74LS192这类中规模计数器的组合逻辑应用。如果只照着PDF接线,不搞懂74LS160如何通过ENP反馈和清零端生成不同宽度的脉冲串,后面连仿真都会卡住。这篇文章按“功能拆解 → 脉冲生成 → 累加显示 → 仿真排查”的顺序,把整套计分器电路拆开讲,适合正在做数电课程设计的人,也适合想用Multisim验证数电组合逻辑电路的人。

2. 功能拆解与计数器选型:为什么是74LS160+74LS192而不是单片机

2.1 篮球计分规则转成真值表

拿到题目先不要连线,先把规则摊开。这个计分器要支持的输入事件只有八种:罚球命中加1分,两分球命中加2分,三分球命中加3分,以及裁判改判时对应减掉的1、2、3分,另外还有一个清零动作。把这些写在一张真值表里,后面选芯片就非常清楚。

输入动作总分变化需要产生的计数脉冲对应计数通道
S1加分键(罚球)加1一个脉冲给CPu74LS192加计数
S2加分键(两分球)加2连续两个脉冲给CPu74LS192加计数
S3加分键(三分球)加3连续三个脉冲给CPu74LS192加计数
S4拨到减分档后按S1减1一个脉冲给CPD74LS192减计数
S4拨到减分档后按S2减2连续两个脉冲给CPD74LS192减计数
S4拨到减分档后按S3减3连续三个脉冲给CPD74LS192减计数
S0清零键归零MR端拉高异步清零

这张表说明一个关键问题:不能用普通按键直接连74LS192的CPu或CPD。因为机械按键按下瞬间会有几十毫秒的抖动,直接接上去时,可能一次按压就产生五六个脉冲,计分会直接失控。所以电路里必须先做“按键动作到标准脉冲个数”的转换,这就解释了为什么设计里不用单片机,也仍然需要三片74LS160。

2.2 74LS192双时钟可逆计数器:为什么它是总分累加器的最佳选择

74LS192是同步十进制可逆计数器,最突出的特点是双时钟输入:加计数走CPu,减计数走CPD,两个时钟互相独立。和74LS160这类单向加法计数器相比,它天然支持加减两种操作。有人会问,用74LS190加一个方向控制端不也能实现加减吗?74LS190的方向控制是电平信号,需要在计数过程中保持稳定。篮球计分器里加减分是随机切换的,如果方向信号建立时间不够,很容易在时钟边沿附近发生竞争,导致误计数。74LS192用两个独立时钟输入,等于从物理层面把“加法”和“减法”隔离开了,逻辑上更安全。

实际接线时要注意它的工作模式。74LS192的MR端是高电平异步清零,PL端是低电平异步置数。当MR为0、PL为1时,CPu的上升沿执行加计数,CPD的上升沿执行减计数。功能表可以整理成下面这样:

MRPLCPuCPD功能
1XXX异步清零
00XX异步置数
01上升沿1加计数
011上升沿减计数
0111保持

这个表是后面排查仿真Bug时最重要的对照依据。很多人在Multisim里发现计数器不动,第一反应是查按钮,其实八成是MR没有接低电平,被悬空后误触发清零。数字电路里不用的控制端不能悬空,74LS192和74LS160都是如此,这一点在模电数电基础知识里也经常作为填空题出现。

2.3 74LS160只做脉冲个数控制:把一次按键变成1、2、3个脉冲

真正拉开这道课程设计差距的,是“怎么让一次按键稳定产生若干个脉冲”。常见做法是:用555定时器产生连续方波,把方波送进74LS160构成的计数器,利用74LS160的异步清零端CLR和使能端ENP,让计数器从0跑到设定值后停下来,再从合适的输出端引出脉冲。按下S1、S2、S3时,相当于给CLR一个低电平脉冲,计数器解除清零并重新开始计数,每按一次完成一轮“启动—计数—保持”的过程。

74LS160虽然是十进制计数器,但这里并没有让它完整计完0到9。它的QA和QB经过与非门反馈到ENP,当QA和QB同时为高电平时,ENP被拉低,计数器停住。也就是说,它被改造成了一个模3或模6计数器。具体是一分、二分还是三分,取决于从哪个输出端取脉动,以及在哪里截断计数范围。这个思路在数电组合逻辑电路里属于典型的“反馈清零法”,理解它比完整背下74LS160功能表更重要。

3. 脉冲生成与加减分控制:从555时钟到74LS160的门控逻辑

3.1 555定时器产生基准时钟

整个脉冲链路的起点是时钟信号。课程设计里使用555定时器接成自激多谐振荡器,产生连续方波。这里频率不需要太高,因为计分器是手动操作,不是实时采集数据。我一般会把R1、R2、C调成f在2Hz到10Hz左右,数码管的变化肉眼能看清,脉冲波形在虚拟示波器上也不会密到数不清。555多谐振荡器的频率计算公式是:

f ≈ 1.44 / ((R1 + 2R2) × C)

如果手头没有555模型,Multisim里也可以直接用虚拟方波源替代,但报告里最好保留555芯片,因为课程设计考核的就是常见中规模集成电路的应用,而不是偷懒用理想信号源。

需要注意的是,555输出的方波上升沿要足够陡。CMOS版本的555输出边沿一般没问题,如果是TTL版本,负载电容过大会让上升沿变缓,后面74LS160在边沿附近可能会误触发。仿真里看不明显,但如果将来焊板子,输出端最好加一个74LS04整形缓冲一下。

3.2 用74LS160构成一到三分脉冲电路

三片74LS160的接法逻辑相同,区别在反馈接法和输出取法。以加2分电路为例:S2闭合时,74LS160的CLR解除清零,计数器从0000开始递增,当到达0011时,QA与QB都为1,经过与非门输出低电平到ENP,计数器保持0011不再变化。在这个过程中,QA端每经历一次0到1的变化就产生一个上升沿,从0000到0011一共会看到两个上升沿,正好对应一次加2分操作。

加1分电路则从QB端引出脉冲。同样是在0011处保持,但QB只在0001到0011之间产生一个上升沿。加3分电路的截断点改成0101,也就是QA和QC同时为高,计数器从0000跑到0101,整个过程QA端出现三个上升沿。这样,三片74LS160分别承担加1、加2、加3的脉冲个数转换。

注意:这里的“从QA引出”“从QB引出”不是随便选一个输出端,而是要看完整计数周期内哪个输出端的高电平次数或上升沿次数刚好等于目标脉冲数。我第一次做的时候直接在QA上取加1脉冲,结果每次都加2分,后来把状态列出来才发现问题。

这部分的本质是用组合逻辑把74LS160的任意计数状态拉回保持状态,相当于给计数器预设了一个“天花板”。这种方法在数电组合逻辑电路设计里很常见,比外部再挂一个脉冲发生器简单,但代价是每一分、二分、三分都要单独一片74LS160,不能共用。原设计里三片74LS160各管一路,正是因为这个缘故。

3.3 加减分切换与三输入或门

三个74LS160产生的脉冲最终要汇聚到74LS192的时钟输入端。由于减分也要有1、2、3三档,不能直接用一个单刀双掷开关把或门输出切到CPD就完事,还要考虑加减共用的逻辑。设计里选用的是三输入或门,把三片74LS160的输出接入或门的三路输入,或门输出接到单刀双掷开关的动端。开关拨到加分档时,或门输出接到74LS192的CPu;拨到减分档时,接到CPD。这样无论加还是减,触发的一直是74LS192的上升沿,计数器本身的工作模式仍然是“CPu加、CPD减”。

常见做法会让三输入或门选用74LS32,因为74LS32就是四组二输入或门芯片,三输入可以用两组并联扩展,也可以直接查Multisim库里的三输入或门模型。这里真正要留意的不是门本身,而是开关切换后的时序:单刀双掷开关在仿真里是理想的,但实际开关在切换过程中会产生短暂断开,CPu和CPD同时悬空的瞬间,74LS192会保持原来的计数值,这没问题。麻烦的是开关弹跳可能让同一侧出现毛刺脉冲,所以开关最好选用跳变开关而不是自复位按钮。

4. 总分累加、清零与七段显示:74LS192和DCD_HEX怎么接才不飞线

4.1 三片74LS192组成三位十进制累加器

总分范围设计为000到999,需要三片74LS192。低位片的进位输出端连接到高位片的CPu,借位输出端连接到高位片的CPD。这样低位片从9加1回0时,进位输出产生一个上升沿,高位片自动加1;低位片从0减1回9时,借位输出产生一个上升沿,高位片自动减1。级联思路和十进制加法器一致。

但这里有一个在Multisim里很容易踩的坑:74LS192的进位和借位输出是异步产生的,宽度可能很窄。仿真软件在事件驱动模式下能捕捉到,但如果换到真实面包板上,这个窄脉冲可能传不到高位片的时钟端。遇到这种情况,我一般会在CO到高位CPU之间插入一个RC延迟网络,或者加一个施密特触发器整形。课程设计报告里通常不会写这一条,但它恰恰是整张电路图从“仿真通过”到“实物跑通”之间的关键差距。

4.2 清零与置数:跳变开关比普通按键可靠

74LS192的MR端高电平清零,所以清零功能只要把MR接一个开关,另一头接高电平即可。问题在于普通按键按下和抬起时都有机械抖动,MR一旦出现几十纳秒的高电平毛刺,计分就会莫名其妙清零。原设计里推荐使用跳变开关,也就是单刀双掷开关,因为它的动端在切换时不会反复弹跳,能稳定停留在高电平或低电平状态。

同样的原则也适用于74LS160的异步清零端CLR。CLR是低电平有效,S1、S2、S3接到CLR时,如果按键弹跳,计数器可能多次重新开始计数,导致输出脉冲个数不稳定。有人用R-C低通滤波去除按键抖动,这个方法在面包板上有效,但在仿真里很难模拟出真实的机械抖动,因此Multisim里只要逻辑正确就能通过。如果你想在报告里体现“防抖动”设计,可以在按键输出端加一个10kΩ电阻和0.1μF电容的RC低通网络,再接施密特门。

4.3 从8421BCD到数码管:DCD_HEX译码显示

74LS192输出的是8421BCD码,也就是4位二进制编码的十进制数字。数码管本身不识别BCD码,必须要经过七段译码。Multisim里的DCD_HEX是一个自带译码逻辑的显示元件,它左边四个引脚依次是4、3、2、1,对应BCD码的最高位到最低位,接QA到QD时要一一对应。这个显示元件不需要外接74LS48,因为译码已经集成在里面了。但如果是焊实物板,PCB上还是要用74LS48把74LS192的Q0到Q3转换成a到g段信号。

关于共阳极和共阴极,这里也顺手说清楚。共阳极数码管把所有发光二极管的阳极接在一起接高电平,哪一段阴极被拉低,哪一段就亮。共阴极刚好相反,公共端接地,阳极给高电平点亮。DCD_HEX在Multisim里默认对应共阴极数码管,公共端自动接地,所以仿真时不用额外准备直流电源给公共端。如果你在报告里换成共阳极数码管,段码逻辑需要反相,这是很多人显示乱码的根本原因。

下面这段Verilog是74LS192的行为级模型,我一般会在搭Multisim原理图之前,先用它跑一遍加计数、减计数、清零和置数逻辑,确认CPu和CPD的上升沿行为。写报告时也可以把这部分放进附录,作为理论验证。

module ls192_behavior( input cpu, cpd, mr, pl_n, input [3:0] d, output reg [3:0] q, output reg tcu, tcd ); // MR为异步清零,高电平有效 // pl_n为异步置数,低电平有效 // cpu上升沿加计数,cpd上升沿减计数 always @(posedge cpu or posedge cpd or posedge mr or negedge pl_n) begin if (mr) begin q <= 4'b0000; tcu <= 1'b0; tcd <= 1'b0; end else if (~pl_n) begin q <= d; tcu <= 1'b0; tcd <= 1'b0; end else if (cpu) begin if (q == 4'd9) begin q <= 4'b0000; tcu <= 1'b1; end else begin q <= q + 1'b1; tcu <= 1'b0; end end else if (cpd) begin if (q == 4'd0) begin q <= 4'd1001; tcd <= 1'b1; end else begin q <= q - 1'b1; tcd <= 1'b0; end end end endmodule

这段代码最关键的是那段边沿敏感列表。CPU、CPD、MR都放在posedge里,PL_N放在negedge里,这说明74LS192的清除和置数都是异步操作。也就是说,只要MR变成高电平,输出的Q会立刻清零,不需要等时钟边沿;同样,PL_N为低电平时,Q直接等于输入D。很多人在仿真里看到清零不生效,就是因为把MR接到了电平比较缓慢变化的信号上,而不是真正的高电平。

5. 仿真验证与常见坑:在Multisim里把计分器完整跑起来

5.1 模块级调试顺序

不要一开始就把整张原理图全部连好再仿真。我习惯分成三步进行验证。

第一步,只接555和一片74LS160,把虚拟示波器挂在QA、QB上,按S1、S2、S3观察脉冲个数。如果按一次出现两个或三个上升沿,说明反馈保持逻辑正确;如果只出现一个,很可能ENP或ENT交错了。第二步,接一片74LS192,手动给CPu加一个单脉冲,观察数码管是否从0跳到1,再给CPD加脉冲看是否减1。第三步,把三片74LS192级联起来,用文本方式强制给低位片喂9个脉冲,确认进位到高位片后显示为10。

5.2 三个容易翻车的位置

故障现象大概率原因检查位置
数码管始终不显示74LS192的MR悬空被干扰置位MR必须接低电平
按一次按键加了好几分74LS160的CLR按键没有做防抖处理改用跳变开关或RC滤波
显示成字母而不是数字DCD_HEX引脚接反,BCD码高低位对调检查4、3、2、1引脚到Q3、Q2、Q1、Q0的顺序

容易翻车的还有电源引脚。Multisim里很多TTL计数器默认隐藏VCC和GND引脚,原理图上看起来芯片只有十几个引脚,但仿真网络里并没有真正供电。课程设计上交的电路图,一定要把隐藏电源引脚调出来,或者在芯片属性里确认电源网络名称是VCC。

5.3 用虚拟逻辑分析仪验证进位与借位

在做级联验证时,把低位74LS192的进位输出接到逻辑分析仪的通道1,借位输出接到通道2。加分过程中,当低位片从9回到0的一瞬间,通道1上会出现一个正脉冲;减分过程中,从0回到9瞬间,通道2出现正脉冲。如果这两个脉冲都没看到,说明问题出在或门输出到CPu/CPD的连接上;如果看到了脉冲但高位片不动作,再去查高位片的MR是否被误拉高,以及DCD_HEX的公共端是否接对。按照这个顺序排查,基本能解决九成“显示不动”的问题。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询