Programacion 89C51 con teraterminal.

Buenas!

Estoy tratando de programar un 89C51 enviandole mi programa a traves del ISP con el teraterminal.

El caso es que después de cada línea el micro debe responder un caracter "." si va bien, un caracter "X" si el chexksum de final de linea no es correcto o una "R" si no se ha podido grabar el micro.

El caso es que un programa tontisimo de 4 lineas me responde un punto en dos y una R en otras dos. y no entiendo que pasa. Alguien puede aconsejarme para donde tirar.

Pongo aqui el echo que se ve por el teraterm:

:010000020CF1.

:03000000020009F2R

:0C000900787FE4F6D8FD75810702000046.

:090000007580040075800080F792R

:00000001FF.

Saludos
 
Código:
:010000020CF1.

:03000000020009F2R

:0C000900787FE4F6D8FD75810702000046.

:090000007580040075800080F792R

:00000001FF.

¿Puedes ponerlo en ensamblador?
 
Si. Pero voy a reducirlo a la mínima expresion por que en el anterior habia inlcuido un archivo de configurador:

Ensamblador:

org 0000H
START: mov P0,#4H
nop
mov P0,#0H
ljmp START
END

Código máquina:

:010000020CF1 -> Esta es una instruccion de configuracion del cristal, no hay referencia en asm y la puse yo después de la compilacion.
:0A0000007580040075800002000006
:00000001FF

He estado investigando cosas, he cargado un programa ejemplo de ATMEL para un micro equivalente. La carga ha ido toda bien, es decir instrucciones de datos las acepta bien, pero cuando trata de escribir la direccion 0000 es cuando devuelve una R en lugar de un .

Saludos!
 
basanta79 dijo:
Ensamblador:
; Por lo que yo entiendo, nunca he visto AVR, me recuerda mucho los PIC.
org 0000H ; Empieza con la dirección 0000h
START: mov P0,#4H ; Mueve #4H al P0, quizás sea de P0 al #4H.
nop ; No hace nada, si acaso retardos.
mov P0,#0H ; Mover #0H a P0.
ljmp START ; Como si fuera Goto de los PIC.
END ; Final del programa.
 
Gracias meta.
Aunque la duda no era en la programacion en assembler ( la he hecho yo ) el problema es que las direcciones bajas, mas concretamente la 0000h no las escribia.

Podia enviar mensajes en Intel HEX a qualquier direccion de la flash con éxito pero a la direccion 0000 devolvia el error "R".

Por suerte, y aunque no se que estaba pasando, he podido cargar el programa en memoria después de borrar completamente el chip y dejarlo con los settings por defecto con la instruccion
:0200000301000A

Ahora tengo una duda que no un problema. Este tipo de chips tienen un registro de status, el cual guarda relacion con el bootloader y etc. Alguien tiene algo de información sobre esto?

Saludos
 
Atrás
Arriba