两片595级联六个数码管亮度不够
用两片595级联驱动六位数码管,显示出来的效果太暗了,求解……求高手指点!以下是相关程序:sbit sda=P3^4;
sbit shck=P3^6;
sbit stck=P3^5;
for(i=0;i<8;i++) //位码输出
{
shck=0; /*移位时钟*/
for(k=0;k<10;k++) {;}
shck=1;
sda=0;
}
for(i=0;i<=8;i++) //段码输出
{
shck=0; /*移位时钟*/
for(k=0;k<10;k++) {;}
shck=1;
sda=1;
}
{ /*存储时钟*/
stck=0;
for(k=0;k<10;k++) {;}
stck=1;
} 亮度由软件和硬件共同决定。
LZ给个电路图吧。 mostly because you didn't do it right. 回复【楼主位】wang_fei
----------------------------------------------------------------------
http://cache.amobbs.com/bbs_upload782111/files_46/ourdev_686487TDL27Q.png
(原文件名:两片595级联.png) 硬件是没有问题的,别人做好的,用了好多年,量产了的,我现在写这个程序只是来测这六个数码管的,用上面的程序可以显示但亮度不够差很远,<center>http://cache.amobbs.com/bbs_upload782111/files_46/ourdev_686487TDL27Q.png 限流电阻750Ohm
太大了点吧
本来每个只有八分之一的时间,还加这么大的限流电阻 750限流电阻太大,改为150试试。
扫描频率? 首先,LZ使用了蓝色的数码管。蓝色数码管的正向压降为3V左右,而LZ的限流电阻用了750Ω,这样流过LED的电流最大不超过3mA。LED的工作电流一般取5~10mA之间。
其次,74HC595的驱动能力有限,无法提供正常点亮这么多LED的电流。
LZ可以把电阻换成220Ω,并给位选增加一级ULN2803驱动试试。 回复【楼主位】wang_fei
-----------------------------------------------------------------------
<center>http://cache.amobbs.com/bbs_upload782111/files_46/ourdev_686502CQNKP1.jpg 首先十分感谢楼上兄弟的回贴,呵呵,这硬件是不能改的,也是没的问题的,我公司已利用那个电路作为伺服驱动器的显示面板用,有上十年了,我现在就是想自己写个程序来检测那几个数码管,感觉需要多扫描几次可是不能在什么时候扫,就像六楼的兄弟说的那样,试了多次还是不行,实际电路上那是红色共阴数码管,并且仿真一直都很好,一上硬件电路就不行了…… 既然有好用的样板,测测两个595输出,照着做呗。
另,你确认样板所有硬件和元器件和你现在用的完全一样?
以我的经验,750不可能太亮 回复【楼主位】wang_fei
-----------------------------------------------------------------------
跟硬件应该没关系,应该跟扫描频率有关。 回复【10楼】packer
-----------------------------------------------------------------------
和我想的一样,呵呵,所以昨天就测了那两个595的输出,然后再测测自己写的程序的输出波形发现差别很大,明显段码被扫了两次,不知道该怎么才可以做到这点的,找不出问题在哪里……,只能说现在水平有限,产品的程序是总工程师写的,之前是华工博导,朋友加我QQ吧,792361514,硬件你不用怀疑的,因为我就是来修这个显示面板,很楚的。 还是第一次看见595这么用的,一般是作静态显示。 点亮的时间不够长!加长一下就能搞定 肯定应该是75欧
是不是电阻上写着750,那应该是75欧,750欧的电阻应该印着751
要是75欧就合理了,无论如何750欧太大了,哪还有什么电流. "以下是相关程序:"
this portion of the code has nothing to do with the brightness of your display.
what you should do is to use a timer interrupt and in the isr, send the data to the display. 595和164不同,怎么会有个扫描频率,也没有必要将输出锁定使劲刷 回复【15楼】ibmx311
肯定应该是75欧
是不是电阻上写着750,那应该是75欧,750欧的电阻应该印着751
要是75欧就合理了,无论如何750欧太大了,哪还有什么电流.
-----------------------------------------------------------------------
有道理,估计是将75欧认做750欧了!如果硬件不能改,只能降低扫描频率了,可是降多了要闪烁的!如果硬件不能改,LZ也不能改LED颜色的,这个颜色也与功率相关! 回复【16楼】millwood0
-----------------------------------------------------------------------
我也是这么想的,频率过高 750电阻太大,毫无疑问 要是电阻是750欧可以确定是电阻太大了,硬件电源电压5V算,红色的LED压降估计在2.7-3V之,按2.7V算静态电流=3.06MA,肯定不够,一般LED电流为5-20MA,以选10MA为多,动态扫描6位,实际只有1/6时间在亮,肯定电流不够, 75欧算静态有30MA,但实际只有1/6时间在亮,所以75欧比750欧要合适,但也没有实静态10M亮。 和LED是否是高亮的也很有关系! 电阻是750欧姆的这肯定是不会错的,板子上贴的电阻上面标称是751一共有八个,明天上传个实际的电路板来…… 用100欧电阻,立竿见影~
除非是那种劣质的595···本身驱动能力就不足···
不然一般一个595可以出几十MA电流····(总共) 回复【23楼】wang_fei
电阻是750欧姆的这肯定是不会错的,板子上贴的电阻上面标称是751一共有八个,明天上传个实际的电路板来……
-----------------------------------------------------------------------
楼主貌似根本不是来请教的,别人提的意见直接就肯定不会有错,何以如此坚决,既然如此,又何必提问?
不管是谁设计的电路,用了多少年,不合理都是很正常的!
750欧驱动八位数码管,并不是没有可能,但是必须保证该批次数码管是0.5ma即可的超高亮数码管!
如果换了个批次的数码管,很可能就比较暗,对比度不太好。
程序没看,但是一般情况下不会写出问题,本来LED结电容很小,而且建立时间和余晖时间几乎可以忽略不计,频率问题通常不大。有点常识就几乎没犯错的地方。
595的驱动能力很难有问题,因为是扫描,同一时刻只有一位数码管亮,能用多少电流。。。 回复【25楼】yrloy 断雪
-----------------------------------------------------------------------
同意。大家都算得这么清楚啦。 个人经验,亮度不够,软硬件都有可能有问题,不过第一感觉这个电阻偏大。
同时要说的一点是,哪怕是用了十年的电路,也不能肯定的说是没有问题的,就算当年没有问题,在现在也不一定,各种器件都是在不断的更新的。并且有些电路是介于能用和不能用之间的,一批之间可能大部分好,但有一小部分不好,没有经验,你很难搞清楚是电路设计的问题还是元器件的问题。 看程序分别输出ffh和00h;真不知道是动态显示还是静态显示;全部点亮和一位一位点亮电流时不同的;
750电阻就不说了,反正和没说一样 限流电阻太大了 都乱扯一气啥和啥啊???? 这种电路完全能做到很亮就是数码管驱动复杂点而已 比如显示一个8字 点亮 A B C D E F G段你送0XFE过去肯定显示8 但是不够亮 为什么? 大家都知道公共级驱动电流不够。
要够亮,你可以一次送A 再送B 再 C就是一个8字送8次笔段组成一个数字8 这样子亮度绝对没问题前提是CPU 速度要够快哦 renwocai 发表于 2011-10-24 13:33 static/image/common/back.gif
还是第一次看见595这么用的,一般是作静态显示。
刚学单片机的时候都是拿两片595驱动 8 位 数码管的,只是最近 才 作静态显示用 ,6个数码管 6个595... 呵呵!的确要软硬分析!!!
动态扫描的话750的确大了,而且一般位选要与段选结合在一起编程比较好!
静态的话我试过1K的限流电阻都可以很亮。 既然你说硬件没有问题,那就是你软件的问题了。
看你的595输出没有多大问题,多发一点代码上来吧,不知道你的这段显示代码怎么调用的。
页:
[1]