单片机/MCU论坛
直播中

王建峰

7年用户 157经验值
擅长:嵌入式技术 系统
私信 关注
[问答]

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

          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<             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.
这样看话,完全可以不用层扫描。想列扫描那样实现

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

回帖(3)

人中狼

2017-5-30 21:49:59
0-7是8次,到了7,也就是第八次,需要回零的,这里好像同时对两个595操作,所以应该是选定了层后,输入这一层的显示数据,再移到下一层,具体的可能有电路和完整的595驱动就比较好理解
举报

王建峰

2017-5-30 22:10:57
可是我感觉层扫描时,第一次写入0 余下七次写1
。是这样吗?
举报

周豪

2018-11-9 15:50:42
有完整的程序吗
举报

更多回帖

发帖
×
20
完善资料,
赚取积分