欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

本人写一个led点阵显示屏的程序,有行干扰是咋回事

更新时间: 2014-01-05 03:14:18 责任编辑: Author_N1

 

本人写一个LED点阵显示屏的程序,有行干扰是怎么回事?
具体就是灯亮情况如下时:
--@------*-
--*---@----
------*--@-
其实我只是想点亮@,结果*也亮了,明显被干扰了!!!求解啊。
(实行行扫描,然后再点亮各点!)

void data1(void)           
{
  int s;

  if(reg1==1)                  //reg用来判断上下,共32行,分为16行控制
  {
    for(s=0;s<64;s++)          //点灯时其他63写灭,只有一个亮
    {
      if(s==LIGHTTEMP1)
      {
        LIGHTTEMP1=0;
        PDOR5&=~SCK;
        SER1   
        PDOR5|=SCK;
      }
      else
      {
        PDOR5&=~SCK;
        SER4                 
        PDOR5|=SCK;
      }
    }
  }
  else
  {
    for(s=0;s<64;s++)
    {
      if(s==LIGHTTEMP1)
      {
        LIGHTTEMP1=0;
        PDOR5&=~SCK;
        SER2                 
        PDOR5|=SCK;
      }
      else
      {
        PDOR5&=~SCK;
        SER4                     
        PDOR5|=SCK;
      }
    }
  }

void Light(void)
{

  unsigned int i,j,k;
  for(i=0;i<2;i++)                    //32*64的点阵
    for(j=0;j<16;j++ )
      for(k=0;k<64;k++)
      {
       if(point_get[i][j][k]==1)
       { //Dely100um(10000);
         if(i==0)
         {
           reg1=1;
           LIGHTTEMP1=k;
           scan(j);
           data1();
           PDOR3|=RCK;
           PDOR3&=~RCK;
           PDOR3|=RCK;
           //ENIR|=0x1<<13;
         }
         else if(i==1)
         {
           reg1=0;
           LIGHTTEMP1=k;
           scan(j);
           data1();
           PDOR3|=RCK;
           PDOR3&=~RCK;
           PDOR3|=RCK;
           //ENIR|=0x1<<13;
         }
         
       } 
    }

}

--参考方法--
这个主要得靠自己了,外人看明白不容易
--参考方法--
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:14:18
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/19888/
本文WWW.DOC100.NET DOC100.NET版权所有。