Está en la página 1de 2

ESCUELA POLITÉCNICA NACIONAL

ESCUELA DE FORMACIÓN DE TECNÓLOGOS


MICROPROCESADORES
DEBER 2

NOMBRE:
FECHA: Julio 2, 2020

1. Si las siguientes instrucciones permiten seleccionar el banco 1 de la memoria de datos,


escriba las instrucciones que permitan seleccionar el banco 2 de la memoria de datos.
Comente todas las líneas de código.

LIST P=16F870 ; Anticipa el microcontrolador a usar


#INCLUDE “P16F870.INC” ; Añade librerías
ORG 0X00 ; Indica que iniciará en la dirección 0x00 de la memoria de programa
BCF STATUS,RP1 ; Pone en 0 el bit RP1 del registro STATUS
Banco 1
BSF STATUS,RP0 ; Pone en 1 el bit RP0 del registro STATUS

2. A través de las siguientes instrucciones se lee el contenido del pórtico B en donde se han
conectado 8 dip switches, y dicha información es movida (se escribe) al pórtico C en donde
se han conectado 8 LEDs. Note que para declarar entradas (pines en donde se encuentran
los dip-switches) se ha colocado 0XFF (11111111) en el registro TRISB, lo cual significa que
los 8 pines son entradas. Para declarar salidas (pines en donde se encuentran los LEDs) se
ha colocado 0X00 (00000000) en el registro TRISC, lo cual significa que los 8 pines son
salidas. Note que para usar los registros TRISB y TRISC fue necesario colocarse en el banco
1 porque en dicho banco están esos registros, pero para usar los registros PORTB y PORTC,
fue necesario un cambio de banco al 0; dado que el RP1 siempre estuvo en 0, al realizar el
cambio de banco, no es necesario ponerlo nuevamente en 0. Presente un programa que
permita leer los datos ingresados por dip switches conectados al pórtico C y presente esa
información mediante LEDs conectados al pórtico B. Comente todas las líneas de código.

LIST P=16F870 ; Anticipa el microcontrolador a usar


#INCLUDE “P16F870.INC” ; Añade librerías
ORG 0X00 ; Indica que iniciará en la dirección 0x00 de la memoria de programa
BCF STATUS,RP1 ; Pone en 0 el bit RP1 del registro STATUS
Banco 1
BSF STATUS,RP0 ; Pone en 1 el bit RP0 del registro STATUS
MOVLW 0xFF ; Escribo 0XFF (11111111) en el registro Work
MOVWF TRISB ; Escribo el contenido de Work (11111111) en el registro TRISB (TODO ENTRADAS)
MOVLW 0x00 ; Escribo 0X00 (00000000) en el registro Work
MOVWF TRISC ; Escribo el contenido de Work (00000000) en el registro TRISB (TODO SALIDAS)
BCF STATUS,RP0 ; Pone en 0 el bit RP0 del registro STATUS, con lo que regreso a banco 0
MOVF PORTB,0 ; Mueve el contenido del registro PORTB al registro Work (lee)
MOVWF PORTC ; Mueve el contenido del registro Work al PORTC (escribe)

3. A través del siguiente programa se escribe el número 0XD1 (209) (11010001) en el registro
de propósito general con dirección 0X28. Añada las líneas necesarias en el código, de
modo que el contenido que se acaba de poner en el GPR con dirección 0X28, se muestre
mediante LEDs conectados al pórtico B. Considere que tiene que configurar como salidas
todos los pines del pórtico B (use registro TRISB ubicado en el banco 1). Para la escritura
será necesario usar el registro PORTB. Comente todas las líneas de código.
LIST P=16F870 ; Anticipa el microcontrolador a usar
#INCLUDE “P16F870.INC” ; Añade librerías
ORG 0X00 ; Indica que iniciará en la dirección 0x00 de la memoria de programa
BCF STATUS,RP1 ; Pone en 0 el bit RP1 del registro STATUS
BCF STATUS,RP0 ; Pone en 0 el bit RP0 del registro STATUS
MOVLW 0XD1 ; Escribe el número 0XD1 (209) en el registro Work
MOVWF 0x28 ; Mueve el contenido del registro Work al GPR con dirección 0X28

Ing. Fanny Flores, MSc.

También podría gustarte