Lab03 - Puertos de Entrada y Salida Parte 1
Lab03 - Puertos de Entrada y Salida Parte 1
Lab03 - Puertos de Entrada y Salida Parte 1
PROGRAMACIÓN DE MICROCONTROLADORES
IV Ciclo
Laboratorio N°3
pág. 2
Lab. N° 3 Puertos de Entrada y Salida 1
Puertos de Entrada y Salida 1
Objetivos
1. Utilizar las instrucciones para programar al microcontroladorPIC16F877
2. Utilizar software de desarrollo proporcionada por el fabricante
3. Modificar entradas y salidas digitales de los puertos del microcontrolador realizando
previamente diagramas de flujo.
4. Configurar TIMER 0, y sus ventajas como temporizador.
Introducción
Los PICs constituyen en la actualidad una forma de proveer inteligencia a equipos o sistemas para
un mejor desempeño de los mismos. Para que realicen los eventos que queramos es necesario
utilizar los puertos como entrada para que la data ingrese y se procese en el PIC.
Preparación
Para la realización de este laboratorio se requiere la lectura previa de la información proporcionada
para el curso, como el texto y el manual del fabricante.
Equipos y Materiales
● Computadora
● Software de desarrollo
● Proyector multimedia
● Texto del curso
● Manual del fabricante
● Tarjeta de desarrollo
pág. 3
Lab. N° 3 Puertos de Entrada y Salida 1
Seguridad
Trabajar con Seguridad evita que las personas sufran daños, y provee un ambiente satisfactorio de
trabajo.
1. Al ingresar, inspeccione:
Las vías de acceso.
Orden y limpieza.
pág. 4
Lab. N° 3 Puertos de Entrada y Salida 1
Procedimiento Parte 1
El PIC16F877A contiene 5 puertos que pueden ser configurados como entradas o salidas
digitales (A, B, C, D, E). El puerto A contiene 6 bits (RA0-5) por defecto está configurado
como entrada analógica y puede ser configurado como entrada y/o salida digital.
El puerto B (RB0-7), el puerto C (RC0-7) y el puerto D (RD0-7) son de 8 bits y por defecto
están como entradas digitales y pueden ser configurados como entradas y salidas digitales.
El puerto E solo cuenta con 3 líneas (RE0-2) y por defecto está configurado como entrada
analógica y puede ser configurado como entrada y salida digital.
Ingresar al banco 1.
Configurar los puertos (registros TRISA, TRISB, TRISC, TRISD y TRISE).
Regresar al banco 0.
Escribir o leer datos desde los puertos. (Registros PORTA, PORTB, PORTC, PORTD y PORTE).
Hemos indicado que la memoria de datos del PIC16F877A se divide en cuatro bancos: 0, 1, 2
y 3. En las posiciones inferiores de ambos bancos se encuentran los registros especiales de
función (SFR). En la posición 0x05, 0x06, 0x07, 0x08 y 0x09 respectivamente se encuentran
los registros PORTA, PORTB, PORTC, PORTD y PORTE que se usan para leer o escribir datos
en tanto que en las posiciones 0x85, 0x86, 087, 0x88 y 0x89 se encuentran los registros
TRISA, TRISB, TRISC, TRISD y TRISE respectivamente, es allí donde se configuran los puertos.
Cabe señalar que el PORTB también aparece en el banco 2 en la posición de memoria 0x106
y el TRISB en la posición de memoria 0x186.
pág. 5
Lab. N° 3 Puertos de Entrada y Salida 1
…… ……
PORTA TRISA
PORTB TRISB
PORTC TRISC
PORTD TRISD
PORTE TRISE
…… ……
ADCON1
…… ……
Bancos de memoria (0 y 1)
Cada una de las líneas de los puertos puede ser configurada como entrada o como salida. En
los registros TRIS determinamos la configuración de los puertos. Los registros son una suerte
de mascara. Por ejemplo si escribimos un 0 en el bit 0 del TRISB la línea RB0 se comportará
como una línea de salida. Si colocamos a 1 el bit 0 del TRISB a la línea RB0 se comportará
como entrada. A través de los valores que escribamos en los registros TRIS determinamos el
comportamiento de los puertos. La escritura y lectura de valores desde los puertos se hace a
través de los registros PORT que se encuentran en el Banco 0 (y banco 2 para el puerto B).
Desde luego si configuramos un puerto como entrada (lectura) los valores que escribamos
en el no tendrán efecto porque fue configurado como entrada y no como salida. A través de
las instrucciones MOV podemos leer o escribir valores.
;*************************************************************
;Configuración de los pines del PORTB y PORTD
;Curso PIC16F877A
pág. 6
Lab. N° 3 Puertos de Entrada y Salida 1
;Autor: Ing. César Ciriaco Martínez
;*************************************************************
LIST P=16f877
Include<p16f877.INC> ;Direcciones de los registros del
PIC
org 0
bsf STATUS,RP0 ;comentar:
movlw b’11111111’ ;comentar:
movwf TRISB ;comentar:
movlw b’00000000’ ;comentar:
movwf TRISD ;comentar:
bcf STATUS,RP0 ;comentar:
repite
movf PORTB,0 ;comentar:
movwf PORTD ;comentar:
goto repite ;Comentar:
;*************************************************************
;Testeando pines
;Curso PIC16F877
;Autor: Ing. César Ciriaco Martinez
;*************************************************************
LIST P=16f877
Include<p16f877.INC> ;Comentar:
org 0000h
bsf STATUS,RP0 ;comentar:
bsf TRISC,0 ;comentar:
bcf TRISD,4 ;comentar:
bcf STATUS,RP0 ;comentar:
TesteaPin
btfss PORTC,0 ;Comentar:
goto ApagarLed ;Comentar:
goto PrenderLed ;Comentar:
ApagarLed
bcf PORTD,4 ;Comentar:
goto TesteaPin ;Comentar:
PrenderLed
bsf PORTD,4 ;Comentar:
goto TesteaPin ;Comentar:
end ;Comentar:
pág. 7
Lab. N° 3 Puertos de Entrada y Salida 1
;RETARDO DE 100 mS.
LIST P=16F877A
INCLUDE<P16F877A.INC>
__CONFIG 3F32
CBLOCK 20H
VAR1
VAR2
VAR3
ENDC
ORG 0
BSF STATUS,RP0
CLRF TRISB
BCF STATUS,RP0
LAZO
BSF PORTB,RB0
CALL DELAY
BCF PORTB,RB0
CALL DELAY
GOTO LAZO
DELAY
MOVLW .100
MOVWF VAR1
;---------- SE COLOCA UN BUCLE QUE HAGA 1 MILISEGUNDO --------------
MOVLW .17
MOVWF VAR2
MOVLW .58
MOVWF VAR3
;--- SE CREA UN BUCLE DE 1 MICROSEGUNDO
NOP
NOP
DECFSZ VAR3
GOTO $-3
;--------------------------------------
DECFSZ VAR2
GOTO $-7
;---------------------------------------------------------------------
DECFSZ VAR1
GOTO $-.11
RETURN
END
LIST P=16F877A
INCLUDE<P16F877A.INC>
__CONFIG 3F32
CBLOCK 20H
d1
d2
d3
pág. 8
Lab. N° 3 Puertos de Entrada y Salida 1
ENDC
ORG 0
BSF STATUS,RP0
MOVLW B'11110000'
MOVWF OPTION_REG
CLRF TRISB
BCF STATUS,RP0
CLRF PORTB
MOVLW .250
MOVWF TMR0
INICIO
BTFSS PORTA,RA4
GOTO INICIO
INCF PORTB
CALL Delay
goto INICIO
Delay
;2499992 cycles
movlw 0x15
movwf d1
movlw 0x74
movwf d2
movlw 0x06
movwf d3
Delay_0
decfsz d1, f
goto $+2
decfsz d2, f
goto $+2
decfsz d3, f
goto Delay_0
;4 cycles
goto $+1
goto $+1
END
pág. 9
Lab. N° 3 Puertos de Entrada y Salida 1
pág. 10
Lab. N° 3 Puertos de Entrada y Salida 1
Procedimiento Parte 2
La siguiente figura muestra un teclado matricial y su correspondiente conexión a un puerto del PIC.
1. Copiar el siguiente programa, analizar, comentar, simular e implementar:
;*************************************************************
;Captura datos del teclado 4x4 y se visualiza en el PORTD
;Curso PIC16F877
;Autor: Ing. César Ciriaco Martinez
;*************************************************************
__CONFIG _WDT_OFF&_CP_OFF&_PWRTE_ON&_HS_OSC ;comentar:
list P=16f877
include<p16f877.inc>
include<macro16f877.inc> ;comentar:
cblock 0x20 ;comentar:
endc ;comentar:
org 0000h
;------------------------------------------------------
;Programa principal
bsf STATUS,RP0 ;comentar:
clrf TRISD ;comentar:
bcf STATUS,RP0 ;comentar:
clrf PORTD ;comentar:
call Inicio_Teclado4x4 ;comentar:
repite
call Teclado4x4 ;comentar:
movf NumeroTeclado4x4,0 ;comentar:
movwf PORTD ;comentar:
goto repite ;comentar:
;------------------------------------------------------
;Librerias
include<electronicpic16f877.asm> ;comentar:
include<teclado.asm> ;comentar:
end ;comentar:
pág. 11
Lab. N° 3 Puertos de Entrada y Salida 1
Conexión eléctrica
pág. 12
Lab. N° 3 Puertos de Entrada y Salida 1
Modelo de Informe
Deberá contener lo siguiente:
Carátula
Fundamento Teórico
Deberá ser conciso y redactado con lenguaje propio. Estará basado en las lecturas recomendadas o
cualquier otra información relacionada con el tema. En cualquier caso no será mayor de tres (03)
páginas.
1. Los datos, tablas, resultados de los programas y respuestas a las preguntas que se soliciten en
el procedimiento.
2. Los programas deberán contar con líneas de comentarios
3. Deberá acompañarse al programa, el diagrama de flujo del mismo.
Observaciones y Conclusiones
pág. 13
Lab. N° 3 Puertos de Entrada y Salida 1
Aplicación de lo aprendido
GRUPO_1 Diseñar e implementar un programa en el cual se enciendan de forma secuencial los
LEDS del PUERTO D, cada 5 ms con el desbordamiento del TIMER 0. Al encender
todas se apagarán y comienza otro ciclo.
GRUPO_2 Diseñar e implementar un circuito en el cual al ingresar 3 digitos del teclado matricial,
este se programe con el tiempo de encendido y apagado de un LED en unidades de
milisegundos. Trabajar con el TIMER 0 (máximo 255mS).
GRUPO_3 Realizar un circuito en el cual se coloque una clave de seguridad de 4 dígitos, y que al
tercer error este se bloquee por 10 segundos, realizarlo por retardos de software..
GRUPO_4 Implemente y diseñe un circuito de tres pulsadores, 2 de ellos son las claves binarias y
el tercero es el ENTER, para validar el código.
GRUPO_5 Diseñar e implementar un circuito donde al colocar 3 digitos del teclado matricial, este
se grabe en el PUERTO B y empiece a decrementar desde donde se grabó la cuenta
hasta 0 (en binario y como máximo 255, si es más que el circuito no funcione)
GRUPO_6 Diseñar un programa que cada vez que se presiona el pin RA4, este incremente la
numeración en el PUERTO C y que cuando llega al pulso N° 36 el TIMER 0 se
desborde y apague el conteo, para empezar de nuevo. .
pág. 14
Lab. N° 3 Puertos de Entrada y Salida 1
Observaciones Generales
1. La presentación del informe se realiza al ingresar al Laboratorio. En la clase siguiente a su
realización.
2. Se tomará en cuenta las reglas de ortografía en la redacción del informe.
3. La evaluación se realizará del siguiente modo.
Programación de Microcontroladores Sección
Curso:
Lab. No: 01 Mesa No:
Participantes:
1
2
3
4
6 5 4 3 2-0
EL GRUPO REALIZA LAS EL GRUPO NO EL GRUPO NO EL GRUPO NO EL GRUPO NO
INDICACIONES DEL DOCENTE REALIZA UNO DE REALIZA DOS DE REALIZA TRES REALIZA MAS
-SE ELIGE UN LIDER LAS LAS INDICACIONES DE LAS DE TRES DE
(COORDINADOR), INDICACIONES DEL DOCENTE. INDICACIONES LAS
-SE ASIGNAN TRABAJOS EN DEL DOCENTE. DEL DOCENTE. INDICACIONES
EQUIPO. DEL DOCENTE.
-HACEN PREGUNTAS AL
DOCENTE,
TRABAJO EN -REALIZAN EL TRABAJO EN EL
EQUIPO TIEMPO INDICADO.
-NO USA EL CELULAR.
-LLEGA TEMPRANO A CLASE
-REALIZA EL TRABAJO ASIGNADO
EN CLASE.
-NO JUEGA EN CLASE
4 3 2 1 0
EL GRUPO RESPONDE A LAS 2 EL GRUPO RESPONDE SOLO 2 RESPONDE NO RESPONDE
PREGUNTAS QUE REALIZA EL DE RESPONDE A LAS DE LAS SOLO 1 DE LAS A NINGUNA DE
FORMA ORAL O ESCRITA A PREGUNTAS QUE PREGUNTAS QUE 2 PREGUNTAS LAS
PREGUNTAS EN TRAVÉS DE UNA PRUEBA ESCRITA REALIZA EL REALIZA EL QUE REALIZA PREGUNTAS O
CON BUEN SUSTENTO TEÓRICO DOCENTE CON DOCENTE, PERO EL DOCENTE, RESPONDE
EQUIPOS BUEN SUSTENTO LAS SUSTENTA LAS CON UN BUEN SOLO 1 A
TEÓRICO EN UNA DOS A MEDIAS. SUSTENTO MEDIAS.
DE ELLAS Y EL TEÓRICO.
OTRO A MEDIAS.
pág. 15
Lab. N° 3 Puertos de Entrada y Salida 1
5 4 3 2 1-0
EL GRUPO REALIZA SU INFORME EL GRUPO NO EL GRUPO NO EL GRUPO NO EL GRUPO NO
EN EL TIEMPO DETERMINADO. REALIZA UNO DE REALIZA DOS DE REALIZA TRES REALIZA MAS
-UTILIZA EL FORMATO APA 6. LAS LAS INDICACIONES DE LAS DE TRES DE
-REALIZA INTRODUCCIÓN, INDICE, INDICACIONES DEL ITEM. INDICACIONES LAS
TABLAS Y FIGURAS Y OBJETIVOS DEL ITEM. DEL ITEM. INDICACIONES
-REALIZA MARCO TEÓRICO, DEL ITEM O ES
EXPERIENCIA DE LAB, COPIA DE OTRO
OBSERVACIONES Y INFORME.
CONCLUSIONES.
INFORME DE -SUSTENTA SU APLICACIÓN EN EL
LABORATORIO INFORME.
-NO ES COPIA DE OTRO INFORME.
5 4 3 2 1-0
OBSERVACIONE
S
pág. 16