Foros
Nuevos mensajes
Buscar en foros
Novedades
Nuevos mensajes
Nuevos recursos
Última actividad
Recursos
Últimas revisiones
Buscar recursos
Acceder
Registrarse
Novedades
Buscar
Buscar
Buscar sólo en títulos
De:
Nuevos mensajes
Buscar en foros
Menú
Acceder
Registrarse
Install the app
Instalar
Diseño digital
Microcontroladores y sistemas embebidos
display y RETLW
JavaScript está desactivado. Para una mejor experiencia, por favor, activa JavaScript en el navegador antes de continuar.
Estás usando un navegador obsoleto. No se pueden mostrar este u otros sitios web correctamente.
Se debe actualizar o usar un
navegador alternativo
.
Responder al tema
Mensaje
[QUOTE="mario18560, post: 9440, member: 1867"] En primer termino, corrijo algo que se me escapo en la anterior respuesta. Donde digo: [b]"En tu caso, retornas con el primer valor de la tabla (b'00111111') ya que NUMERO vale 1, y es ese numero el que mostraras por PORTB." ESTO ES INCORRECTO. Pido mil disculpas!!![/b] Debe entenderse, entonces que: [b]Si el valor de la variable NUMERO es b'00000001', retornaras con el segundo valor de TABLA, es decir con b'00100001'. Este valor binario, fijate, tiene dos unos, por lo que, dependiendo como hayas conectado el display de Catodo Comun, puede llegar a mostrar un 1.[/b] Respecto de tu otra duda, la pregunta 15 del PDF adjunto, la cual transcribo: 15.- Considere el siguiente fragmento de un programa: movlw b'00000011' call convierte fin goto fin convierte addwf PCL,1 retlw 0x01 retlw 0x02 retlw 0x03 retlw 0x00 ¿Qué valor decimal tiene almacenado el registro W cuando se ejecuta el bucle "fin"? Nuevamente aqui, estoy trabajando con una subrutina (convierte), a la cual llamo mediante la instruccion CALL, retornando de ella con un valor determinado de tabla para, finalmente, entrar en un loop infinito. Para retornar con el valor requerido de una tabla, como la del ejercicio, debo sumar al PCL un valor determinado (PCL = PCL + VALOR). En este caso, estoy moviendo al registro de trabajo W el valor binario b'00000011'; esto es un 3 (tres) en decimal. Podriamos tambien haber escrito: movlw d'3'. Dicho valor es el que se suma al PCL para extraer el valor correspondiente de la tabla (PCL=PCL+W), mediante la instruccion addwf PCL,1. Entonces: Si a PCL le sumo 0, extraigo el primer valor de tabla (0x01). Si a PCL le sumo 1, extraigo el segundo (0x02). Si a PCL le sumo 2, extraigo el tercero (0x03). [b]Y si, finalmente, como en este caso, le sumo 3, extraigo el ultimo valor de tabla. Es decir, retorno con el 0 (cero) (retlw 0x00). [/b] Espero haber sido claro. Cualquier duda avisame. Un saludo cordial. [/QUOTE]
Verificación
Responder
Diseño digital
Microcontroladores y sistemas embebidos
display y RETLW
Arriba