标题: led点阵显示的时候就只显示字的上半部分,这是为什么 [打印本页]

作者: wu2068    时间: 2015-7-10 20:56
标题: led点阵显示的时候就只显示字的上半部分,这是为什么
#include <reg51.h>

#define uchar unsigned char

sbit MOSIO=P3^4;
sbit R_CLK=P3^5;
sbit S_CLK=P3^6;

uchar code table1[]={252,63,4,32,244,47,132,32,132,32,228,39,132,32,132,34,132,36,244,47,4,32,4,32,252,63,4,32,0,0,0,0};

uchar code table0[]={0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08,
                     0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80,
                     0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00,
                                         0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00
                                         };
void HC595SendData(uchar BT3,uchar BT2,uchar BT1,uchar BT0);

void main()
{
int k;
   while(1)
   {       
                        for(k=0;k<16;k++)                                                                               
                        {         
                        HC595SendData(~table1[2*k+1],~table1[2*k],table0[2*k],table0[2*k+1]);
                        }                  
                       
       
       
        }


}

void HC595SendData(uchar BT3,uchar BT2,uchar BT1,uchar BT0)
{
int i;
for(i=0;i<8;i++)
{
MOSIO=BT3>>7;
BT3=BT3<<1;
S_CLK=0;
S_CLK=1;
}

for(i=0;i<8;i++)
{
MOSIO=BT2>>7;
BT2=BT2<<1;
S_CLK=0;
S_CLK=1;
}

for(i=0;i<8;i++)
{
MOSIO=BT1>>7;
BT2=BT2<<1;
S_CLK=0;
S_CLK=1;
}

for(i=0;i<8;i++)
{
MOSIO=BT0>>7;
BT0=BT0<<1;
S_CLK=0;
S_CLK=1;
}

R_CLK=0;
R_CLK=1;
R_CLK=0;
}
作者: wu2068    时间: 2015-7-10 20:58
本帖最后由 wu2068 于 2015-7-10 22:08 编辑

代码正确,但是在显示的时候就只显示字的上半部分,这是为什么(16x16)

51.jpg (316.01 KB, 下载次数: 112)

51.jpg

作者: admin    时间: 2015-7-10 21:21
楼主 电路图贴上看一下
作者: wu2068    时间: 2015-7-10 22:08
admin 发表于 2015-7-10 21:21
楼主 电路图贴上看一下

图在上面

作者: liuzhaoxin1020    时间: 2017-1-8 17:06
电路看一下




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