You are on page 1of 22

UNIVERSIDAD POLITECNICA SALESIANA

INTEGRANTES

CHRISTIAN IBARRA
GUILLERMO ROMERO
JUAN CARLOS YACELGA

1
TEMA: PROGRAMACION EN PIC 16F877A
OBJETIVO: Aprender a utilizar correctamente los puertos del microcontrolador PIC
DESARROLLO
Para la practica utilizamos la placa programadora “PICTrainer” de PIC y el software
Microbasic.

PROCEDIMIENTO

EJERCICIO 1
 PROBLEMA
Escribir en el puerto B el valor 55h
 ALGORITMO
Entrada: Ingresar el valor 55h
Proceso: Habilitar en el puerto B
Salida: Visualizar en los pines del puerto B el valor 55h en su equivalente binario.
 CÓDIGO
program pract1
main:
trisb=0 'habilita el puerto B como salida
portb= $55 'escribe en el puerto B el valor 55h
delay_ms(1000) 'retardo de 1 seg
end.

2
 DIAGRAMA DE FLUJOS

INICIO

Habilitar el puerto B como


salida y escribir el valor 55h

Retardo de 1 seg

Salida de Datos en
puerto B

 ESQUEMÁTICO:

 GRAFICO ANEXO

3
EJERCICIO 2
 PROBLEMA
Escribir en el puerto B el valor AAh
 ALGORITMO
Entrada: Habilito en el puerto B.
Proceso: Ingresar el valor AAh en binario
Salida: Visualizar en el puerto B el valor binario.

 CÓDIGO
program pract2
main:
trisb=0
portb= $AA
delay_ms(100)
portb= $55
end.

 DIAGRAMA DE FLUJOS

INICIO

Habilitar el puerto B como


salida y escribir el valor AAh

Retardo de 1 seg

Salida de Datos en
puerto B

4
 ESQUEMÁTICO:

 GRAFICO ANEXO

EJERCICIO 3
 PROBLEMA
Escribir en el puerto C el valor F0h
 ALGORITMO
Entrada: Habilitar en el puerto F
Proceso: Ingresar el valor F0h en binario.
Salida: Salida en el puerto F en valor binario.

5
 CÓDIGO
program pract3
main:
trisc=0
portc= $F0
delay_ms(1000)
end.

 DIAGRAMA DE FLUJOS

INICIO

Habilitar el puerto C como salida


y escribir el valor F0h

Retardo de 1 seg

Salida de Datos en
puerto C

 ESQUEMÁTICO:

6
 GRAFICO ANEXO

EJERCICIO 4

 PROBLEMA
Leer en el Puerto C y Escribir en el Puerto B
 ALGORITMO
Entrada: Habilitar el puerto C como entrada y el puerto B como salida.
Proceso: Utilizar una variable “valor” para guardar los datos del puerto C para
luego escribir estos datos en el puerto B.
Salida: Salida en los pines del puerto B, las entradas del puerto C.

 CÓDIGO
program pract4
dim valor as byte
main:
lazo:

7
trisc = $ff 'entrada
trisb = 0 'salida
valor = portc
portb = valor
goto lazo
end.
 DIAGRAMA DE FLUJOS

INICIO

Habilitar el puerto C como


entrada

Habilitar el puerto B como


salida

Definir la variable valor


para guardar datos

Salida en el puerto B los datos


de entrada del puerto C

ESQUEMÁTICO:

8
 GRAFICO ANEXO

EJERCICIO 5

 PROBLEMA
Leer en el Puerto C y Escribir en el Puerto A
 ALGORITMO
Entrada: Habilitar el puerto C como entrada y el puerto A como salida.
Proceso: Utilizar una variable “valor” para guardar los datos del puerto C para
luego escribir estos datos en el puerto A.
Salida: Visualizar en los pines del puerto B las entradas del puerto A.

 CÓDIGO
program pract5
dim valor as byte
main:
lazo:
trisc = $ff 'entrada
trisa = 0 'salida
valor = portc

9
porta = valor
goto lazo
end.
 DIAGRAMA DE FLUJOS

INICIO

Habilitar el puerto C como


entrada

Habilitar el puerto A como


salida

Definir la variable valor para


guardar datos

Salida en el puerto A los


datos de entrada del puerto C

ESQUEMÁTICO:

10
 GRAFICO ANEXO

EJERCICIO 6
 PROBLEMA
Escribir en un display de 7 segmentos sin utilizar decodificador, un valor
ascendente entre 0 y F.
 ALGORITMO
Entrada: Habilito en el puerto B.
Proceso: Ingresar los valores que irán al puerto con un retardo para visualizar el
cambio ascendente
Salida: Salida en el display los valores de 0 a F

 CÓDIGO
program pract6
main:

11
trisb = $0
'conectar a=portb0................e=portb.4.....
lazo:
portb = %00111111 ' formato para binario 0
delay_ms(1000)
portb = %00000110 '1
delay_ms(1000)
portb = %01011011 '2
delay_ms(1000)
portb = %01001111 '3
delay_ms(1000)
portb = %01100110 '4
delay_ms(1000)
portb = %01101101 '5
delay_ms(1000)
portb = %01111101 '6
delay_ms(1000)
portb = %00000111 '7
delay_ms(1000)
portb = %01111111 '8
delay_ms(1000)
portb = %01100111 '9
delay_ms(1000)
portb = %01110111 'A
delay_ms(1000)
portb = %01111100 'b
delay_ms(1000)
portb = %01011000 'C
delay_ms(1000)
portb = %01011110 'd
delay_ms(1000)
portb = %01111001 'E
delay_ms(1000)
portb = %01110001 'F

12
delay_ms(1000)
goto lazo
end.
 DIAGRAMA DE FLUJOS

INICIO

Habilitar el puerto B como


salida

Enviar los datos correspondientes


al puerto B

Retardo entre cada envió

Visualización en Display

ESQUEMÁTICO:

13
 GRAFICO ANEXO

EJERCICIO 7
 PROBLEMA
Mediante un display visualizar mostrar en forma descendente todas letras del
alfabeto de la Z a la A.
 ALGORITMO
Entrada: Habilitar los puertos B y C como salidas.
Proceso: Escribir el código binario para cada letra del alfabeto y declarar el
respectivo retardo para cada letra.
Salida: Visualizar en el display alfa numérico las letras de la Z a la A en código
binario de los puertos B y C.
 CÓDIGO
program pract7
main:
trisb = $0
trisc = $0

14
lazo:
portb = %011001100 'z
portc = %00100010
delay_ms(3000)
portb = %100000000 'y
portc = %00100100
delay_ms(3000)
portb = %100000000
portc = %00101010 'x
delay_ms(3000)
portb = %000110011 'w
portc = %0001010
delay_ms(3000)
portb = %000000011 'v
portc = %00100010
delay_ms(3000)
portb = %000111111
portc = %00000000 'u
delay_ms(3000)
portb = %011000000 't
portc = %01000100
delay_ms(3000)
portb = %011011101 's
portc = %00010001
delay_ms(3000)
portb = %011100011 'r
portc = %00011000
delay_ms(3000)
portb = %011111111 'q
portc = %00001000
delay_ms(3000)
portb = %011100011 'p
portc = %00010001
delay_ms(3000)

15
portb = %011111111 '0
portc = %00000000
delay_ms(3000)
portb = %100110011 'n
portc = %00001000
delay_ms(3000)
portb = %100110011 'm
portc = %00100000
delay_ms(3000)
portb = %000001111 'l
portc = %00000000
delay_ms(3000)

portb = %000000011 'k


portc = %00101001
delay_ms(3000)
portb = %011000100 'j
portc = %01000100
delay_ms(3000)
portb = %000000000 'i
portc = %01000100
delay_ms(3000)
portb = %000110011 'h
portc = %00010001
delay_ms(3000)
portb = %011011111 'g
portc = %00010000
delay_ms(3000)
portb = %011000011 'f
portc = %00010001
delay_ms(3000)
portb = %011001111 'e
portc = %00010001
delay_ms(3000)

16
portb = %000111110 'd
portc = %00010001
delay_ms(3000)
portb = %011001111 'c
portc = %0000000
delay_ms(3000)
portb = %000011111 'b
portc = %00010001
delay_ms(3000)
portb = %011110011 'a
portc = %00010001
delay_ms(3000)
goto lazo
end.

 DIAGRAMA DE FLUJOS

INICIO

Habilitar el puerto B y C
como salida

Enviar los datos para las letras


al puerto B y C

Retardo respectivo para cada dato

Visualizar

17
 ESQUEMÁTICO:

 GRAFICO ANEXO

18
EJERCICIO 8
 PROBLEMA
Utilizar el microcontrolador en la lógica boleana.
 ALGORITMO
Entrada: Habilitar el puerto C como entrad y el puerto B como salida.
Proceso: Realizar las operaciones lógicas con AND (multiplicación) entre el puerto
FO y puerto F1.
El escribir el resultado de en el puerto BO la operación lógica OR (suma)
entre el puerto F2 y F3 y escribo el resultado en el puerto B1 y la operación XOR
entre el puerto F4 y F5 y escribo en el puerto B2.

Salida: Visualizo en el puerto B0 el resultado de las entradas del puerto F0 y F1.


Visualizo en el puerto B1 el resultado de las entradas del puerto F2 y F3.
Visualizo en el puerto B2 el resultado de las entradas del puerto F4 y F5.
 CÓDIGO
program pract8
main:
trisc = $ff 'c como entrada
trisb = $0 ' b como salida

portb.0= portc.0 and portc.1


portb.1= portc.2 or portc.3
portb.2= portc.4 xor portc.5

goto main
end.

19
 DIAGRAMA DE FLUJOS

INICIO

Habilitar el puerto C como


entrada

Habilitar el puerto B como


salida

Realizar la operación AND


entre PC0 y PC1

Realizar la operación OR
entre PC2 y PC3

Realizar la operación XOR


entre PC4 y PC5

Visualizar en el puerto PB0,


PB1, PB2

20
ESQUEMÁTICO:

 GRAFICO ANEXO

21
CONCLUCIONES
 Los ejercicios realizados en el laboratorio fueron de mucha ayuda porque nos
permitieron tener conocimientos sobre el manejo de los puertos del PIC.
 El uso del PIC16F877A no nos produjo muchos problemas al momento de utilizar
los puertos para habilitar los LEDs y los Display respectivamente.
 Podemos concluir que la primera práctica de laboratorio fue realizada con mucho
éxito aprendimos un poco más sobre el mundo de la familia de los PICs y de su
programación.

Bibliografía
- Hojas de prácticas para Laboratorio Sistemas Microprocesados I,
Microcontroladores PIC - Angulo Usategui Jose Maria.
- http://ww1.microchip.com/downloads/en/devicedoc/70138c.pdf
- http://www.mikroe.com/en/books/dspicbook/mikropascal/ch9/images/fig9-13a.gif

22