微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 有关光立方的程序问题

有关光立方的程序问题

时间:10-02 整理:3721RD 点击:
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define p0 P0
#define p1 P1
#define p3 P3
#define p2 P2
uchar taba[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
              0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};

uchar a,b,c,d,e,f,g,h,i,j,k,l;
void delaya();
void delay(unsigned int z)
{
        while(z--);
}
void main()
{
   TMOD=0x11;                  //  开启T0,T1
   TH0=(65536-2000)/256;
   TL0=(65536-2000)%256;
   TH1=(65536-10000)/256;
   TL1=(65536-10000)%256;
   ET0=1;                         //
   TR0=1;
   ET1=1;                         //  
   TR1=1;
   EA=1;
   while(1)
   {
           delaya();
   }
}
void li1() interrupt 1
{
   TH0=(65536-2000)/256;
   TL0=(65536-2000)%256;
        i++;
        if(i==5) i=0;j++;
        if(j==16) j=0;
}
void li2() interrupt 3
{
   TH1=(65536-10000)/256;
   TL1=(65536-10000)%256;
        h++;
        if(h==50) h=0;e++;l++;
        if(e==8)  e=0;          
        if(l==16) l=0;
}
void delaya()
{
for(a=0;a<200;a++)
   {
          p0=0x01;
          p1=0x01;
         for(b=0;b<=8;b++)
         {
              p2=taba[15-j];           // j  在这里什么意思呢?
            p0=_crol_(p0,1);   //     
            p1=_crol_(p0,1);
            delay(200);
        }
   }
}

interrupt1那修改了j的值,j在这里作为一个定时的变量,一定时间将p2口按照数组taba【】修改

谢谢啦谢谢啦

可以写一下每一小步的意思吗,我是个初学者我看不懂

定时器1的  J变量没有用括号括住,J的速度加得很快,人眼看不到效果

也就是P2的变量会改变的很快

谢谢啦谢谢啦

哥,我也是初学的,我自己觉得这个程序已经很直白了,顶多一两处不懂, 我还可以理解,你全不懂我建议你还是先看书吧,学点程序先,不好意思哈

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top