To cô nương Hoàng Ngọc !
Mình đã mô phỏng thử chương trình của bạn, chạy ok, có thấy báo lỗi gì đâu !
Theo mình, nguyên nhân chương trình báo lỗi "Real Time Simulation failed to start" là chương trình chưa nhận ra file.hex bạn load vào con VĐK.
Nếu bạn dùng bản Demo hiện tại của labcenter thì nó không cho mô phỏng chương trình bạn thiết kế với Pic luôn (các loại khác mình chưa thử !)
Nếu bạn dùng bản có crack hay bản full, thử mô phỏng vài chương trình đơn giản khác xem thế nào !
Đây là code chương trình trên của bạn:
Code:
STORE EQU 41H
ORG 0000h
CONTROL:
L2: MOV STORE,P2 ;doc ma phim an tu P2 (giai ma boi DTMF) luu vao ACC
MOV A,STORE ;chuyen ma phim an tu ACC vao A
ANL A,#0FH ;ma phim an chi nam tu P2.0->P2.3 ->chi lay 4 bit thap cua A
CJNE A,#09H,L2 ;neu ko an dung phim 9 thi lap lai L2 de ktra phim an
;neu an dung phim 9 thi tiep tuc CONTINUE de dkhien tbi
CONTINUE:
MOV STORE,P2
MOV A,STORE
ANL A,#0FH
CJNE A,#01H,TEST3 ;neu an ko dung phim 1 thi den TEST3 ktra tiep phim 3
CLR P0.0 ;neu an dung phim 1 thi xoa P0.0=0 de bat LED1
TEST3:
CJNE A,#03H,TEST5
CLR P0.1 ;neu an dung phim 3 thi xoa P0.1=0 de bat LED2
TEST5:
CJNE A,#05H,TEST7
CLR P0.2 ;neu an dung phim 5 thi xoa P0.2=0 de bat LED3
TEST7:
CJNE A,#07H,TEST5
CLR P0.3 ;neu an dung phim 7 thi xoa P0.3=0 de bat LED4
TEST2:
CJNE A,#02H,TEST4
SETB P0.0 ;neu an dung phim 2 thi xoa P0.1=0 de tat LED2
TEST4:
CJNE A,#04H,TEST6
SETB P0.1 ;neu an dung phim 4 thi xoa P0.1=0 de tat LED2
TEST6:
CJNE A,#06H,TEST8
SETB P0.2 ;neu an dung phim 6 thi xoa P0.2=0 de tat LED3
TEST8:
CJNE A,#08H,TEST0
SETB P0.3 ;neu an dung phim 8 thi xoa P0.3=0 de tat LED4
TEST0:
CJNE A,#00H,AGAIN ;neu phim an ko fai la 0 thi nhay toi AGAIN de tra lai
SETB P3.5 ;neu an dung phim 0 thi lap P3.5=1 de mo tai gia
SJMP SKIP ;nhay den SKIP de thoat khoi chtrinh dkh
AGAIN:
ACALL DELAY_1 ;goi chtrinh con DELAY 1 thoi gian roi ktra lai
SJMP CONTINUE
SKIP:
RET ;thoat khoi chtrinh con dieu khien tbi
;************************************************* ***********************************************
;CHUONG TRINH CON TAO TRE
DELAY_1:
MOV R2,#100
LOOP: MOV R3,#100
DJNZ R3,$
DJNZ R2,LOOP
RET
END
Còn đây là hex file mình biên dịch bằng ASM51
Code:
:1000000085A041E541540FB409F685A041E541546E
:100010000FB40102C280B40302C281B40502C282DD
:10002000B407F8C283B40202D280B40402D281B40D
:100030000602D282B40802D283B40004D2B580048E
:0E004000114580C6227A647B64DBFEDAFA2268
:00000001FF
Load vào chương trình mô phỏng bình thường !
=====================================
Bạn thử mô phỏng chương trình sau xem thế nào !
Đây là chương trình mô phỏng đơn giản cho con AT89C51 ( phải viết bằng Keil chứ bằng ASM mệt óc lắm !):
Chương trình dùng Timer0, mode1 tạo trễ 200ms cho việc chớp tắt 8 led trên port P1
Code:
#include<regx51.h>
// Ham delay time[ms] dung Timer0 mode1, thach anh 11.0592MHz
void delay(unsigned char time)
{
while(time--)
{
TMOD = 0x01; // dung Timer0 o che do 1(16bit)
TR0 = 0 ;
TH0 = 0xFC;
TL0 = 0x66;
TF0 = 0 ;
TR0 = 1 ;
while(!TF0); // doi den khi TF0 =1
}
}
// Ham main
void main()
{
while(1)
{
P1 = 255 ;
delay(200) ;
P1 = 0 ;
delay(200) ;
}
}
Còn đây là hexfile
Code:
:10080000AE071FEE6014758901C28C758CFC758A69
:0B08100066C28DD28C208DE880FB2298
:10081B007590FF7FC8120800E4F5907FC81208009E
:02082B0080EE5D
:0300000002082DC6
:0C082D00787FE4F6D8FD75810702081BF7
:00000001FF
To anh F !
Xin lỗi pic bang chủ, đệ tử pic bang đi lạc chủ đề sang 8051 !