历史上的今天
今天是:2026年01月30日(星期五)
2023年01月30日 | 2、换种思路学Proteus之乐趣无穷的LED和数码管
2023-01-30 来源:zhihu
前面我们学会了如何新建一个Proteus工程,并且简单了解三个元器件,电阻(Resistor),LED灯和开关(Button),接下来我们进一步来认识学习单片机过程中大家用的比较多并且生活中很常见的LED变种。
说明:考虑到Proteus仿真本身的表现力,防止在实际电路中误导大家,我所做的电路基本都是数字型的,尽量避免模拟型的,因为在实际电路中,模拟电路出问题没有相关仪器设备和一定的方式方法排查,很容易让初学者望而却步,希望这些变种的LED结合一定的算法能给大家带来玩单片机的乐趣。
1、神奇的LED灯
前面我们通过一个例子已经了解了LED灯的基本使用,我们再进一步拓展和认识生活中LED更广泛的用途

点阵LED
Tips:将工程的颜色修改成自己喜欢的样子,其原理图中元器件的颜色大家也可以尝试去设置,不用担心把软件玩坏了,大不了重新再装一遍。

在菜单栏中“Template->Set Design Colours”进行设置

我这里将“Paper Colour”和“Grid Colour”的颜色换了,分别换成了白色和灰色

设置好后后的效果

接下来我们建一个工程并在Proteus中通过简单的办法来验证这个点阵,准备好三个元器件,分别是拨码开关(DIPSW_8),8*8的点阵(matrix-8X8-RED)和电阻(ERJ-8GEYK156V),然后将其放置到原理图中,并连接好线,做好后的效果如下图所示

真实环境中正确的电路,但是仿真会出现异常
注意:实际电路中需要加限流电阻,但是这个电路在加了限流电阻后,单独打开上面的一个拨码开关会出现亮一排灯,把电阻去掉就可以用了,这里大家知道点阵是怎么回事就好了,电路按照软件中能工作的方式进行。

异常的电路,但是能在仿真软件中正常工作
接下来我们在上面一个字符“1”,按照如图所示拨动相应拨码开关就可以显示一个不太漂亮的“1”,要想显示一个带字体的1,需要用到动态扫描方式来做,需要用到单片机,后面我会带大家用STM32单片机来实现,这里就不做拓展了,大家可以组合拨码来实现自己猜想......

Tips:
① 元器件复制,Proteus这方面感觉不是很友好,我当前只能找到右键“Copy To Clipboard”,粘贴也是只能在空白处右键“Paste From Clipboard”

选中元器件复制到剪贴板

从剪贴板粘贴元器件
② 元器件拖拽

③ 元器件旋转

2、生活中的数码管

形形色色的数码管
我这里简单的介绍下,接下来就是开干。。。数码管(seg)主要分为共阴(Com Cathode)和共阳(Com Anode)两大类,接法如下图所示,其实也就是LED阴极和阳极共在一起的两种方式

CC是共阴,CA是共阳
我们在Proteus中来搭建一个一个简单的验证电路(里面的三个数码管名称分别是:7SEG-COM-AN-BLUE,7SEG-COM-CAT-BLUE,7SEG-MPX4-CA),同样的,下图这个电路是正确的,但是工作异常

实际电路中正确的电路,但是仿真工作异常
大家可以组合去拨动拨码开关,验证上面显示字符,看下是否找到熟悉情形

实际异常的电路,但是仿真正常
总结:
① 本篇主要介绍多种多样的LED和数码管的组合变种,这些在生活中非常常见,同时也是我们玩转嵌入式过程中能直观表达的外围设备,在上面可以脑洞大开的玩出很多花样(点阵贪吃蛇,点阵俄罗斯方块,恋爱表达神器,电子钟,计算器等等)。
② Proteus在实际使用中经常会碰到仿真不按照我们的真实电路工作的情况,希望大家尽量用它来验证算法和一些数字逻辑器接,多动手焊接调试真实电路,方能拿捏得当。
③ 由于当前没有结合单片机一起玩,所以能展现的东西比较少,后面会出结合单片机一起玩的例子,敬请期待。
史海拾趣
|
精确的信号调理和高分辨率的测量不再局限于工业或仪器仪表应用,便携式消费类电子设备的设计人员也需要减小系统噪声,这相当具有挑战性,因为电池供电设备中的信号电压很小,系统的精度取决于其本底噪声。为了从信号调理电路中获取最低的本底噪声和 ...… 查看全部问答> |
|
最近做嵌入式开发,我的magicARM2410的ADC驱动总算自己写出来,但是目前又遇到一个问题,那就是,ADC驱动和magicARM2410 linux试验箱的TOUCHSCREEN触屏驱动有冲突,我要使用我的ADC驱动,那就必须卸载试验箱linux已有的触屏驱动, 我想问下各位大 ...… 查看全部问答> |
|
大家好,最近在想一个问题: 我们通过键盘等物理工具,可以形成电流的通断/电压的高低; 然后由半导体的一些物理特性,将这些物理信号判决成逻辑的0或1 我想反过来,如何将逻辑的0或1转换成物理信号的? 比如说8个比特 1000 0001 表示将芯片的0 ...… 查看全部问答> |
|
双击目录,然后就出现如下情况了 Data Abort: Thread=83cfe400 Proc=821267c0 \'explorer.exe\' AKY=00000011 PC=03fb8cd8(coredll.dll+0x00048cd8) RA=03e81f04(commctrl.dll+0x00041f04) BVA=0a11ffff FSR=00000003 Prefetch Abort: Thread=83 ...… 查看全部问答> |
|
如图,怎么觉得heater resistor 不会工作呢。 R291为负温度系数热敏电阻,常温为22K,比较器LM311输出高电平,这样mos管闸断,heater没有电流流过。… 查看全部问答> |
|
课程设计刚做完,发个秒表的程序分享下。实验版是Altera公司的ep2c5q208c8,晶振为50Mhz。功能为复位,启停,用6为数码管显示。精确到1/100s。程序为:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_U ...… 查看全部问答> |
|
/*****************************************************************************\\ 文件名: main.c 描述;用于MSP430F149。 异步通讯。 版本:4.20.1 sun_seven \\********************************************** ...… 查看全部问答> |
|
我做一个CORDIC算法产生正弦波的程序,用Q2编写,但是modelsim能仿真出来正弦波波形,但是signaltap抓的波形是上下相反的,一直找不到原因,希望高手能帮帮忙,谢谢啦! 下面是我的程序: module NCO(clk,rst_n,ena,fre_chtr,pha_chtr,sin_out_r, ...… 查看全部问答> |




