搜索
bottom↓
回复: 55
打印 上一主题 下一主题

发一个小儿科的练手题 16*16单色点阵模块

[复制链接]

出0入0汤圆

跳转到指定楼层
1
发表于 2015-7-12 20:18:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
发一个小儿科的练手题:    16*16单色点阵  可滚动图形(包括汉字)显示模块的硬件与软件设计与实现。

题目来源:
1/  设计一块MCU综合实验板,上面需要一个能作点阵显示的模块。一般的采用8*8 模块。 我坚持16*16。理由:比8*8模块 难至少2个量级。
2/  查看了市面上很多有16*16点阵模块的实验板,也有很多例程提供,基本上是不能在实际工程中运用的。不管是硬件还是软件,问题多多。
3/  今年暑假又有一批天之骄子在校演练,准备参加全国大学生电子竞赛,以此作为一道入门的考核练手题,看看基本功到底是否扎实。

有兴趣的欢迎跟帖讨论:
1 、 先给出最正确的硬件原理图,给出必要的器件参数,和设计理由
2、 讨论与MCU对接的方案,给出优点和不足
3、给出正确合理的软件驱动的设计方案
4、设计代码实现

限定条件:
1/ 缺省为5V系统,3V系统请说明
2/ 假定点阵中一个发光二极管的点亮达到正常亮度时的正向电压为1V,电流3mA
3/ 显示一,水平向左移动显示“小儿科练手题”;显示二,由下向上移动显示“电子竞赛”。一个按键用于切换显示。
4/ 可以采用任何你熟悉的MCU,建议用8位的练手(32位MCU的软件比较容易些),练一下软件设计能力和技巧。

==================================
下面是一个16*16的点阵模块原理图,以及可供选择的常用驱动元件(常用是指我看到的绝大数电路扳电路中用到的器件)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。

如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》

出0入264汤圆

2
发表于 2015-7-12 20:25:01 | 只看该作者
马老师,前几年这个题目不是在论坛出过一遍了么。

出0入0汤圆

3
 楼主| 发表于 2015-7-12 20:33:11 | 只看该作者
本帖最后由 machao 于 2015-7-12 22:00 编辑

我见到的硬件驱动方案:

1、直接用MCU32个I/O驱动
2、采用MCU个16个I/O和2片164级联
3、采用MCU个16个I/O和2片595级联
4、采用4片164级联
5、采用4片595级联
6、采用PNP三极管+。。。
7、采用NPN三极管+。。。

分析各种方案,找出优点和不足,最后给出一个最优的设计图

出0入0汤圆

4
 楼主| 发表于 2015-7-12 20:48:38 | 只看该作者
本帖最后由 machao 于 2015-7-12 21:21 编辑

使用三极管的给出6个图,请分析哪个是正确的。当然也可以给出其它使用三极管的设计






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入59汤圆

5
发表于 2015-7-12 20:54:52 | 只看该作者
行业内使用图2:
另外 一般使用4953的MOS管做驱动不使用三极管;  HC138行选择;  列驱动IC 室内用HC595; 户外使用MBI5034 之类的芯片;
HC164是远古时代的IC,没有人使用的

出0入12汤圆

6
发表于 2015-7-12 20:55:55 | 只看该作者
好吧,真正简单实用,方便生产,上这个吧
顺便说下,LED屏已经是烂白菜行业,彻底烂掉的行业,谁做谁知道

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

7
 楼主| 发表于 2015-7-12 21:00:22 | 只看该作者
mcu_lover 发表于 2015-7-12 20:25
马老师,前几年这个题目不是在论坛出过一遍了么。

升级了,以前是8*8,硬件和软件都没有难度。现在16*16,综合、全面、问题更多。如果您会,先给出一个硬件方案。并评判其它方案的优劣。

根据应用,要硬件设计+PCB设计+软件系统设计 统一考虑。

前段时间到一个学校参观,看到学生作16*16*16 的光立方,问电路、驱动方式,不知道。淘宝买的套件,2个学生焊了4096个发光二极管(仅这点精神值得点赞),采用给的代码点亮,最后说,效果不怎么好。

我又为这2个学生可惜,花费那么多时间,真正学到了什么?仅焊接技能?

出0入0汤圆

8
发表于 2015-7-12 21:03:49 | 只看该作者
前排留名,刚入门单片机的时候,感觉点阵屏很深奥,彩色屏用8位单片机刷不过来,那时只是听说用32位单片机做的,F3.75  

出0入0汤圆

9
发表于 2015-7-12 21:32:14 | 只看该作者
skynet 发表于 2015-7-12 20:55
好吧,真正简单实用,方便生产,上这个吧
顺便说下,LED屏已经是烂白菜行业,彻底烂掉的行业,谁做 ...

你好,看到您在帖子里说LED这个行业已经烂掉,请问这个具体指什么呢?已经饱和了么?另外我跟同事准备做带有附加功能的LED 屏,听您这么说有点犹豫了,还没有深入了解这个行业

出0入0汤圆

10
发表于 2015-7-12 21:37:25 来自手机 | 只看该作者
大洋哥 发表于 2015-7-12 21:32
你好,看到您在帖子里说LED这个行业已经烂掉,请问这个具体指什么呢?已经饱和了么?另外我跟同事准备做 ...

民工时代,除非你有过硬的关系。

驱动IC,屏,驱动器,电脑,软件,施工,这些都很细化了。

竞争非常激烈,早已经是超饱合状态。

至于你说的什么个性化,建议先淘宝一下,说不定你所谓的创意,已经烂市了。

出0入0汤圆

11
 楼主| 发表于 2015-7-12 21:38:14 | 只看该作者
polarbear 发表于 2015-7-12 20:54
行业内使用图2:
另外 一般使用4953的MOS管做驱动不使用三极管;  HC138行选择;  列驱动IC 室内用HC595;  ...

欢迎行业人士提供方案。

您说的我明白,但很多天之骄子不明白。上面的电路有几张图是我在某公司做新入职MCU工程师培训时,一位国内知名工科高校毕业的,参加全国大赛获奖的毕业生问我的。他只知道有问题,但不知道为什么,说问过他的导师也回答不出。(也可能是当时想试试俺的水平,给个下马威)。

练手题已经说明了,实验板的设计,当然室内用了,二极管点亮的电流3mA,用三极管够了,(还有很多的板只用595的)主要是看基础知识掌握任何。

6张采用3三极管的,那些不行,为什么不行?只有一个可以的吗?为什么可以?怎么定义行,怎么定义列?为什么用138,优点和缺点是什么?为什么不能用164,仅仅是因为它是过时的IC?

这些都要分析透彻,说明理由的。

出0入0汤圆

12
 楼主| 发表于 2015-7-12 21:41:21 | 只看该作者
行业高手,这里是个小儿科练手题,不是设计一个户外的产品。
另外,如果连16*16的也玩的不好,也不要谈什么作真正的产品了。

出0入0汤圆

13
 楼主| 发表于 2015-7-12 21:44:01 | 只看该作者
行业高手,拜托放下身价,解释一下为什么要用三极管,或您们推荐的驱动芯片,只用595不行吗?为什么行业内使用图2,其它的图不能用吗?

出0入131汤圆

14
发表于 2015-7-12 21:56:56 | 只看该作者
本帖最后由 machao 于 2015-7-12 22:36 编辑

图1 和 图3 的三极管接法是正确的,但是限流电阻不对 当多个led点亮和单个led点亮时,电阻压降不一样 导致点亮不同数目时led亮度不均
图2 和 图4 应该是正确的
图5 和 图6 的三极管接法不正确,发射极和集电极会有压降,造成三极管有损耗

ps:没研究过点阵怎么控制……

==========================

machao:

谢谢您的参与。

3个结论是正确的,但是解释的不透彻(1),不准确或含糊(3)。
另外,不用三极管只用595可以吗(目前很多实验板是不用三极管,只用595的)
还有,图2与图4中的电阻大约在什么范围?2个图的行、列的定义一样吗?,假定图中16*16模块原理图方位与实际实验板的安装方位相同(16*16模块也可以转90度排在板上),那么采用图2好还是图4好?对软件设计有什么影响?

出0入0汤圆

15
 楼主| 发表于 2015-7-12 22:07:38 | 只看该作者
本帖最后由 machao 于 2015-7-12 22:19 编辑
lihuyong 发表于 2015-7-12 21:37
民工时代,除非你有过硬的关系。

驱动IC,屏,驱动器,电脑,软件,施工,这些都很细化了。


这个真的是事实。

LED屏的技术含量比较低,不过真的要作1块1024*768的彩色LED,刷新率达到30/秒,那还是要比区区一个16*16的单色模块也是要复杂的多。

我拿16*16是训练学生的基本功。

出0入264汤圆

16
发表于 2015-7-12 22:28:24 | 只看该作者
本帖最后由 machao 于 2015-7-13 00:57 编辑
machao 发表于 2015-7-12 21:00
升级了,以前是8*8,硬件和软件都没有难度。现在16*16,综合、全面、问题更多。如果您会,先给出一 ...


LED显示的驱动优化,如滚动与硬件密切相关。
软件显示方面可做的文章很多。
http://player.youku.com/player.php/sid/XOTQxNzY5OTcy/v.swf

============================================
哦,这个是您的杰作,您还有更高大上的DD吗。俺比不了,充其量设计一块练手用的实验板。不过俺已经说了,出的是小儿科的练手题,不能跟您的比。
高手,如何让现在在学的学子达到您那样的水平。



出0入59汤圆

17
发表于 2015-7-12 22:34:39 | 只看该作者
本帖最后由 machao 于 2015-7-12 23:18 编辑

用138不是用164是为了更简单地控制行扫描信号, 2片138就可以 用IO直接切换行信号,速度快; 164是移位的, 而且不带锁存;送数据时,输出脚会有你不想要的信号出现;不用595是现在的LED驱动IC都是16位的,而且恒流输出, 列信号不可以不用加限流电阻

PS:说这个行业烂掉的,只能是你是处于这个行业的低层; 只能做小店上的条屏或者是做拼装屏(买主板来批装的产品);  去深圳看看爱比森,看看联建,看看上海三思 都是过年产值过 10亿的企业;

当你在做山寨手机时,不要说这个行业烂掉, 不见华为,APPLE  三星活得好好的;

=====================================
machao:

1、首先校正一下,上面第一句最后“列信号不可以不用加限流电阻”中是误打的,正确应该为“ 列信号可以不用加限流电阻”。
2、使用恒流输出的16位IC,应该是不用加限流电阻,至少省掉15个电阻(不是16个)。
3、对于16*16模块,驱动电路不同,行和列的含意不同,取决实际电路。一些人会搞不清楚的。

最后,说这个行业烂掉不是我提出的,我只是同感。对于“烂掉”的理解站在不同的角度,理解也不同。在这个行业的人,对于其内在的含量非常熟悉,知道竞争很激烈。我不是行业内的人,把“烂掉“理解为技术已经相当成熟,形成规模了,要打入这个行业比较困难。

好了,不谈行业了。还是练手吧。学生需要从基础开始,一口一口的吃饭,才能成长起来。

出0入0汤圆

18
发表于 2015-7-12 22:49:48 | 只看该作者
自己玩的时候试过用HT1632C去驱动16*16点阵,效果不错

出0入0汤圆

19
发表于 2015-7-12 22:51:33 | 只看该作者
本帖最后由 machao 于 2015-7-12 23:28 编辑

马老师,问一下,假如是一个8*8的光敏三极管陈列,用8路adc怎样驱动得到数据
陈列原理图是和8*8的led陈列一样的,借用你的图片

陈列的照片


==================
请您先说说一个8*8点阵二极管如何采用扫描方式点亮吧。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

20
发表于 2015-7-12 22:57:48 来自手机 | 只看该作者
我不是这个行业的,一般最多也就是用到三个4位一体的。

你要说这个行业的顶尖者,一年100个亿也好,一万个亿也罢。

问题是,刚刚进入的那些个创业者,又有零点零几个亿的启动资金呢?

中国这么大,随便玩玩小众市场都能过得很滋润,何必去玩大众市场?

市场是很大,肉也很多,可是里面的狼更多,还有老虎狮子,甚至还有恐龙!

出0入0汤圆

21
发表于 2015-7-13 08:37:07 | 只看该作者

出0入0汤圆

22
发表于 2015-7-13 08:49:47 | 只看该作者
以前都是595恒压驱动的,现在出了恒流驱动的片子,价格竟然一样,合每路就几分钱,所以好多都改恒流驱动了,你让我做肯定用恒流驱动的片子
掌握基本的知识,挖掘MCU的潜力是需要的,不过了解器件发展的情况也很重要

出0入0汤圆

23
发表于 2015-7-13 11:23:41 | 只看该作者
我接触的实际产品中,确切的说是用5的多:
1.方便级联,多个模块可以连起来,全部用595的话,硬件上级联不方便
2.行信号用接正极,电流方向,可以使列驱动芯片驱动能力好一些。

另外用595恒压的没有用横流MBI5026这类芯片好,一般的方案 都是4953+5026,硬件保护做得好的,有用74HC123等,可以防止没有信号的时候,烧行驱动芯片或LED。。。。

出0入0汤圆

24
发表于 2015-7-13 13:40:25 | 只看该作者
这题目考核的硬件知识更多 软件方面也不简单!

出0入0汤圆

25
发表于 2015-7-13 13:57:33 | 只看该作者
当年大三的时候我就做来练手了,89c52控制。。。

http://v.youku.com/v_show/id_XODAxMjExNTY=.html?from=y1.7-1.2

出0入0汤圆

26
 楼主| 发表于 2015-7-13 15:08:14 | 只看该作者
学生在校学习MCU课程,有条件实践的大部是基于学习实验板上开始练手的。实验板上有一些常见和经常使用以及典型的外围模块或电路,它们本身不能成为一个产品,都是从一些典型应用中提取出来的,其目的是一步一步让学生掌握一定的基本硬件设计和软件设计的思路和方法。

别小看这些基本的,看似小儿科的训练,正确的学习和指导,会使学生逐步建立全面的、综合的、以及正确的软硬件系统设计能力,为后面向高层次和实际应用发展奠定扎实的基础。反之则起到相反的作用。

最典型的例子是,以前很多教科书中的按键检测都是采用软件延时20ms的消抖方法,甚至是许多STM32的教科书中也采用软件延时消抖。致使许多学生进入工作后,在设计应用产品时还只是会使用软件延时消抖的方法。

本人在学校担任MCU方面的教学工作,本论坛也只是一个学习MCU的技术论坛,而不是某一个或一类电子产品设计的论坛。作为学校的老师,我不知道所教的学生毕业后到底进入哪个行业,是设计MP3随身听,还是在一个国际电子仪器公司设计高精度的频率计,还是在一个LED屏公司从事研发工作(要知道现实是,现在有很多学电子的学生,毕业后根本不会,或根本就不具备从事硬件开发工作和能力的)。但是如果这个学生勤奋努力,喜欢电子,那当他学习掌握了好分析问题的方法,以及正确的设计思路和方法的话,那么他不管进入哪个行业,其潜力是巨大的。

出0入0汤圆

27
 楼主| 发表于 2015-7-13 15:52:46 | 只看该作者
本帖最后由 machao 于 2015-7-13 17:41 编辑

我看到也使用过一些开发学习板,早期推出的板上通常有一块8*8的点阵模块,而现在的一些板子上则使用了16*16的点阵模块。采用这样的模块主要是能更好的显示汉字和图形。

但是很多学生最后给出的设计实物都有一个通病,就是显示亮度不均匀,效果不好,再看那代码,根本就是杂乱无章,又臭又长。问道原因说是网上的参考代码,或实验板所配光盘的例程。但让他们自己去找出问题,基本都是摇头的放弃的。

实际上,很多实验板上16*16模块的驱动电路是有问题的,大都是按照8*8模块“继承”下来,连软件也是如此。所以把它们整理一下,作为练手题讨论,因为这个DD是设计涉及到硬件和软件,以及两者之间综合与平衡。

下面从基本原理和硬件开始做些分析:

首先,大家都知道点亮这样的点阵模块的方法是通常采用动态扫描方式,每次扫描点亮一行(称为行扫)或一列(称为列扫),对于8*8的模块行扫还是列扫很多人是不注意的,不会根据硬件驱动方式去评定应该使用哪种扫描方式,因为8*8产生的亮度不均现象不是那么明显。

另外就是要考虑到完成驱动点阵模块扫描任务,其CPU的占有率应该尽量的少,让CPU可以有更多的时间做其它的任务。因为显示模块通常在一个应用中只是其中的一个外围设备。

先制定基本的扫描间隔2ms。如要保证显示均匀不闪烁,“刷屏率”必须大于25帧。倒算一下:设定每行扫描点亮时间为2ms,那么刷一屏的时间为2*16=32ms。这样每秒种的刷频率为 1000/32=31.25帧,大于25帧。要效果好的话, 最好刷频率达到50帧,但这样驱动点阵模块扫描任务对CPU的占有率将增加,使得CPU作其它事情的时间减少。

在CPU的系统时钟频率不变的情况下:
如果行扫描间隔为2MS(31.25刷新率),如何估算其CPU的占有率?扫描间隔为2ms,既是意味者2个毫秒就要执行一次点亮一行的代码。假定这些执行代码需要0.05ms(在KILE中具体可以查看到产生的汇编指令条数作估算),那么CPU占有率为0.05/2 = 0.025,即为2.5%,此时CPU有97.5%的空余。
如果行扫描间隔为1MS(62.5刷新率),那么扫描间隔为1ms,既是意味者1个毫秒就要执行一次点亮一行的代码。同样假定这些执行代码需要0.05ms(系统时钟频率不变),那么CPU占有率为0.05/1 = 0.05,即为5%,此时CPU有95%空余。

0.05ms是50us,能执行多少条指令?评估一下如果用STC51,工作在12M,1T方式,其平均一条指令的执行时间为2T=2/12m = 0.17us。50us/0.17us = 294条汇编指令。(标准51工作在12M,其平均一条指令的执行时间为2us,50us/2us = 25条指令,这基本上已经不能够完成行扫描的任务了)。这里还没有考虑中断进入的时间,现场保护的时间,以及现场恢复时间和中断返回时间。

以上可见,如果合理的硬件设计能使扫描点阵的执行指令减少,那么CPU的效率也会提高。

一个练手题,可能只是针对一个模块,但是在练手时,需要考虑到这个模块可能是将来一个比较复杂产品的一个组成部分,一个用于显示的外设,CPU还要作更多的事情,还要作其它的复杂计算。如果这样一个模块的实现需要CPU全力为其服务的话,这样的练手层次就比较低了。

待续。。。。。。

出0入0汤圆

28
发表于 2015-7-13 16:33:25 | 只看该作者
毕业设计我就做的这个,用的是PNP,NPN驱动,8*8*4组成16*16
程序是用汇编写的,当时不会用C写51程序
实现了一个字一个字,左右移动的显示方式

出0入0汤圆

29
 楼主| 发表于 2015-7-13 17:05:42 | 只看该作者
yiminglei_2 发表于 2015-7-13 13:57
当年大三的时候我就做来练手了,89c52控制。。。

http://v.youku.com/v_show/id_XODAxMjExNTY=.html?from= ...

做过很好,欢迎参加讨论。比如硬件驱动方式,字形取模方式,如果既要水平移动,又要上下移动,代码是否需要大量修改?上下移动时显示效果如何?

还有我贴出图中哪个驱动电路正确,其它的为什么不行?教给学弟们一些经验。

出0入0汤圆

30
 楼主| 发表于 2015-7-13 17:11:23 | 只看该作者
ccyhyxt 发表于 2015-7-13 16:33
毕业设计我就做的这个,用的是PNP,NPN驱动,8*8*4组成16*16
程序是用汇编写的,当时不会用C写51程序
实现 ...

为什么要用2种三极管?用了几个?一种类型的不行吗,能省掉些吗?比如用595,不用三极管?要成本核算的。

汇编要懂,要会,但现在我也不提倡用汇编编写系统软件的。用好、用精C也不是那么容易的

出0入0汤圆

31
 楼主| 发表于 2015-7-13 18:16:39 | 只看该作者
本帖最后由 machao 于 2015-7-13 18:33 编辑

下面我们看一下硬件方面的设计。

1、已经设定了一个发光二极管正常点亮的电流需要3mA,正向压差1V,那么同时点亮一行(列)上16个二极管的总电流需要48mA
2、普通138、595芯片引脚的输入输出电流一般只能达到35mA。(164不适合,上面已有朋友说明了原因:没有锁存功能,另外其引脚的驱动能力也只能达到30mA)
3、传统51的I/O口是准双向口,其输出“1“时,能提供的拉电流只能到0.2mA,输出”0“时,可以容纳的灌电流可以达到20mA
4、新的MCU,以及许多改进型51,可以将I/O口设置成输出方式,这样其输出“1“时,能提供的拉电流也达到20mA,输出”0“时,可以容纳的灌电流可以达到20mA

从上面2、3、4点看出,对于16*16的点阵,仅使用MCU的I/O口以及普通的138/595都不足与提供48mA的电流。所以那些只是用MCU的I/O,或配合595做驱动的电路,已经存在硬伤了。这是造成显示亮度不均(点一个特别亮,点的个数多,亮度减少)的一个重要原因。

我有一次培训中,一个学员针对显示亮度不均给出了一个解决方法,他花费了大量的时间编写了一个算法,这个算法用于调整每次的扫描时间:根据本扫描行所要点亮的二极管数目,确定该扫描行点亮的时间。即他的每行扫描间隔是不同的,本行点亮的二极管少,点亮的时间短,而需要点亮的二极管越多,点亮的时间也越长。这个学员应该是非常聪明的,但是我说,如果驱动硬件设计正确的话,软件还要那么费事吗,而且这样做也占用了大量的CPU时间,大大减低了系统效率。

所以,我在3楼贴出的现在实验板上的7类驱动电路中,1、2、3、4、5均有问题。如果你手上的实验板有16*16模块,请查看一下驱动电路,如果属于前5种的,那么显示亮度不均是必然的(如果是使用的大功率驱动的595,或特殊性能的595则另当别论)。

1、直接用MCU32个I/O驱动
2、采用MCU个16个I/O和2片164级联
3、采用MCU个16个I/O和2片595级联
4、采用4片164级联
5、采用4片595级联
6、采用PNP三极管+。。。
7、采用NPN三极管+。。。

所以,正确的驱动电路必须是采用能过承受48mA以上电流的大功率的驱动器件,当然采用的是三极管。三极管在饱和情况下,可以提供大于100mA的驱动电流。(行业中通常使用专用的器件,这在上面已经有行业内朋友提供信息了)

出0入0汤圆

32
发表于 2015-7-13 18:21:28 | 只看该作者
machao 发表于 2015-7-13 18:16
下面我们看一下硬件方面的设计。

1、已经设定了一个发光二极管正常点亮的电流需要3mA,正向压差1V,那么 ...

如果cpu不干其他活,那么cpu时间不值钱啊,加三极管才值钱。

出0入131汤圆

33
发表于 2015-7-13 18:54:18 | 只看该作者
本帖最后由 machao 于 2015-7-13 20:55 编辑
asj1989 发表于 2015-7-12 21:56
图1 和 图3 的三极管接法是正确的,但是限流电阻不对 当多个led点亮和单个led点亮时,电阻压降不一样 导致 ...


确实,就像马老师你说的选用三极管还是595 这个得从电流方面来考虑,导通16个led 需要48ma的电流 595恐怕承受不起
电阻 = (电源电压 - led压降 - 三极管饱和压降Vce ) / led 电流
大约在 1.3K 的样子

====> OK!通过调节R的大小,也能改变亮度,但要在驱动能力范围内。

2个图的行、列的定义一样吗?,假定图中16*16模块原理图方位与实际实验板的安装方位相同(16*16模块也可以转90度排在板上),那么采用图2好还是图4好?对软件设计有什么影响?
如果仅仅是16*16的点阵 我觉得无所谓
对软件肯定有影响,就是扫描方式不同而已,软件改改就行了

====》不是无所谓,如果效果仅作水平移动,那么最好采用列扫方式,同时取字模时按列取,这样程序设计简单
====》      如果效果仅需要上下移动,那么最好采用行扫方式,取字模按行取,程序设计简单。     那么水平、上下都要移动,哪种方式好?
====》所以采用NPN还是PNP,根据实际需要确定。还要注意PCB布板时模块的方向,转动90度,可能程序就要复杂。

如果我来写这个软件 我会定义个32字节的数组(8位机),这32个字节作为显示缓存,那么显示的内容与这个32个字节一一对应,这样改变显示内容的时候,我只改变这个数组内容即可。
====》ok! 这个方法是正确的,使用显示缓存可以将程序层次化,模块化。此时扫描显示程序可以相对独立,属于底层的驱动程序。上层应用只要将要显示的内容正确填入就可以了

就像你上面分析的,如果每秒25帧,那么刷新一次16行的时间为 40ms,刷新一行的时间为 40/16=2.5ms

单片机定时2.5ms 产生定时中断,在中断程序中,切换显示下一行的内容。这样做起来应该比较容易

====》OK! 刷新频率高些实际效果会更好。但给予CPU的压力更大。所以中断显示服务程序能够越简单越好。这个也与硬件电路有关。如果采用4片595,尽管只占CPU的3个I/O口,但32个BIT串出,如果用I/O口模拟串出时序,那要比使用138甚少慢几十倍。单单一块模块可能还没有问题,但显示只是系统中的一个部件,CPU还要做其它事情,硬件的设计也是需要考虑的。

=============================
machao:
谢谢这位朋友的参与。借他的帖子,做些更多的解释

出0入0汤圆

34
发表于 2015-7-13 19:18:08 | 只看该作者
本帖最后由 machao 于 2015-7-13 21:06 编辑

[quote]machao 发表于 2015-7-12 20:33
我见到的硬件驱动方案:

1、直接用MCU32个I/O驱动

16*16点阵是由4个8*8的点阵组成的吗?如果是,马老师看看这个方案怎么样?



======================
图中U3/U4/U6是什么芯片,看一下它的驱动能力,这个图中这几块芯片的驱动能力要超过50mA,起到三极管的作用.

不过一般的IC芯片驱动能力不会超过30mA

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入264汤圆

35
发表于 2015-7-13 21:14:39 | 只看该作者
mcu_lover 发表于 2015-7-12 22:28
LED显示的驱动优化,如滚动与硬件密切相关。
软件显示方面可做的文章很多。

马老师是前辈,总是这么低调。我也不是什么高手。只是专注喜欢的领域,坚持做好一件事而已。
学生要有兴趣才能学习的下去,没有兴趣,拿刀架在脖子上估计也学不好的。剩下就是十年磨一剑的坚持不懈了。

出0入0汤圆

36
 楼主| 发表于 2015-7-13 21:35:50 | 只看该作者
deadline2012 发表于 2015-7-13 18:21
如果cpu不干其他活,那么cpu时间不值钱啊,加三极管才值钱。

不想抬杠。

如果你的CPU真的不做其它事情,或者有大把的空余时间,当然可以不用三极管。
可以提供一个16*16点阵模块的“动态变频扫描”的程序控制代码让大家学习学习吗?

出0入0汤圆

37
 楼主| 发表于 2015-7-13 22:02:33 | 只看该作者
mcu_lover 发表于 2015-7-13 21:14
马老师是前辈,总是这么低调。我也不是什么高手。只是专注喜欢的领域,坚持做好一件事而已。
学生要有兴 ...

同意您的观点。没有兴趣也不会到这里来浪费时间的。

我是闲的没事做了,但看到还是有那么一些有兴趣的年轻人,死脑筋的要往电子这条极为辛苦,也争不到大钱的路上奔,实在不忍心。
学校里面也的确没有多少学生愿意学,或愿意并认真的从基础学起。因为当前的社会是一个极其浮躁的社会。

感谢有网络。在这里可以按自己的意图和理念,按自己认为正确的方式,可以面对“更多人”或“没有人”的大课堂里上课。如果能有一个或几个从中得到受益,也值了。

出0入0汤圆

38
 楼主| 发表于 2015-7-13 22:44:12 | 只看该作者
本帖最后由 machao 于 2015-7-13 23:09 编辑

继续,接31楼

在31楼,明确了正确的硬件驱动应要使用三极管。也就是6、7两类。
那么在4楼贴出的6个图中,那个又是正确可用的。已经有网友指出图2和图4是正确的。那么另外4张问题出在哪里?下面作一个比较全面的分析。
1、


第1、3图是同一个问题:限流电阻的位置不对。以图1为例,当第一行的三极管导通扫描时,如果该行只有一个二极管亮,那么电阻上的压降为 R*3mA,而如果是16个二极管都亮时,电阻上的压降为 R*48mA。可以看出,该行上需要点亮的二极管越多,在电阻上的压降也越大,使得落在二极管上的电压减低,甚至低于1V,此时二极管也就不会亮了。

2、



图5、图6的问题是采用的发射极驱动。以图5为例,如果三极管饱和,那么三极管的发射极电压已经接近5V,而要使三极管导通,其基极电压必须高于发射极0.7v。实际上,基极上最高的电压只能是系统电压5V,那么这个三极管是不会导通的,那么二极管是不能点亮的(没有电流,或只有很小的电流流过)。
图6中的三极管导通,基极电压需要-0.7V才可以。但实际上是无法使基极电压低于0V的。

出0入0汤圆

39
发表于 2015-7-14 09:38:33 | 只看该作者
machao 发表于 2015-7-13 17:11
为什么要用2种三极管?用了几个?一种类型的不行吗,能省掉些吗?比如用595,不用三极管?要成本核算 ...

当时才毕业,学的知识不够,所以才那样,因为简单
并没有考虑其它

出0入0汤圆

40
发表于 2015-7-16 08:53:06 | 只看该作者
lihuyong 发表于 2015-7-12 21:37
民工时代,除非你有过硬的关系。

驱动IC,屏,驱动器,电脑,软件,施工,这些都很细化了。

哦,谢谢您了,我们也只是初步有一个想法,本来想跟wifi结合起来整个比较好用的电子屏,可以给小店铺使用。。

出0入4汤圆

41
发表于 2015-7-16 09:31:37 | 只看该作者
mcu_lover 发表于 2015-7-12 22:28
LED显示的驱动优化,如滚动与硬件密切相关。
软件显示方面可做的文章很多。

这个是软件仿真,然后再应该到实际项目中。

出0入264汤圆

42
发表于 2015-7-16 10:24:07 | 只看该作者
laujc 发表于 2015-7-16 09:31
这个是软件仿真,然后再应该到实际项目中。

显示基于framebuffer, 任何显示设备都可以支持。

出0入0汤圆

43
发表于 2015-7-17 11:08:30 | 只看该作者
还记得大学时期做的第一个东西就是电子点阵屏,看到这个标题又想起当年实验室的生活,挑灯夜战,番墙入舍,
记得当年做的是32X16的点阵,用的方案是138+164+NPN三极管做的,
虽然做成功了,但是现在返回去看当年的代码和设计,我自己都想扔了。
马老师支持你!

出0入0汤圆

44
发表于 2015-7-17 11:29:41 | 只看该作者
还记得大学时期做的第一个东西就是电子点阵屏,看到这个标题又想起当年实验室的生活,挑灯夜战,番墙入舍,
记得当年做的是32X16的点阵,用的方案是138+164+NPN三极管做的,
虽然做成功了,但是现在返回去看当年的代码和设计,我自己都想扔了。
马老师支持你!

出0入0汤圆

45
发表于 2015-7-17 15:30:08 | 只看该作者
1-4感觉都可以啊   但1和4需列扫描,2、3需行扫描。5、6不对。
另外三极管要工作在开关状态。

出0入0汤圆

46
发表于 2015-7-23 10:33:20 | 只看该作者
这么底层的模电数电。。。不要说思考,连看懂都是问题了。很痛苦。

出0入0汤圆

47
发表于 2015-7-23 11:56:59 | 只看该作者
贴两张源于FTDI的图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

48
发表于 2015-9-21 10:38:30 | 只看该作者
沉了。。。。。。。。这帖子

出0入36汤圆

49
发表于 2015-9-26 12:01:28 | 只看该作者
马老师好久没出手了

出0入0汤圆

50
发表于 2015-9-26 12:23:02 | 只看该作者
本帖最后由 3DA502 于 2015-9-26 12:24 编辑

三极管饱和后,有可能需要考虑退出饱和需要的时间,引起的高频特性劣化,这个参数在三极管的手册里面是有体现的

现在的LED屏刷新速率最高都有1000fps了,开关速率要求很高

出0入0汤圆

51
发表于 2015-9-26 16:16:54 | 只看该作者
学习了,

出0入0汤圆

52
发表于 2015-9-29 13:40:32 来自手机 | 只看该作者
顶起,别沉了,比我们学校老师讲的好多了。支持楼主。

出0入0汤圆

53
发表于 2015-9-29 13:43:48 来自手机 | 只看该作者
machao 发表于 2015-7-12 20:33
我见到的硬件驱动方案:

1、直接用MCU32个I/O驱动

马老师,想听听你的软件分析。

出0入0汤圆

54
发表于 2015-9-29 16:14:11 | 只看该作者
machao 发表于 2015-7-12 21:44
行业高手,拜托放下身价,解释一下为什么要用三极管,或您们推荐的驱动芯片,只用595不行吗?为什么行业内 ...

原因是代替595的恒流输出IC只能放在低端,所以只能高端驱动了。

出0入0汤圆

55
发表于 2016-5-3 10:16:19 | 只看该作者
一个好老师。。。。。。时代让您失落了

出0入0汤圆

56
发表于 2016-10-15 09:26:12 来自手机 | 只看该作者
马老师真是好老师,大大的赞,希望老师能继续分析下去
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-28 19:11

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表