标题: 求个led广告屏单元的51程序 [打印本页]

作者: 小蜜蜂o    时间: 2016-4-15 22:58
标题: 求个led广告屏单元的51程序
高好几天了,还是不来事。led广告屏是p10(间隔10mm)的单色(红色),点阵为16*32.列驱动是74hc595,行驱动靠74hc138译码器(3-8译码器)驱动电源ic开关。如果是简单的行列驱动也不麻烦。麻烦的是行只能选4种(也就是只能同时亮4行,这4行与4个595驱动)


360截图20160415225729859.jpg (82.16 KB, 下载次数: 151)

360截图20160415225729859.jpg

1460731264343.jpg (1.6 MB, 下载次数: 145)

1460731264343.jpg

1460731231742.jpg (1.59 MB, 下载次数: 134)

1460731231742.jpg

360截图20160415225658328.jpg (98.83 KB, 下载次数: 155)

360截图20160415225658328.jpg

360截图20160415225715578.jpg (92.11 KB, 下载次数: 135)

360截图20160415225715578.jpg

作者: sxszpeng    时间: 2016-4-16 11:34
这东西我玩过,程序如下:
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define NOP     _nop_()


sbit OE     = P1^0;
sbit A1     = P1^4;
sbit B1     = P1^5;

sbit SHCP=P1^6;    //11脚SHCP    移位时钟
sbit STCP=P1^7;    //12脚STCP    锁存时钟
sbit DATA=P3^1;           //数据输入

uchar code table[10][32]=
{{0xFE,0xF7,0xBD,0xF7,0xC8,0x77,0xDB,0x77,0xF8,0x01,0xFB,0x77,0x18,0x37,0xDB,0x57,
  0xD0,0x57,0xDE,0x77,0xDD,0x77,0xD5,0x77,0xCB,0x77,0xD7,0x77,0xED,0x57,0xFE,0xEF},            //谢

{ 0xFE,0xF7,0xBD,0xF7,0xC8,0x77,0xDB,0x77,0xF8,0x01,0xFB,0x77,0x18,0x37,0xDB,0x57,
  0xD0,0x57,0xDE,0x77,0xDD,0x77,0xD5,0x77,0xCB,0x77,0xD7,0x77,0xED,0x57,0xFE,0xEF}
};          //谢

//数据串行输入
void serial_input(uchar dat)   
{
        uint m;
                for(m=0;m<8;m++)
                {
                        if(dat & 0x80)
                                DATA=1;
                        else
                                 DATA=0;
                        SHCP=0;        
                        SHCP=1;                                 
                                        NOP;
                        NOP;
                        SHCP=0;
                        NOP;
                        NOP;
                        dat=dat<<1;
                }

}

/*******************************************************************************************/
//并出
void serial_output()
{
        STCP=1;                 
        NOP;
        NOP;
        STCP=0;        
}  
//行显控制
void HC138_scan(uchar temp)
{
   OE=1;
   A1=0x01 & temp;
   B1=0x01 &(temp>>1);
}
/*******************************************************************************************/
/*******************************************************************************************/
//整屏显示
void display()
{
        uint i,j,k;
        for(k=0;k<4;k++)                  //显示的四行
                {        
                        for(j=0;j<2;j++)          //显示3、4列
                        {
                                for(i=0;i<2;i++)      // 显示1、2列
                                {
                                        serial_input(table[j][3*8+2*k+i]);         
                                        serial_input(table[j][2*8+2*k+i]);                        
                                        serial_input(table[j][1*8+2*k+i]);               
                                        serial_input(table[j][0*8+2*k+i]);
                                }
                        }
                                serial_output();
                                HC138_scan(k);
                }
}

/*******************************************************************************************/
/*******************************************************************************************/

/*******************************************************************************************/
/*******************************************************************************************/
void main()
{
        while(1)
        {

                display();                 
        }
}
作者: liuzhaoxin1020    时间: 2017-1-2 15:30
楼上的文件不错




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1