I am working on AT89C51, the problem is that although my assembly code is working perfectly on the pinnacle simulator it gives a verification failed error when I try to write it on the programmer using ezdl4 s/w.
Simple programs with commands to send and recieve data on the serial port work fine and get written on the controller, but when I use commands like ACALL or MOVC in my code it gives me the verification failed error.
Example of a Code working on the programmer.
ORG 0H
MOV TMOD,#20h MOV TH1,#98h MOV SCON,#50H SETB TR1
ECHO:
RECV: JNB RI,RECV MOV A,SBUF CLR RI
MOV SBUF,A SEND: JNB TI,SEND CLR TI
SJMP ECHO
END
Example of a Code not Working
MOV DPTR,#MYDATA
H_1: CLR A MOVC A,@A+DPTR JZ B_1 ACALL SEND INC DPTR SJMP H_1
SEND: MOV SBUF,A JNB TI,$ CLR TI RET
MYDATA: DB "SeriaL Data Transmission 123",0H
B_1: HERE:SJMP HERE END
Note: I have a 12Mhz crystal and so i am using a baudrate of 300bps.
Could anyone please tell me whats the problem asap. Thank you
The programmer I am using is definitly for AT89C51 that only means it it likely to be faulty. The Atmel programming is so finicky that 99% of the kitchen table approaches that 'work' has problems. This is not whether is is somebodys wet dream of how to program Atmel, it is that if ANYTHING is 1% or less off the Atmel expectations it will, most likely fail. As an example replacing a VHC chip in somebodys illusion of an Atmel programmer with an equivalent HC chip makes the 'working' design fail. Not to mention that there are ';designs' on the web that are guaranteed not to work unless your PC is brand x running Windows rev y. That, of course, is NOT stated.
The only thing i am asking is wether its possible dat the programmer has some fault and is not burning some codes? not just 'possible' but likely
Erik