6950| 4
|
菜鸟起飞 (第二问) ---- 数码管的选择 |
本帖最后由 Youyou 于 2014-3-19 18:35 编辑 共阴极的数码管,就是把各个发光二极管的阴极连在了一起,因此叫共阴。如下图所示: 如果想点亮一个发光二极管,那么需要给它供电(5V),如图:GND接到电源的负极,发光二极管的+端接到电源正极,此时在发光二极管上面产生电压,从而使发光二级管发光。所以,驱动方式为高电平驱动。 共阳极的数码管,就是把各个发光二极管的阳极连在了一起,因此叫共阳。如下图所示: 如果想点亮一个发光二极管,那么需要给它供电(0V),如图:VCC接到电源的正极,发光二极管的-端接到电源负极,此时在发光二极管上面产生电压,从而使发光二极管发光。所以,驱动方式为低电平驱动。 各有各的优点,比如像8051单片机,上电后默认高电平,那么可以使用共阳数码管,防止上电后全部点亮。如果想要上电后全亮进行自检,就可以使用共阴数码管。 关于耗电量,其实都是一样的,只是电平的驱动方式不同而已。如果您用的数码管比较多,用动态扫描倒是可以省电的,而且还能减少资源占用呢。:lol |
本帖最后由 killusa 于 2014-3-20 11:11 编辑 Youyou 发表于 2014-3-19 18:32 多谢指点!!! 上网搜了一下“动态扫描”,发到这里备用。尤其是后面的“消影” ,有营养。 动态扫描原理及实现 数码显示板上一共有8 个数码管,如果按照传统的数码管驱动方式(静态扫描方式),则需要8 个七段译码器进行驱动,这样既浪费资源,有时电路工作也不可靠。所以现在最常见的数码管驱动电路已经不用上述的静态扫描方式了,而是采用动态扫描显示的方式,这种方式只需一个译码器就可以实现电路正常、可靠的工作,这样大大节省资源。 动态数码扫描显示方式是利用了人眼的视觉暂留效应,把八个数码管按一定顺序(从左至右或从右至左)进行点亮,当点亮的频率(即扫描频率)不大时,我们看到的是数码管一个个的点亮,然而,当点亮频率足够大时,我们看到的不再是一个一个的点亮,而是全部同时显示(点亮),与传统方式得到的视觉效果完全一样。因此我们只要给数码管这样一个扫描频率,那么就可以实现两个以上的数码管同时点亮。而这个频率我们可以通过一个计数器来产生,只要计数频率足够大,就可以实现我们的要求。事实上,因为数码管点亮不是瞬间就可以的,它也需要一定的时间,该时间与数码管的选择有关系。为了折中这一对矛盾,实验中一般可将计数频率选择在100Hz左右肯定可以满足上述两个要求。 动态数码扫描显示的硬件电路设计要求是:对共阴数码管,将其公共端阴极接三八译码器的输出,三八译码器的输入为位选信号输入;将8 个(或更多)的数码管的相同段接在一起,然后引出。原理图如图4-1所示: 图4-1 动态数码扫描显示硬件电路原理图 浅谈动态扫描数码管“消抖”、“消影”问题 最近工作的需要,又涉及到了数码管的动态扫描问题。在此把其中需要注意的地方记录一下,总结一下,也和爱好电子朋友们分享一下,由其是当代的大学生们,及那些刚刚踏入这一领域的新手们。虽然简单,但也值的注意。以下所述为无锁存,三极管驱动的共阳四位一体的数码管。 问题1:动态扫描时,有抖动。 对这个问题,相信很多人会说,有抖动那就说明你扫描的太慢了呗,增加扫描的频率不就可以了吗?那此时,请问一下自己,扫描的频率是多少才合适呢?在网上看到一些“大牛”谈到不能低于每秒24次的频率,对于4位数码管来说,也就是10.4ms/位。按照这个频率我试了一下,发现显示有抖动,没办法,可能是程序上有些臃肿吧(有高手的话,还请指点下),只好再往高调些。想到以前那种大头显示器的,显示频率为65Hz以上,对于4位数码管来说,可以折算成3.4ms/位。当然人家显示器比数码管复杂多了,这个拿这儿来肯定是嫌快了,10.4ms/位的咱做不到,5ms/位的咱还做不到吗?经过试验5ms/位的显示效果还是相当不错的,不管是从数码管的亮度还是抖动方面来说,都是没问题的。而5ms的中断对大多数程序来说也是有足够空间的,一般也不会出现什么中断冲突的情况。 问题2:动态扫描时,不显示的段有暗红。 对于这个问题,很多人会说,你扫描的太快了呗,不知道有余辉啊,不知道人有眼睛有视觉暂留效应啊?其实不然,这里关键的一点在于“消影”,这一点对于大学生来说,可能会很陌生,因为教科书上根本不会提,大部分资料上也不写,只是在程序中有这样的代码。所谓的“消影”,其实就是要你在显示下一位前,把上一位关断。因为单片机的IO口,在高低电平转换时,是需要时间的。而我们要做的,就是避开这一边沿时间。 说完技术上的,也写点自己的感想。其实对于大多数的学生来说,大家都做过数码管的动态扫描程序。大家可能是因为,当时实验环境中有寄存器,也可能是对自己没有太高的要求,出结果就行,因而忽略了很多的细节问题。像在扫描频率的这个问题,大家在学校时,可能都会选择1ms的中断来进行扫描,因为大部分书上都是用的这个扫描的频率。但当时的环境是,你程序单—,不会出什么问题。而在实际应用当中,不会是只有一个数码管的动态扫描程序的,你会有很多的其它函数,会有不只一个的中断。这时,你的问题就会来了。所以说,除了特殊情况外,定时器中断时,初值越小越好,中断服务程序越短越好,这样就不太会影响到其它程序的执行,定时误差也会减小。而像在“消影”这方面的问题上,很多学生们就更加的不注意了。因为没有实践过的老师他不讲,教科书上也没有,资料上也很少提。要看资料的话最好看那种,工程师编写的,像郭天祥,周立功等。最后希望大学生们,能多看不同的书,多做实验不要小视任何的细节问题。而且对程序对硬件来说,也没有小问题,因为这些小问题都是不定时的炸弹。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed