Práctica 7

3
Práctica 7.”JUEGO DE INSTRUCCIONES I: MODOS DE DIRECCIONAMIENTO Y PROGRAMA DE PRUEBA”. Para el PIC 16F84A solamente existen 4 modos de direccionamiento, entre los cuales Los modos de direccionamiento tratan sobre la forma de mover los datos de unas posiciones de memoria a otras. Direccionamiento Inmediato Direccionamiento Directo Direccionamiento bit a bit Direccionamiento Indirecto Direccionamiento Inmediato El dato manipulado por la instrucción se codifica con la propia instrucción. En este caso, el dato en cuestión se denomina literal. MOVLW k ; Coloca el literal k, que es un valor cualquiera codificado con 8 bits, en el registro de trabajo w Direccionamiento Directo La memoria interna se direcciona de forma directa por medio de los 8 bits "f" contenidos en las instrucciones que operan sobre registros. De esta manera se puede direccionar cualquier posición desde la 00 a la FF. En los microcontroladores que tengan más de un banco, antes de acceder a alguna variable que se encuentre en la zona de los bancos de registros, el programador deberá asegurarse de haber programado los bits de selección de banco en el registro OPTION. Este es el modo más utilizado, ya que como hemos visto anteriormente, la memoria RAM está dividida en registros específicos y en un conjunto de registros de propósito general. Este modo consiste en codificar el nombre del o de los registros en cuestión directamente en la instrucción. MOVWF f ; Desplaza el contenido del registro w al registro f

description

Practica de microcontroladores

Transcript of Práctica 7

Prctica 7.JUEGO DE INSTRUCCIONES I: MODOS DE DIRECCIONAMIENTO Y PROGRAMA DE PRUEBA.Para el PIC 16F84A solamente existen 4 modos de direccionamiento, entre los cuales Los modos de direccionamiento tratan sobre la forma de mover los datos de unas posiciones de memoria a otras. Direccionamiento Inmediato Direccionamiento Directo Direccionamiento bit a bit Direccionamiento IndirectoDireccionamiento InmediatoEl dato manipulado por la instruccin se codifica con la propia instruccin. En este caso, el dato en cuestin se denomina literal.MOVLW k ; Coloca el literal k, que es un valor cualquiera codificado con 8 bits, en el registro de trabajo wDireccionamiento DirectoLa memoria interna se direcciona de forma directa por medio de los 8 bits "f" contenidos en las instrucciones que operan sobre registros. De esta manera se puede direccionar cualquier posicin desde la 00 a la FF.En los microcontroladores que tengan ms de un banco, antes de acceder a alguna variable que se encuentre en la zona de los bancos de registros, el programador deber asegurarse de haber programado los bits de seleccin de banco en el registroOPTION.Este es el modo ms utilizado, ya que como hemos visto anteriormente, la memoria RAM est dividida en registros especficos y en un conjunto de registros de propsito general. Este modo consiste en codificar el nombre del o de los registros en cuestin directamente en la instruccin.MOVWF f ; Desplaza el contenido del registro w al registro fDireccionamiento bit a bitMediante este direccionamiento se manipula un bit individual en cualquier registro. Este modo de direccionamiento no se utiliza nunca solo, sino que siempre va emparejado con el modo de direccionamiento directo.BCF f,b ; Pone a cero el bit nmero b del registro fDireccionamiento IndirectoEs el modo ms potente y utiliza los registrosINDFyFSR. En el registroFSRse introduce la direccin del registro que se quiere leer cuando se acceda aINDF.FSRacta como puntero, es decir, el valor que guardemos en este registro ser la direccin de una posicin de memoria. Si aumentamos o disminuimos con cualquier operacin el contenido deFSRnos moveremos entre las posiciones de memoria.Ejemplo: A continuacin hay un pequeo programa en ensamblador (MPASM) que pone a 0 las posiciones de memoria 20 y 21 (enhexadecimal) usando un direccionamiento indirecto:MOVLW 20h MOVWF FSR CLRF INDF INCF FSR CLRF INDFMOVLW k:(Move Literal to W)Es una instruccin que carga en el registro de trabajo W, un literal (constante) k, que en este caso es 20h.MOVWF f:(Move W to File), Copia el contenido del registro W a la posicin de memoria f. En este caso, FSR representa una direccin de memoria. FSR es el registro usado para direccionamiento indirecto. En FSR se carga la direccin de memoria que se va a direccionar con INDF (otro registro).CLRF f:(Clear File), Pone en 0 el registro en la posicin de memoria f.INCF f:(Increment File), Incrementa en uno el valor almacenado en la posicin de memoria f.