基于74LS390和CD4060的纯逻辑数字电子钟完整电路设计与实现

发布时间:2026/9/28 1:25:15
基于74LS390和CD4060的纯逻辑数字电子钟完整电路设计与实现 很多朋友一听说“做数字电子钟”第一反应就是上单片机但我今天想聊一条更硬核的路用两枚经典芯片——74LS390和CD4060——从零搭一台纯逻辑电路的数字电子钟。标题既然写了“完整电路图”我就不放那种扫描得模糊不清的图纸了直接把引脚级连接整理成可查的表格照着一根根插线就能复现。整个项目做完你对“计数”“分频”“进位”的理解会比看十遍教科书都深。适合刚学完数字电路、手里有面包板但不想碰单片机的同学也适合实验室做综合实训的师生。1. 数字钟到底在忙什么一颗脉冲一颗脉冲数时间1.1 拆解需求时基、计数、显示三件套数字电子钟看起来是一堆数码管在跳数字本质上是三个功能模块的串联。第一块是时基电路用来生成一个准确、稳定的“秒脉冲”第二块是计数器链路数一数到底过去了多少个秒脉冲进而換算成秒、分、时第三块是译码显示把计数器里的二进制状态翻译成数码管上能看懂的数字。这个逻辑想清楚之后难点就清晰了秒脉冲准不准决定了钟走得好不好计数器进制对不对决定了会不会出现“75秒”“61分钟”这种诡异显示显示驱动弄不弄得明白决定了你能不能把结果“看见”。网上很多电路图喜欢把这三件事搅在一起画看起来高大上实际调试时根本无从下手。我建议你心里始终绷着一根弦任何一个模块坏了只会在自己那一层出问题不要一上来就怀疑整块电路。1.2 为什么选CD4060和74LS390而不是555或单片机用555做秒脉冲是很多入门教程的做法但我一直不太推荐用在数字钟上。555本身只是一个振荡器它输出1Hz需要大阻容而大阻容的温漂和电压敏感度都很高今天调准了过两天又快了。更麻烦的是555没有内置分频链你从它那里拿到的永远是孤零零的一个1Hz信号后面所有计数逻辑都得自己另搭。CD4060不一样它内部集成了一个振荡器加14级二进制分频器一颗芯片就能把晶振信号逐步分频到2Hz甚至更低天生就是给数字钟做时基的料。74LS390则是经典的“双四位十进制计数器”一个封装里装着两个独立的计数器每个计数器内部又是“÷2÷5”的结构。用它来做秒、分、时的计数一片能顶两片用还能灵活接成÷10、÷6、÷12等不同进制。相比单片机方案这套纯逻辑电路没有任何程序上电就跑出问题能拿万用表一级一级量对理解数字电路底层逻辑非常有帮助。选型时的核心思路就一句话让每个芯片只干它最擅长的一件事CD4060负责“产生时间”74LS390负责“数时间”。2. 时基电路让CD4060产出可靠1Hz秒脉冲2.1 晶振方案为什么是32.768kHzQ14怎么算出2Hz先上最推荐的方案用32.768kHz晶振喂给CD4060从Q14引脚取2Hz信号再做一次二分频得到1Hz。很多新手第一次看到32.768这个数字会愣一下其实原因特别简单32.768kHz等于2的15次方也就是32768Hz。CD4060内部有14级二分频链所以经过Q14之后频率就变成32768除以16384正好是2Hz。这个数字不是随便选的它保证了每一级分频都是整数不会出现小数分频的麻烦。接线并不复杂。晶振两端分别接CD4060的OSC IN和OSC OUT两个引脚各用一个15pF到30pF的电容接到地晶振两端再并一个10MΩ电阻作为反馈电阻。这个反馈电阻有的芯片手册说内部已经有了但我习惯外面再补一个实测下来起振更干脆。RST复位引脚绝对不能悬空要直接接地或者用10kΩ电阻下拉到地否则芯片可能莫名其妙被复位整个钟直接罢工。2.2 RC方案想省晶振应该怎么选电阻电容如果你手头暂时没有晶振或者只想在面包板上快速验证逻辑用RC振荡也能跑起来。CD4060的振荡频率大约可以用这个公式估算f等于1除以2.2RC。注意这里有个特别容易踩的坑想让Q14输出1Hz振荡频率不应该是1Hz而应该是16384Hz因为Q14是16384分频。要是你按1Hz去选阻容那Q14上看到的只会是每四个多小时才跳一次的“慢动作”。我实际测试时用R等于10kΩ、C等于2.7nF左右Q14输出约1Hz。这个电容建议用C0G材质的别拿普通瓷片电容凑合RC振荡本身精度就不高电容再一漂走时就更没谱了。如果想让频率可调可以把R换成10kΩ多圈电位器串联一个几kΩ固定电阻一边看频率计一边调到1Hz。但说实话RC方案只能作为教学演示真想当钟用几乎隔几天就要校一次迟早会被逼疯。2.3 从2Hz到1Hz补哪一片分频器CD4060的Q14输出是2Hz想要1Hz秒脉冲还得再做一次二分频。这里有两个选择。第一个是加一片CD4013用其中一个D触发器接成T触发器Q非端接回D端Q端输出就是1Hz。第二个方案更贴合标题里的“只用74LS390”思路直接借用一片74LS390内部的“÷2”部分。把CD4060的Q14接到74LS390某个计数器的CLKA脚QA脚就是二分频输出频率正好1Hz。我倾向于推荐第二个方案虽然会多占一片74LS390但毕竟CD4013也不是人人手上都有而74LS390你反正要买好几片顺手就匀一片出来当分频器整体物料清单还能统一。需要注意74LS390是TTL电路输入高电平要求比CMOS高一些CD4060的CMOS输出直接驱动它通常没问题但如果你发现秒脉冲偶尔丢一拍可以在CD4060输出脚和74LS390时钟输入之间串一个几十欧电阻或者加一级74LS04缓冲整形。3. 计数链路74LS390把秒脉冲“数”成时分秒3.1 先把一片390接成十进制计数器74LS390内部每个计数器都由一个÷2部分和一个÷5部分组成接成十进制计数器的标准做法是把计数脉冲送到CLKA再把QA输出接到CLKB这样÷2部分先工作÷5部分跟在后面四个输出QA、QB、QC、QD就是标准的BCD码权值分别是1、2、4、8。这一步是整台数字钟最基础的积木我建议你拿到芯片后先在面包板上单独验证一下。接一个按键开关到CLKA每按一次四个LED就应该按BCD码顺序跳变从0000到1001循环。很多人会在这个最简单的环节翻车原因多半是按键没有消抖或者CLKB没有接QA而是接了别的引脚。如果你想偷懒干脆把1Hz秒脉冲直接接到CLKA数码管上就能看到秒个位一秒一秒往上跳非常直观。3.2 秒/分的60进制÷6复位和进位借位秒个位是十进制秒十位却是六进制这就是“60进制”的由来。把秒十位做成六进制最经典的办法是“反馈清零法”先让它按十进制跑当它计数到6的瞬间用一个与门检测到BCD码0110立刻把MR复位引脚拉高计数器马上被清回0000。这样有效状态就是0到5等第6个脉冲到来时直接看不见6看上去就像是六进制。具体检测逻辑很简单BCD码中权值为2的是QB权值为4的是QC所以只要把QB和QC接进一个与门输出接到MR就行。74LS390的复位输入是高电平有效的所以这里用74LS00与非门或CD4081与门都可以。秒十位做好了分钟十位完全照抄同一套只是它的输入时钟不再是秒脉冲而是秒个位的进位信号。这里有个非常巧妙的借位技巧秒个位从9跳回0时最高位QD正好从1变成0产生一个下降沿而74LS390恰恰是下降沿触发的计数器。所以直接把秒个位的QD接到秒十位的CLKA就能实现“每过10秒秒十位加1”。分十位到小时个位也如法炮制把分十位的反馈清零电路输出端的毛刺问题处理好就行。3.3 小时部分24小时制怎么在“24”瞬间归零小时部分比秒、分钟稍微绕一点。我设计成24小时制显示范围是00到23。时个位用十进制计数时十位也用普通BCD计数但整体在计数到“24”的瞬间强制清零归零。这样省去了12小时制里“12点要置成1点”的麻烦逻辑更干净。检测“24”只需要一个与门当时十位的QB权值2为1同时时个位的QC权值4为1说明小时部分正好出现了24。把这个与门输出接到时十位和时个位的MR复位脚上两个计数器同时清零。实际运行时电路会经历一个极短暂的“24”状态但这个状态只有几十纳秒肉眼根本看不到数码管上直接就从23跳到00。需要提醒的是MR复位信号最好经74LS14施密特反相器整形一下再接过去的能避免极窄毛刺导致复位不彻底。3.4 完整版级联速查表下面这张表就是把整个计数链路串起来的“文字版电路图”照着一根根接就行。所有“进”的方向都是从低到高时钟全部用下降沿触发。信号去向来源引脚说明秒个位CLKA二分频后1Hz时间基准秒十位CLKA秒个位QD秒个位9→0时加1秒十位MR秒十位QB与QC计数到6复位分个位CLKA秒十位QD、QC或借位整形秒十位5→0时加1分十位CLKA分个位QD分个位9→0时加1分十位MR分十位QB与QC计数到6复位时个位CLKA分十位借位信号分十位5→0时加1时十位CLKA时个位QD时个位9→0时加1小时MR时十位QB与时个位QC出现24时整体清零关于分十位到时个位的借位我的建议是不要直接从分十位的QD或Q2上取下降沿因为它和复位毛刺混在一起容易导致小时偶尔不多跳一下。比较稳妥的做法是把分十位的“检测到6”信号经过74HC14整形再送给时个位CLKA这样一个干净的进位脉冲就有了。4. 显示驱动让6个数码管把计数值亮出来4.1 CD4511译码器的连接和限流电阻选择计数器里跑的是BCD码数码管要的是七段码中间需要译码器。我用的是CD4511它是CMOS的BCD转七段锁存译码器专门驱动共阴数码管。每个计数器输出接到一片CD4511的A、B、C、D四个输入译码器输出端分别接数码管的a到g段每段串一个限流电阻。CD4511的控制脚有讲究LT和BI要接高电平LE锁存端要接地才能让BCD数据实时通过并显示。LE一旦悬空芯片内部锁存状态不定数码管就会出现乱跳或者显示上一次数据的怪毛病。限流电阻的选择直接影响显示效果和发热量。5V电源下每段串330Ω到470Ω数码管亮度比较合适显示“8”时整颗管电流大约几十毫安。如果你用1kΩ亮度会明显暗一些但整机电流小7805压力也小。我的习惯是第一版用470Ω确认逻辑没问题后再根据观感调整。4.2 静态显示与动态扫描的取舍6个数码管就需要6片CD4511这种接法叫静态显示每位数码管独立译码、常亮。优点是完全不依赖扫描逻辑清晰、调试容易缺点是IC用得多、整机电流大。动态扫描则是所有数码管共用一套译码器靠快速轮流点亮来造成“同时亮”的错觉能省不少芯片但需要额外的扫描时钟和位选驱动纯逻辑电路搭起来会多出一大堆连线新手很容易在扫描时序上翻车。我强烈建议第一个版本做静态显示先把钟走起来之后再考虑改成动态扫描来精简元件。别看6片CD4511占了很大面积这种“模块化”设计让排查问题非常舒服秒位显示不对只查秒位那一片译码器和对应连线不会牵一发动全身。5. 从面包板到洞洞板我的实操顺序和调校记录5.1 建议的模块化通电顺序这一步是我最想强调的。很多同学一上来就把所有模块全焊好然后通电期望它一次成功结果数码管乱闪根本不知道从哪儿查起。我的习惯是严格按模块顺序搭建和测试先做电源再做时基然后做单个计数器最后才组装整机。第一步电源部分用7805稳压输入接9V到12V直流输出5V输入输出各加一个10μF电解电容和0.1μF瓷片电容。第二步单独测CD4060时基Q14接一个LED应该看到大约每秒闪两次再接上二分频电路LED应该是每秒闪一次。如果这一步不过关后面全部白搭因为整个钟的节奏都靠它。第三步搭一个74LS390十进制计数器手动按脉冲测试。第四步搭出秒位和分位的60进制链路。第五步接小时和24点复位。第六步最后接译码显示。5.2 电源、布线和晶振的注意事项74LS390是TTL电路对电源噪声比CMOS敏感每个IC的电源引脚旁边都要放一个0.1μF去耦电容面包板上也得放不要省。电源线建议用红色地线用黑色时钟线用黄色复位线用蓝色这样走线时一眼就能看出类别。晶振的两个引脚要尽可能短地靠近CD4060不要在面包板上拉出很长很长的飞线否则振荡器会因为寄生电容和干扰出现不起振或者频率漂移。7805在静态显示模式下会比较烫因为6个数码管全亮时整机电流可能到三四百毫安压差一大发热是必然的。我的处理方法是给它装一个小的铝散热片或者干脆把输入电压降到7.5V到9V减少压差损耗。还有一个小细节洞洞板焊接时晶振附近不要大面积覆铜助焊剂也要清洗干净否则晶振漏电会让秒脉冲时快时慢。6. 常见故障与排查记录避坑速查表6.1 时基不工作LED不闪或者常亮常灭先测CD4060的电源再看RST引脚是否已经接地。RST悬空是新手第一大坑芯片会随机复位。然后检查晶振回路反馈电阻有没有接两个负载电容是否都接到了地。如果这些都正常但还是不振荡用示波器探头接OSC OUT看有没有波形没有示波器就换一个晶振试试劣质晶振或者焊接时间太长导致内部损坏的情况我都遇过。CD4060输出引脚是高阻性质的万用表频率档测它可能测不准最好通过一个三极管或者缓冲门再测。6.2 计数器计数错乱不进位、乱跳、不复位不进位先查下一级时钟来源比如秒十位有没有收到秒个位QD的下降沿。这里要特别注意必须确认你用的是QD而不是QC权值搞错进位就会变得毫无规律。复位数不对就查与门的输入组合秒十位和分十位都应该检测QB与QC同时为1如果接错成QA与QB计数器会在3的时候就被清掉显示变成0到2的伪三进制。“乱跳”大多是复位毛刺干扰。反馈清零法本身会产生很窄的尖峰如果在尖峰期间触发了下一级计数器就会出现秒十位还没到5就突然给分个位加了1。我的排查顺序是先断开显示部分单独看计数器LED一级一级往下找再用示波器看复位脚的波形宽度如果太窄就在MR引脚对地加一个几百pF小电容或者改用74HC14整形后的进位信号。6.3 显示异常数码管闪、暗、显示错误数字数码管闪烁先看LE引脚有没有固定接地再看电源有没有跌落。静态显示下如果电源电流不够数码管会在每个计数变化瞬间出现亮度抖动。显示错误数字多半是译码器输入引脚接错顺序或者共阴共阳买反了。CD4511只能驱动共阴数码管你要是把共阳管插上去所有段全部反向怎么接都是黑屏。共阳管要换用74LS47这类驱动芯片它们的逻辑是反相的不能混用。6.4 整机稳定性问题走时不准、偶尔重启走时不准最值得怀疑的就是时基部分。晶振负载电容太大或太小反馈电阻阻值不对都会让频率偏离32.768kHz。有条件就用频率计测Q14输出差零点几赫兹就肉眼可见地走快或走慢。偶尔重启或者整机乱跳检查电源线和地线是否够粗7805输出端在大电流下电压是否跌落到4.5V以下。CMOS电路在4.5V以下可能还在工作但TTL的74LS390就很不稳定了。另一个容易忽略的是复位信号上的容性耦合长跳线之间相互干扰时在MR引脚上并联一个0.1μF电容能吸收掉不少毛刺。我个人做完这个项目最大的感受是纯逻辑电路做数字钟三分靠设计七分靠排错。当你拿着示波器在面包板上一点点追信号最后看到数码管稳稳地从23跳到00的那一刻那种满足感远比下载一段单片机程序大得多。如果后续还想继续折腾可以在小时进位那里引出信号加一个蜂鸣器做整点报时或者把时基电路改成可选晶振频率的跳线让同一块板子既能做钟又能做频率计。先把这一套跑通剩下的事情就都是顺水推舟了。