UNIVERSIDAD POLITECNICA SALESIANA SISTEMAS MICROPROCESADOS INTEGRANTES: • • •
Gerardo Cortez Andrés Pacheco Maribel Valdivieso
PRACTICA No.1 Tema: Entrada y salida en un micro-controlador PIC Objetivo: Utilizar los puertos del micro-controlador pic, como interface digital al mundo exterior. 1. Escribir en el puerto B el valor 55h
Entrada: datos que ingresan al puerto B Salida: puerto B, los leds Procesos: • Habilitar el puerto B como salida • Definir un puerto donde se escribe el valor 55h • Escribe en el puerto que se definió • Se agregar el retardo Diagrama de flujo: INICIO
55h
Escribe en el puerto B el valor 55H=01010101 Retardo
Programa: Fin
program practica1_literal1 trisb=0
main: portb=$55 delay_ms(1000) end.
1. Ejercicio de aplicación escribir en el puerto B el valor AA Entrada: datos que ingresan al puerto B (valor AA) Salida: puerto B, los leds Procesos: • Habilitar el puerto B como salida • Definir un puerto donde se escribe el valor AA • Escribe en el puerto que se definió • Se agregar el retardo
Diagrama de flujo: INICIO
AA
Escribe en el puerto B el valor AAH=10101010 Retardo Fin
Programa: program practica1_literal2 trisb=0 main: portb=AA delay_ms(1000) end.
1. Ejercicio de aplicación en el puerto C escribir el valor F0 Entrada: datos que ingresan al puerto C Salida: puerto C, los LED’s Procesos: • • • •
Habilitar el puerto C como salida Definir un puerto donde se escribe el valor (F0) Escribe en el puerto que se definió Se agregar el retardo
Diagrama de flujo: INICIO
F0
Escribe en el puerto B el valor F0 Retardo
Fin
Programa: program practica1_literal3 trisb=0 main: portc=$F0 delay_ms(1000) end.
1. Leer en el puerto C y escribir en el puerto B Entrada: $ff Salida: escribir $ff en el puerto Procesos: • Habilitar puerto C como salida • Habilitar el puerto B con 0 • Se guarda el valor en el puerto C • Se muestra el valor en el puerto Diagrama de flujo: INICIO
$ff
Habilitar el puerto C como salida
B=0
Guardar en el puerto C
Muestra el valor en el puerto B
Programa:
Fin
program practica1_literal4 dim valor as byte main: lazo: trisc=$ff trisb=0 valor=portc portb=valor goto lazo end.
Práctica 1_Literal5 Entradas: Valor $ff hexadecimal Salidas: Código binario en el puerto b del micro. Procesos: Definir una variable “valor” donde pueda almacenar. Asigno “valor” en el puerto c del micro. Leo en el puerto b del micro el valor. Programa: program practica1_literal5
dim valor as byte main: lazo: trisa=$ff trisd=0 valor=porta portd=valor goto lazo end. INICIO Definir variable valor
Valor= porta
Portd= valor
SALIDA
Práctica 1_Literal6 Entradas: Código binario entre 0 y f.
Salidas: Números del 0 a f, hexadecimal en el puerto b del micro. Procesos: Escribir el código binario en el puerto b del micro. Programa: program practica1_literal6 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.
INICIO
Configurar puerto b como salidas
Escribir #s del 0 a f en el puerto b.
Retardo de 2 segundos
SALIDA
Práctica 1_Literal7 Entradas: Código binario para mostrar letras Salidas: Letras de la Z a la A en el puerto b del micro. Procesos: Determinar los puertos b y c del micro como salidas.
Guardar en los puertos b y c el código binario. Retardo de 2 segundos. Programa: program abecedario trisb=0 trisc=0 main: lazo: portb=%00001001 portc=%00010001 delay_ms(2000) portb=%01000000 portc=%00001001 delay_ms(2000) portb=%01000000 portc=%00010101 delay_ms(2000) portb=%00110110 portc=%00010100 delay_ms(2000) portb=%01000110 portc=%00000100 delay_ms(2000) portb=%00111110 portc=%00000000 delay_ms(2000) portb=%10000001 portc=%00001000 delay_ms(2000) portb=%00101101 portc=%00100010 delay_ms(2000) portb=%00110011 portc=%00100110 delay_ms(2000) portb=%00111111 portc=%00000100 delay_ms(2000) portb=%00110011 portc=%00100010 delay_ms(2000)
portb=%00111111 portc=%00000000 delay_ms(2000) portb=%01110110 portc=%00000100 delay_ms(2000) portb=%01110110 portc=%00000001 delay_ms(2000) portb=%00111000 portc=%00000000 delay_ms(2000) portb=%00110000 portc=%00100101 delay_ms(2000) portb=%00011110 portc=%00000000 delay_ms(2000) portb=%10001001 portc=%00001000 delay_ms(2000) portb=%00110110 portc=%00100010 delay_ms(2000) portb=%00111101 portc=%00000010 delay_ms(2000) portb=%00110001 portc=%00100010 delay_ms(2000) portb=%00111001 portc=%00100010 delay_ms(2000) portb=%01110000 portc=%00010000 delay_ms(2000) portb=%00111001 portc=%00000000 delay_ms(2000) portb=%00111111 portc=%00100010 delay_ms(2000)
portb=%00110111 portc=%00100010 delay_ms(2000) goto lazo end.
INICIO
Configurar puertos b y c como salidas Escribir en el display letras Z a la A. Retarde de 2 segundos.
SALIDA
Práctica1_Literal8 Entradas: Valor $ff, hexadecimal en el puerto c Salidas: Valor de la operación And en el puerto b del micro. Valor de la operación Or en el puerto b del micro. Valor de la operación Xor en el puerto b del micro. Procesos: Realizar la operación And mediante los pines 0 y 1 del puerto. Realizar la operación Or mediante los pines 2 y 3 del puerto. Realizar la operación Xor mediante los pines 4 y 5 del puerto. Programa: program practica1_literal8 trisc=$ff trisb=$0 main: portb.0=portc.0 and portc.1 portb.1=portc.2 or portc.3 portb.2=portc.4 xor portc.5 goto main end