不同位的数码管实物
LED数码管(LED Segment Displays)是由8个发光二极管构成。按照一定的图形及排列封转在一起的显示器件。其中7个LED构成7笔字形,1个LED构成小数点(固有时也写成八段数码管)这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会亮起,以形成我们眼睛看到“8.”的字样了。LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起的称为共阳数码管,发光二极管的阴极连接到一起的称为共阴数码管。在共阳数码管中,公共端一般需要接电源正极,然后需要哪一段亮,就把对应段的控制引脚设为低电平,而在共阴数码管中,公共端需要接电源地,然后需要哪一段亮,就把对应段的控制引脚设为高电平。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的,显示字符时候的字符库也是不一样的。(欢迎加个人dianzi126,QQ:2463515595或加我们的QQ群:300384358,大家一起讨论。)
数码管原理
A、静态显示驱动:
静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O多,如驱动4个数码管静态显示则需要4×8=32个I/O口来驱动,这样对单片机的I/O口是极大的浪费。故实际应用时必须增加外在的驱动电路进行驱动,然而又增加了硬体电路的复杂性,所以在我们设计一个产品的时候就需要做取舍的选择了。是要硬件简单,还是要节省单片机资源?
B、动态显示驱动:
数码管动态显示是单片机应用最为广泛的一种显示方式,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp "的同名端连在一起,另外为每个数码管的公共极COM增加位选通电路控制,位选通电路由单片机I/O口控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对COM端的位选通电路的控制,只有当位选通电路选通时,当前位才会显示我们输出的字形码。所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O口,而且功耗更低。
实际运用中,数码管显示电路中同样还需要接限流电阻(如何计算限流电阻,我们后续再来解析),但是限流电阻我们一般要比计算得到的值取的小一些,为什么呢?因为我们在实际运用中一般都会采用动态显示方式来驱动数码管,这样一来每个数码管其实不是一直都在亮,而是闪烁着了(只是我们人眼看不出来,不信你用手机摄像头对着动态显示的数码管拍照看看),自然亮度就会下降,我们就以减小限流电阻的大小来提高亮度。
在动态显示方式中,位选通电路我们一般采用三极管来做,把三极管作开关用。经验之谈,驱动共阴数码管时用NPN三极管,驱动共阳数码管时用PNP三极管,而我们最常用的就是8050和8550这两个(大尺寸数码管除外)。
共阴数码管驱动电路图
最后留个小问题,你看完了以上的介绍,是不是真的懂得数码管了?问题来了,假如当前我需要显示个4,那么“a b c d e f g dp”这些段哪些需要亮哪些不需要亮?再来一问,假如是共阴数码管,那显示4的显示码是什么?(十六进制数)
今天的数码管就说完了,后续小代还会继续把这个DIY时钟的其它部分分享给大家,最后等打样板子回来后我们会测试出成品,然后会把剩下的板子免费送给大家,有需要的朋友可以关注我们单片机技术宅。里面有干货哦,等你!!!