hla compañero, lo único que te puedo decir es que este pic es desesperante yo yevo dos meses intentando programarlo con eso te digo todo, antes yo programaba un 16f84 y iba a las mil maravillas pero me metí en un proyecto que requería mas puertos y pensé en hacerlo con este pic y la verdad en que hora pensé en el, tienes razón pq a mi me pasa lo mismo en el ordenador el programa que diseñas funciona a la perfección y luego en el cacharro ni flores vamos, parece que le estes escribiendo en chino, ante todo decirte que yo utilizo el MPLAB pero bueno viendo tu programa yo no pondría ninguno de esos registros que pones, el pic ya sabe donde tiene el cada cosa vamos que lo de indicarle direcciones de memoria es solo para variables que tu te inventes yo pondría esto:
; Leer/escribir en puertos
LIST P=16F876
#include "p16f876.inc"
;AQUI IRIAN LAS VARIABLES QUE TU TE INVENTES PARA TU
;PROGRAMA
ORG 0x00
goto inicio
ORG 0x05
inicio
bsf STATUS,5
movlw 0x07
movwf ADCON1 ;Seleccionamos I/O Digitales
movlw b"00111111" ;Puerto A como entrada
movwf TRISA
movlw b"00000000" ;Puerto B como salida
movwf TRISB
bcf STATUS,5
bucle
movf PORTA,0
movwf PORTB
goto bucle
end
Como ves con solo ponerle el nombre del registro o del puerto en cuestión en mayusculas el ya sabe donde tiene que ir no hace falta indicarle en cada momento la dirección donde tiene que ir.
Otra cosa a tener en cuenta es con que le programas yo lo hago con el T-20 y a este hay que hacerle una modificación para que grabe este pic, y tb si programas con el ICPROG al seleccionar el dispositivo cuando cargues el archivo exe, a la derecha donde pone oscilador debes seleccionar XT y debajo en bits de configuración quitarlos todos pq si no hace cosas raras.
El programa que te pongo esta probado y funciona correctamente.
Espero haberte ayudado. 1Saludo

