Solucionado
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú

la verdad aun que nos obliguen hacer el trabajo en ASM,me gusta mucho este lenguaje,hay cosas que cuestan mucho de entender,peor cunao lo consigues en verdad si lo sabes manejar no es tan dificl,y comprendes mejor como trabajan los lenguajes como Csabes quetocas exactamente del PIC,creo que eos es algo que solo ASM puede brindar,por eso me gusta tanto,aun que C es hiperpotente,esta en todos los lados hehe,

aqui pongo el codigo aver si ven algun erro y pueden ayudarme
list p=16f84 ; Pic a usar
radix hex ; Sistema hexadecimal
;_____Asignacion de puertos_______
status equ 0x03 ; Direccion registro STATUS
porta equ 0x05 ; direccion Pueros A
trisa equ 0x85 ; Direccion TRISA
portb equ 0x06 ; Direccion puertos B
trisb equ 0x86 ; Direccion TRISB
Registro1 equ 0x0C ; Registro 1
;_____Memoria EEPROM______________
;Direccion de los registros para trabajar con la EEPROM del 16f84
EEDATA equ 0x08
EEADR equ 0x09
EECON1 equ 0x88
EECON2 equ 0x89
ADDRES_W equ 0x10 ; Direccion en la que quiero escribir el dato
Dat equ 0x01 ; Dato a guardar
;______Codigo_____________________
reset org 0x00
goto inicio
org 0x05
inicio
;_____Configurar puertos__________
bsf status,5 ; Pasar al banco 1
movlw b'00000'
movwf trisa ; Puerto A como salida
clrw ; Limpiar registro W
movlw b'11111111'
movwf trisb ; Puerto B como entrada
bcf status,5 ; Volver al banco 0
;_____Esrcibe en la EEPROM________
bcf status,5 ; Me aseguro que este en el banco 0
movlw ADDRES_W ; Paso la direccion a W
movwf EEADR ; y la paso al registro de la EEPROM EEADR
movlw Dat ; Pongo en W el dato que quiero grabar
movwf EEDATA ; y lo paso al registro de dato de la EEPROM
bsf status,5 ; paso al banco 1
bsf EECON1,2 ; Pido permiso de escritura (BIT 2: WREN)
;____Proceso de seguridad_______
movlw 0x55
movwf EECON2
movlw 0xAA
movwf EECON2
bsf EECON1,1 ; Ejecuto escritura!! no?¿?¿ :S (bit1: WR = WriteData)
bcf status,5 ; Regreso al banco 0
;_____ Lee EEPROM_________________
movlw ADDRES_W ; Direccion a leer
movwf EEADR ; Se la paso al registro de direcciones de la EEPROM
bsf status,0 ; Paso al banco 1
bsf EECON1,0 ; Activo READ DATA, (bit0)
bcf status,0 ; Regreso de banco
movf EEDATA,W ;guardo el valor leido en W (?¿)
movwf Registro1 ;Lo paso al registro1 (no?¿)
IF Registro1 == 0x01
bcf portb,0 ;Prende led por PINB0
else
end Fin del programa
que bobo soy,hablando de esto del ASM,yo tambien programe en C,pero me pase al ASM,me cae mejor,parece una tonteria pero nose,me gusta mas aparate que e slo que nos enseñan,es que el profesor dice que con ASM puedes controlar la mas minima parte del PIC,y que si fuera para PC no valdira la pena,pero para Microcontroladores va muy bien,ya que son programas mas rapidos,y pequeños,y en el caso de los PIC hya que tener en cuenta el tamaño del programa etc etc etc,unos rollazos que nos pega xd en fin
movf PORTB,R1
MOV portb,b
movf portb,b