Documentos de Académico
Documentos de Profesional
Documentos de Cultura
IV CICLO
Laboratorio N°3
TECSUP 2020
Lima - Perú
Puertos de entrada y salida del microcontrolador PIC16F877A
Introducción
Preparación
Equipos y Materiales
● Computadora
● Software de desarrollo
● Proyector multimedia
● Texto del curso
● Manual del fabricante
● Tarjeta de desarrollo
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.
Procedimiento
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.
Bancos de memoria
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
;Autor: Ing. Carlos Mendiola
;*************************************************************
LIST P=16f877A ;Comentar:
Include<P16f877A.INC> ;Comentar:
org 0000h
;-----------------------------------------------
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
;*************************************************************
;Testeando pines
;Curso PIC16F877
;Autor: Ing.Carlos Mendiola
;*************************************************************
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:
;**************************************************************
;==============================================================
;Nombre de archivo:Electronicpic16f877.asm
;Autor: Ing. Carlos Enrique Mendiola Mogollón
;==============================================================
;**************************************************************
Cblock
Cont_1
Cont_2
Cont_3
Cont_4
contador_1
contador_2
endc
;***************************************************************
;Rutinas para generación de retardos
;Frecuencia de cristal:20Mhz
;***************************************************************
Milisegundo
movwf Cont_1
xx
movlw .17
movwf Cont_2
xx1
movlw .58
movwf Cont_3
xx2
nop
nop
decfsz Cont_3
goto xx2
decfsz Cont_2
goto xx1
decfsz Cont_1
goto xx
return
Segundo
movwf Cont_1
xxx
movlw .250
movwf Cont_2
xxx1
movlw .250
movwf Cont_3
xxx2
movlw .19
movwf Cont_4
xxx3
nop
decfsz Cont_4
goto xxx3
decfsz Cont_3
goto xxx2
decfsz Cont_2
goto xxx1
decfsz Cont_1
goto xxx
return
;***************************************************************
;Rutinas para el uso de display 7 segmentos ánodo y cátodo común
;***************************************************************
DisplayCatodoComun
addwf PCL,1
retlw 0X3F ;Número 0
retlw 0X06 ;Número 1
retlw 0X5B ;Número 2
retlw 0X4F ;Número 3
retlw 0X66 ;Número 4
retlw 0X6D ;Número 5
retlw 0X7D ;Número 6
retlw 0X07 ;Número 7
retlw 0X7F ;Número 8
retlw 0X6F ;Número 9
DisplayAnodoComun
addwf PCL,1
retlw 0X40 ;Número 0
retlw 0X79 ;Número 1
retlw 0X24 ;Número 2
retlw 0X30 ;Número 3
retlw 0X19 ;Número 4
retlw 0X12 ;Número 5
retlw 0X02 ;Número 6
retlw 0X78 ;Número 7
retlw 0X00 ;Número 8
retlw 0X10 ;Número 9
;*************************************************************
;Captura datos del teclado 4x4 y se visualiza en el PORTD
;Curso PIC16F877
;Autor: Ing. Carlos Mendiola
;*************************************************************
list P=16f877
include<p16f877.inc>
include<macro16f877.inc> ;comentar:
__CONFIG 0X3F32 ;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:
Conexión eléctrica
Modelo de Informe
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
RÚBRICA DE EVALUACIÓN
(MODELO DE CARÁTULA)
PROGRAMACIÓN DE MICROCONTROLADORES
Laboratorio N°3
INFORME
Integrantes:
Apellidos y Nombres Sección Grupo
Fecha de realización :
Fecha de entrega :
TECSUP 2019
Instructor: Carlos E. Mendiola Mogolló n
12
Puertos de entrada y salida del microcontrolador PIC16F877A
Lima - Perú