利用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;                              
       }
   }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。