尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

立创EDA实战:无需编程,巧用CD4511与二极管实现循环数显(如纪念日)

立创EDA实战:无需编程,巧用CD4511与二极管实现循环数显(如纪念日) 立创EDA实战无需编程巧用CD4511与二极管实现循环数显如纪念日大家好我是老张一个喜欢鼓捣硬件的嵌入式工程师。最近有朋友问我想做个有纪念意义的小礼物比如能循环显示重要日期的电子摆件但又不想学单片机编程有没有什么简单的办法我一拍大腿当然有今天咱们就来聊聊一个经典又好玩的方法用CD4511译码器和一堆二极管就能实现纯硬件的循环数显。不需要写一行代码只需要在立创EDA上画画图、焊焊板子就能做出一个独一无二的纪念日显示器。这个方法的核心思路是把我们想显示的数字比如“0520”代表5月20日通过硬接线的方式“告诉”CD4511芯片。CD4511是一个能把二进制码转换成七段数码管显示数字的芯片而我们用二极管组成的矩阵就像是一个硬件的“只读存储器”决定了哪个数字在哪个时刻亮起。听起来是不是很有意思接下来我就手把手带大家从原理到实操把这个小作品做出来。1. 核心器件认识一下CD4511在动手之前咱们得先搞清楚手里的“武器”。CD4511是一块非常经典、在电子DIY里出场率极高的BCD-七段锁存/译码/驱动器芯片。名字有点长别怕咱们拆开来看BCD码输入它有4个输入引脚A, B, C, D用来接收一个4位的二进制码BCD码。BCD码就是用4位二进制数来表示0-9这十个十进制数比如0000是00001是1...1001是9。七段输出它有7个输出引脚a, b, c, d, e, f, g每个引脚对应数码管的一个笔画段a-g。芯片内部已经做好了逻辑收到特定的BCD码输入就会让对应的笔画段输出高电平从而点亮数码管显示出正确的数字。锁存功能芯片上有一个“锁存使能”引脚LE。当LE为低电平时输出会实时跟随输入变化当LE为高电平时输出就会锁存在当前状态即使输入改变显示的数字也不变。这个功能对我们实现循环显示至关重要。驱动能力它能直接驱动普通的共阴极数码管输出电流足够省去了外加三极管驱动的麻烦。简单来说CD4511就是一个“翻译官”。我们给它一个二进制的“密码”0-9它就能翻译成让数码管显示对应数字的“指令”。我们的任务就是设计一个电路能按顺序、循环地给这个“翻译官”发送我们想要的“密码”序列。2. 电路原理二极管矩阵如何“编程”不写代码我们怎么让电路按我们的想法循环显示“0520”这四个数字呢秘诀就在于二极管矩阵和循环计数器。2.1 系统框架整个系统的框架可以这样理解时钟脉冲需要一个不断产生“滴答”声的时钟信号比如用一个555定时器芯片构成的多谐振荡器它会产生固定频率的方波脉冲。循环计数器用一块计数器芯片比如CD4017一个十进制计数器/分频器来接收时钟脉冲。CD4017有10个输出端Q0-Q9每个时钟脉冲到来时高电平会依次在这些输出端上移动Q0-Q1-Q2-...-Q9-Q0...。我们可以只用前4个输出Q0, Q1, Q2, Q3来分别代表我们要显示的四个数字的位置第1位、第2位、第3位、第4位。二极管编码矩阵这是最核心的“编程”部分。我们用CD4017的四个输出端作为“行”连接CD4511的四个输入端A,B,C,D作为“列”但在它们之间我们不是直接连接而是通过二极管来有选择地连接。显示驱动CD4511根据输入端得到的BCD码驱动七段数码管显示出对应的数字。2.2 二极管矩阵如何工作假设我们要循环显示“0-5-2-0”。当计数器Q0输出高电平代表显示第1位数字时我们希望CD4511收到“0000”BCD码的0。那么我们就在Q0与CD4511的A、B、C、D输入端之间不连接任何二极管或者理解为因为其他行是低电平不影响。但注意通常我们需要通过上拉/下拉电阻确保CD4511输入脚有确定的电平。更常见的做法是默认所有输入通过电阻拉低为0只有当某一行如Q0为高电平并且通过二极管连接到某一列时才会将该列拉高为1。当计数器Q1输出高电平代表显示第2位数字时我们希望CD4511收到“0101”BCD码的5。看二进制“0101”从低位到高位对应D1, C0, B1, A0。那么我们就需要在Q1和CD4511的D输入引脚之间连接一个二极管阴极接Q1阳极接D这样当Q1为高D就被拉高为1。在Q1和CD4511的B输入引脚之间也连接一个二极管。对于C和A我们不连接二极管它们会被电阻拉低为0。当计数器Q2输出高电平代表显示第3位数字时我们希望显示“2”即“0010”。那么就在Q2和CD4511的B引脚之间连接一个二极管。当计数器Q3输出高电平代表显示第4位数字时我们希望显示“0”即“0000”。那么Q3这一行就不连接任何到CD4511输入的二极管。二极管的方向很重要必须保证只有当计数器某一行输出高电平时电流才能通过二极管流向CD4511的输入引脚将其拉高。这样就形成了一个“与或”逻辑阵列通过二极管的“搭桥”将我们想要的数字序列“硬编码”在了电路板上。提示你可以把二极管矩阵想象成一个有很多行和列的穿孔板。每一行代表一个时间点显示位置每一列代表BCD码的一个位。你想在某个时间点让某一位是“1”就在对应的行和列的交叉处“打孔”焊接一个二极管。这就像在硬件上“打孔编程”。3. 立创EDA设计与实战步骤理解了原理咱们就在立创EDA上把它画出来并考虑如何制作。3.1 原理图设计创建新工程打开立创EDA标准版或专业版均可新建一个工程命名为“纪念日循环数显”。放置核心元件在元件库中搜索并放置CD4511BE或CD4511。搜索放置CD4017BE循环计数器。搜索放置NE555P用于产生时钟脉冲。搜索放置一位的7SEG-COM-CAT共阴极七段数码管。搜索放置1N4148开关二极管数量根据你的日期位数和编码决定显示“0520”可能需要4-6个。放置必要的电阻、电容、电源接口和开关。连接电路时钟部分连接555定时器构成一个低频多谐振荡器频率1-2Hz即可这样数字切换肉眼能看清。调节电阻和电容值可以改变循环速度。计数部分将555的输出接到CD4017的时钟输入端CLK。将CD4017的复位端RST和使能端/EN妥善接地或接VCC使其正常工作。我们使用Q0, Q1, Q2, Q3四个输出。编码部分这是关键。从CD4017的Q0-Q3分别引出四条线作为“行”。从CD4511的A, B, C, D输入端引出四条线作为“列”。在需要编码为“1”的交叉点放置一个二极管1N4148。二极管的阴极有竖线标记的一端接CD4017的行阳极接CD4511的列。别忘了在CD4511的每个输入端A,B,C,D到地GND之间连接一个10kΩ的下拉电阻确保无二极管连接时输入为稳定的低电平。显示部分将CD4511的a-g输出引脚通过限流电阻220Ω-1kΩ连接到共阴极数码管的对应段引脚。将数码管的公共阴极COM接地。CD4511的LT灯测试、BI消隐引脚接高电平使其正常工作。设置电源整个电路使用5V直流供电。为每个芯片的VCC和GND引脚连接电源和地并记得在电源附近放置一个10uF-100uF的电解电容进行电源滤波。3.2 PCB布局与布线建议原理图检查无误后转到PCB设计。布局优先放置芯片CD4511, CD4017, 555让它们位置相对集中。数码管放在板子边缘方便观看。二极管矩阵部分尽量整齐排列方便焊接和检查。电源接口和开关放在板子一角。布线电源线VCC和GND要粗一些比如20-30mil。时钟信号线尽量短避免干扰。二极管矩阵的连接可以用细线10-15mil。由于连接关系可能看起来像网格仔细核对原理图确保每个二极管都连接正确。这是最容易出错的地方。为数码管的限流电阻和下拉电阻预留好位置。设计完成运行DRC设计规则检查确保没有错误。可以为丝印层添加一些注释比如“CLK”、“Q0-Q3”、“A-D”、“显示:0520”等方便调试。3.3 焊接与调试打板回来就可以焊接了。焊接顺序建议先焊接芯片插座如果使用、电阻、电容等小元件再焊接芯片、二极管最后焊接数码管和电源接口。二极管方向焊接二极管矩阵时务必慢一点仔细核对每一个二极管的方向。可以对照PCB上的丝印二极管符号或原理图。上电测试先不插芯片用万用表测量电源引脚之间是否短路。确认无短路后断开电源插入所有芯片注意不要插反方向。接上5V电源观察数码管。正常情况下你应该能看到数字开始循环显示例如0-5-2-0-5-2-0...。常见问题不显示检查电源、数码管是否共阴极、限流电阻是否太大、CD4511的LT和BI引脚是否接对了高电平。显示乱码最可能的原因是二极管矩阵连接错误或二极管方向焊反了。对照你的编码表用万用表通断档逐一检查每个二极管在对应计数器输出为高时是否将正确的CD4511输入拉高。不循环或循环太快/慢检查555定时器周围的电阻电容值调整它们可以改变循环速度。检查CD4017的时钟输入是否有脉冲复位和使能引脚是否接对。4. 发挥创意定制你的专属显示器基础电路调通后你就可以大展身手了修改显示内容想显示“1314”、“1225”或者其他任何4位以内的数字很简单无需改动代码只需修改二极管矩阵的连接。根据新的数字重新计算BCD码在对应的行和列之间增加或移除二极管即可。这就是“硬件编程”的魅力。增加位数如果想显示6位日期如“20240520”你可以使用两块CD4017级联获得更多时序输出并使用多个数码管和CD4511或者使用多块CD4511。美化外观就像原始想法提到的你可以为你的显示器设计一个漂亮的外壳贴上对你有特殊意义的照片或图案把它变成一个充满心意的实体礼物。这个项目虽然小但它完美地展示了数字逻辑电路的魅力——用简单的芯片和清晰的逻辑就能实现一个有趣的功能。它避开了软件编程让你更专注于硬件逻辑本身对于理解数字电路底层是如何工作的非常有帮助。希望你能成功做出自己的循环数显送给那个“有意义的人”。如果在制作过程中遇到问题欢迎随时来交流咱们一起讨论解决。
返回列表