Muy buenas, realmente tengo buenas expectativas sobre este foro.
Les contaré mi triste historia (puedes saltarte a la duda buscando "*****"):
Hoy, escribo a 25 de Abril del 2020, por si es necesario decirlo (Es mi primera publicación), soy un estudiante de preparatoria en Mexico y lo que necesito entender es cómo programar en ensamblador.
He tenido un maestro en mi experiencia muy malo (aunque creo que de manera sarcástica todo mi grupo lo alaba por ello).
Basta con decir que no explica casi nada, por lo menos no este semestre.
No exagero, de verdad, estoy en el curso de Mecatrónica (vaya lio en el que me metí xd) y lo que debíamos de ver este momento era la programación de microcontroladores PIC, en assembler qué si no.
Y pues la primera evaluación fue sobre la composición física de microprocesadores y microcontroladores.
En la segunda unidad tocaba programación, primeras semanas todo bien, aunque honestamente lo mas cercano a escribir un código fue copiar uno EXACTAMENTE como venía en una presentación borrosa de powerpoint, cualquier error era morir tratando de ver que cero no pusiste y por su puesto, sin entender absolutamente nada. Y bueno, entra el COVID 19 en acción .
.
Nos encargó nueve prácticas en simulación sin saber ni una miseria de cómo funcionaba el assembler, algunos compañeros ni sabían instalar MPLAB o Proteus.
Ni siquiera sé exactamente qué quiere que haga cada cosa pero ya que.
Todo lo que he aprendido hasta ahora fue de manera autodidacta, así que puede tener un sin fin de errores.
*************
Ahora bien, ¿Por que no funciona?, MPLAB simplemente no detecta el cambio de banco, cualquier clase de error sería de gran ayuda que me lo hicieran saber.
Es una practica en simulación MUY fácil, pero no tengo gran idea de lo que hago, eso sí, todo el programa lo creé desde cero sin copiar el asm de otros.
Empieza en el renglón 4, Aparecen triángulos amarillos desde "LIST...." hasta "goto inicio", La simulación no funciona de ninguna manera, inicia dando señal sin presionar nada en un pin que ni siquiera se configura de salida, de estar correcto el programa, claro.
Las propiedades del proyecto indican que es para el PIC16F877A, justo el que tiene el Include del programa.
	
	
	
		
Este es el mensaje de error, si bien si compila, no hace lo que debe y marca que los operandos no están en el banco 0, justo despues de cambiarme al banco 1 para buscarlo ahí y no en el 0, no entiendo por qué ocurre.
				
			Les contaré mi triste historia (puedes saltarte a la duda buscando "*****"):
Hoy, escribo a 25 de Abril del 2020, por si es necesario decirlo (Es mi primera publicación), soy un estudiante de preparatoria en Mexico y lo que necesito entender es cómo programar en ensamblador.
He tenido un maestro en mi experiencia muy malo (aunque creo que de manera sarcástica todo mi grupo lo alaba por ello).
Basta con decir que no explica casi nada, por lo menos no este semestre.
No exagero, de verdad, estoy en el curso de Mecatrónica (vaya lio en el que me metí xd) y lo que debíamos de ver este momento era la programación de microcontroladores PIC, en assembler qué si no.
Y pues la primera evaluación fue sobre la composición física de microprocesadores y microcontroladores.
En la segunda unidad tocaba programación, primeras semanas todo bien, aunque honestamente lo mas cercano a escribir un código fue copiar uno EXACTAMENTE como venía en una presentación borrosa de powerpoint, cualquier error era morir tratando de ver que cero no pusiste y por su puesto, sin entender absolutamente nada. Y bueno, entra el COVID 19 en acción
Nos encargó nueve prácticas en simulación sin saber ni una miseria de cómo funcionaba el assembler, algunos compañeros ni sabían instalar MPLAB o Proteus.
Ni siquiera sé exactamente qué quiere que haga cada cosa pero ya que.
Todo lo que he aprendido hasta ahora fue de manera autodidacta, así que puede tener un sin fin de errores.
*************
Ahora bien, ¿Por que no funciona?, MPLAB simplemente no detecta el cambio de banco, cualquier clase de error sería de gran ayuda que me lo hicieran saber.
Es una practica en simulación MUY fácil, pero no tengo gran idea de lo que hago, eso sí, todo el programa lo creé desde cero sin copiar el asm de otros.
Empieza en el renglón 4, Aparecen triángulos amarillos desde "LIST...." hasta "goto inicio", La simulación no funciona de ninguna manera, inicia dando señal sin presionar nada en un pin que ni siquiera se configura de salida, de estar correcto el programa, claro.
Las propiedades del proyecto indican que es para el PIC16F877A, justo el que tiene el Include del programa.
		Código:
	
	;Intermitencia usando el temporizador TMR0 a modo de oscilador  
LIST p=16F877A                ;Identifica el PIC a usar                              
INCLUDE "p16F877a.INC"  ;Libreria del PIC                                              
__CONFIG 0x1F39
org 0
goto Inicio  
Inicio
     bsf     STATUS,RP0     ;Establecer puertos
    movlw   b'111111'    
    movwf   TRISA
    bcf     TRISB,0                ;Led de salida, apreciable mejor con osciloscopio
    bcf     STATUS,RP0
    goto    Tiempos
Tiempos                            ;Tiempo a contar segun la entrada activada
Tiempo1ms
    btfss   PORTA,0             ;Testeo, ¿PORTA0 esta activa?
    goto    Tiempo10ms      ;No, prueba con el siguiente tiempo
    bsf     STATUS,RP0         ;Si, continua
    movlw   b'11010100'
    movwf   OPTION_REG      ;Cambio a prescaler de 32, en base a calculos con
    bcf     STATUS,RP0                ;cristal de 4 mhz
    bsf     PORTB,0
    movlw   d'32'                        ;Valor segun calculos para cuenta de 1ms
    movwf   TMR0  
    call    Testeo                 ;Llama a subrutina de testeo
    goto    Tiempo1ms       ;Vuelve a activar si aun PORTA0 esta encendida o
                                          ;busca otra entrada activada
Tiempo10ms
    btfss   PORTA,1              ;Testeo, ¿PORTA1 esta activa?
    goto    Tiempo50ms      ;No, prueba con el siguiente tiempo
    bsf     STATUS,RP0         ;Si, continua
    movlw   b'11010101'     ;Cambio a prescaler de 64, en base a calculos con
    movwf   OPTION_REG      ;cristal de 4mhz
    bcf     STATUS,RP0
    bsf     PORTB,0
    movlw   d'157'                ;Valor segun calculos para cuenta de 10ms
    movwf   TMR0
    call    Testeo                   ;Llama a subrutina de testeo
    goto    Tiempo10ms      ;Vuelve a activar si aun PORTA1 esta encendida o
                                           ;busca otra entrada activada
Tiempo50ms
    btfss   PORTA,2             ;Testeo, ¿PORTA2 esta activa?
    goto    Tiempos            ;No, regresa y prueba con el primer tiempo
    bsf     STATUS,RP0        ;Si, continua
    movlw   b'11010100'     ;Cambio a prescaler de 32, en base a calculos con
    movwf   OPTION_REG      ;cristal de 4mhz
    bcf     STATUS,RP0
    bsf     PORTB,0
    movlw   d'157'              ;Valor segun calculos para cuenta de 10ms
    movwf   TMR0
    call    Testeo                 ;Llama a subrutina de testeo
    goto    Tiempo50ms    ;Vuelve a activar si aun PORTA2 esta encendida o
                                        ;busca otra entrada activada
Testeo
    btfss   INTCON,2       ;¿Se ha desbordado? Observa el registro INTCON,TMR0I
    goto    Testeo            ;No, continua testeando
    bcf     INTCON,2        ;Si, borra registro y apaga LED
    bcf     PORTB,0
    return
ENDCLEAN SUCCESSFUL (total time: 137ms)
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory 'C:/Users/LUISALBERTO/Desktop/Practicas PIC/Practica 7.X'
make -f nbproject/Makefile-default.mk dist/default/production/Practica_7.X.production.hex
make[2]: Entering directory 'C:/Users/LUISALBERTO/Desktop/Practicas PIC/Practica 7.X'
"C:\Program Files (x86)\Microchip\MPLABX\v5.30\mpasmx\mpasmx.exe" -q -p16f877a -l"build/default/production/Temporizador.lst" -e"build/default/production/Temporizador.err" -o"build/default/production/Temporizador.o" "Temporizador.asm"
Warning[205] C:\USERS\LUISALBERTO\DESKTOP\PRACTICAS PIC\PRACTICA 7.X\TEMPORIZADOR.ASM 5 : Found directive in column 1. (LIST)
Warning[205] C:\USERS\LUISALBERTO\DESKTOP\PRACTICAS PIC\PRACTICA 7.X\TEMPORIZADOR.ASM 6 : Found directive in column 1. (INCLUDE)
Warning[205] C:\USERS\LUISALBERTO\DESKTOP\PRACTICAS PIC\PRACTICA 7.X\TEMPORIZADOR.ASM 8 : Found directive in column 1. (__CONFIG)
Warning[205] C:\USERS\LUISALBERTO\DESKTOP\PRACTICAS PIC\PRACTICA 7.X\TEMPORIZADOR.ASM 10 : Found directive in column 1. (org)
Warning[203] C:\USERS\LUISALBERTO\DESKTOP\PRACTICAS PIC\PRACTICA 7.X\TEMPORIZADOR.ASM 11 : Found opcode in column 1. (goto)
Message[302] C:\USERS\LUISALBERTO\DESKTOP\PRACTICAS PIC\PRACTICA 7.X\TEMPORIZADOR.ASM 16 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] C:\USERS\LUISALBERTO\DESKTOP\PRACTICAS PIC\PRACTICA 7.X\TEMPORIZADOR.ASM 17 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] C:\USERS\LUISALBERTO\DESKTOP\PRACTICAS PIC\PRACTICA 7.X\TEMPORIZADOR.ASM 27 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] C:\USERS\LUISALBERTO\DESKTOP\PRACTICAS PIC\PRACTICA 7.X\TEMPORIZADOR.ASM 41 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] C:\USERS\LUISALBERTO\DESKTOP\PRACTICAS PIC\PRACTICA 7.X\TEMPORIZADOR.ASM 55 : Register in operand not in bank 0. Ensure that bank bits are correct.
Warning[205] C:\USERS\LUISALBERTO\DESKTOP\PRACTICAS PIC\PRACTICA 7.X\TEMPORIZADOR.ASM 71 : Found directive in column 1. (END)
"C:\Program Files (x86)\Microchip\MPLABX\v5.30\mpasmx\mplink.exe" -p16f877a -w -m"dist/default/production/Practica 7.X.production.map" -z__MPLAB_BUILD=1 -odist/default/production/Practica_7.X.production.cof build/default/production/Temporizador.o
MPLINK 5.09, LINKER
Device Database Version 1.49
Copyright (c) 1998-2011 Microchip Technology Inc.
Errors : 0
MP2HEX 5.09, COFF to HEX File Converter
Copyright (c) 1998-2011 Microchip Technology Inc.
Errors : 0
make[2]: Leaving directory 'C:/Users/LUISALBERTO/Desktop/Practicas PIC/Practica 7.X'
make[1]: Leaving directory 'C:/Users/LUISALBERTO/Desktop/Practicas PIC/Practica 7.X'
BUILD SUCCESSFUL (total time: 2s)
Loading code from C:/Users/LUISALBERTO/Desktop/Practicas PIC/Practica 7.X/dist/default/production/Practica_7.X.production.hex...
Loading completed
 
   
				 
						 
 
		 
 
		 
			 
			 
 
		 , olviden todo lo escrito por mí en el post anterior
, olviden todo lo escrito por mí en el post anterior  .
. 
 
		
 
 
		 
 
		 
 
		 
 
		 
 
		