Answers:
这两个示意图是显示器的两个版本,顶部为公共阴极,底部为公共阳极。我假设您具有通用阴极版本。
您通过8个串联电阻将段A..G,DP连接到微控制器的8个I / O引脚。将引脚驱动为高电平将点亮所选数字上的LED。要选择4位中的任意一位,您可以通过NPN晶体管将相应的公共阴极设为低电平,然后再通过电阻从I / O引脚驱动该晶体管。
如果电源电压为5 V,并且使用的是红色LED,则可以使用150Ω电阻,而不是330Ω。还将晶体管的基极电阻值减小到2.2kΩ,并为晶体管使用例如BC337。
要驱动全屏显示,您首先要通过将其晶体管驱动为高电平来使其引脚12为低电平,然后为该数字段设置I / O。一段时间后,您将针脚12和段断开,然后将9接通,并再次接通第二个数字段。等等。如果您在不到2.5 ms的时间内从一位数字转到另一位数字,则整个显示将以10 ms或100 Hz的频率循环,这足以避免出现明显的闪烁。
您可以使用Maxim驱动程序,例如MAX7219,但它是Damn Expensive™:在Digikey以1秒钟为12.80美元。这样做的好处是,它可以为您处理多路复用,因此您只需将其与4位数字的段数据一起加载即可。它还具有软件亮度控制。
我检查了PIC16F690的数据表,与其他微控制器不同,其I / O似乎无法提供20 mA的电流(这令人失望)。因此,在端口2上也需要晶体管:
R1是端口2上的电阻之一。因此,您将Q1和R2插入它们之间,并对8个分段中的每一个重复一次。注意,Q2是PNP!任何通用的PNP晶体管都可以。