Sei sulla pagina 1di 23

UNIVERSIDAD POLITÉCNICA

“SALESIANA”

FACULTAD DE INGENIERÍAS

CARRERA DE INGENIERÍA
ELECTRÓNICA

SISTEMAS MICROPROCEADOS I
INFORME Nº 1

SANTIAGO MALDONADO
ARMANDO ALOMOTO
JIMMY ANDRADE

6º ELECTRÓNICA “1”
UNIVERSIDAD POLITÉCNICA SALESIANA

SISTEMAS MICROPROCESADOS I
INFORME Nº 1

Tema: Entrada y salida en el microcontrolador PIC

Objetivo

 Utilizar los puertos del microcontrolador PIC, como interface digital al


mundo exterior.

Desarrollo
Para la práctica se utilizo el PIC 16F877A

Figura 1. PIC 16F877A


PROCEDIMIENTO PRÁCTICO
 PROBLEMA Nº 1

Escribir en el puerto B el valor 55h

 ALGORITMO

• Definir la configuración
• Escribimos el valor 55h en el puerto B
• Damos un retardo de 1 s
• End

 CÓDIGO

program practica1
trisb=0

main:
portb=$55
delay_ms (1000)
end.

 DIAGRAMA DE FLUJOS

INICIO

CONFIGURO LAS
VARIABLES

portb=$55

RETARDO DE 1 s

END
 SIMULACIÓN

 RESULTADO
 PROBLEMA Nº 2

Escribir en el puerto B el valor AAh

 ALGORITMO

• Definir la configuración
• Escribimos el valor AAh en el puerto B
• Damos un retardo de 1 s
• End

 CÓDIGO

program practica1
trisb=0

main:
portb=$AA
delay_ms (1000)
end.

 DIAGRAMA DE FLUJOS

INICIO

CONFIGURO LAS
VARIABLES

portb=$AA

RETARDO DE 1 s

END
 SIMULACIÓN

 RESULTADOS
 PROBLEMA Nº 3

Escribir en el puerto C el valor F0h

 ALGORITMO

• Definir la configuración
• Escribimos el valor F0h en el puerto C
• Damos un retardo de 1 s
• End

 CÓDIGO

program practica1
trisc=0

main:
portc=$F0
delay_ms (1000)
end.

 DIAGRAMA DE FLUJOS

INICIO

CONFIGURO LAS
VARIABLES

portc=$F0

RETARDO DE 1 s

END
 SIMULACIÓN

 SIMULACIÓN
 PROBLEMA Nº 4

Leer en el puerto C y escribir en el puerto B

 ALGORITMO

• Definir la configuración
• Lee el dato en el puerto C
• Guardamos el valor en una variable
• Comparamos
• Si la variable=1
Se prende el led en el puerto B
• Si la variable=0
No se prende el led en el puerto B
• Escribimos la variable en el puerto B
• Regreso a la instrucción 2
• End

 CÓDIGO

program practica13
dim valor as byte
main:
lazo:
trisc=$ff
trisb=0
valor=portc
portb=valor
goto lazo
end.

 DIAGRAMA DE FLUJOS

INICIO

CONFIGURO LAS
VARIABLES

LEER PUERTO C
VALOR = PORTC

PORTB=VALOR

VALOR
RECIBIDO

SI

VALOR=PORTC

PORTB=VALOR

 SIMULACIÓN
 RESULTADOS

 PROBLEMA Nº 5

Leer en el puerto A y escribir en el puerto D

 ALGORITMO

• Definir la configuración
• Lee el dato en el puerto A
• Guardamos el valor en una variable
• Comparamos
• Si la variable=1
Se prende el led en el puerto D
• Si la variable=0
No se prende el led en el puerto D
• Escribimos la variable en el puerto D
• Regreso a la instrucción 2
• End

 CÓDIGO

program practica13
dim valor as byte
main:
lazo:
trisa=$ff
trisd=0
valor=porta
portd=valor
goto lazo
end.

 DIAGRAMA DE FLUJOS

INICIO

CONFIGURO LAS
VARIABLES

LEER PUERTO A

VALOR = PORTA

PORTD=VALOR

VALOR
RECIBIDO

SI

VALOR=PORTA

PORTD=VALOR
 SIMULACIÓN

 RESULTADOS
 PROBLEMA Nº6

Escribir en un display de 7 segmentos sin utilizar decodificador, un valor


ascendente entre 0 y F.

 ALGORITMO

• Definir la configuración
• Escribimos los datos a leer en el puerto B
• Damos un retardo de 2 s
• Regreso a la instrucción 2
• End

 CÓDIGO

program practica14
trisb=0
main:
lazo:
portb=%00111111
delay_ms(2000)
portb=%00000110
delay_ms(2000)
portb=%01011011
delay_ms(2000)
portb=%01001111
delay_ms(2000)
portb=%01100110
delay_ms(2000)
portb=%01101101
delay_ms(2000)
portb=%01111101
delay_ms(2000)
portb=%00000111
delay_ms(2000)
portb=%01111111
delay_ms(2000)
portb=%01100111
delay_ms(2000)
portb=%01110111
delay_ms(2000)
portb=%01111100
delay_ms(2000)
portb=%01011000
delay_ms(2000)
portb=%01011110
delay_ms(2000)
portb=%01111001
delay_ms(2000)
portb=%01110001
delay_ms(2000)

goto lazo
end.

 DIAGRAMA DE FLUJOS

INICIO

CONFIGURO LAS
VARIABLES

LEER PUERTO B

RETARDO DE 2s

 SIMULACIÓN
 RESULTADOS

 PROBLEMA Nº6

Mediante un display alfanumérico mostrar en orden descendente todas


las letras del alfabeto de la Z a la A.

 ALGORITMO

• Definir la configuración
• Escribimos los datos a leer en el puerto B y C
• Damos un retardo de 1 s
• Regreso a la instrucción 2
• End

 CÓDIGO

program practicadescendente
trisb=0
trisc=0
main:
lazo:
'letra Y
portb=%11001100
portc=%01000100
delay_ms(1000)

'letra Y
portb=%00000000
portc=%01000101
delay_ms(1000)
'letra X
portb=%00000000
portc=%01010101
delay_ms(1000)

'letra W
portb=%00110011
portc=%01010000
delay_ms(1000)

'letra V
portb=%00000011
portc=%01000100
delay_ms(1000)

'letra U
portb=%00111111
portc=%00000000
delay_ms(1000)

'letra T
portb=%11000000
portc=%00100010
delay_ms(1000)

'letra S
portb=%11011101
portc=%10001000
delay_ms(1000)

'letra R
portb=%11100011
portc=%10011000
delay_ms(1000)

'letra Q
portb=%11111111
portc=%00010000
delay_ms(1000)

'letra P
portb=%11100011
portc=%10001000
delay_ms(1000)

'letra O
portb=%11111111
portc=%00000000
delay_ms(1000)
'letra N
portb=%00110011
portc=%00010001
delay_ms(1000)

'letra M
portb=%00110011
portc=%00000101
delay_ms(1000)

'letra L
portb=%00001111
portc=%00000000
delay_ms(1000)

'letra K
portb=%00000011
portc=%10010100
delay_ms(1000)

'letra J
portb=%11000100
portc=%00100010
delay_ms(1000)

'letra I
portb=%11001100
portc=%00100010
delay_ms(1000)

'letra H
portb=%00110011
portc=%10001000
delay_ms(1000)

'letra G
portb=%11011111
portc=%10001000
delay_ms(1000)

'letra F
portb=%11000011
portc=%10001000
delay_ms(1000)

'letra E
portb=%11001111
portc=%10001000
delay_ms(1000)
'letra D
portb=%11111100
portc=%00100010
delay_ms(1000)

'letra C
portb=%11001111
portc=%00000000
delay_ms(1000)

'letra B
portb=%11111100
portc=%00101010
delay_ms(1000)

'letra A
portb=%11110011
portc=%10001000
delay_ms(1000)

goto lazo
end.

 DIAGRAMA DE FLUJOS

INICIO

CONFIGURO LAS
VARIABLES

LEER PUERTO B y C

RETARDO DE 2s
 SIMULACIÓN

 RESULTADOS

 PROBLEMA Nº8

Lógica Booleana con microcontrolador.

 ALGORITMO

• Definir la configuración
• Lee el dato en el puerto C
• Comparamos
• Si la variable=1
Se controlan los leds del puerto B según las tablas de
verdad (AND, OR, XOR)
• Si la variable=0
Se controlan los leds del puerto B según las tablas de
verdad (AND, OR, XOR)
• Escribimos la variable en el puerto B
• Regreso a la instrucción 2
• End

 CÓDIGO

program practica15
trisc=$ff
trisb=0
main:
portb.0=portc.0 and portc.1
portb.1=portc.2 and portc.3
portb.2=portc.4 and portc.5
goto main
end.

 DIAGRAMA DE FLUJOS

INICIO

CONFIGURO LAS
VARIABLES

LEER PUERTO C

VALOR
RECIBIDO SI

PORTB=TABLA DE VERDAD
 SIMULACIÓN

 RESULTADOS
 CONCLUSIONES

1. Revisar el datasheet del PIC para conocer cuáles son los puertos de
entrada y cuáles son los puertos de salida y dependiendo de esto
declarar cada puerto.
2. El manejo de la entrada y salida en el PIC es sencillo de realizarlo, pero
es muy importante tomar muy en cuenta en qué sistema de numeración
se trabaja para declarar al puerto del PIC entrada o de salida.

 BIBLIOGRAFÍA

• Hojas de prácticas de Sistemas Microprocesados I proporcionados por


el Ing. Luis Oñate.
• Manual de ayuda de microbasic para PIC.