news 2026/1/17 11:25:39

基于74LS系列芯片的时序逻辑电路设计实验教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于74LS系列芯片的时序逻辑电路设计实验教程

从0到60秒:用74LS芯片搭一个会“记时间”的数字电路

你有没有想过,一块最简单的数字钟是怎么知道“现在是第几秒”的?它没有操作系统,也没有单片机,甚至连程序都没有。它的“大脑”其实是由几个小小的逻辑芯片组成的——而这些芯片的核心能力,就是记住自己之前的状态

这,正是时序逻辑电路的魔力所在。

在今天的实验教程中,我们不谈FPGA、不写高级代码,而是回到数字电路的起点:用经典的74LS系列TTL芯片,亲手搭建一个能准确计数0~59秒的“数字钟秒计数器”。你会看到,看似复杂的计时功能,是如何由一个个基础单元一步步构建起来的。


为什么还要学74LS?

可能你会问:现在都2025年了,谁还用手焊74LS芯片做实验?直接上Arduino不行吗?

当然可以。但问题是——如果你不知道D触发器怎么锁存数据、不了解同步与异步的区别、没被计数器的“毛刺”坑过一次,那你永远只能调库、烧程序,却看不懂示波器上的波形为何跳得乱七八糟。

74LS系列芯片就像电子工程里的“ABC”。它们虽然古老,却是理解现代数字系统底层运行机制的钥匙。尤其是下面这三个明星型号:

  • 74LS74:双D触发器 —— 数字记忆的基本单元
  • 74LS90:十进制异步计数器 —— 经典分频结构代表
  • 74LS161:四位同步计数器 —— 高速稳定计数的典范

我们不会孤立地讲参数手册,而是带着问题出发:如何让电路真正“记住”时间,并可靠地递增?


第一步:让信号“停留一下”——74LS74 D触发器实战解析

所有时序电路的灵魂,是一个字:

组合逻辑电路反应快,但它是“健忘”的——输入一变,输出立刻跟着变。而我们要做的计时器,需要的是“只在特定时刻更新状态”,这就必须引入边沿触发机制。

这就是74LS74的价值所在。

它到底干了啥?

简单说,74LS74就是一个“采样保持器”:
- 在时钟上升沿到来的那一瞬间,把D端的数据“抓”住;
- 然后不管D后面怎么变,Q输出都纹丝不动,直到下一个上升沿。

比如你在考试时抄答案,老师一喊“停笔”,你就立刻把手拿开——哪怕你知道正确答案就在旁边纸上。这个“听令行事”的行为,就是边沿触发的本质。

关键设计细节

特性说明
触发方式正边沿触发(抗干扰强)
异步控制SET和RESET优先级最高,低电平有效
延迟时间CLK→Q约25ns,适合30MHz以内系统
扇出能力可驱动10个标准TTL负载

别小看这颗8引脚的小芯片,它是构成寄存器、移位器甚至CPU内部寄存器阵列的基础模块。

Verilog模拟验证(仿真用)

为了对比硬件行为,我们可以先在软件里复现它的逻辑:

module d_ff ( input clk, input rst_n, // 低电平复位 input d, output reg q ); always @(posedge clk or negedge rst_n) begin if (!rst_n) q <= 1'b0; else q <= d; end endmodule

这段代码不是用来下载到FPGA的,而是帮助你在仿真环境中观察波形是否符合预期。比如你会发现:只有当时钟上升沿+复位释放时,Q才会跟随D变化。


第二步:数数的艺术——74LS90如何实现十进制计数

我们现在有了“记忆单元”,下一步是让它开始“计数”。

74LS90是个有趣的芯片:它内部其实有两个独立计数器——一个模2、一个模5。通过外部连线,能把它们串起来变成一个完整的十进制计数器(0~9循环)

怎么接线才能数到10?

经典接法如下:

外部时钟 → CLK_A QA → CLK_B ← 把个位的输出接到十位的时钟 R01/R02 → 接地 ← 清零脚拉低,正常工作 S91/S92 → 悬空或接地 输出:QA QB QC QD(BCD码)

这样,每来10个脉冲,输出就完成一次0→9→0的循环,正好对应数码管显示的一位数字。

它的优点与局限

优点
- 不需要额外门电路就能实现十进制计数
- 结构清晰,适合教学演示
- 成本极低,易于获取

缺点
-异步结构:各级触发器不是同时翻转,会产生短暂的中间状态(俗称“毛刺”)
- 进位延迟累积:高位响应慢于低位,在高速场合不可靠

举个例子:当计数从7(0111)→8(1000)时,四个触发器要同时翻转。但由于是异步级联,可能会先出现像0110、0001这样的过渡态,哪怕只存在几纳秒,也可能被下游电路误读。

所以,如果你要做高精度仪器或者通信系统,这种“抖动”就不能容忍。


第三步:更稳定的计数方案——74LS161登场

这时候就得请出升级版选手:74LS161

同样是4位计数器,但它最大的不同在于——同步计数。也就是说,所有的触发器都在同一个时钟上升沿下统一动作,彻底避免了异步带来的毛刺问题。

它有哪些“超能力”?

功能作用
并行预置(LOAD)可设置初始值,实现任意起点计数
同步清零(CLR)在下一个时钟沿归零,保证系统同步
双使能控制(ENP/ENT)精确控制何时允许计数或传递进位
进位输出(RCO)当计数值为15且ENT=1时输出高电平,便于级联

更重要的是,它支持模N计数设计。比如你想做一个MOD-10计数器(0~9),只需要检测当前值是否等于9,然后在下一个时钟到来前拉低LOAD,同时送入0000即可。

Verilog建模参考

module counter_74ls161 ( input clk, input clr, input load, input enp, ent, input [3:0] d, output reg [3:0] q, output rco ); always @(posedge clk) begin if (!clr) q <= 4'b0000; else if (!load) q <= d; else if (enp && ent) q <= q + 1; end assign rco = (q == 4'd15) && ent; endmodule

注意这里的always @(posedge clk)块包含了所有操作,体现了真正的“同步”特性。这也正是我们在硬件中追求的行为一致性。


实战项目:搭建0~59秒计数器

现在,让我们把这些知识整合起来,做一个真正的“秒计数器”。

目标:使用两片74LS161分别作为个位和十位,配合555定时器提供1Hz时钟,驱动两个七段数码管显示00~59秒。

系统结构图(文字版)

[555定时器] → 1Hz方波 → 个位74LS161的CLK ↓ [个位输出 Q0~Q3] → 74LS47译码 → 数码管1(个位) ↓ [个位RCO] → 十位ENT(使能十位计数) ↓ [十位CLK接同一时钟] ← 必须同步! ↓ [十位输出 Q0~Q3] → 74LS47译码 → 数码管2(十位)

如何实现“逢十进一”?

关键点在于进位控制
- 个位计数到9时,其RCO将在下一个时钟到来前变为高电平;
- 该信号连接至十位的ENT引脚,使得十位“被允许”进行一次计数;
- 因为十位也接有时钟,所以它会在下一个上升沿+使能有效的条件下加1。

这就是所谓的“同步进位”——既保证了时序对齐,又实现了精确传递。

如何做到59秒归零?

我们需要加入反馈逻辑:
- 当十位为5(即QB=1, QD=1)、个位为9(即QD=1, QC=1)时,产生一个清零信号;
- 使用与非门(如74LS20)检测QB_ten & QD_ten & QC_unit & QD_unit
- 输出连接至两片74LS161的CLR端(注意:若为同步清零,则需确保该信号持续到下一个时钟沿);

这样一来,一旦达到59,下一拍就会整体归零,形成60秒周期。


调试经验分享:那些课本不说的“坑”

即使原理正确,实际搭建时仍可能失败。以下是我在实验室带学生常遇到的问题及解决方法:

❌ 问题1:数码管乱闪、跳数不准

原因:电源噪声大,导致芯片误触发
对策:给每片IC的VCC-GND之间并联一个0.1μF陶瓷电容,越靠近芯片越好!

❌ 问题2:计数卡在某个数值不动

原因:未使用的输入引脚悬空,拾取干扰信号
对策:所有不用的输入端(如未用的D输入、LOAD脚等)必须通过10kΩ上拉电阻接VCC或直接接地

❌ 问题3:手动清零按钮按下后无法恢复

原因:机械按键抖动造成多次触发
对策:加入RC滤波(10kΩ + 100nF)或使用施密特触发器整形(如74LS14)

❌ 问题4:长导线导致时钟失真

原因:面包板走线过长,引入分布电感和电容
对策:缩短时钟线,必要时加一级缓冲器(如74LS04反相器作驱动)


写在最后:老芯片的新意义

也许有人觉得,用74LS搭电路是“复古表演”。但我始终相信,真正的工程师,应该既能写出优雅的Verilog代码,也能读懂示波器上的每一个毛刺

当你亲手连接每一根线、调试每一个信号、看着数码管从00走到59再归零时,你会对“时钟同步”、“状态转移”、“反馈控制”这些抽象概念产生前所未有的具象理解。

而这,正是74LS系列芯片至今仍在高校实验课中占据一席之地的原因。

未来你要学FPGA?很好。但请记得,那些HDL代码最终综合出来的,依然是由成千上万个类似74LS74这样的触发器构成的物理电路。底层不变,高层才不会迷失。


如果你正在准备相关实验,不妨动手试试这个0~59秒计数器。过程中有任何问题,欢迎留言交流。下次我们可以聊聊:如何用同样的思路扩展成“时-分-秒”完整时钟,甚至加上暂停/启动功能。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/17 7:14:22

基于工业控制的vivado安装教程深度剖析

从零搭建工业级FPGA开发环境&#xff1a;Vivado安装实战全解析在工厂自动化、智能控制设备和实时数据采集系统中&#xff0c;FPGA正扮演着越来越关键的角色。无论是驱动伺服电机的高精度PWM波形生成&#xff0c;还是处理EtherCAT这类硬实时工业总线协议&#xff0c;Xilinx Zynq…

作者头像 李华
网站建设 2026/1/17 8:12:14

用ZABBIX快速搭建物联网设备监控原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个基于ZABBIX的物联网监控原型系统&#xff0c;功能包括&#xff1a;1. 模拟物联网设备数据接入ZABBIX&#xff1b;2. 边缘计算节点数据处理&#xff1b;3. 移动端告警推送&…

作者头像 李华
网站建设 2026/1/10 18:14:17

对比传统方法:AI导入LXMUSIC音源效率提升10倍

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个LXMUSIC音源处理效率对比工具&#xff0c;功能&#xff1a;1. 传统方式处理流程模拟 2. AI自动处理流程实现 3. 自动统计两种方式耗时 4. 生成可视化对比图表 5. 输出优化…

作者头像 李华
网站建设 2026/1/17 11:23:46

外卖平台菜品图片审核:GLM-4.6V-Flash-WEB过滤虚假宣传内容

外卖平台菜品图片审核&#xff1a;GLM-4.6V-Flash-WEB过滤虚假宣传内容 在如今的外卖平台上&#xff0c;一张“食欲感拉满”的红烧肉图片可能根本不是现做的实物——它或许来自三年前某美食博主的图库&#xff0c;经过高饱和滤镜处理&#xff0c;再配上“本店秘制”“每日新鲜熬…

作者头像 李华
网站建设 2026/1/12 13:37:41

用AI快速开发SHELLEXVIEW应用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个SHELLEXVIEW应用&#xff0c;利用快马平台的AI辅助功能&#xff0c;展示智能代码生成和优化。点击项目生成按钮&#xff0c;等待项目生成完整后预览效果 最近在开发一个SH…

作者头像 李华
网站建设 2026/1/15 9:45:44

360智汇云KV数据库ZestKV详解

1ZestKV的前世今身Pika 是 360 智汇云基础架构组与 DBA 联合开发的类 Redis 存储系统&#xff0c;兼容 string、hash、list、zset、set 的大部分接口。基于 RocksDB 存储引擎实现基于硬盘存储&#xff0c;解决了 Redis 存储容量受限以及使用成本高的问题。Pika 于 2016 年开源&…

作者头像 李华