feixue 发表于 2009-10-22 17:15:33

利用51控制的16*32点阵屏幕,其实条屏原理跟这个都一样,只不过51控制不了多大屏幕

16*32点阵屏幕由512个LED组成,在实际制作过程中我们可以采用8*8的点阵模块。
下面开始做1632点阵屏幕硬件设计。
所先设计行扫描电路:
16*32点阵屏幕总共有16行,其扫描电路一般采用74HC154或者74HC138来进行4-16扩展,这样可以占用较少的单片机IO口。如果利用74HC154那么一片就可以满足16行的需求;如果采用74HC138,那么需要两片。由于74HC138价格便宜,市场使用量比较大,采购比较容易,这里我们采用74HC138来进行行 扩展。74HC138是三、八译码器,根据起手册可以用两片组成

传原理图
点击此处下载 ourdev_494693.pdf(文件大小:50K) (原文件名:CPU.pdf)
点击此处下载 ourdev_494694.pdf(文件大小:70K) (原文件名:DIANZHEN.pdf)

制作好的实物图片


http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_494703.jpg
(原文件名:1632背面2.jpg)

http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_494704.jpg
(原文件名:1632侧面.jpg)

http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_494705.jpg
(原文件名:1632正面.jpg)

http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_494706.jpg
(原文件名:1632正侧面.jpg)

http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_494707.jpg
(原文件名:1632加驱动板效果1.jpg)

http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_494708.JPG
(原文件名:两快级链效果.JPG)


#include <reg52.h>

sbit STR=P3^2;//锁存
sbit CLK=P3^3;        //时钟
sbit RData= P3^4;        //红 数据
sbit GData= P3^5;        //绿 数据
sbit E=P1^4;        //使能

unsigned char code hanzi[]={
/*--文字:成--*/
/*--黑体12;此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0xD8,0x00,0xD8,0x3F,0xFC,0x3F,0xFC,0x30,0xC0,0x30,0xC0,0x3E,0xD8,0x3E,0xD8,
0x36,0xD8,0x36,0x70,0x36,0x60,0x6E,0xE6,0x61,0xB6,0xC3,0x1E,0x42,0x0C,0x00,0x00,

/*--文字:功--*/
/*--黑体12;此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0xC0,0x00,0xC0,0xFC,0xC0,0xFC,0xC0,0x33,0xFC,0x33,0xFC,0x30,0xCC,0x30,0xCC,
0x30,0xCC,0x30,0xCC,0x3D,0x8C,0xFD,0x8C,0xE3,0x0C,0x0E,0x3C,0x04,0x38,0x00,0x00,
};
void sendbyteRG(unsigned char bbyte1)
{
unsigned char i;
for(i=0;i<8;i++)
   {

      
   RData=GData=~bbyte1&0x80;   //取高位
   CLK=0;CLK=1;
   bbyte1<<=1;
   }
}
void main(void)
{

        unsigned char i;
        while(1)               
   {   
   P1=0XFF;
   for(i=0;i<16;i++)
      {         
                        E=0;                  
                sendbyteRG(hanzi);
                sendbyteRG(hanzi);               
                sendbyteRG(hanzi);
                sendbyteRG(hanzi);            
            P1=i;                                                                        
            STR=0;STR=1;
                        E=1;                              
       }
   }
}

fool_boy 发表于 2009-10-22 17:54:15

传说中的沙发^_^

coody 发表于 2009-10-22 18:33:31

LZ“只不过51控制不了多大屏幕”。。。

不知道多大算大,我的产品有用51驱动256x32点的屏

our_avr 发表于 2009-10-22 19:22:06

楼主的PCB是自己做的吗?能看得出来画PCB花费了点时间,如果有些细节在注意点的话你的PCB我个人到是非常欣赏。整体来讲我感觉不错

lukeunderwood 发表于 2009-10-22 20:35:53

lz "只不过51控制不了多大屏幕"
-------------------------------
我用AT89S52+24兆晶振驱动过32×128双色点阵屏,只有很轻微的闪动。

feixue 发表于 2009-10-22 21:33:51

楼主的PCB是自己做的吗?能看得出来画PCB花费了点时间,如果有些细节在注意点的话你的PCB我个人到是非常欣赏。整体来讲我感觉不错
——————————————————————————————————

是自己做的,不过没花多少心事去美化,从原理设计到PCB设计只用了两天时间(有大半天时间是用洞洞板做了个单色电路)
如果把安装孔搞对称了还有595搞成贴片的就完美了,
电路中104电容是有的,在点阵那一面

hefei1314 发表于 2009-10-28 22:42:29

看着挺好

damoplus 发表于 2009-10-28 22:52:50

看错了,以为是全彩的

szwan 发表于 2009-10-30 14:41:42

楼主的产品设计有重大失误,4953串接16个电阻是达不到电流平均的,虽然焊接能节省苦力,1个电阻分流相了32个LED(1行),点阵点亮的个数不同时容易造成亮度不均匀,双色的最好的8个是595每个端口串接64个47~100电阻才合适,本人做过这个实验,深有体会...

little_Monkey 发表于 2009-10-30 15:19:54

LZ的电阻是接在G极的,不是行选的限流电阻

shenglinwan 发表于 2009-10-30 16:04:03

呵呵,我也觉得是接在G级(作为数字量这里接电阻没有什么用),点亮是可以的,这样设计也还是有些问题,正规的产品需要很好的限流,可以针对行或列,共阳的来说最好在列,,16*32必须在595加串64个电阻,多大阻值视点阵大大小

feixue 发表于 2009-10-30 16:39:51

楼主的产品设计有重大失误,4953串接16个电阻是达不到电流平均的,虽然焊接能节省苦力,1个电阻分流相了32个LED(1行),点阵点亮的个数不同时容易造成亮度不均匀,双色的最好的8个是595每个端口串接64个47~100电阻才合适,本人做过这个实验,深有体会...




——————————————————————————-
做商业的当然要考虑周全写,不过现在很多商业的也是这样做的,只不过在控制上做了写文章,
我这个只是用于学习,考虑的是自己设计PCB方便,所以在商业屏的基础上删减了不少

szwan 发表于 2009-10-30 17:04:25

恩,爱好而已,现在想想楼上说的,也是这个场效应管G接不接电阻都没有什么区别,是多余的,甚至什么电阻都不要这样也过得去,我做过16*64双色的,花了太多时间,不是人干的活。现在想想还不如找个便宜的买...

shenglinwan 发表于 2009-10-31 15:25:07

楼顶的设计的板才16*32,就用掉了2个238?有点浪费吧,还有光16*32就设计了4个接口,看不明白,能否说一下那么多接口干嘛的,是用于行列的纵横扩展吗,学习了

lanyuner62 发表于 2009-11-21 15:54:26

强人,你太伟大了。。
其他元器件都用贴片的,595就舍不得用。
其实可以考虑使用MBI5026,DM134之类的16口恒流芯片。这样做更简单。

999999 发表于 2009-11-21 16:10:41

楼上:贴片595更便宜吧

zheshiwo 发表于 2010-2-22 22:47:50

顶下,51控制点阵多大屏幕。

sw821025 发表于 2010-2-23 10:40:02

可以

sophy.lin 发表于 2010-2-28 18:13:27

LZ,使能E,那样子写会使下行在数据在上行微微显示

sxyxybbao 发表于 2011-4-24 09:44:05

楼主的产品设计有重大失误,4953串接16个电阻是达不到电流平均的,虽然焊接能节省苦力,1个电阻分流相了32个LED(1行),点阵点亮的个数不同时容易造成亮度不均匀,双色的最好的8个是595每个端口串接64个47~100电阻才合适,本人做过这个实验,深有体会...


是不是在595每个端口串接64个47~100电阻才合适取消4953串接的16个1K的电阻?

songshanxiaozi 发表于 2011-5-3 13:31:54

这种屏的控制板在电子市场就有卖的,都是用STC的单片机

danceman_uk 发表于 2011-5-4 12:02:52

用STC11+74HC595控制板很多.

xulong20006 发表于 2011-8-10 16:47:15

顶顶!

wghaovv 发表于 2011-11-2 15:19:23

学习了

shine_boy 发表于 2011-11-2 16:49:53

顶!

BCE312 发表于 2011-11-2 18:47:47

学习。

yoghourt 发表于 2014-10-9 17:06:05

拿来参考下~
页: [1]
查看完整版本: 利用51控制的16*32点阵屏幕,其实条屏原理跟这个都一样,只不过51控制不了多大屏幕