Anda di halaman 1dari 31

SEPTIEMBRE - FEBRERO 2011

INFORME #01

ERICK PEÑAHERRERA
JOSE BUCHELI
XAVIER MUÑOZ
DATASHEETS
 dsPIC30F4013

 PIC16F877A
DESARROLLO PRÁCTICO
OBJETIVO: Utilizar los puertos del micro controlador pic, como interface digital al
mundo exterior.

1. EJERCICIO 1 realizado con dsPIC30F4013

• PROBLEMA:

Escribir en el puerto B el valor 55h.

• ALGORITMO:

Entradas:
El número 55h
Procesos:
• Habilitar puerto b (salida)
• Escribir 55h en el puerto B
• Retardo 1 s.
Salidas:
Salida del puerto B hacia los leds con el valor 55h.

• DIAGRAMA DE FLUJO

INICIO

PUERTO B = Out

ESCRIBIR EN EL PUERTO B
55(H) – 01010101(2)
• CÓDIGO
program practica1
trisb=0 'Habilita el puerto B como salida
main: 'Parte principal del programa
portb=$55 'Escribe en el puerto B el valor 55H=01010101
delay_ms(1000) 'retardo en 1 s
end.
• ESQUEMÁTICO

NOTA:: La simulación fue realizada con el PIC16F877A, debido a que en proteus no


encontramos dsPIC30F4013, pero obtenemos el mismo resultado.
• S
I
M
U
L
A
C
I
Ó
N
• FOTOS
2. EJERCICIO 2 realizado con dsPIC30F4013

• PROBLEMA:

Escribir en el puerto B el valor AAh.

• ALGORITMO:

Entradas:
El número AAh
Procesos:
• Habilitar puerto b (salida)
• Escribir AAh en el puerto B
• Retardo 1 s.
Salidas:
Salida del puerto B hacia los leds con el valor AAh.

• DIAGRAMA DE FLUJO

INICIO

PUERTO B = Out

ESCRIBIR EN EL PUERTO B
AA(H) – 10101010(2)

• CÓDIGO
program practica1
trisb=0 'Habilita el puerto B como salida
main: 'Parte principal del programa
portb=$AA 'Escribe en el puerto B el valor AAH=10101010
delay_ms(1000) 'retardo en 1 s
end.
• ESQUEMÁTICO

NOTA: La simulación fue realizada con el PIC16F877A, debido


debido a que en proteus no
encontramos dsPIC30F4013, pero obtenemos el mismo resultado.
• S
I
M
U
L
A
C
I
Ó
N
• FOTOS
3. EJERCICIO 3 realizado con dsPIC30F4013

• PROBLEMA:

Escribir en el puerto C el valor F0h


NOTA: el dsPIC30F4013 no posee el puerto C completo para poder visualizar el ejercicio por lo
que utilizamos el puerto B.

• ALGORITMO:

Entradas:
El número F0h
Procesos:
• Habilitar puerto b (salida)
• Escribir F0h en el puerto B
• Retardo 1 s.
Salidas:
Salida del puerto B hacia los leds con el valor F0h.

• DIAGRAMA DE FLUJO

INICIO

PUERTO B = Out

ESCRIBIR EN EL PUERTO B
F0(H) – 11110000(2)

• CÓDIGO
program practica1
trisb=0 'Habilita el puerto B como salida
main: 'Parte principal del programa
portb=$F0 'Escribe en el puerto B el valor F0H=11110000
delay_ms(1000) 'retardo en 1 s
end.
• ESQUEMÁTICO
ÁTICO

NOTA: La simulación fue realizada con el PIC16F877A, debido a que en proteus no


encontramos dsPIC30F4013, pero obtenemos el mismo resultado.
• S
I
M
U
L
A
C
I
Ó
N
• FOTOS
4. EJERCICIO 4 realizado con dsPIC30F4013

• PROBLEMA:

Leer en el puerto C y escribir en el puerto B.


NOTA: el dsPIC30F4013 no posee el puerto C completo para poder ingresar el dato, por lo que
utilizamos el puerto F.

• ALGORITMO:

Entradas:
Datos en el puerto F
Procesos:
• Habilitar puerto F como entrada
• El puerto B como salida
• Se define una variable de datos
• Mandar la variable al puerto de salida B
• Presentar resultados en el puerto B
Salidas:
Salida del puerto B presentamos en los leds.

• DIAGRAMA DE FLUJO

INICIO

DEFINIR
VARIABLE X

LEO VARIABLE X EN EL
PUERTO F

ESCRIBIR EN EL PUERTO B LA
VARIABLE X
• CÓDIGO

program cuatro
main:
dim valor as byte
lazo:
trisf=$ff
trisb=0
valor=portf
portb=valor
goto lazo
end.

• ESQUEMÁTICO

NOTA: La simulación fue realizada con el PIC16F877A, debido a que en proteus no


encontramos dsPIC30F4013, pero obtenemos el mismo res
resultado.
• S
I
M
U
L
A
C
I
Ó
N

• FOTOS
5. EJERCICIO 5 realizado con dsPIC30F4013

• PROBLEMA:

Leer en el puerto A y escribir en el puerto D.


NOTA: el dsPIC30F4013 no posee el puerto A completo para poder ingresar el dato, por lo que
utilizamos el puerto F.

• ALGORITMO:

Entradas:
Datos en el puerto F
Procesos:
• Habilitar puerto F como entrada
• El puerto D como salida
• Se define una variable de datos
• Mandar la variable al puerto de salida D
• Presentar resultados en el puerto D
Salidas:
Salida del puerto B presentamos en los leds.

• DIAGRAMA DE FLUJO

INICIO

DEFINIR
VARIABLE X

LEO VARIABLE X EN EL
PUERTO F

ESCRIBIR EN EL PUERTO D LA
VARIABLE X
• CÓDIGO

program cuatro
main:
dim valor as byte
lazo:
trisf=$ff
trisd=0
valor=portf
portd=valor
goto lazo
end.

• ESQUEMÁTICO

NOTA: La simulación fue realizada con el PIC16F877A, debido


debido a que en proteus no
encontramos dsPIC30F4013, pero obtenemos el mismo resultado.
• S
I
M
U
L
A
C
I
Ó
N

• FOTOS
6. EJERCICIO 6 realizado con dsPIC30F4013
• PROBLEMA:
Escribir en un display de 7 segmentos sin utilizar decodificador, un
valor ascendente entre 0 y F..
• ALGORITMO:
Entradas:
Datos que se guardan en el microcontrolador.
Procesos:
Conectamos los puertos del microcontrolador al display de 7
segmentos que debe ser un cátodo común el segmento a=portb.0,
el b=portb.1, de esta manera en orden hasta el segmento g.
Esperamos 2 segundos entre el cambio de números.
Comprobamos si las salidas se están ejecutando correctamente
mediante la visualización de los números en el display.
Salidas:
Datos que salen del puerto b del microcontrolador.
• DIAGRAMA DE FLUJO
INICIO

Configuro el
puerto B como
salida

Escribo en el puerto B en formato


binario.
Portb=%00111111

Retardo de 2 segundos

Escribo en el puerto B en formato


binario.
Portb=%00111110

Retardo de 2 segundos
• CÓDIGO
program practica6
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=%01111111
delay_ms(2000)
portb=%01100111
delay_ms(2000)
portb=%01100111
delay_ms(2000)
portb=%01111000
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.
• ESQUEMÁTICO

NOTA: La simulación fue realizada con el PIC16F877A, debido a que en proteus no


encontramos dsPIC30F4013, pero obtenemos el mismo resultado.

• S
I
M
U
L
A
C
I
Ó
N
• FOTOS
7. EJERCICIO 7 realizado con PIC16F877A
• PROBLEMA:
Ejercicio de aplicación mediante un display alfanumérico mostrar en
orden descendente todas las letras del alfabeto de la Z a la A.
• ALGORITMO:
Entradas:
Datos que se guardan en el microcontrolador.
Procesos:
Conectamos los puertos del microcontrolador al display
alfanumérico según la configuración que hayamos asignado a cada segmento y a
cada salida del microcontrolador.
Esperamos 2 segundos entre el cambio de números.
Comprobamos si el programa se está ejecutando correctamente mediante la
visualización de los números en el display alfanumérico.
Salidas:
Datos que salen del puerto b y puerto c del microcontrolador.
• DIAGRAMA DE FLUJO
INICIO

Configuro el
puerto B y C
como salida

Escribo en el puerto B y C
Portb=%00101000
Portc=%11000001

Retardo de 2 segundos

Escribo en el puerto B y C
Portb=%00111110
Portc=%11000001

Retardo de 2 segundos
• CÓDIGO
program alfa
main:
trisb=$0 'puerto b como salidas
trisc=$0 'puertoc como salidas
lazo:
'Z
portb=%00110011
portc=%01000100
Delay_ms(1000)
'Y
portb=%00000000
portc=%00100101
Delay_ms(1000)
'X
portb=%00000000
portc=%01010101
Delay_ms(1000)
'W
portb=%11001100
portc=%01010000
Delay_ms(1000)
'V
portb=%11000000
portc=%01000100
Delay_ms(1000)
'U
portb=%11111100
portc=%00000000
Delay_ms(1000)
'T
portb=%00000011
portc=%00100010
Delay_ms(1000)
'S
portb=%10111011
portc=%10001000
Delay_ms(1000)
'R
portb=%11000111
portc=%10011000
Delay_ms(1000)
'Q
portb=%11111111
portc=%00010000
Delay_ms(1000)
'P
portb=%11000111
portc=%10001000
Delay_ms(1000)
'O
portb=%11111111
portc=%00000000
Delay_ms(1000)
'N
portb=%11001100
portc=%00010001
Delay_ms(1000)
'M
portb=%11001100
portc=%00000101
Delay_ms(1000)
'L
portb=%11110000
portc=%00000000
Delay_ms(1000)
'K
portb=%00000000
portc=%00110110
Delay_ms(1000)
'J
portb=%00100011
portc=%00100010
Delay_ms(1000)
'I
portb=%00110011
portc=%00100010
Delay_ms(1000)
'H
portb=%11001100
portc=%10001000
Delay_ms(1000)
'G
portb=%11111011
portc=%00001000
Delay_ms(1000)
'F
portb=%11000011
portc=%10000000
Delay_ms(1000)
'E
portb=%11110011
portc=%10000000
Delay_ms(1000)
'D
portb=%01100000
portc=%10100010
Delay_ms(1000)
'C
portb=%11110011
portc=%00000000
Delay_ms(1000)
'B
portb=%11111000
portc=%10001000
Delay_ms(1000)
'A
portb=%11001111
portc=%10001000
Delay_ms(1000)
goto lazo
end.
• ESQUEMÁTICO

• S
I
M
U
L
A
C
I
Ó
N
• FOTOS
8. EJERCICIO 8 realizado con PIC16F877A
• PROBLEMA:
Lógica booleana con microcontrolador

• ALGORITMO:
Entradas:
Datos que se guardan en el microcontrolador en los puertos b y c
Procesos:
Configuramos el puerto c como salida.
Realizamos las funciones lógicas and or y xor.
Comprobamos si el programa se está ejecutando correctamente mediante la
visualización de los leds que deben cumplir con las funciones.
Salidas:
Datos que salen del puerto b del microcontrolador.
• DIAGRAMA DE FLUJO
INICIO

Configuro el puerto B
como entrada y el
puerto C como salida

Ejecuto las funciones booleanas


and, or y xor.

• CÓDIGO
program practica8
trisc=$ff 'puerto como entrada
trisb=$00 'puerto b salida
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.
• ESQUEMÁTICO

• S
I
M
U
L
A
C
I
Ó
N

NOTA: En la práctica se realizo con el puerto F de escritura y puerto B de salida, pero en la


simulación utilizamos el puerto C de escritura y ppuerto B de salida.
• FOTOS
• CONCLUSIONES

 El lenguaje de programación cargado en los microcontroladores PIC se lo realizó a través


del Compilador microBasic, debido a que es un lenguaje fácil y rápido de programar, para
principiantes en microcontroladores.

 Que la elaboración de esta práctica nos sirve para comprender un poco más la teoría de los
microcontroladores y su aplicación; de ahí la importancia del mismo, pues a través de él se
puede apreciar lo interesante que es la programación en nuestra vida cotidiana.

 Que los microcontroladores utilizados en esta práctica el 16f877A y dsPic30f4013, tienen


una capacidad muy grande para control de procesos básicos y complejos, aunque en
algunos programas ocupan extenso espacio de memoria es suficiente para la práctica para
empezar a conocer sobre microcontroladores.

BIBLIOGRAFIA

http://ww1.microchip.com/downloads/en/DeviceDoc/70138E.pdf, Microchip, datasheet dsPIC30F4013, fecha


de revisión: 25/09/2010.
http://ww1.microchip.com/downloads/en/devicedoc/30292c.pdf, Microchip, datasheet PIC16F877A, fecha de
revision: 25/09/2010.

Anda mungkin juga menyukai