|
本帖最后由 yangcheng84 于 2011-10-18 21:50 编辑
595级联式电子屏钟表
万里江山2011-10-16
前段时间朋友送我一块LED屏幕,是16*32的点阵屏幕,是他公司开发产品时的样品余料,作为同为电子爱好者的好朋友,我欣然接下了,呵呵。
现在准备把它安装成电子钟,准备开机现场直播.声明:以下是菜鸟级作品,还请前辈指教。先上图。
屏幕正面 有8个8X8 点阵拼接成16*32大屏
DIY的D1302时钟和DS1820温度小板块
暂时借用开发板的小系统调试一下
+5V电源
结构布置
说明:图中共有A,B,C,D,E,F,G,H共8块8X8点阵(组件)构成。对应每个组件的驱动芯片分别是U14,U13,U12,U11;U8,U7,U6,U5;均为贴片式8bit移位寄存器74HC595.计划采用“行扫描的方式”驱动(U9,U10),扫描顺序是自右向左,从上到下。
试编程,确定一下点阵的硬件引脚排列是否是水平,垂直方向都是按顺序排列的?
首先设想是扫描一副三角图形(点亮的LED逐行增加1个)看看,哈哈,结果证明连接方式,是按顺序的。
尝试显示“电子”(绿色)两个字看看
尝试显示“技术”(红色)两个字看看
尝试显示简易图案(绿)看看
尝试显示简易图案(红)看看
再显示黑体“机电"看看.哇,是显示啦,但是朋友们注意到了吗?LED的笔画亮度视乎不均匀,水平方向点亮的点的越多,亮度就越低. 是不是行驱动(74HC595)能力不足引起的呢?
再次输入“三角”测试图样,观察水平方向亮度随点亮LED个数的变化情况,果然是验证74HC595行驱动能力有限(手册参数是输出电流20ma),水平点亮的LED越多,每个LED得到的电流就越小,难怪亮度不均。接下来准备解决一下亮度问题先.(待续)
10月16日23:21( 续):
从示意图可以看到,X0~X7是由74HC595作行驱动的,而芯片整体最大输出电流仅20mA左右,因此,如果某一行(比如X0)只亮一个点,那么这个点的
电流就是20mA,;而两外某行(比如X3),假如有10个点选中(点亮),那么这时候X3每个点的电流就只有20/10=2mA了,显然这两行的亮度不会一样的。
上述小分析通过电话得到朋友的确认:这个是他公司当时第一次开样板的,当时设计没考虑周全,因此才成了废料.
为了达到不改动硬件而使亮度均匀,把扫描方法改一下:
以前是“逐行,发送4个字节数据(因为水平方向是32点,是8*4bit)显示”;改成“逐行,发送32个点数据”。下图是分解示意图.
向水平32点的屏幕,小系统每行要发送32次数据.因为总共10个移位寄存器(4个Y/红 + 4个Y/绿 + 2个行驱动),并且所有数据是串联连接的,要显示一个点,数据格式就是 ADDR0+ADD1+ADDR2+ADD3+DATA0+DATA1+DATA2+DATA3 8个字节数据。由此看来,其实扫描一行就要分下面几个步骤:
将点阵的原来“一整行扫描”的内容数据拆分成32个字节数据.
将生成的数据分32次发送,每次得按ADDR0+ADD1+ADDR2+ADD3+XX+XX+XX+DATA形式发送
就这样,为了“简化硬件,逐点扫描,亮度均匀”,小系统每行拆分数据32字,共发送8*32=256个字节;而为了显示32*16(满屏),一帧数据总共要发送
256*16=4096个字节;实现整个过程的帧周期不能>20mS,f否则人眼看上去就有闪烁感了。呵呵,这么大的工作量,小小的单片机(STC89C52RC)看来快累死了。
不管了,先试试看。
哈哈,不出所料,单片机显示亮度是均匀了,但闪烁感十分强烈,几乎不能使用了。还好,开发板上可以切换到24MHZ晶振,但是,当扫描行数不大于8行
才不会产生闪烁感,满屏是效果还是不理想。有人可能说不如把时钟提到80MHZ,单个人认为这样还是不行,因为时钟仅提高4倍,但一行逐点扫描的数据量
是按整行扫描的32倍以上,相差太远了。看来不得不从硬件改造了.
第三集:2011-10-17 21:46
上图是10个74HC595级联示意图,因为行列线的扫描都是串联在一起,所以在软件扫描上增加了不少难度.。为了简单起见,增加了16只
PNP三极管作行线驱动,以加强驱动能力。(一只8850 0.15元,16只就是1斤空心菜的钱,呵呵)
8850作行驱动三极管
增加驱动后的效果改善了(待续) |
评分
-
1
查看全部评分
-
|