YFROBOT创客社区

标题: 光立方 [打印本页]

作者: aosini    时间: 2013-11-5 19:08
标题: 光立方

上传的文件为《光立方制作手册v1.0》,这个手册做的还不够完善,但已实现动画显示,只需要再丰富一下程序就可以。http://yunpan.cn/QUdULBEzkY3c32013、11、23日更新

写完手册后,我又对程序进行了升级,写了void clc(void)

void clc(void)//全局清屏
{
         u8 i;
         for(i=0;i<8;i++)
         {
                SER0=0;
                SCK0=0;
                delay_us(1);
                SCK0=1;
        }
        RCK0=0;
        delay_us(1);
        RCK0=1;
}
将这函数添加在void frame(u8 *a,u8 v)中。
void frame(u8 *a,u8 v)//一帧,a是一帧编码起始地址
                      //一个画面,v表示一帧画面扫描的次数
                                          // 可以看作这帧显示的时间
{
        s8 i,j,num;  //s8 有符号定义
        while(v--)
        {        
        for(i=0;i<8;i++) //层数层控制,选通某一层,
                         //使得第1层到第8层,依次点亮
                {
                        clc();         //大家可以尝试将此代码删除,运行代码dot(5);或UtoD_scan(90);
                                         //试着比较一下,欢迎大家多提宝贵意见,共同解决这个问题。

                        storey(a+i*8);//层填充函数,控制某层灯点亮方式
                        num=0x01;
                        num<<=i;
                        for(j=0;j<8;j++) //串行数据输入
                        {
                                if(num&0x80)
                                        SER0=1;          // SER串行输入端口
                                else
                                        SER0=0;
                                delay_us(1);
                                SCK0=0;                  //上升沿,输入到移位寄存器
                                delay_us(2);               
                                SCK0=1;               
                                num<<=1;
                        }        
                        RCK0=0;
                        delay_us(2);
                        RCK0=1;        
                        delay_ms(2);//一层点亮时间        
                }        
        
        }        
}







欢迎光临 YFROBOT创客社区 (http://yfrobot.com.cn/) Powered by Discuz! X3.1