Em code hiệu ứng led thử khi sử dụng P0 thì thấy nó không như chương trình viết , cách viết code cũng giống như viết cho các P1, P2, P3,mấy Port 1,2,3 thì chạy đúng. khi sử dụng P0 như một Port I/O trong kielC có cần phải khai báo gì thêm không ? mong mọi người giúp em với ! thanks tất cả các anh em
code của em đây
code của em đây
Code:
#include<at89x52.h>
unsigned char nhayled[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //cac hieu ung
unsigned char leddon[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
unsigned char hben[4]={0x81,0xc3,0xe7,0xff};
unsigned char hben1[4]={0x18,0x3c,0x7e,0xff};
void delay(unsigned int i)
{
while(i--)
{
unsigned char j=121;
while(j--){}
}
}
void sangduoi1()
{
char k;
for(k=0;k<8;k++)
{
P0=nhayled[k];
delay(50);
}
P0=0x00;
for(k=0;k<8;k++)
{
P1=nhayled[k];
delay(50);
}
P1=0x00;
for(k=0;k<8;k++)
{
P2=nhayled[k];
delay(50);
}
P2=0x00;
for(k=0;k<8;k++)
{
P3=nhayled[k];
delay(50);
}
P3=0x00;
}
void sangduoi3()
{
char i,j;
for(j=0;j<=3;j++)
{
for(i=7;i>=0;i--)
{
P0=nhayled[i];
P1=nhayled[i];
P2=nhayled[i];
P3=nhayled[i];
delay(200);
}
P1=0x00; P2=0x00;P3=0X00;P0=0X00;
delay(80);
}
}
void sangduoi2()
{
char i;
for(i=0;i<=7;i++)
{
P0=nhayled[i];
P1=nhayled[i];
P2=nhayled[i];
P3=nhayled[i];
delay(200);
}
P1=0x00; P2=0x00;P3=0X00;P0=0X00;
delay(200);
}
void sangdon()
{
char i;
for(i=0;i<=7;i++)
{
P0=leddon[i];
P1=leddon[i];
P2=leddon[i];
P3=leddon[i];
delay(250);
}
P1=0x00; P2=0x00;P3=0X00;P0=0X00;
delay(500);
}
void sangdon1()
{
char i;
for(i=7;i>=0;i--)
{
P0=leddon[i];
P1=leddon[i];
P2=leddon[i];
P3=leddon[i];
delay(250);
}
P1=0x00; P2=0x00;P3=0X00;P0=0X00;
delay(500);
}
void sangdon2()
{
char k,i;
for(i=0;i<=3;i++)
{
for(k=0;k<8;k++)
{
P0=leddon[k];
delay(50);
}
P0=0xff;
for(k=0;k<8;k++)
{
P1=leddon[k];
delay(50);
}
P1=0xff;
for(k=0;k<8;k++)
{
P2=leddon[k];
delay(50);
}
P2=0xff;
for(k=0;k<8;k++)
{
P3=leddon[k];
delay(50);
}
P3=0xff;
delay(500);
P1=0x00; P2=0x00;P3=0X00;P0=0X00;
delay(500);
}
P1=0x00; P2=0x00;P3=0X00;P0=0X00;
delay(500);
}
void sanghaiben()
{
char i,j;
for(j=0;j<=3;j++)
{
for(i=0;i<=3;i++)
{
P0=hben[i];
P1=hben[i];
P2=hben[i];
P3=hben[i];
delay(250);
}
P1=0x00; P2=0x00;P3=0X00;P0=0X00;
delay(500);
}
}
void sanghaiben1()
{
char i,j;
for(j=0;j<=3;j++)
{
for(i=0;i<=3;i++)
{
P0=hben1[i];
P1=hben1[i];
P2=hben1[i];
P3=hben1[i];
delay(250);
}
P1=0x00; P2=0x00;P3=0X00;P0=0X00;
delay(500);
}
}
void choptat()
{
int i;
for(i=0;i<=4;i++)
{
P0=0xff;
P1=0xff;
P2=0xff;
P3=0xff;
delay(100);
P1=0x00; P2=0x00;P3=0X00;P0=0X00;
delay(100);
}
}
void main()
{
// unsigned char k,i;
P0=0x00;
P1=0x00;
P2=0x00;
P3=0x00;
while(1)
{
sangduoi1();
sangduoi3();
}
}

Comment