说能通俗的和我说说点阵从左往右显示原理?注明不是跳变

2019-07-15 18:47发布

就像很多地方用的从左往右一个一个字慢慢移的那种点阵的原理
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
ntmusic
1楼-- · 2019-07-15 23:57
建立一个显示缓存,将要显示的字符串的点阵数据不断地与邻位点阵数据进行与、非运算后存入显示缓存,再将显示缓存输出到LED显示屏。
落尘浅羽
2楼-- · 2019-07-16 01:08
ntmusic 发表于 2014-8-16 09:16
建立一个显示缓存,将要显示的字符串的点阵数据不断地与邻位点阵数据进行与、非运算后存入显示缓存,再将显 ...

现在会了,能帮我处理下细节问题不?8X8点阵按这方法1个字节能正常显示,但字多了就会出现一个字左右移动2遍后才移下一个字;记得看下图我标记的地方,有人说是在细节上耗时太多,我该怎么改正,真心不会。。。求助。。
#include<reg52.h>
#include<intrins.h>

sbit sen1=P2^0;
sbit slk1=P2^1;         //hang
sbit sc1=P2^2;
sbit sen2=P1^0;
sbit slk2=P1^1;          //lie
sbit sc2=P1^2;

unsigned char code hangma[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char code liema[]={0x7e,0x7e,0x18,0x18,0x18,0x18,0x7e,0x7e,
                                                        0x00,0x36,0x49,0x41,0x22,0x14,0x08,0x00,
                                                        0x00,0x41,0x41,0x41,0x41,0x22,0x16,0x08};
//unsigned char code y[8]={  };

void lie(unsigned char dat)
{
   unsigned char i;
  for(i=0;i<8;i++)
  {
   sen1=dat&0x80;
   dat<<=1;
   slk1=1;
   _nop_();
   slk1=0;
  }
   sc1=1;
_nop_();
sc1=0;
}

void hang(unsigned char dat)
{
unsigned char i;
for(i=0;i<8;i++)
   {
   sen2=dat&0x80;
   dat<<=1;
   slk2=1;
   _nop_();
   slk2=0;
   }

}

void hang2(unsigned char dat1,unsigned char dat2)
{
hang(dat1);
hang(dat2);
}



void out(void)
{
sc2=1;
_nop_();
sc2=0;

}

void delus(unsigned char t)
{
while(--t);
}
void delms(unsigned char t)
{
while(t--)
  {
  delus(245);
  delus(245);
  }
}

void main()
{
unsigned char i,j,k,y,n=0;
while(1)
   {
   for(k=0;k<8;k++)
     {
         for(j=0;j<20;j++)
         for(i=0;i<8;i++)
            {
                y=_crol_(liema[n*8+i],k);
            lie(y);                                                                //按先输出一屏数据,数据左移1位再送屏。。。。。
            hang2(hangma,0xff);
            out();            
                delms(1);
                 hang2(0xff,0xff);
                out();
               
                }       
         }
          n++;
          if(n==3)
            n=0;
         }

         }


QQ截图20140816175141.png
QQ截图20140816175203.png

一周热门 更多>