怎样检查光立方电路的错误
时间:10-02
整理:3721RD
点击:
给光立方全亮时,有两层不亮,独自一层一层亮时也不亮,但是从网上找的程序却能够使这两层亮,而且两层是同时一起亮,求检查方法?还有设置定时器时为什么不需要工作模式设置的?下面是全亮的程序:
#include <REG52.H>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delay5us(void)
{
unsigned char b;
for(b=7;b>0;b--);
//for(a=2;a>0;a--);
}
void delay(uint i)
{
i=i/10;
while (i--){
delay5us();}
}
void sinter()
{
IE=0x82;
TCON=0x01;
TH0=0xc0;
TL0=0;
TR0=1;
}
void main()
{
sinter();
while(1);
}
void print() interrupt 1
{
uchar i;
static uchar layer=0;
P1=0;
for (i=0;i<8;i++)
{
P2=1<<i;
delay(2);
P0=0xff;
delay(2);
}
P1=1<<layer;
if (layer<7)
layer++;
else
layer=0;
TH0=0xc0;
TL0=0;
}
#include <REG52.H>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delay5us(void)
{
unsigned char b;
for(b=7;b>0;b--);
//for(a=2;a>0;a--);
}
void delay(uint i)
{
i=i/10;
while (i--){
delay5us();}
}
void sinter()
{
IE=0x82;
TCON=0x01;
TH0=0xc0;
TL0=0;
TR0=1;
}
void main()
{
sinter();
while(1);
}
void print() interrupt 1
{
uchar i;
static uchar layer=0;
P1=0;
for (i=0;i<8;i++)
{
P2=1<<i;
delay(2);
P0=0xff;
delay(2);
}
P1=1<<layer;
if (layer<7)
layer++;
else
layer=0;
TH0=0xc0;
TL0=0;
}
你那个左移 P2=1<<i 不对吧 你该一下试试
如何改,那个是动态扫描吧?
你这什么代表什么,连个注释都没
改成p2=0x01; p2<<i
改了之后更不行了
应该是led间的干扰,用电池测了下,当只接一层的共阴极是时,整层都会亮,,有的是上下会亮,求解决方法