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

2020-01-22 12:06发布

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)

制作好的实物图片



(原文件名:1632背面2.jpg)


(原文件名:1632侧面.jpg)


(原文件名:1632正面.jpg)


(原文件名:1632正侧面.jpg)


(原文件名:1632加驱动板效果1.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[][32]={
/*--  文字:  成  --*/
/*--  黑体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[0][i*2]);
                sendbyteRG(hanzi[0][i*2+1]);               
                sendbyteRG(hanzi[1][i*2]);
                sendbyteRG(hanzi[1][i*2+1]);              
            P1=i;                                                                        
            STR=0;STR=1;
                        E=1;                              
       }
   }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
damoplus
1楼-- · 2020-01-23 07:39
看错了,以为是全彩的
szwan
2楼-- · 2020-01-23 08:29
楼主的产品设计有重大失误,4953串接16个电阻是达不到电流平均的,虽然焊接能节省苦力,1个电阻分流相了32个LED(1行),点阵点亮的个数不同时容易造成亮度不均匀,双 {MOD}的最好的8个是595每个端口串接64个47~100电阻才合适,本人做过这个实验,深有体会...
little_Monkey
3楼-- · 2020-01-23 12:50
 精彩回答 2  元偷偷看……
shenglinwan
4楼-- · 2020-01-23 13:50
呵呵,我也觉得是接在G级(作为数字量这里接电阻没有什么用),点亮是可以的,这样设计也还是有些问题,正规的产品需要很好的限流,可以针对行或列,共阳的来说最好在列,,16*32必须在595加串64个电阻,多大阻值视点阵大大小
feixue
5楼-- · 2020-01-23 17:26
楼主的产品设计有重大失误,4953串接16个电阻是达不到电流平均的,虽然焊接能节省苦力,1个电阻分流相了32个LED(1行),点阵点亮的个数不同时容易造成亮度不均匀,双 {MOD}的最好的8个是595每个端口串接64个47~100电阻才合适,本人做过这个实验,深有体会...




——————————————————————————-
做商业的当然要考虑周全写,不过现在很多商业的也是这样做的,只不过在控制上做了写文章,
我这个只是用于学习,考虑的是自己设计PCB方便,所以在商业屏的基础上删减了不少
szwan
6楼-- · 2020-01-23 21:57
恩,爱好而已,现在想想楼上说的,也是这个场效应管G接不接电阻都没有什么区别,是多余的,甚至什么电阻都不要这样也过得去,我做过16*64双 {MOD}的,花了太多时间,不是人干的活。现在想想还不如找个便宜的买...

一周热门 更多>