
简介本资源为数字电子技术课程设计「可预置报警器设计」的完整说明书文档面向电子信息、信息工程等专业修读数电课程的学生及需要完成课设报告的学习者解决从题目分析到电路实现、仿真验证与总结撰写的一整套参考需求。压缩包内仅1个docx文件约1.34MB即课设说明书主体涵盖设计目的、任务要求、总体框图、脉冲发生电路、置数电路、计数电路、显示与报警电路等章节并配有Multisim 10仿真结果与参考文献。内容以74LS190同步十进制加减计数器、74LS147译码器及555定时器为核心讲解整十位置数、加/减计数与到值报警的实现方式并附芯片管脚与工作原理说明。该资料已有195人学习下载适合作为课设选题参考、仿真接线排错与报告撰写模板也可用于复习计数译码与定时电路的综合应用。1. 可预置报警器不是纯组合逻辑先把 74LS190 级联置数想清楚实验室里做数电课设拿到“可预置报警器”题目很多人第一反应是画一个 74LS85 比较器把预置数和计数值比较相等就报警。这个思路在组合逻辑电路里没错但真搭起来会发现比较器位数多、连线乱预置数还得另做编码。更省芯片的做法是把可逆计数器本身当成比较器用 74LS190 预置一个数减计数到 0 时借位输出直接报警。这套设计用三片 74LS190 做百/十/个位级联74LS147 加 7404 做整十位置数编码555 定时器提供时钟DCD-HEX 驱动数码管整个流程在 Multisim 10 里仿真。适合刚学完数电组合逻辑电路、准备做课设的人也适合想复习 74LS190、74LS147 和 555 定时器时序逻辑的从业者。2. 器件选型与总体框图的时序逻辑拆解2.1 74LS190 与 74LS147 的角色分工74LS190 是同步十进制加/减计数器关键引脚包括 CLK、U/D、CTEN、LD、RCO 和 Q0-Q3。U/D 控制加计数还是减计数CTEN 是计数使能LD 是置数端RCO 在进位或借位时输出低脉冲。在这个设计里十位片用 74LS147 输出 8421BCD 码置数个位和百位置数端悬空相当于置 0。74LS147 是 10 线-4 线优先编码器输入低有效输出是 8421BCD 的反码所以后面要接 7404 非门把反码翻回正码再送到 74LS190 的 D0-D3。为什么不用 74LS85 比较器比较器需要预置数和计数值同时存在还要额外锁存预置数芯片数量和连线复杂度都上去了。可逆计数器方案把“比较”变成“预置后减到 0”报警信号直接从 RCO 取逻辑更干净。模电数电基础知识里常讲计数器级联和借位输出这个设计正好把两者串起来。器件功能关键引脚在本设计中的用途74LS190同步十进制可逆计数器CLK、U/D、CTEN、LD、RCO、Q0-Q3百/十/个位计数与级联减到 0 时借位报警74LS14710 线-4 线优先编码器I1-I9、A3-A0把开关状态编码成 8421BCD 反码用于整十位置数7404六反相器输入输出各 6 路翻转 74LS147 的反码输出得到正码555定时器TRIG、THR、DIS、OUT构成多谐振荡器产生计数时钟DCD-HEX七段译码驱动器A-D、a-g把 74LS190 的 8421BCD 输出显示成数字2.2 三片级联的百/十/个位信号流向三片 74LS190 分别对应百位、十位、个位。所有芯片的 CLK 接同一个 555 输出这样它们是同步级联避免异步级联带来的竞争冒险。个位的 RCO 接十位的 CTEN十位的 RCO 接百位的 CTEN。74LS190 的 CTEN 低有效RCO 在进位或借位时输出低脉冲正好允许下一级在下一个时钟沿计数。加计数时个位从 9 到 0RCO 拉低十位加 1减计数时个位从 0 到 9RCO 拉低十位减 1。置数部分只对十位片做整十位置数所以 74LS147 的输出接十位片的 D0-D3百位和个位的 D0-D3 悬空为低电平。要置 90、80、70 这类数开关通过 74LS147 编码经过 7404 反相后写入十位片个位和百位自动为 0。要置 100文档里的做法是把 J1 打到右端按 J2让百位片置 1、十位和个位置 0。这里要注意 74LS190 没有独立清零端清零要靠置数端配合时钟完成所以置数开关和时钟的先后关系要理清。信号来源去向作用CLK555 输出三片 74LS190 的 CLK提供同步计数时钟个位 RCO个位 74LS190十位 CTEN个位进位/借位时使能十位十位 RCO十位 74LS190百位 CTEN十位进位/借位时使能百位置数码74LS147 7404十位 74LS190 的 D0-D3写入整十位预置数报警触发个位或十位 RCO报警电路减计数到 0 时输出低脉冲2.3 Multisim 10 元件库准备与图纸配置在 Multisim 10 里新建原理图按表 2-1 从元件库取器件。74LS190 和 74LS147 在 TTL 库的 74LS 系列里555 可以用 LM555 或 555_VIRTUALDCD-HEX 在 Indicators 库。电源用 VCC 和 GROUND数字地要统一。开关用 SPST蜂鸣器用 Buzzer电阻电容按计算值填。555 定时器的参数需要先算。目标频率大约 1Hz方便观察计数过程。常见做法是取 R16.8kΩR268kΩC10μF用公式算一下频率和占空比。下面这段 Python 代码可以直接跑改 R1、R2、C 就能看结果。# 555 多谐振荡器参数计算 # 公式f 1.44 / ((R1 2*R2) * C) # 占空比D (R1 R2) / (R1 2*R2) def calc_555(r1_ohm, r2_ohm, c_farad): freq 1.44 / ((r1_ohm 2 * r2_ohm) * c_farad) period 1.0 / freq duty (r1_ohm r2_ohm) / (r1_ohm 2 * r2_ohm) return freq, period, duty # 参数R16.8k, R268k, C10uF f, t, d calc_555(6.8e3, 68e3, 10e-6) print(f频率: {f:.3f} Hz) print(f周期: {t:.3f} s) print(f占空比: {d*100:.1f}%)参数说明R1 是 VCC 到 DIS 的电阻R2 是 DIS 到 THR/TRIG 的电阻C 是 THR 到地的电容。算出来频率约 1.008Hz周期约 0.992s占空比约 52.4%。这个频率下数码管每秒变一次仿真时容易看清。如果想让计数更快把 C 换成 1μF频率会变成约 10Hz想更慢就加大 C。注意 Multisim 里 555 的 5 脚要接 0.01μF 到地否则阈值容易受干扰。3. 555 时钟与 74LS190 加减计数级联的仿真实现3.1 555 多谐振荡器参数计算与 Multisim 设置555 接成多谐振荡器时2 脚和 6 脚短接7 脚接在 R1 和 R2 之间3 脚是输出。上电后电容 C 在 1/3VCC 和 2/3VCC 之间充放电3 脚输出方波。Multisim 里把 555 的 4 脚和 8 脚接 VCC1 脚接地5 脚通过 0.01μF 接地3 脚接三片 74LS190 的 CLK。仿真前先用示波器看 3 脚波形确认频率和幅度。如果输出一直高或一直低先查 2、6 脚是否短接再查 7 脚电阻连接。参数取值作用VCC5VTTL 电平匹配R16.8kΩ充电通路电阻R268kΩ放电通路电阻C10μF决定振荡周期C50.01μF控制电压滤波目标频率约 1Hz便于观察计数3.2 74LS190 置数与加减计数控制74LS190 的控制逻辑不复杂但引脚有效电平容易记混。LD 是低有效置数CTEN 是低有效计数使能U/D 为 0 时加计数为 1 时减计数。下面是状态表。LDCTENU/DCLK功能0XXX异步置数D0-D3 写入输出100上升沿加计数101上升沿减计数11XX保持10X无上升沿保持注意不同厂家手册对 LD 是同步还是异步的标注有差异Multisim 里的 74LS190 模型按低有效置数处理仿真时以实际波形为准。置数 90 后把 U/D 接高电平切换到减计数时钟每来一个上升沿输出从 90 减到 89、88……直到 0。减到 0 时RCO 输出低脉冲这个脉冲就是报警触发信号。下面用 Python 模拟 74LS190 的减计数过程验证预置 90 后多久到 0以及借位输出在哪个时钟周期出现。代码里用十进制加法代替二进制只模拟 BCD 行为。# 模拟 74LS190 减计数预置 90减到 0 触发借位 def countdown(preset, clock_cycles): value preset borrow_cycles [] for cycle in range(1, clock_cycles 1): if value 0: # 减到 0 后下一个时钟翻到 9同时产生借位 value 9 borrow_cycles.append(cycle) else: value - 1 if value 0: borrow_cycles.append(cycle) return value, borrow_cycles final_value, borrows countdown(90, 95) print(f95 个时钟后计数值: {final_value}) print(f借位出现的时钟周期: {borrows[:5]} ... 共 {len(borrows)} 次)参数说明preset 是预置数这里取 90clock_cycles 是仿真时钟数取 95 覆盖减到 0 并继续计数的过程。代码输出显示90 减到 0 需要 90 个有效时钟第 90 个时钟后值为 0如果继续给时钟下一个周期会从 0 翻到 9 并产生借位。实际 74LS190 的 RCO 在减计数到 0 时输出低脉冲宽度为一个时钟周期适合触发报警锁存。3.3 报警电路与借位输出的连接报警电路可以直接用 RCO 驱动。常见做法是 RCO 接 NPN 三极管基极三极管集电极接蜂鸣器和 VCC发射极接地。RCO 平时高电平减到 0 时拉低三极管导通蜂鸣器响。但 RCO 只低一个时钟周期蜂鸣器可能只“嘀”一声。要持续报警可以在 RCO 后面加一个 RS 锁存器比如 74LS279或者用 D 触发器 74LS74 做状态保持。按下复位键再解锁。另一种做法是用 RCO 触发 555 的单稳态电路输出固定宽度的报警脉冲宽度由外接 RC 决定。这样不依赖锁存器但要多一片 555。仿真时可以用 Multisim 的探针观察 RCO 节点确认低脉冲出现在计数值从 0 翻到 9 的时钟沿。* Multisim 瞬态分析指令示例 * 观察 555 输出和 74LS190 借位输出 .tran 0 20s 0 10ms .probe V(555_out) V(U1_RCO) V(U2_RCO) .end这段 SPICE 指令放在 Multisim 的 Simulate Analyses Transient Analysis 里设置。.tran 0 20s 0 10ms 表示仿真 20 秒从 0 开始最大步长 10ms。探针分别看 555 输出、个位借位、十位借位。如果借位脉冲太窄看不清把最大步长改小到 1ms。4. Multisim 仿真调试与常见故障排查4.1 置数开关抖动与 74LS147 编码验证74LS147 是优先编码器输入 I1-I9 低有效输出 A3-A0 是 8421BCD 的反码。比如要置 9I9 拉低输出 A3A2A1A00110经过 7404 反相变成 1001正好是 9 的 BCD 码。要置 8I8 拉低输出 0111反相后 1000。没有输入有效时输出 1111反相后 0000。所以未用的输入脚不能悬空要接高电平否则优先编码器可能误判。输入有效脚74LS147 输出 A3A2A1A07404 反相后十进制I9011010019I8011110008I7100001117I6100101106I5101001015I4101101004I3110000113I2110100102I1111000011无111100000开关抖动在 Multisim 里不明显但转实物时会出问题。常见做法是在开关和 74LS147 输入之间加 0.1μF 电容或者用施密特触发器 74LS14 整形。仿真阶段可以先忽略抖动把重点放在编码逻辑和置数时序上。4.2 数码管显示乱码与 DCD-HEX 极性DCD-HEX 把 8421BCD 转成七段码但它的输出极性要和数码管匹配。共阴数码管需要高电平段驱动共阳需要低电平。Multisim 里的 DCD-HEX 有不同版本接错会出现全亮、全灭或乱码。检查顺序先看 74LS190 的 Q0-Q3 是否按低位到高位接到 DCD-HEX 的 A-D再看数码管是共阴还是共阳最后查限流电阻是否接上。现象可能原因验证方法修正数码管全灭共阳/共阴接反换一种数码管模型改用匹配的 DCD-HEX显示乱码Q0-Q3 与 A-D 顺序颠倒用逻辑探针逐位查按 Q0 接 AQ3 接 D只显示 074LS190 没有计数查 CLK 有无脉冲查 555 输出和 CTEN十位不变化RCO 没接 CTEN查级联线个位 RCO 接十位 CTEN置数无效LD 时序不对查置数脉冲和时钟按手册调整 LD 有效沿4.3 级联进位丢失与时钟沿问题级联时最容易出错的是把 RCO 接到下一级的 CLK。74LS190 是同步计数器所有级共用时钟RCO 应该接下一级的 CTEN而不是 CLK。如果接成 CLK个位进位时会额外产生一个时钟沿十位可能多计或漏计。仿真时用逻辑分析仪看个位 RCO 和十位 CLK如果十位 CLK 出现毛刺就是接错了。另一个坑是 CTEN 的有效电平。74LS190 的 CTEN 低有效如果误以为高有效加计数时十位会被禁用个位进位后十位不动。用万用表或逻辑探针测 CTEN 电压正常计数时应为低电平保持时为高电平。下面是针对级联问题的 SPICE 探针配置。* 观察级联时钟和使能信号 .tran 0 10s 0 1ms .probe V(U1_CLK) V(U1_RCO) V(U2_CTEN) V(U2_CLK) .end参数说明U1 是个位U2 是十位。V(U1_CLK) 和 V(U2_CLK) 应该完全同步如果 U2_CLK 有额外脉冲说明级联接错。V(U1_RCO) 在进位/借位时拉低V(U2_CTEN) 应该跟随 U1_RCO 变化。把仿真步长设为 1ms可以看清 1Hz 时钟下的脉冲细节。5. 从仿真到实物预置数扩展与报警阈值微调技巧Multisim 仿真通过后转实物还有几个实用技巧。第一个是预置数扩展。原设计只对十位片置整十数如果要置任意三位数可以用三个 BCD 拨码开关分别接三片 74LS190 的 D0-D3每个拨码开关输出 8421BCD 正码省掉 74LS147 和 7404。拨码开关有共阳和共阴两种共阳输出低有效需要加反相器或选共阴型号上拉电阻一般取 10kΩ。第二个是报警阈值微调。如果希望减计数到某个非零值就报警可以用 74LS85 比较器替代 RCO把预置阈值和当前计数值比较相等时输出报警。比较器方案适合阈值需要经常改的场景但多一片 74LS85 和若干连线。如果只是改计数速度调整 555 的 R2 或 C 更直接R2 增大周期变长C 减小频率变高。下面这张表可以快速选参数。目标频率R1R2C周期1Hz6.8kΩ68kΩ10μF0.99s10Hz6.8kΩ68kΩ1μF0.10s0.5Hz6.8kΩ68kΩ22μF2.0s2Hz6.8kΩ33kΩ10μF0.49s第三个技巧是报警保持。RCO 的低脉冲只有一个时钟周期接蜂鸣器只能响一声。转实物时可以在 RCO 后加一个 74LS74 D 触发器把报警状态锁存再用一个按钮复位。如果不想加芯片可以用 RC 延时加三极管自锁但稳定性不如触发器。Multisim 里验证锁存逻辑时用逻辑分析仪看 D 触发器输出确认报警电平一直保持到复位按钮按下。最后注意 74LS190 的置数端在实物上不要真悬空。仿真里悬空默认为低电平实物上悬空容易受干扰应该通过 10kΩ 电阻接地。百位和个位的 D0-D3 都接地置数时才能稳定写入 0。555 的电源引脚旁加 0.1μF 去耦电容数码管限流电阻取 220Ω 到 470Ω蜂鸣器串联 100Ω 电阻限流。这些细节在 Multisim 里看不到却是仿真转实物时最容易翻车的地方。本文还有配套的精品资源点击获取