Chào mọi người, em lập trình c có nhún assembly chạy trên AT89C51, khi build KeilC báo lỗi warning *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL // SYMBOL: ?C_STARTUP // MODULE: .\Objects\main.obj (MAIN), sau đấy em vẫn thêm file hex vừa tạo vào con 8051 mô phỏng trên protues thì duy chỉ có hàm delay và hieuung1 là chạy còn các hàm khác thì không. Em úp đoạn code lên để mọi người giúp đỡ. Bài này em nộp thầy kết thúc môn học. #include <REG51.H>
/////////////////
void delay(){
#pragma ASM
PUSH 00H
MOV R0,#50
MOV TMOD,#01H
loop: MOV TH0,#HIGH (-5000)
MOV TL0,#LOW (-5000)
SETB TR0
WAIT: JNB TF0,WAIT
CLR TR0
CLR TF0
DJNZ R0,loop
POP 00H
#pragma ENDASM
}
////////////////////////////////
void hieuung0(){
P0=0xf0;
P1=255;
P2=255;
P3=255;
delay();
P0=0x60;
delay();
P0=0x0;
delay();
P2=0xfe;
delay();
P2=0xfc;
delay();
P2=0x18;
delay();
P2=0x10;
delay();
P2=0;
delay();
P3=0xde;
delay();
P3=0x84;
delay();
P3=0;
delay();
P1=0xfe;
delay();
P1=0xfc;
delay();
P1=0x18;
delay();
P1=0x10;
delay();
P1=0x00;
delay();
P0=255;
P1=255;
P2=255;
P3=255;
delay();
}
/////////////////////////////
void hieuung1(){
P0=0xfe;
P1=0xfe;
P2=0xfe;
P3=0xfe;
delay();
P0=0xfd;
P1=0xfd;
P2=0xfd;
P3=0xfd;
delay();
P0=0xfb;
P1=0xfb;
P2=0xfb;
P3=0xfb;
delay();
P0=0xf7;
P1=0xf7;
P2=0xf7;
P3=0xf7;
delay();
P0=0xef;
P1=0xef;
P2=0xef;
P3=0xef;
delay();
P0=0xdf;
P1=0xdf;
P2=0xdf;
P3=0xdf;
delay();
P0=0xbf;
P1=0xbf;
P2=0xbf;
P3=0xbf;
delay();
P0=0x7f;
P1=0x7f;
P2=0x7f;
P3=0x7f;
delay();
P1=255;
P2=255;
P3=255;
P0=255;
delay();
}
///////////////////////////////////
void main(){
while(1){
hieuung0();
hieuung1();
}
}
Mong mọi người giúp đỡ.
/////////////////
void delay(){
#pragma ASM
PUSH 00H
MOV R0,#50
MOV TMOD,#01H
loop: MOV TH0,#HIGH (-5000)
MOV TL0,#LOW (-5000)
SETB TR0
WAIT: JNB TF0,WAIT
CLR TR0
CLR TF0
DJNZ R0,loop
POP 00H
#pragma ENDASM
}
////////////////////////////////
void hieuung0(){
P0=0xf0;
P1=255;
P2=255;
P3=255;
delay();
P0=0x60;
delay();
P0=0x0;
delay();
P2=0xfe;
delay();
P2=0xfc;
delay();
P2=0x18;
delay();
P2=0x10;
delay();
P2=0;
delay();
P3=0xde;
delay();
P3=0x84;
delay();
P3=0;
delay();
P1=0xfe;
delay();
P1=0xfc;
delay();
P1=0x18;
delay();
P1=0x10;
delay();
P1=0x00;
delay();
P0=255;
P1=255;
P2=255;
P3=255;
delay();
}
/////////////////////////////
void hieuung1(){
P0=0xfe;
P1=0xfe;
P2=0xfe;
P3=0xfe;
delay();
P0=0xfd;
P1=0xfd;
P2=0xfd;
P3=0xfd;
delay();
P0=0xfb;
P1=0xfb;
P2=0xfb;
P3=0xfb;
delay();
P0=0xf7;
P1=0xf7;
P2=0xf7;
P3=0xf7;
delay();
P0=0xef;
P1=0xef;
P2=0xef;
P3=0xef;
delay();
P0=0xdf;
P1=0xdf;
P2=0xdf;
P3=0xdf;
delay();
P0=0xbf;
P1=0xbf;
P2=0xbf;
P3=0xbf;
delay();
P0=0x7f;
P1=0x7f;
P2=0x7f;
P3=0x7f;
delay();
P1=255;
P2=255;
P3=255;
P0=255;
delay();
}
///////////////////////////////////
void main(){
while(1){
hieuung0();
hieuung1();
}
}
Mong mọi người giúp đỡ.
Comment