E có đoạn code sao băng 12 cổng mà sao lúc chạy kích ra led nó không giống sao băng led
nó cứ chạy mờ mờ sao ak không biết băm xung đúng không nữa mong mấy a chỉ giúp e
với lại giờ e mún chỉnh tốc độ sao băng bằng biến trở thì phải dùng delay thế nào.
Code của e đậy mong mấy a giúp dùm e
#include<regx52.h>
sbit wt1=P0^0;// P0
sbit wt2=P0^1;
sbit wt3=P0^2;
sbit wt4=P0^3;
sbit wt5=P0^4;
sbit wt6=P0^5;
sbit wt7=P0^6;
sbit wt8=P0^7;
sbit w21=P2^7; // P2
sbit w22=P2^6;
sbit w23=P2^5;
sbit w24=P2^4;
sbit w25=P2^3;
sbit w26=P2^2;
sbit w27=P2^1;
sbit w28=P2^0;
unsigned char code a[8][64]=
{
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,}
//1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
};
//-----------------------------------------------------
void delayus(int time)
{ // ham nay co do che la 20 us
int n;
unsigned char a;
for(n=0;n<time;n++)
{
a=0;
}
}
//-----------------------------------------------------
void delayus1()
{ // ham nay co do che la 20 us
unsigned char a,n;
for(n=0;n<10;n++)
{
a=0;
}
}
//-----------------------------------------------------
void saobang1vong()
{
int n,k,h;
for(k=0;k<33;k++)
{
for(n=1;n<14;n++)
{
for(h=0;h<8;h++)
{ P1=0xff;P2=0xff;P3=0xff;//wr=n1;wg=n2;wb=n3;
/*
w1=a[h][k];w2=a[h][k+1];w3=a[h][k+2];w4=a[h][k+3];w5=a[h][k+4];w6=a[h][k+5];w7=a[h][k+6];w8=a[h][k+7]; //P1
w11=a[h][k+8];w12=a[h][k+9];w13=a[h][k+10];w14=a[h][k+11];w15=a[h][k+12];w16=a[h][k+13];w17=a[h][k+14];w18=a[h][k+15];//P3
*/
wt5=a[h][k+20];wt6=a[h][k+21];wt7=a[h][k+22];wt8=a[h][k+23];//P0
w21=a[h][k+24];w22=a[h][k+25];w23=a[h][k+26];w24=a[h][k+27];w25=a[h][k+28];w26=a[h][k+29];w27=a[h][k+30];w28=a[h][k+31];//P2
delayus1();
}
}
}
}
//////////////
void main()
{ P0=0x00;P2=0x00;
while(1)
{
saobang1vong();
}
}
nó cứ chạy mờ mờ sao ak không biết băm xung đúng không nữa mong mấy a chỉ giúp e
với lại giờ e mún chỉnh tốc độ sao băng bằng biến trở thì phải dùng delay thế nào.
Code của e đậy mong mấy a giúp dùm e
#include<regx52.h>
sbit wt1=P0^0;// P0
sbit wt2=P0^1;
sbit wt3=P0^2;
sbit wt4=P0^3;
sbit wt5=P0^4;
sbit wt6=P0^5;
sbit wt7=P0^6;
sbit wt8=P0^7;
sbit w21=P2^7; // P2
sbit w22=P2^6;
sbit w23=P2^5;
sbit w24=P2^4;
sbit w25=P2^3;
sbit w26=P2^2;
sbit w27=P2^1;
sbit w28=P2^0;
unsigned char code a[8][64]=
{
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1,1,}
//1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
};
//-----------------------------------------------------
void delayus(int time)
{ // ham nay co do che la 20 us
int n;
unsigned char a;
for(n=0;n<time;n++)
{
a=0;
}
}
//-----------------------------------------------------
void delayus1()
{ // ham nay co do che la 20 us
unsigned char a,n;
for(n=0;n<10;n++)
{
a=0;
}
}
//-----------------------------------------------------
void saobang1vong()
{
int n,k,h;
for(k=0;k<33;k++)
{
for(n=1;n<14;n++)
{
for(h=0;h<8;h++)
{ P1=0xff;P2=0xff;P3=0xff;//wr=n1;wg=n2;wb=n3;
/*
w1=a[h][k];w2=a[h][k+1];w3=a[h][k+2];w4=a[h][k+3];w5=a[h][k+4];w6=a[h][k+5];w7=a[h][k+6];w8=a[h][k+7]; //P1
w11=a[h][k+8];w12=a[h][k+9];w13=a[h][k+10];w14=a[h][k+11];w15=a[h][k+12];w16=a[h][k+13];w17=a[h][k+14];w18=a[h][k+15];//P3
*/
wt5=a[h][k+20];wt6=a[h][k+21];wt7=a[h][k+22];wt8=a[h][k+23];//P0
w21=a[h][k+24];w22=a[h][k+25];w23=a[h][k+26];w24=a[h][k+27];w25=a[h][k+28];w26=a[h][k+29];w27=a[h][k+30];w28=a[h][k+31];//P2
delayus1();
}
}
}
}
//////////////
void main()
{ P0=0x00;P2=0x00;
while(1)
{
saobang1vong();
}
}
Comment