4*4的光立方程序,初学者没看懂扫描过程,求大神教一下
时间:10-02
整理:3721RD
点击:
#include <reg52.h>
#include <intrins.h>
#include <string.h>
#include <Binary.h>
#define uint unsigned int
#define uchar unsigned char
#define LED P0
#define FLOOR P2
/*图形表*/
uchar code table[16]=
{
B0000,B0000,B0000,B0000, //层1
B0000,B0000,B0000,B0000, //层2
B0000,B0000,B0000,B0000, //层3
B0000,B0000,B0000,B0000, //层4
};
/*粗略延时函数*/
void delay(uint xms)
{
uint i,j;
for(i = xms ; i > 0 ; i--)
for(j=150;j > 0;j--);
}
/*立方体扫描*/
void Cube_display(uchar array[],uint delay_time)
{
uchar floor_temp;
uchar num;
for(;delay_time > 0;delay_time--)
{
for(num = 0,floor_temp = 0x01;num < 8;num++)
{
FLOOR = ~floor_temp;
LED = (~array[num]) | 0xf0;
delay(1);
LED = 0xff;
floor_temp = floor_temp << 1;
}
for(num = 8,floor_temp = 0x01;num < 16;num++)
{
FLOOR = ~floor_temp;
LED = (~(array[num]) << 4) | 0x0f;
delay(1);
LED = 0xff;
floor_temp = floor_temp << 1;
}
}
}
#include <intrins.h>
#include <string.h>
#include <Binary.h>
#define uint unsigned int
#define uchar unsigned char
#define LED P0
#define FLOOR P2
/*图形表*/
uchar code table[16]=
{
B0000,B0000,B0000,B0000, //层1
B0000,B0000,B0000,B0000, //层2
B0000,B0000,B0000,B0000, //层3
B0000,B0000,B0000,B0000, //层4
};
/*粗略延时函数*/
void delay(uint xms)
{
uint i,j;
for(i = xms ; i > 0 ; i--)
for(j=150;j > 0;j--);
}
/*立方体扫描*/
void Cube_display(uchar array[],uint delay_time)
{
uchar floor_temp;
uchar num;
for(;delay_time > 0;delay_time--)
{
for(num = 0,floor_temp = 0x01;num < 8;num++)
{
FLOOR = ~floor_temp;
LED = (~array[num]) | 0xf0;
delay(1);
LED = 0xff;
floor_temp = floor_temp << 1;
}
for(num = 8,floor_temp = 0x01;num < 16;num++)
{
FLOOR = ~floor_temp;
LED = (~(array[num]) << 4) | 0x0f;
delay(1);
LED = 0xff;
floor_temp = floor_temp << 1;
}
}
}
