用74HC595 进行层扫描与列扫描的光立方显示。部分源码。有点看不懂求解答..

2019-07-15 10:37发布

          d=60000;
           dd=60000;
           while(dd--)
           {
           while(d--)
          {
           static uchar layer=0;        
          for(j=0;j<8;j++)                                 //LED正极驱动循环扫描8层
          {                                       
       for (i=0;i<8;i++)                         //循环8次,每一次将光立方的一层动画数据装入buffer[]数组
       {
        buffer=display[layer]; //调用层暂存数组将用于光立方显示的二维数组里的一层显示数据装入其中
       }                                       
                        xiansi1();                                 //单片机发送数据给74HC595                          
                         cheng=0x01<<layer;                 //层移位,
            DS2 = ~cheng&0x01;                 //发送层扫描数据
                SH_CP2 = 1;
                SH_CP2 = 0;                             //移位寄存器移位
                ST_CP=1;        
            ST_CP=0;                                         //控制显示列
                ST_CP2=1;        
            ST_CP2=0;                                         //控制显示层
                if (layer<7)
                        layer++;             //为扫面上一层 做准备(光立方一个静止图形是从最底层开始扫描)
                else
                        layer=0;      
                                        delay(2);
                }
            

           }
           }


      layer对0x1进行位移。。
        按程序来看,位移8次(0~7)只有7次有效,就只能点亮7层led.
这样看话,完全可以不用层扫描。想列扫描那样实现

程序 这样写是想实现什么功能啊!?  谁帮我看看...

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。