Sei sulla pagina 1di 12

PROGRAMACIÓN DE MICROCONTROLADORES

Laboratorio N°3

Puertos de Entrada y Salida Parte 1


Lab. N° 3 Puertos de Entrada y Salida 1

Puertos de Entrada y Salida 1


Objetivos
1. Utilizar las instrucciones para programar al microcontrolador PIC16F877A
2. Utilizar software de desarrollo proporcionada por el fabricante
3.
4. + realizando previamente diagramas de flujo.
5. 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. 2
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.

Al trabajar en este laboratorio o taller y cualquiera de los subsiguientes, realice el siguiente


procedimiento:

1. Al ingresar, inspeccione:
Las vías de acceso.
Orden y limpieza.

2. En su estación de trabajo evalúe las condiciones de:


Orden y Limpieza.
Herramientas y equipos.

3. Realice su trabajo teniendo en cuenta:


Orden y limpieza.
Seguridad.
Proceda a realizar las conexiones de los equipos o implementación de los circuitos
comprobando que la línea eléctrica se encuentre desconectada.
Solicite visto bueno al profesor antes de aplicar energía eléctrica.

4. Realice el análisis de riesgo personal:


¿Qué es lo que voy a hacer?
¿Qué es lo que puede salir mal?
¿Qué debo hacer para que no salga mal?

5. Al terminar sus labores, deje su estación de trabajo en buenas condiciones:


Ordenado y limpio.
Seguro.
Desconecte el suministro de energía eléctrica.

pág. 3
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.

La configuración de los puertos en general implica la siguiente secuencia:

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. 4
Lab. N° 3 Puertos de Entrada y Salida 1

BANCO 0 BANCO 1
…… ……
PORTA 0X05 TRISA 0X85
PORTB 0X06 TRISB 0X86
PORTC TRISC
0X07 0X87
PORTD TRISD
0X08 0X88
PORTE TRISE
0X09 0X89
…… ……

ADCON1
0X1F
…… ……

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.

1. Copiar el siguiente programa, analizar, comentar, simular e implementar:

;*************************************************************
;Configuración de los pines del PORTB y PORTD
;Curso PIC16F877A
;Autor: Ing. César Ciriaco Martínez
;*************************************************************
LIST P=16f877
Include<p16f877.INC> ;Direcciones de los registros del
PIC

pág. 5
Lab. N° 3 Puertos de Entrada y Salida 1

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:

end ;fin del programa

2. Copiar el siguiente programa, analizar, comentar, simular e implementar:

;*************************************************************
;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:

3. Retardo de 100 ms para encender y apagar un led

;RETARDO DE 100 ms.


LIST P=16F877A
INCLUDE<P16F877A.INC>
__CONFIG 3F32
CBLOCK 20H
VAR1
VAR2

pág. 6
Lab. N° 3 Puertos de Entrada y Salida 1
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

4. Temporizador con clock externo del TIMER 0

LIST P=16F877A
INCLUDE<P16F877A.INC>
__CONFIG 3F32
CBLOCK 20H
d1
d2
d3
ENDC

ORG 0

BSF STATUS,RP0
MOVLW B'11110000'
MOVWF OPTION_REG
CLRF TRISB

pág. 7
Lab. N° 3 Puertos de Entrada y Salida 1
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

;4 cycles (including call)


return

END

5. Mostrar evidencias de ejecución de los programas de los ítems 1,2,3 Y 4.

● Capturar ventanas que muestran el resultado de la creación del proyecto.


● Capturar ventanas que muestran el resultado del ensamble del proyecto.
● Capturar ventanas que muestren la simulación paso a paso.
● Tomar fotos a los módulos de trabajo.

pág. 8
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:limpia TRISD=’00000000’
bcf STATUS,RP0 ;comentar:
clrf PORTD ;comentar:PORT =’00000000’salida
call Inicio_Teclado4x4 ;comentar:
repite
call Teclado4x4 ;comentar:
movf NumeroTeclado4x4,0 ;comentar:mueve bits teclado a w
movwf PORTD ;comentar:mueve bits w a PORTD
goto repite ;comentar:regresa a etiqt repite
;------------------------------------------------------
;Librerias
include<electronicpic16f877.asm> ;comentar:
include<teclado.asm> ;comentar:
end ;comentar:

Conexión eléctrica

pág. 9
Lab. N° 3 Puertos de Entrada y Salida 1

2. Mostrar evidencia de ejecución del programa del ítem 1.

● Capturar ventanas que muestran el resultado de la creación del proyecto.


● Capturar ventanas que muestran el resultado del ensamble del proyecto.
● Capturar ventanas que muestren la simulación paso a paso.
● Tomar fotos a los módulos de trabajo.

Modelo de Informe

pág. 10
Lab. N° 3 Puertos de Entrada y Salida 1
Deberá contener lo siguiente:

Carátula

1. Nombre del laboratorio


2. Nombres de los integrantes
3. Sección a la que pertenecen
4. Fecha de realización
5. Fecha de presentación

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.

Resultados del Laboratorio

Deberá contemplar lo siguiente:

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

Serán únicamente referidas a la experiencia de laboratorio y redactadas en lenguaje propio.

pág. 11
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 250 ms. Al encender todas se apagarán y comienza otro
ciclo repetitivo.
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. (máximo ingreso del teclado 255).
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 5 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. .

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:
Tema: Arquitectura del PIC Fecha:
Participantes:
1
2
3
4

pág. 12

Potrebbero piacerti anche