Vous êtes sur la page 1sur 31

Desarrollo de sistemas basados en microcontroladores y DSPS

Practica 1
Facultad Cs. De La Electrnica
Benemerita Universidad
Autonoma de Puebla

M.C. Nicolas Quiroz Hernandez


Alyne Sharaid Mndez Daz
Omar Alejandro Rosas Salas
Julio Martnez Ramrez
Alex Adan Couto Rodriguez
Jeshua Alejandro Ramirez Moreno

1
Septiembre 21, 2015

2
Introduccin

Objetivo de la prctica

Materiales

Entendiendo la arquitectura del pic18f4550

El oscilador interno

Organizacin de memoria

La Pila de direcciones

Arquitectura del microcontrolador PIC18f4550

Ambiente de desarrollo MPLAB

Directivas

Desarrollo

Simulacin en el entorno MPLAB SIM

Conexin en tablilla de experimentos

Anlisis de resultados

Conclusin

Bibliografia

Anexos

3
4
Introduccin
Un microcontrolador (abreviado C, UC o MCU) es un circuito integrado programable,

capaz de ejecutar las rdenes grabadas en su memoria. Est compuesto de varios bloques

funcionales, los cuales cumplen una tarea especfica. Un microcontrolador incluye en su

interior las tres principales unidades funcionales de una computadora: unidad central de

procesamiento, memoria y perifricos de entrada/salida.

El PIC18F45 pertenece a la empresa Microchip, de la familia PIC18F de 8 bits.

MPLAB es un IDE (Integrated Development Environment), es decir , un ambiente de

Desarrollo, el cual permite, crear y disear aplicaciones en sistemas empotrados como el

PICmicro y dsPIC microcontrollers.

Objetivo de la prctica
Identificar las caractersticas de los microcontroladores (uC) PIC de la familia PIC18.

Identificar los pines del PIC18F4550.

Analizar el funcionamiento de los puertos, oscilador y reset.

Conectar el circuito de reset (MClr) del PIC.

Identificar el software MPLAB, para un programa en lenguaje ensamblador.

Realizar un programa en lenguaje ensamblador para sumar dos datos de 4 bits

(Puerto B) y mostrar el resultado en 5 leds conectados en puerto D.

Realizar el algoritmo del punto anterior.

Realizar la simulacin del cdigo en ensamblador.

Simular en el software Proteus el circuito completo.

Programar el microcontrolador (Pickit2, ICD2, Master-Pro, etc.).

Probar el programa para obtener los resultados.

5
Materiales
PIC18F45

LEDS

Tablilla de experimentos

Cable

Fuente

Entendiendo la arquitectura del pic18f4550


Poseen un repertorio de 75 instrucciones en modo estndar, ms 8 instrucciones

especiales que solo trabajan cuando el microcontrolador opera en modo extendido (con

memoria de programa interna y externa).

El procesador sigue siendo de filosofa RISC (set de instrucciones reducido), buses de

arquitectura Harvard, construido en pastilla de tecnologa CMOS, frecuencia de operacin

de hasta 40 MHz, hasta 32 KWord de memoria Flash de programa, conversores A/D

integrados y manejo de interrupciones.

El oscilador interno

Los PIC18F4550 tienen un oscilador interno que genera dos seales diferentes, cualquiera

de las cuales puede utilizarse como reloj del microcontrolador. Este componente puede

eliminar el oscilador externo de los pines OSC1 y/o OSC2.

Comencemos a conocer la estructura de nuestro microcontrolador que no es ms que un

circuito integrado de 40 pines en la Figura 1 vemos un diagrama completo con la

disposicin de los pines y el nombre que toma cada uno.Las flechas indican si el pin es de

salida, de entrada o de entrada/salida.

6
El microcontrolador PIC18F4550 posee cinco puertos de entrada y salida: A, B, C, D y E.

Debido a que el bus de datos es de 8 bits.

Figura 1. Patillaje del PIC18f4550

7
Figura 2. Diagrama de Bloques de Pic18F4550
Organizacin de memoria

Memoria de programa: Memoria flash interna de 32.768 bytes

Almacena instrucciones y constantes/datos

8
Puede ser escrita/leda mediante un programa externo o durante la ejecucin

programa mediante unos punteros

Memoria RAM de datos: memoria SRAM interna de 2048 Bytes en la que estn incluidos

los registros de funcin especial.

Almacena datos de forma temporal durante la ejecucin del programa.

Puede ser escrita /leda en tiempo de ejecucin mediante diversas instrucciones.

Memoria EEPROM de datos: memoria no voltil de 256 bytes

Almacena datos que se deben conservar aun en ausencia de tension de

alimentacion.

Puede ser escrita/leda en tiempo de ejecucin a travs de registros.

Pila: bloque de 31 palabras de 21 bits

Almacena la direccin de la instruccin que debe ser ejecutada despus de una

interrupcin o subrutina

Memoria de configuracin: Memoria en la que se incluyen los bits de configuracin (12

bytes de memoria flash ) los registros de identificacion (2 bytes de memoria de solo

lectura). Aqu se hallan las opciones de configuracin:

Opciones de oscilador

Opciones de reset

Opciones de WatchDog

Opciones de la circuiteria de depuracin y programacin

Opciones de proteccin contra escritura de memoria de programa y memoria

EEPROM de datos

Registros de identificacin:se tratan de dos registros situados en las direcciones 3ffffeh y

3fffffh que contienen informacin del modelo y revisin del dispositivo.Son registros de

solo lectura.

9
La Pila de direcciones

La pila es un bloque de memoria RAM independiente de 31 palabras de 21 bits que sirve

para almacenar temporalmente el valor del PC cuando se produce una llamada o

subrutina o una interrupcin.

El puntero de pila (contenido en el registro STKPTR) es un contador de 5 bits que indican la

posicin actual del final de pila. El contenido de final de pila es accesible mediante los

registros TOSU,TOSH,TOSL.

Cuando se procesa una interrupcin o se ejecutan las instrucciones las instrucciones CALL

o RECALL (el PC est apuntando a la siguiente instruccin) se incrementa el STKPR y se

almacena en el final de pila el valor del PC.

Arquitectura del microcontrolador PIC18f4550


Con el datasheet del PIC18f4550 [1] nosotros decidiremos la configuracin de nuestro

microcontrolador.

Ambiente de desarrollo MPLAB

Directivas

Las directivas son palabras reservadas o comandos que controlan el proceso de

ensamblado del cdigo fuente, no debemos confundirlo con las instrucciones, ya que no

tienen equivalente en cdigo maquina, sino que solo sirven para controlar el ensamblado

al momento de realizarlo y, adems para facilitar la escritura del cdigo fuente. Es por eso

que la gran mayora de las directivas son opcionales .

El ensamblador MPASM tiene alrededor de 60 directivas. De las cuales se hablan a

continuacin algunas que son muy comunes en un programa ensamblador:

10
END

Es la nica directiva que es obligatoria. Esta le indica al ensamblador donde finaliza el

codigo, para que se detenga al momento de ensamblar.

EQU (define an assembler constant) Sintaxis: [label] EQU exp

Esta directiva sirve para asignar etiquetas a constantes u otros elementos. Lo que

pongamos en exp ser asignado a la etiqueta.Por ejemplo, podemos usar esta directiva

para asignar nombres a registros de la memoria de datos:

En este ejemplo, el valor 0x0C es asignado a la etiqueta contador. De esta forma, cada vez

que escribamos contador en nuestro programa, el ensamblador lo sustituir por el valor

0x0C, que es la direccin del primer registro de la memoria de datos.

En la instruccin incf, el registro 0x0C ser incrementando y el resultado se almacena en el.

ORG(set program origin) Syntax [label] ORG dir

La directiva ORG le indica al ensamblador el origen de las instrucciones siguientes en la

direccion de memoria de programa definida por dir.Es decir, le sealara al ensamblador a

partir de que direccion se pondran las siguientes instrucciones de nuestro codigo.Esto es

11
util cuando deseamos especificarlo, como en el siguiente codigo:

La lnea con la instruccin bsf se pondr en la direccin de memoria de programa 05h, y a

partir de ah las dems que le sigan. Si no usamos la directiva ORG el ensamblador tomara

la primera direccion de la memoria de programa (00h), y a partir de ah pondr las

instrucciones. Podemos usar la directiva ORG todas las veces que sea necesario en nuestro

cdigo, para definir diferentes direcciones de origen para diferentes bloques del

programa.Si le colocamos una etiqueta se le asignara el valor de dir especificado:

Le asignara el valor de 10h a la etiqueta dir_1, adems de especificar el origen

#INCLUDE (include additional source file) Sintax: #INCLUDE [file] o #INCLUDE

[file] o #INCLUDE [<file>]

Esta es una directiva muy importante, ya que permite incluir un archivo fuente completo en

el lugar donde lo coloquemos, es decir, al especificar un archivo, su contenido ser

colocado en ese lugar, tal como si lo hubiramos escrito ah.

12
Figura 3. Con #INCLUDE insertamos el contenido de un archivo en nuestro cdigo fuente
De esta forma, podemos insertar codigos y definiciones de constantes desde otros archivos

sin tener que escribirlos nuevamente, tambin podemos tener una coleccion de librerias,

con subrutinas que utilizamos constantemente.

Ejemplo de esto es:

Si especificamos la ruta completa del archivo (Por ejemplo,

<C:/Misdocumentos/Miarchivo.inc>), el ensamblador solo lo buscara en esa ruta, Si no

especificamos ninguna ruta para el archivo (Colocamos nicamente su nombre)

Desarrollo

A partir del planteamiento de la prctica comienza a definir lo que se va a realizar a travs

de un diagrama de flujo (Figura 3),

13
Figura 4. Diagrama de Flujo creado con DFD v.xxx
Ya que con l obtenemos el algoritmo que nos permitir crear el cdigo en cualquier

lenguaje.

Para iniciar a codificar en ensamblador utilizaremos una plataforma llamada MPLAB IDE

v.8.90, que es un software que cuenta con todas las herramientas necesarias para

desarrollar los programas para nuestro microcontrolador.

Una vez abierto nuestro programa para empezar a trabajar iniciaremos el Project Wizard,

para ello vamos a la pestaa Project Project Wizard, el cual nos ayudara a configurar

nuestro entorno de trabajo. Nos aparecer una pantalla como la siguiente (Figura 5):

14
Figura 5

Primero comenzaremos por seleccionar nuestro dispositivo en nuestro caso el PIC18F4550,

posteriormente seleccionaremos una suite de lenguaje en el cual vamos a programar,

seleccionamos Microchip MPASM Toolsuite, el cual contendr las herramientas

necesarias para la compilacin, el ensamblador y las libreras como se muestra en la Figura

6.

Figura 6

Posteriormente se nos da la opcin de crear un nuevo proyecto, primero que nada damos

clic en Browse para seleccionar la ruta donde queremos guardar nuestro proyecto y lo

nombramos Practica_1, y presionamos siguiente, se nos dar la opcin de agregar un

15
archivo cdigo anterior, pero al no tener daremos siguiente y finalizaremos la

configuracin.

Ests configuracin solo se nos pedirn la primera vez que abrimos el programa, para

posteriores proyectos, la configuracin que asignamos en este momento ser la

predeterminada.

Para comenzar a escribir nuestro programa debemos crear un nuevo archivo fuente,

dando click en el men de File New, y se nos abrir un editor de texto en el cual

copiaremos nuestra plantilla predeterminada del PIC18F4550, pero an no se nos

detectara como cdigo ensamblador para ello tenemos que guardarlo con la extensin

.asm, para eso vamos al men File Save As y se nos abrir un cuadro de dialogo

para elegir la carpeta donde lo guardamos, y seleccionamos la carpeta donde guardamos

nuestro proyecto, ponemos el nombre de nuestro archivo y al final ponemos la extensin

.asm, para que quede as Practica_1.asm (Figura 7)

Figura 7

Al guardarlo, el editor de texto tomar colores, eso quiere decir que el programa ya detecta

que estamos haciendo cdigo ensamblador y nos detectara cada una de las instrucciones y

los mnemnicos.

Nuestro cdigo base se vera como se muestra en la Figura 8, y comenzaremos a

describirlo:

16
Figura 8

Primero que nada todo lo que se encuentra en color verde, es decir despus de un punto y

coma son todos los comentarios que nosotros como programadores queramos agregar, en

nuestro caso ponemos como ttulo la plantilla para nuestro microcontrolador PIC18F4550,

nuestra materia en curso Microcontroladores y DSPs, el nombre y nmero de nuestra

prctica, la fecha y algunas notas que hagamos acerca del programa que estamos

realizando, despus utilizamos el siguiente comando List p=18F4550, el cual sirve para

seleccionar el microcontrolador que usaremos, tambin aadiremos la directriz include

<p18F4550.inc>, es una librera en la cual se encuentran todas las definiciones de todas las

etiquetas de los registros del PIC18F4550.

Ahora comenzaremos a describir las Palabras de Configuracin, todas estas instrucciones

comienzan con la palabra CONFIG seguidos de la instruccin a definir:

FOSC = INTOSC_XT.- Esto es para usar el oscilador interno XT usado para la configuracin

USB, aunque para nuestro uso utilizaremos INTOSCIO_EC, ya que la primera funcin tiene

problemas con el software PROTEUS en donde realizaremos nuestra simulacin

17
PWRT = ON.- Esta se activa para tener un retraso al prender el microcontrolador y que

no se activen las funciones inmediatamente.

BOR = OFF.- Sirve para habilitar o deshabilitar el reset en hardware y software.

WDT = OFF.- Activa o desactiva el watchdog timer.

MCLRE = ON.- Activa o desactiva el pin del master clean reset.

PBADEN = OFF.- Configura el puerto B como pines digitales de entrada salida.

LVP = OFF.-Este comando sirve para activar la programacin en bajo nivel de voltaje.

DEBUG = OFF.-Activa o desactiva la depuracin en segundo plano

XINST = OFF.- Activa o desactiva el set de instrucciones extendido.

Ahora comenzaremos a codificar el cuerpo de nuestro programa, para ello primero

describiremos qu es lo que har nuestro programa.

Ser un sumador de 2 nmeros de 4 bits que entraran por el puerto B y mostrara el

numero por medio de LEDs a travs del puerto D.

El cdigo de todo nuestro programa quedara de la siguiente manera (Figura 9)

18
Figura 9
Primero comenzaremos definiendo nuestras variables op1 y op2 que es donde se

almacenar el valor de los 2 nmeros que sumaremos y que sern extrados del puerto B,

para ello primero escribimos el nombre de la variable seguido de equ qu es la directiva

para declarar las variables seguido escribiremos la localidad de memoria donde queramos

almacenar dicha variable en el caso de op1 ser en 0x00h y op2 en 0x01h.

Despus de esto declararemos la directiva org, la cual establece la direccin del origen del

cdigo en la memoria de programa. Despus cargaremos al registro W con el valor 0x62h,

el cual manejaremos para propsito de esta prctica y reporte como los valores que entran

por el puerto B; despus de esto mediante la instruccin bcf activaremos las resistencias

de pull-up internas del microcontrolador.

Activaremos tambin el oscilador de 4 MHz para nuestro microcontrolador, para ello

utilizaremos la instruccin movwf OSCCON, 0, esta instruccin lo que hace es poner el

valor 0 en la direccin F, en este caso OSCCON con lo cual activamos el oscilador requerido.

Pasaremos ahora a configurar los puertos B y D Utilizamos para el puerto B la instruccin

setf TRISB, la directiva setf pasa todos los bits a 1 de la direccin que le indiquemos en este

caso con TRISB seleccionamos todo el puerto B y al pasarlo a 1s ser configurado como

entradas, lo opuesto ser para el puerto D que lo pondremos todo en 0s como salidas y

utilizaremos la directiva clrf la cual pasa todos los bits a ceros de cualquier direccin que le

demos, en este caso TRISD.

Ahora que ya hemos configurado nuestras entradas y parmetros de funcionamiento

daremos las instrucciones para efectuar la suma, primero que nada leeremos lo que tenga

el puerto B y lo mandaremos a nuestro registro W para ello utilizamos la directiva movf

PORTB, despus de esto mandaremos este valor que lemos en el puerto B a la variable

op1 para hacer un respaldo del valor, para ello utilizamos movwf op1, puesto que la

directriz movwf copia el valor de W a F en este caso op1. Ahora haremos una operacin

19
and al registro W para dejar en W solo el valor del operando 2, en W tenemos el valor de

entrada en B como dijimos tenemos el valor 0x62h, que en binario seria 01100010, y para

dejar solo el operando 2 utilizaremos el valor 0x0Fh (binario 00001111), al aplicar esta

operacin and en el registro W quedara solo el valor del operando 2 que sera 0x02h

(binario 00000010), en cdigo ensamblador utilizaremos la directiva andlw 0x0F para

realizar lo descrito anteriormente, ahora bien moveremos lo que ahora tenemos en W a la

variable op2 utilizando la instruccin movwf op2. Ahora utilizamos la directiva swapf op1,

esta instruccin lo que har es intercambiar los nibbles (grupos de 4 bits) de la direccin

que marquemos, en nuestro caso op1 y lo almacenaremos en W, para nuestro ejemplo en

op1 tenemos el siguiente valor en binario 01100010 y al aplicar el swap quedara en el

registro W de la siguiente manera 00100110b y volvemos a aplicar la operacin andlw de la

misma manera que lo hicimos con el operando 2, ahora bien tenemos en el registro W el

valor del operando 1 que seria 00000110b y en op2 tenemos 00000010 por lo que solo nos

falta efectuar la suma para eso utilizamos la instruccin addwf op2 donde sumamos el

operando 1 que est almacenado en W a la variable op2 y el resultado queda almacenado

en el registro W, que sera 00001000b; por ltimo mandamos el valor obtenido al puerto D

para que podamos visualizarlo, esto se hace por medio de la instruccin movwf PORTD,

cuyo funcionamiento ya describimos anteriormente.

Todo nuestro proceso est contenido en un ciclo que est dado por la instruccin de

inicio, antes de leer el puerto B y termina justo cuando mandamos el valor al puerto D, y

lo volvemos ciclo al incluir la directiva bra inicio, lo que hace que se mantenga un ciclo

concurrente es decir que pueda estar sumando en cualquier momento Finalmente se da la

instruccin end que es ah donde nuestro programa concluye.

Simulacin en el entorno MPLAB SIM


Ahora que ya tenemos nuestro cdigo hecho podemos comenzar a simularlo para

comprobar que realmente funciona y hace lo que nosotros requerimos, para esto el propio

20
MPLAB contiene un simulador MPLAB SIM, para esto primero debemos ensamblar nuestro

cdigo para esto iremos a la pestaa Project Build All nos aparecer una pantalla

nueva donde veremos el proceso de compilacin, y en caso de no haber errores nos

mostrar la leyenda BUILD SUCCEEDED (Figura 10)

Figura 10
Esto nos generar un archivo .hex el cual contiene los valores binarios expresados en

forma hexadecimal que corresponden a las instrucciones de nuestro programa.

Una vez generado nuestro archivo podemos comenzar la simulacin para esto iremos al

men Debugger Select Tool MPLAB SIM seguido de esto nos aparecern los

botones de simulacin (Figura 11)

Figura 11
Comenzaremos describiendo los botones de izquierda a derecha

1. Run: Sirve para ejecutar el programa de forma continua. El programa correr de forma

libre hasta que lo detengamos

21
2. Stop: Sirve para detener la simulacin cuando esta corriendo.

3. Animate: La simulacin corre paso a paso por cada lnea, y aparecer una flecha verde

junto a la lnea de cdigo fuente que se est ejecutando.

4. Step Into: Podremos ejecutar manualmente el programa un paso a la vez, cada vez que

se presiona se ejecutar una lnea del programa.

5. Step Over: Funciona de manera similar a Step Into, pero tiene como diferencia de que al

encontrar una instruccin call no entrara en ella sino que la ejecutar como una sola

instruccin

6. Step Out: Sirve para cuando estamos en una subrutina y queremos salir de ella en un

paso

7. Reset: Es equivalente a dar un reset al microcontrolador, al dar click iniciaremos de

nuevo el programa desde el principio.

8. Breakpoints: Abre una ventana para poder observar una lista con los puntos de ruptura y

desde ah podremos manipularlos (crearlos, eliminarlos, activarlos o desactivar los).

Para poder tener ms detalles sobre lo que est sucediendo al correr la simulacin

podemos observar a travs de otras ventanas los estados que toman los registros primero

utilizaremos el SFR (Registros de funcin especial por sus siglas en ingls)

Para abrir esta ventana iremos al men View Special Function Registers y nos

aparecer una pantalla como la siguiente (Figura 12)

En el podremos visualizar los valores que van tomado cada uno de los registros durante la

simulacin y apreciar si toman los valores que esperamos.

22
Figura 12
Tambin podemos observar los registros de la memoria de datos, para ello vamos al men

View > File Registers donde aparecer una ventana (Figura 13) con un mapa de todos

los registros de la memoria de datos. Si presionamos la pestaa Symbolic debajo de esta

ventana se mostrar una lista de registros con su nombre y su valor contenido, esto es til

para ver los valores que tienen los registros de la memoria de datos durante la simulacin.

Figura 13

23
Otra herramienta que utilizaremos ser la de Watch, est la abrimos nuevamente el men

View Watch, nos aparecer una ventana al principio vaca, pero esta nos ser til para

observar nicamente los registros o bits individuales que necesitemos, es decir podemos

personalizar en ella los registros o bits de la memoria de datos que queremos vigilar. Esto

lo hacemos al elegir por medio del botn Add SFR o Add Symbol respectivamente en

nuestro caso seleccionaremos el PORTB, PORTD y WREG (Figura 14), que sern los

valores que utilizaremos en esta prctica.

Figura 14
Por ltimo para poder hacer una simulacin ms correcta podemos simular los datos en

los pines de entrada de los puertos debemos hacerlo mediante estmulos, para configurar

los estmulos necesarios iremos al men Debugger Stimulus New Workbook y se

abrir una nueva ventana, seleccionaremos la pestaa Asynch y veremos una serie de

celdas. Haremos click en la primera celda de la columna llamada Pin / SFR, podemos elegir

un pin de entrada en nuestro caso utilizaremos los Pines RB0, RB1, RB4 y RB5 y en la

casilla Action seleccionaremos Toggle (Figura 15) para que cada que demos en la pestaa

de Fire los bits conmutan entre 0 y 1, hemos seleccionado estos 4 bits para seleccionar los

bits ms significativos de cada uno de los operandos y asi poder simular y ver de qu

manera suma nuestro programa

24
Figura 15
Con cada una de estas herramientas podremos ver el correcto funcionamiento de nuestro

programa dando entradas, comprobando los datos que se encuentran en cada uno de los

registros, viendo las salidas e ir verificando paso a paso nuestro programa y as podremos

hacer una simulacin ms completa y desarrollada.

Conexin en tablilla de experimentos


Las conexiones con respecto al PIC18F4550 se realizaron de la siguiente manera:

Alimentacin: el PIC es alimentado en ambos lados. Los pines 11,32 estn

conectadas a VDD y los pines 12,31 a VSS.

El pin 1 se conecta a VDD constante ya que si se le da un voltaje menor a 3 V se ejecuta un

reset.

Entradas (DIP SWITCH): Las entradas utilizadas corresponden al puerto B (33-40)

que corresponden a los 2 nmeros de 4 bits que se sumarn cada uno le

corresponde 4 pines RB0-RB3 (33-36) y RB4-RB7 (37-40). El DIP SWITCH tambin se

alimenta a VSS y VDD.

Salidas (Leds): Las salidas corresponden al puerto D (19-22, 27-30, y 23,24 ), se

utilizaron (19-23) conectados al led y este a su vez a una resistencia que va a VDD.

En la figura 16 se puede ver la conexin:

25
Figura 16 Montaje del Pic con conexiones, creado con el Programa fritzing

Anlisis de resultados

Para visualizar nuestro cdigo se hace uso del simulador proteus versin 8 el cual nos

permite usar un modelo virtual PIC18F4550, gracias a que MPLAB crea un archivo de

copilacion .hex nosotros cargamos este archivo al PIC el cual sera su equivalente a

quemarlo.Teniendo el diagrama de la figura 17. se nota que el dip switch tiene un arreglo

de 8 switches que dependiendo de la posicin nos dar un cero (0v si es logica no inversa)

o un uno logico ( 5v si es logica no inversa) las resistencias que se hallan entre la seal de

+5v y el dipswitch son delimitadoras de corriente y las que permiten con el dip switch el

cambio de nivel, estas pueden ser opcionales ya que se le puede configurar al Pic que

construya las resistencias en su interior.

26
De derecha a izquierda (de low-high) se toman los primeros bits del primer nibble, despus

del primer nibble, empieza el segundo nibble, es decir, que desde el switch 4 empieza el

segundo operando,por lo tanto tenemos dos nmeros con una longitud de 4 bits.

La salida de acuerdo al programa tenemos del mismo orden de derecha a izquierda van de

low-high, de ser asi se espera que se encienda un led con el resultado de la suma de los

dos nibbles.

Figura 17 Diagrama de conexin del PIC para el desarrollo de la practica


Dando doble clic en el Pic aparecer una ventana emergente Figura 18 la cual en el cuadro

donde aparece una carpeta se debe de introducir la direccin del .hex, como comentario

este aparece en conjunto con otros archivos despus de compilarlo en el MPLAB, es decir,

que debemos de buscar este archivo dentro de la carpeta que guardemos nuestro

proyecto MPLAB o en archivos temporales para el caso de Windows.

27
Figura 18. Carga del .hex en Proteus 8
Ya cargandolo nos disponemos a probar se introduce en el nibble RB=0001 y en el nibble

RB= 0001 por qu se espera en salida un valor de RD=00010.En la figura 19 se demuestra

que esto se cumple

Figura 19 Simulacin del programa

28
Haciendo una prueba ms con RB=0110, RB=1000 el resultado es:

Figura 20. Simulacion n.2


Con el simulador Figura 20. se observa que el resultado de RD=01110 lo cual es igual de

correcto.

La prctica en la tablilla de experimentos es la siguiente:

Figura 20 Conexion del PIC


No se encuentran las conexiones del PIC18F4550 ya que los jumpers no permiten ver las

partes.

Conclusin

29
El uso del cdigo ensamblador para la programacin de los microcontroladores result ser

una poderosa herramienta y que nos facilita mucho la codificacin de nuestros programas

, juntamente con el entorno MPLAB hace de la programacin de microcontroladores algo

ms sencillo de lo que parece, ciertamente se debe estudiar muy bien las instrucciones,

pero una vez hecho eso podemos realizar cualquier cosa, asi mismo las herramientas que

tenemos a nuestro alcance para simular y comprobar el funcionamiento del programa

evita que cometamos errores y que veamos de manera minuciosa las localidades de

memoria, los registros y nos permite tener un control completo de nuestra codificacin.

Asi mismo el uso del Software Proteus nos permite tener una ventana mas cercana a la

realidad , permitiendo hacer una simulacin con todos los componentes necesarios para la

conexin y para asi mismo tambien dar los impulsos y comprobar el completo

funcionamiento de nuestro programa.

Bibliografia

(2015) Wikipedia. Accessed september 2015 [online]. Available:

https://es.wikipedia.org/wiki/Microcontrolador

Rossano V.,Electrnica y microcontroladores PIC Guia practica de programacin, 1a

edicin-Banfield-Lomas de Zamora: Gradi,2009 pp.368

Anonimo, Microcontroladores,Coleccion Users Electronica, 1a edicion,Buenos Aires, 2011.

pp.192

30
Anexos

PDF Datasheet PIC18F4550

31

Vous aimerez peut-être aussi