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