Bien pues antes que nada saludos a todos y me presento, mi nombre es Ricardo y soy estudiante de Ing. en Informática.
Bien pues mi duda es la siguiente, nos han comenzado a enseñar assembler, llevamos dos clases conociendo conceptos del pic16f628a y la estructura del lenguaje, sin embargo no ha sido suficiente y pues el propio profesor nos dijo que el tiempo para enseñarnos es muy muy poco, por lo que solo nos dió un programa y nos pidió que lo modificaramos. Mi problema consiste en que bueno del programa que nos dió ya generé el .hex e intenté simularlo en proteus pero nomas no pasa nada, el display de 7 segmentos queda estático y debería cambiar cuando muevo el dipswitch, lo que me lleva a la conclusión de que el programa .asm está mal, pero lo he revisado y pues por mi poco conocimiento no me es posible identificar los errores. De favor pido que si pudieran ayudarme lo hicieran, la verdad es que no entiendo aun muy bien esto a pesar de que he estado leyendo e informandome por mi cuenta, les dejo el codigo y adjunto mi circuito de proteus.
;*****************************************APLI2.asm********************************************
;
; En un display de 7 segmentos conectado al Puerto B se visualiza el letrero INFORMATICA como un deco,
; teniendo como entrada al Puerto A.
;
;ZONA DE DATOS------------------------------------------------------------------------
; __CONFIG _CP_OFF &_WDT_OFF &_PWRTE_ON &_XT_OSC ;Configuración para el programador
LIST P=16F628A ;Procesador
#INCLUDE <P16F628A.INC> ;Definición de los operandos usados.
ERRORLEVEL 0,-302
__config 2150
;ZONA DE CÓDIGOS---------------------------------------------------------------------
ORG 0x00 ;El programa comienza en la dirección 0.
Inicio
bsf STATUS,RP0 ;Pone a 1 el bit 5 del ESTATUS. Acceso al Banco 1.
clrf TRISB ;Las líneas del Puerto B se configuran como salida.
movlw 7fh ;Las 5 líneas del Puerto A se configuran como entrada.
movwf TRISA ;Las lineas del Puerto A se configuran como entradas.
Principal
bcf STATUS,RP0 ;Pone a 0 el bit 5 de STATUS. Acceso al Banco 0.
movf PORTA,W ;Lee la entrada o puerto A.
andlw 7fh ;Máscara para quedarse con el valor de las
;entradas correspondientes al noble bajo.
call Binario_a_7Segmentos ;Convierte código binario a 7 segmentos del display.
movwf PORTB ;Resultado se visualiza por el puerto de salida.
goto Principal
;Subrutina "Binario_7Segmentos"--------------------------------------------------------
;
; comentario en este programa se configura 0 ABCDEFG
Binario_a_7Segmentos ;Tabla para display de 7 segmentos.
addwf PCL,W
Tabla
retlw 30h ;El código 7 segmentos para el "I".
retlw 15h ;El código 7 segmentos para el "N".
retlw 47h ;El código 7 segmentos para el "F".
retlw 7Eh ;El código 7 segmentos para el "O".
retlw 05h ;El código 7 segmentos para el "R".
retlw 15h ;El código 7 segmentos para el "N" debido a que no se puede desplegar una M.
retlw 77h ;El código 7 segmentos para el "A".
retlw 0Fh ;El código 7 segmentos para el "T".
retlw 30h ;El código 7 segmentos para el "I".
retlw 4Eh ;El código 7 segmentos para el "C".
retlw 77h ;El código 7 segmentos para el "A".
END ;Fin del programa.
Si alguien pudiera ayudarme se lo agradecería enormemente.