Entrada/salida

Anuncio
UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO
MICROPROCESADORES
GUIA DE LABORATORIO
ECP 1 de 5
I. TEMA : ENTRADA/SALIDA EN EL PIC 16F84A
II. OBJETIVOS
El estudiante al finalizar la práctica será capaz de:
1. Comprender la gestión de las operaciones de entrada/salida en el PIC 16F84A
2. Escribir aplicaciones para el PIC 16F84A que interactúen con dispositivos externos
a través de sus puertos de entrada/salida.
III. MATERIALES NECESARIOS
Para el desarrollo de la presente práctica, es necesario:
1. IDE MPLAB versión 8.x o superior.
IV. TRABAJO PREPARATORIO
1. Comprensión de las operaciones de entrada/salida utilizando el PIC 16F84A
2. Conocer el uso del IDE MPLAB para el desarrollo de aplicaciones en el lenguaje
ensamblador del microcontrolador 16F84A.
V. MARCO TEORICO
En la presente práctica, estudiaremos las opciones que ofrece el PIC 16F84A para
realizar operaciones de entrada/salida, que le permita interactuar con dispositivos
periféricos.
ENTRADA/SALIDA EN EL PIC 16F84A
El PIC 16F84A utiliza, para comunicarse con dispositivos externos, dos puertos: el
puerto A (PORTA) y el puerto B (PORTB), los cuales pueden configurarse como
puertos de entrada o de salida.
PORTA es un puerto de 5 bits (RA4: RA0) mapeado en la posición 05h del banco 0.
PORTB es un puerto de 8 bits (RB7: RB0) mapeado en la posición 06h del banco 0.
REGIMEN DE OPERACIÓN DE LOS PUERTOS A Y B
El régimen (entrada o salida), se controla por los registros TRISA y TRISB
respectivamente.
El registro TRISA ubicado en la posición 85h del banco 1, controla el régimen de
operación de los pines de PORTA. Si un bit esta puesto en 0, el bit correspondiente de
UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO
MICROPROCESADORES
GUIA DE LABORATORIO
ECP 2 de 5
PORTA será de salida, mientras que el bit puesto a 1 hará que el bit correspondiente en
PORTA funcione como un puerto de entrada.
El registro TRISB, ubicado en la posición 86h del banco 1 controla PORTB de manera
igual a como el registro TRISA controla PORTA.
VI. DESARROLLO DE LA PRACTICA
1. Escriba un programa que encienda un LED del puerto B al conmutar un interruptor
del puerto A.
Solución
;******************************************************
;* Nombre
: apPrenderLED.asm
;* Proposito
: enciende un led en el puerto B
;*
de acuerdo el estado del puerto A
;* Autor
: Edwin Carrasco
;* FCreacion
: 22/09/2009
;* FModificacion : ------;******************************************************
*
*
*
*
*
*
*
*
list p=16f84 ;Tipo de dispositivo
;Zona de etiquetas
STATUS
PORTA
PORTB
RP0
EQU
EQU
EQU
EQU
0x03
0x05
0x06
0x05
ORG 0
Goto INICIO
ORG 5
INICIO
bsf
STATUS, RP0
clrf PORTB
movlw b'00000100'
movwf PORTA
bcf
STATUS, RP0
clrf
PORTB
; Pone en 1 el bit 5 del registro
STATUS (ir al banco 1)
; Configura B como salida
; Se configura el pin 2 del puerto A
como entrada
; Pone en 0 el bit 5 del registro
STATUS (ir al banco 0)
; Pone en 0 el puerto B
UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO
MICROPROCESADORES
GUIA DE LABORATORIO
ECP 3 de 5
BUCLE
btfss PORTA, 2
goto APAGAR
goto ENCENDER
; Si (RA2 = 1 )
; => apagar
; [] encender
ENCENDER
bsf
goto
PORTB, 0
BUCLE
; Pone en 1 el bit RB0
APAGAR
bcf
goto
PORTB, 0
BUCLE
; Pone en 0 el bit RB0
END
2. Escriba un programa que encienda los puertos LED del puerto B, al establecerse el
código 0110 en los interruptores del puerto A.
Solución
;******************************************************
;* Nombre
: apMultiLED
;* Proposito
: controla los LEDs del puerto B de
;*
acuerdo al estado del registro A
;* Autor
: Edwin Carrasco
;* FCreacion
: 23/09/2009
;* FModificacion : ------;* Algoritmo
:
;******************************************************
list P=16f84 ;tipo de dispositivo
STATUS
PORTA
PORTB
RP0
Z
EQU
EQU
EQU
EQU
EQU
ORG 0
0x03
0x05
0x06
0X05
0X02
;Registro de estado
;puerto A
;puerto B
;vector de reset
goto INICIO
ORG 5
;saltamos el vector de interrupción.
;inicio del programa
INICIO
bsf
STATUS,RP0
*
*
*
*
*
*
*
*
*
UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO
MICROPROCESADORES
GUIA DE LABORATORIO
ECP 4 de 5
clrf
movlw
movwf
bcf
clrf
PORTB
b'00001111'
PORTA
STATUS,RP0
PORTB
;bucle que espera la combinación 0-1-1-0
BUCLE
movf PORTA, W
andlw b'00001111'
xorlw b'00000110'
btfss STATUS,Z
goto BUCLE
movlw 0xff
movwf PORTB
FIN
goto
FIN
END ;Fin del programa
3. Escriba un programa que muestre por el puerto A, el resultado de sumar dos
números de 4 bits ingresados por el puerto B.
Solución
;******************************************************
;* Nombre
: apSumaNibbles
;* Proposito
: calcula la suma de dos nibbles
;*
ingresados por el puerto B
;* Autor
: Edwin Carrasco
;* FCreacion
: 23/09/2009
;* FModificacion : ------;******************************************************
list P=16F84A
include "p16f84a.inc"
CBLOCK 0x0C
Temp
ENDC
ORG
goto
ORG
*
*
*
*
*
*
*
*
;Configuración del 16F84A
;define la posición del inicio de las variables
0x00
INI
0x05
INI
bsf
STATUS,RP0
movlw 0xFF
;Banco 1
UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO
MICROPROCESADORES
GUIA DE LABORATORIO
ECP 5 de 5
movwf PORTB
clrf PORTA
;PuertaB entrada
;Puerta salida
bcf
clrf
STATUS,RP0
PORTA
;Banco 0
;Las lineas de salida de PuertaA a 0
PORTB,W
0x0F
Temp
PORTB,W
0x0F
Temp,W
PORTA
BUCLE
;
;
;
;
;
;
;
BUCLE
movf
andlw
movwf
swapf
andlw
addwf
movwf
goto
END
PuertoB => W
Nible0(W) => W
W => Temp
Swap(PuertoB) => W
Nible0(W) => W
Temp + W => W
W => PuertA
VII. EJERCICIOS PROPUESTOS
1. Escriba un programa que lea 2 nibles por el puerto B y calcule la diferencia entre el
nible mas significativo y el nible menos significativo y muestre el resultado por el
puerto A. Utilice aritmética Complemento a 2.
2. Escriba un programa que rote el contenido del registro W tantas veces como sea el
valor del puerto A y muestre el resultado por el puerto B.
VIII. BIBLIOGRAFIA
BIBLIOGRAFIA BÁSICA
1. Angulo Jose et. al. “Microcontroladores PIC. Diseño práctico de aplicaciones”.
3ed. McGraw Hill 2003
2. Carrasco E. http://in.unsaac.edu.pe/ecarrasco/microproc/mp.html sitio web de la
asignatura.
3. Gardner Niguel. “A Beginners Guide To The Microchip PIC”. 1ed. Blueprint
Technical Press 1998.
4. Microchip www.microchip.com – Sitio Web del fabricante del PIC 16F84 y del IDE
MPLAB
5. Microchip http://ww1.microchip.com/downloads/en/DeviceDoc/35007b.pdf - Ficha
técnica del PIC 16F84
6. Palacios Enrique et. al. “Microcontrolador PIC 16F84. Desarrollo de proyectos”
2Ed. Alfaomega 2006
BIBLIOGRAFIA COMPLEMENTARIA
1. http://www.hispavila.com/3ds/chipspic/microspic1.html
2. http://sputnik.epsj23.net/%7Eeserra/elect/pics/pic16f84.html
Descargar