Laboratorio 3- Procesadores y arquitectura.
Paula Andrea Rueda OBJETIVOS.
Nicolás Corredor Otavo Objetivo General
Comprender y analizar el funcionamiento y
arquitectura del microcontrolador PIC
INTRODUCCIÓN 18f4550, para poder realizar una aplicación
específica.
En la década de los 70 fue creado el primer
microcontrolador por Texas Instruments
casi al mismo tiempo que el primer
procesador de Intel, los primeros Objetivos específicos.
microcontroladores traían simples funciones
de memorias RAM y ROM. Investigar cómo funciona una unidad ALU
para poder replicar su principio en un
Hoy en día los microcontroladores han sido programa.
de gran importancia, están presentes en la
mayoría de los dispositivos electrónicos que Recopilar información de los distintos
usamos comúnmente como en : lenguajes de programación necesarios que
impresoras, teclados, cámaras de video, sirvan para configurar el microcontrolador.
scanner, plotters entre otros lo que lo lleva
a estar a la vanguardia y sea muy solicitado Diseñar un montaje en el cual se agregue el
por muchos ingenieros es su practicidad ya PIC 18f4550 el cual sirva como una ALU y
que todos sus dispositivos están la respuesta sea en Leds.
encapsulados en un circuito integrado,
Asegurar la integridad del PIC para que los
como computador capaz de controlar varios
componentes internos no se vean
dispositivos hay varias referencias para
afectados por una descarga invasora.
cualquier aplicación el único límite para
esto microcontroladores son la imaginación Investigar las distintas formas de programar
del usuario. el microcontrolador para lograr la función
deseada.
ABSTRACT
MARCO TEÓRICO.
En este informe consignamos los pasos
necesarios para el desarrollo y construcción ALU
de una unidad ALU con la ayuda de un
microcontrolador PIC 18f4550 de ocho bits, el diseño de una ALU que cuenta con 8
utilizando DIP SWITCH para generar las funciones lógicas, 5 aritméticas y 4
señales de entrada INPUT y LEDS para las funciones de desplazamiento. Las celdas
señales de salida OUTPUT, para llevar con básicas utilizadas para este diseño, tanto el
éxito este laboratorio hay que tener esquemático como las mascaras de
conocimientos previos de la arquitectura del fabricación fueron creadas especialmente
microcontrolador. para este propósito, utilizando el paquete
se software Tanner EDA. Para este circuito
se utilizo lógica CMOS complementaria,
una alimentación de 3,3V y todos los Por ejemplo, las posiciones se generan de
transistores son de tamaño mínimo definido derecha a izquierda comenzando por el
por la tecnología. Este circuito fue fabricado cero. Cada posición representa el
en la tecnología ON C5N, ocupa un tamaño exponente de una base 2.
de 1590 µm x 1208 µm y consta de 2400
transistores. El modo de operación de la ● Calculadora Binaria
ALU es el siguiente, dependiendo de cual
de las señales se activa, ENA o ENB, se La calculadora binaria permite realizar
almacenan los 8 bits en el registro A ó B. La operaciones con números binarios tanto de
operación a realizar depende del valor de la aritmética binaria (suma binaria, resta
señal SELEC. Por medio de la entrada ENF binaria, división binaria y multiplicación
se habilita la salida de la operación. binaria)
conceptos básicos para saber realizar
● El código binario operaciones con números binarios.
Permite entender y diseñar sistemas
electrónicos digitales. Su sistema de Sumar binarios
numeración es de vital importancia para la Sumar binarios es muy parecido a sumar
electrónica. También existen distintas decimales, con la única diferencia que en la
configuraciones como BCD, ASCII, etc. Los suma binaria sólo se emplean el 0 y 1, en
códigos binarios son un arreglo de dos lugar de todo el espectro de 0-9 como es el
caracteres, 1 y 0. Entonces, con sólo estos caso de la suma de decimales. En realidad,
dos dígitos se pueden representar a todo el esto hace que la suma binaria sea mucho
conjunto de números. También se pueden más simple que suma decimal, ya que sólo
realizar operaciones lógicas y aritméticas. hay que recordar lo siguiente:
Incluso se pueden representar números 0+0=0
imaginarios y reales. Dicha numeración se 0+1=1
puede representar o medir en bits de 1+0=1
información. Por ejemplo, 8 bits de 1 + 1 = 10
información permiten representar hasta 2^8 Para ilustrar el procedimiento a seguir para
= 256 combinaciones, desde 0 hasta 255. sumar números binarios te presentamos el
Cuando se crea un número con signo, el bit siguiente ejemplo:
7 se usa para representar al signo, 0 en el 101
último bit representaría el + y 1 el menos. +101
Por lo tanto un número con signo de 8 bits, a) Para sumar estos dos números binarios,
puede representar valores desde -127 consideramos en primer lugar la primera
hasta +127. columna de izquierda a derecha y
calculamos 1 + 1, que (en resultados
Un código binario y su sistema de binarios) es 1 0. Se acarrea o lleva un 1 a la
numeración tienen dos características: la siguiente columna, y colocamos un 0 como
posición y el valor que se le asigna a esa resultado en la primera columna.
posición. Recordarán por ejemplo, cuando b) Pasando a la segunda columna,
aprendíamos los números decimales, que calculamos 1 + (0 + 0), lo que da 1. No se
había unidades, decenas, centenas, acarrea nada, y dejamos el 1 como
millares, etc. Entonces de la misma forma, resultado de la segunda columna.
los códigos binarios ó también llamados c) Pasando a la tercera columna,
sistemas de numeración binario, presentan calculamos 1 + 1, que da 1 0. Se acarrea
un arreglo similar. un 1, pero como no hay más columnas que
sumar se coloca el resultado 10 en la A continuación te presentamos el siguiente
tercera columna. El resultado final es el ejemplo de multiplicación binaria,
siguiente: 101
101 x11
+101 Primero multiplicamos 101 por 1 , que
1010 produce 101. A continuación, ponemos un 0
Otro ejemplo de suma binaria: como un marcador de posición al igual que
1011 como lo haría en la multiplicación decimal y
+1011 multiplicamos 101 por 1 , que produce 101.
10110 101
x11
Restar binarios 101
Al igual que en la suma binaria, restar 101 0 <- el 0 aquí es el marcador de
binarios es un proceso bastante sencillo. posición
Por ejemplo te presentamos la siguiente El siguiente paso, al igual que con la
resta binaria: multiplicación decimal, es sumar. Los
111 resultados de nuestro paso anterior indica
– 10 que hay que sumar 101 y 1010 , la suma de
101 los cuales es 1111.
Similar que en la resta decimal, la clave 101
para poder restar números binarios de x 11
forma correcta, es tener claro el concepto 101
de “préstamo”. El “préstamo” se produce 1010
cuando un dígito más grande, digamos 8, 1111
se resta a un dígito más pequeño, digamos
5, como se muestra a continuación en la División binaria
resta decimal.
35 La división binaria es algo más complicada
– 8 que la multiplicación binaria. El proceso de
27 división requiere comprender bien cómo
En los siguientes ejemplos se muestra el realizar las demás operaciones aritméticas,
concepto de préstamo en la resta binaria: por lo que te aconsejamos dominar la
10 100 1010 suma, resta y multiplicación de binarios
– 1 – 10 – 110 antes de aprender a dividir números
1 10 100 binarios.
Cómo realizar la multiplicación binaria Para realizar una división binaria , tenemos
La multiplicación binaria es mucho más que seguir el mismo proceso como lo
sencilla de realizar que la multiplicación hacemos para dividir números decimales,
decimal. En el caso de la multiplicación pero, en este caso, sólo tenemos que
decimal, necesitamos recordar al menos las decidir si va a ser un 1 o un 0.
tablas de multiplicar del 0 a la del 9. En la Para dividir dos números, básicamente hay
multiplicación binaria, sólo tenemos que que seguir cuatro pasos: la división,
recordar lo siguiente, multiplicación, resta y siguiente dígito.
0x0=0 Para mostrar mejor cómo se debe realizar
0x1=0 la división binaria, a continuación vamos a
1x0=0 dividir 1011 entre 11:
1x1=1 11 R = 10
11 ) 1011
-11
101 5.- Si PORTA ==0x02h , Entonces
-11 Ir a Multiplicación
10 <- resto, R
De igual manera escogemos la operación
Ejemplo: aritmética por el puerto A con 0x02, aquí
notamos en los números a multiplicar
Se define el tipo de operación a efectuar se 2*1=2, así que tendremos de igual manera
desarrolla un pseudocódigo apropiado para considerar el signo del número por lo cual
poder describir de mejor manera las al realizar el cálculo de multiplicación
instrucciones, primero para no tener una tenemos que tomar en cuenta los
gran desbordamiento con nuestros cálculos desbordamientos , por lo cual de ahí hemos
sólo vamos a tomar 3 bits para cada reducido el número de bits para cada uno
número así el resultado tendrá el número de los números , aunque podemos notar
adecuado de bits para representar el que se puede tener un bit 4 pero ten en
resultado final. cuenta que deberás tener cuidado con el
desbordamiento de los números, pero sí
1.- Inicio de programación realizar la modificación adecuada en el
2.- Se lee el valor del selector código notaras que el resultado es el
3.- Si PORTA ==0x00h , Entonces adecuado.
Ir a Suma
6.- Si PORTA ==0x03h , Entonces
En el selector de operación del puerto A Ir a División
tenemos 0x00h, como primera prueba
realizamos la operación aritmética de suma De igual manera escogemos la operación
=> 1 + 1 = 2 , por el puerto C se nota el de la división por el puerto A con 0x03,
valor de 2 en binario. ahora de igual manera la operación de la
división es un tema especial pues como de
4.- Si PORTA ==0x01h , Entonces momento nuestras operaciones son con
Ir a Resta valores enteros el resultado de igual
manera es con números enteros por lo cual
Aquí de igual manera escogemos la solo veremos en este código resultados
segunda operación por el puerto A con enteros, vemos en la imagen 2/2=1, cuando
0x01, en cuanto a la operación tenemos 2- realicemos la división de un 3/2=1 , ya que
1=1, se nota que la operación es correcta, además tenemos un residuo , pero este
ahora cuando la operación en resta, de un residuo no se tomará en cuanto por lo cual
número negativo se debe de considerar que solo veremos resultados enteros, cuando el
en binario los números negativos tienen valor del divisor sea mayor al del dividendo
mayor peso en el nivel superior es decir el resultado que se vera siempre será de
que -1 en binario será 11111110 cuando se cero por lo cual también cumple con la
toma en cuenta el signo por lo cual maximo característica de que se debe de trabajar
de operaciones que tendremos sera (127) a solamente con números enteros.
0 a (-128) , por lo cual si notan números En cuanto a la división entre cero para ello
con nible alto realicen su complemento y dentro del código existe un limitante que
notaran que es un número negativo, con lo hace que cuando el divisor sea cero la
cual cumple con una de las características operación te mande directo a cero por el
de una calculadora convencional. puerto C, con ello cumplimos además con
la condición de no división entre cero.
Como reflexión final para este tutorial, una
de las características más sobresaliente en
mi opinión de los microcontroladores es su
capacidad de responder las necesidades de
automatización y control, con los medios
adecuados podemos por medio de
botoneras controlar un proceso de
funcionamiento de motores dentro de una
embotelladora por ejemplo, o bien la
automatización de una puerta hace que la
persona mejore su calidad de vida y lo lleva
a un mundo diferente adecuado para la
época. Bien recordarán que ya en los años
50 – 60, en el mundo industrializado se
soñaba con máquinas que lo hagan todo y
en la actualidad muchos procesos son
llevados por robots en la construcción de
automóviles y manufacturas donde la
precisión es muy importante.
La mejor aliada para la actualidad de
cualquier persona que quiere mejorar su
calidad de vida es el conocimiento y el
manejo de herramientas adecuadas como
lo son los microcontroladores y por sobre
todo paciencia para tener una mirada de
futuro. Bien hasta aquí este tutorial los
espero en el próximo tutorial donde iremos
descubriendo más del mundo de los
microcontroladores y cómo podemos
aprovechar las características de los
mismos y mejorar nuestra calidad de vida,
7.- fin de Programa
Unas de las exigencias de los
microcontroladores con los diferentes
compiladores es su correspondiente
configuración de bits y su correcta
configuración del oscilador en mplab hay
que seguir una serie de pasos la más
MARCO PRÁCTICO primordial es entrar a su configuración de
bits que es donde ajustamos lo que se
Primero nos enfocamos en hacer la
desea utilizar del PIC
programación de la unidad ALU.
de ser los valores que se operaran de
manera binaria.
Al haber explicado el código se monta la
simulación de proteus para identificar si
está bien estructurado el programa.
Al terminar la configuración seleccionamos
la opción generar la cual subirá un código
que tenemos que pegar en el archivo main.
Después dependiendo del oscilador que
Después de confirmar el correcto
sea necesario se define y con la función
funcionamiento de la síntesis, el siguiente
XTAL configuramos la velocidad del cristal
paso es la programación del pic con un
correcta sin olvidar que toda esta
PICKIT2 utilizando el siguiente programa.
información está en el datasheet del PIC.
Se configura los puertos del pic como
digitales con el comando ADCON 1 =15 el
pic toma los puertos como si fueran bits lo
cual hace la operación más sencilla.
Para mayor facilidad al escribir el código le
asignamos un valor a cada puerto para
ahorrar memoria a la hora de la escritura
del código
encargado de la comunicación entre el PC
Ya dentro de la función void configuramos y el programador PICKIT 2.
los puertos no había necesidad de
configurar los puertos como entrada pues la
configuración por defecto del PIC los deja
como entrada, en este caso la respuesta
iba ser en puerto entonces se define como
TRISB=0 .
En resumen el código se configuró para
que los puertos A,C,D sean entrada, los
datos que entran por el puerto A tendrán el
control de escoger la operación aritmética,
Los puertos C y D tienen la misma función
Ya Programado el PIC solo falta montar el
circuito en la placa protoboard y probar.
Si existe el caso que no funciona rectificar
montaje los DIPSWITCH tiende a fallar
mucho.
CONCLUSIONES.
Hay que tener cuidado con la carga
electrostático que fluye por el cuerpo puede
que interfiera con el correcto
funcionamiento al detectar los altos .
Es necesario configurar de forma correcta
el oscilador para que no haya conflicto al
iniciar el programa en físico.
Esta aplicación es una muy sencilla pero
ocupa gran parte de los puertos del PIC,
observando esto hay que establecer bien
los parámetros necesarios para escoger el
microcontrolador.
REFERENCIAS
● http://eapachani.blogspot.com/20
17/04/diseno-de-programas-en-
ensamblador-para.html
● https://calculadorasonline.com/ca
lculadora-
binaria/#Calculadora_binaria
● https://es.wikipedia.org/wiki/Oper
ador_a_nivel_de_bits
● http://uea2013.frbb.utn.edu.ar/wp-
content/uploads/S7_1.pdf