Está en la página 1de 49

Prctica 1

Microcontroladores y DSPs

Benemrita Universidad Autnoma de


Puebla
Facultad de ciencias de la electrnica
Licenciatura Ingeniera Mecatrnica

Prctica 1
Equipo 8

Microcontroladores PIC18
Profesor: M. C. Nicols Quiroz Hernndez
Materia: Microcontroladores y DSPs
Alumnos:

Celia Rosario Guerrero

Sergio Ivn Lpez Villegas

Dana Hernndez de la Luz

Fitzgerald Odn Morales Vargas

Septiembre 2015

Prctica 1
Microcontroladores y DSPs

Objetivos
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 realizar 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.

Introduccin
Como primera prctica se dio la tarea de hacer un sumador de 4 bits, en un
microcontrolador, especficamente el PIC18F4550. Las entradas provienen de un Deep
switch, es decir los nmeros a ser sumados y las salidas que representan la suma, sern
leds que encendern cuando su valor sea uno y estn apagadas en cero.
Por lo que lo primero que se tuvo que hacer fue conocer de forma general la estructura
interna del microcontrolador seleccionado, sus pines, osciladores y memoria.
Llevar a cabo el sumador ser posible mediante el desarrollo de un cdigo en lenguaje
ensamblador, desarrollado en el software MPLAB v8.92, el cual luego de comprobarlo en
el mismo programa, se obtendr su archivo hexadecimal, para implementarlo en Proteus
para as tener una simulacin ms completa ya a nivel componentes, en cuestin de la
conexin del micro con los leds y sus resistencias y as poder llevarlo despus al modelo
real. Ah el PIC y el resto de los elementos sern conectados en una tablilla de
experimentos, para despus pasar a probar cada uno de los casos posibles, es decir cada
suma de 4 bits, con dos entradas, sea posible. Una vez que obtuvimos los resultados que
de cada suma mediante el encendido y apagado de leds, el sumador estar listo.
Marco terico
Cdigo Ensamblador
Es un cdigo mnemnico de fcil comprensin para representar las secuencias de 0 y 1.
Escribir un programa en mnemnicos es ms sencillo, porque son una versin abreviada de
la operacin que realiza una instruccin. Adems de que es una alternativa de escribir
instrucciones en cdigo binario tambin conocido como cdigo mquina.

Prctica 1
Microcontroladores y DSPs

Microcontroladores
Un microcontrolador es aquel que integra en un chip de microprocesador con memoria,
interfaces de entrada/salida y otros dispositivos perifricos como temporizadores. Un
microcontrolador comn tiene terminales para la conexin externa de entradas salidas,
alimentacin elctrica y seales de reloj y de control.

PIC18F4550
1. Caractersticas generales
Caractersticas del puerto USB:
Modos de manejo de potencia:
Corrientes modo inactivo Abajo para corriente tpica de 5.8 uA
Corrientes Modo Sleep hasta 0,1 uA Tpica
Timer1 Oscilador: 1.1 uA Tpica, 32 kHz, 2V
Temporizador de vigilancia: 2,1 uA Tpica
Dos velocidades Oscilador de puesta en marcha
Caractersticas generales del oscilador:
Cuatro modos de cristal, incluyendo alta precisin PLL para USB
Dos modos de reloj externos, de hasta 48 MHz
Bloque Interno del Oscilador:
- 8 frecuencias seleccionables por el usuario, desde 31 kHz a 8 MHz
- Usuario-ajustable para compensar Frequency Drift
Oscilador Secundario usando Timer1 a 32kHz
Opciones de doble oscilador permiten microcontroladores y Mdulo USB para funcionar
a diferentes velocidades de reloj
Fail-Safe Monitor de reloj:
- Permite la parada segura si alguna reloj se detiene
Perifricos Destacados:
De alta corriente para Lavabo / Fuente: 25 mA / 25 mA
Tres interrupciones externas
Cuatro mdulos de tiempo(Timer 0 a Timer 3)
Hasta 2 Capture/ Compare/ PWM mdulos (CCP):
- Capture es de 16 bits, mx. Resolucin 5.2 ns (TCY / 16)
- Compare es de 16 bits, mx. Resolucin 83.3 ns (TCY)
- Salida PWM: resolucin PWM es de 1 a 10 bits
Mejorada Capture / Compare / PWM (PECC) mdulos:

Prctica 1
Microcontroladores y DSPs

- Mltiples modos de salida


- Polaridad seleccionable
- Deadtime programable
- Auto-apagado y reinicio automtico
- Soporte de bus LIN
Mdulo Master Synchronous Serial Port (MSSP)
Apoyado a 3 hilos SPI (los 4 modos) y I2C
Modos: maestro y esclavo
10 bits, hasta 13 canales de analgico a digital
(A / D) mdulos con programable tiempo de adquisicin
Comparadores analgicos duales con multiplexacin de entrada.
Caractersticas especiales del microcontrolador:
C Arquitectura de Compilador Optimizada con opcional Set de instruccin extendida
100.000 Borrar / Ciclo Enhanced Write flash
Memoria de programa tpico
1.000.000 Borrar / escritura de EEPROM Ciclo de Datos de memoria tpica
Flash / Datos EEPROM de retencin:> 40 aos
Auto-programable bajo control de software
Los niveles de prioridad para Interrupciones
8 x 8Single-Ciclo Hardware Multiplicador
Extended Watchdog Timer (WDT):
- Perodo programable de 41 ms a 131s
Programable Proteccin Cdigo
Single-Supply 5V en circuito de serie
Programacin (ICSP ) a travs de dos pines
Rango de voltaje de funcionamiento ancha (2.0V a 5.5V)
Mltiples opciones de oscilador y caractersticas
Todos los dispositivos en la familia PIC18 F2455/2550/4455/4550 ofrece doce opciones de
oscilador diferentes, lo que permite a los usuarios tener una amplia gama de opciones en el
desarrollo de aplicaciones de hardware. stas incluyen:
Cuatro modos de Cristal utilizando cristales o resonadores de cermica.
Cuatro modos de reloj externos, ofreciendo la opcin de usar dos pasadores (entrada del
oscilador y un divisor por 4, salida de reloj) o un pin (entrada del oscilador, con el segundo
pasador reasignado como general de E / S).
Un bloque oscilador interno que proporciona un reloj de 8 MHz ( 2% de precisin) y una
INTRC fuente (aproximadamente 31 kHz, estable a temperatura y VDD), as como una
gama de 6 frecuencias de reloj seleccionables por el usuario, entre 125 kHz a 4 MHz, para
un total de 8

Prctica 1
Microcontroladores y DSPs

Frecuencias de reloj. Esta opcin libera un pasador de oscilador para utilizar como un
propsito general adicional de E / S.
Fase Lock Loop (PLL) multiplicador de frecuencia, disponible tanto a la alta velocidad de
Cristal y modos de oscilador externo, lo que permite una amplia gama de velocidades de
reloj de 4 MHz a 48 MHz.
La operacin asncrona reloj dual, permite que el mdulo USB se ejecute desde una alta
frecuencia del oscilador mientras que el resto del microcontrolador tiene una velocidad de
reloj de un oscilador de baja potencia interna. Adems de su disponibilidad como fuente de
reloj, el bloque interno de oscilador proporciona una fuente de referencia estable que da
caractersticas de la familia adicionales para operaciones pesadas:
Fail-Safe Monitor de reloj: Esta opcin constantemente supervisa la principal fuente de
reloj contra una seal de referencia proporcionada por el interior oscilador. Si se produce
un error de reloj, el controlador es conmutado al bloque oscilador interno, lo que permite
para la operacin de baja velocidad continua o una caja fuerte apagado de la aplicacin.
Dos velocidades de puesta en marcha: Esta opcin permite al oscilador interno servir
como fuente de reloj de Power-on Reset, o activar del modo Sleep, hasta que la fuente de
reloj primaria est disponible.
Tabla 1.1 Caractersticas de los dispositivos de la familia F18

Prctica 1
Microcontroladores y DSPs

Figura 1.1 Diagrama a bloques del PIC18F4550 de 40 pines

Prctica 1
Microcontroladores y DSPs
Tabla 1.2 Descripcin de los pines I/O del PIC18F4550 de 40 pines
Nombre del
Nmero de Pin
Tipo de
Tipo de
Pin
Pin
Buffer
PDIP QFN TQFP
I
MCLR/VPP/RE3 1
MCLR VPP RE3

18

18

ST

P
I

ST

OSC1/CLKI
OSC1 CLKI

13

32

30

I
I

Analgico
Analgico

OSC2/CLKO/RA
6 OSC2
CLKO
RA6

14

33

31

O
O
I/O

TTL

Descripcin

Borrado (entrada) o tensin de


programacin (entrada).
Borrado (Reinicio) de entrada. Este pin
es un activo de baja
Restablecer el dispositivo.
Entrada de tensin de programacin.
entrada digital
Oscilador de cristal o de entrada de
reloj externo.
Oscilador de entrada de cristal o de
entrada de la fuente de reloj externa.
Entrada de la fuente de reloj externa.
Siempre asociado con
Funcin OSC1 pin. (Ver pin OSC2 /
CLKO.)
Oscilador de cristal o de salida de reloj.
Salida de oscilador de cristal. Se
conecta a cristal o
resonador en modo oscilador de
cristal.
En el modo RC, el pin OSC2 salidas
CLKO que tiene un cuarto
la frecuencia de OSC1 y denota la
instruccin
tasa de ciclo.
Propsito general de I / O pin.

Prctica 1
Microcontroladores y DSPs
Tabla 1.2 Descripcin de los pines I/O del PIC18F4550 de 40 pines (continuacin)
Nombre del Pin
Nmero de Pin
Tipo de
Tipo de
Descripcin
Pin
Buffer
PDIP QFN TQFP
El Puerto A es bidireccional I/O
RA0/AN0
RA0
AN0

RA1/AN1
RA1
AN1

RA2/AN2/VREF-/
CVREF
RA2
AN2
VREFCVREF

RA3/AN3/VREF+
RA3
AN3
VREF+

RA4/T0CKI/C1OU
T/ RCV
RA4
T0CKI
C1OUT
RCV

RA5/AN4/SS/
HLVDIN/C2OUT
RA5
AN4
SS
HLVDIN
C2OUT
RA6

19

20

21

22

23

19
I/O
I

TTL
Analgico

Digital I/O
Entrada Analgica 0

I/O
I

TTL
Analgico

Digital I/O
Entrada Analgica 1

I/O
I
I
O

TTL
Analgico
Analgico
Analgico

I/ O digital.
Entrada analgica 2.
Una referencia de tensin / D (bajo)
de entrada.
Salida de referencia comparador
analgico

I/O
I
I

TTL
Analgico
Analgico

EI/O digital.
Entrada analgica 3.
Una referencia de tensin / D (alto)
de entrada

I/O
I
O
I

ST
ST

TTL

I / O digital.
Timer0 entrada de reloj externo.
Comparador 1 salida.
Entrada VN transceptor USB
externa.

I/O
I
I
I
O

TTL
Analgico
TTL
Analgico

20

21

22

23

I/O digital.
Entrada analgica 4.
SPI esclavo de seleccin de entrada.
Alta / baja tensin Deteccin de
entrada.
Comparador 2 de salida.
Ver el OSC2 / CLKO / pin RA6

Prctica 1
Microcontroladores y DSPs
Tabla 1.2 Descripcin de los pines I/O del PIC18F4550 de 40 pines (continuacin)
Nombre del Pin

Nmero de Pin
PDIP

QFN

TQFP

RB0/AN12/INT0/
FLT0/SDI/SDA
RB0
AN12
INT0
FLT0
SDI
SDA

33

20

20

RB1/AN10/INT1/
SCK/ SCL
RB1
AN10
INT1
SCK
SCL

34

10

RB2/AN8/INT2/V
MO
RB2
AN8
INT2
VMO
RB3/AN9/CCP2/V
PO
RB3
AN9
CCP2(1)
VPO
RB4/AN11/KBI0/
CSSPP
RB4
AN11
KBI0
CSSPP

RB5/KBI1/PGM
RB5
KBI1

35

36

37

38

11

12

14

15

Tipo de
Pin

Tipo de
Buffer

Descripcin

PORT B es un puerto I / O
bidireccional.
I/O digital.
Entrada analgica 12.
Interrupcin externa 0.
Entrada mejorada PWM Falla
(mdulo ECCP1).
Datos SPI en.
I ,Datos I 2C / S.

I/O
I
I
I
I
I/O

TTL
Analgico
ST
ST
ST
ST

I/O
I
I
I/O
I/O

TTL
Analgico
ST
ST
ST

I/O
I
I
O

TTL
Analgico
ST

I/O digital.
Entrada analgica 8.
Interrupcin externa 2.
Salida VMO transceptor USB
externa.

I/O
I
I/O
O

TTL
Analgico
TTL

I/O digital.
Entrada analgica 9.
Captura 2 de entrada / salida de
comparacin 2 / salida PWM2.
Salida de VPO transceptor USB
externa

I/O
I
I
O

TTL
Analgico
TTL

I/O digital.
Entrada analgica 11.
Interrumpir-al-cambiar pin.
SPP seleccin de chip de salida de
control.

I/O
I

TTL
TTL

I/Odigital.
Interrumpir-al-cambiar pin.

I/O digital.
Entrada analgica 10.
Interrupcin externa 1.
Entrada sncrona en serie de reloj /
salida para el modo SPI/salida para
el modo I2C.

10

11

14

15

Prctica 1
Microcontroladores y DSPs
PGM
RB6/KBI2/PGC
RB6
KBI2
PGC

39

RB7/KBI3/PGD
RB7
KBI3
PGD

40

RC0/T1OSO/T13C
KI
RC0
T1OSO
T13CKI

15

RC1/T1OSI/CCP2/
UOE
RC1
T1OSI
CCP2(2)
UOE

16

RC2/CCP1/P1A
RC2
CCP1
P1A

17

RC4/D-/VM
RC4
DVM

23

RC5/D+/VP
RC5
D+
VP

24

16

17

34

35

36

42

43

I/O

ST

Baja tensin ICSP

I/O
I
I/O

TTL
TTL
ST

I/O digital.
Interrumpir-al-cambiar pin.
Depurador en circuito y
programacin ICSP pin de reloj

I/O
I
I/O

TTL
TTL
ST

16

17
EI/O digital.
Interrumpir-al-cambiar pin.
Depurador en circuito y el pin de
datos de programacin ICSP
PORTC es un puerto I / O
bidireccional.

32
I/O
O
I

ST

ST

I/O digital.
Salida del oscilador Timer1.
Timer1 / Temporizador 3 entrada
de reloj externo.

I/O
I
I/O
O

ST
CMOS
ST

I/O
I/O
O

ST
ST
TTL

I/O digital.
Captura 1 entrada / 1 salida de
comparacin / salida PWM1.
Salida PWM CCP1, canal A.

I
I/O
I

TTL

TTL

Entrada digital.
Lnea diferencial negativo USB
(entrada / salida).
Transmisor-receptor USB externo
de entrada VM.

I
I/O
I

TTL

TTL

Entrada digital.
Diferencial USB plus lnea (entrada /
salida).
Entrada VP transceptor USB
externa.

35
I/O digital.
Entrada del oscilador Timer1.
Captura 2 de entrada / salida de
comparacin 2 / salida PWM2.
Salida OE transceptor USB externa

36

42

43

Prctica 1
Microcontroladores y DSPs

RC6/TX/CK
RC6
TX
CK

25

RC7/RX/DT/SDO
RC7
RX
DT
SDO

26

44

44
I/O
O
I/O

ST

ST

I/O digital.
EUSART de transmisin asncrona.
EUSART reloj sncrono (ver RX / DT).

I/O
I
I/O
O

ST
ST
ST

I/O digital.
Asncrono EUSART reciben.
EUSART datos sncronos (ver TX /
CK).
Datos de salida SPI .

PORTD es un puerto bidireccional


Puerto Paralelo (SPP). Estos pines
tienen buffers de entrada TTL
cuando se habilita el mdulo de
SPP.
RD0/SPP0
RD0
SPP0

19

RD1/SPP1
RD1
SPP1

20

RD2/SPP2
RD2
SPP2

21

RD3/SPP3
RD3
SPP3

22

RD4/SPP4
RD4
SPP4

27

RD5/SPP5/P1B
RD5
SPP5
P1B

28

29

38

39

40

41

38
I/O
I/O

ST
TTL

I/O digital.
Streaming datos del puerto paralelo

I/O
I/O

ST
TTL

I/O digital.
Streaming datos del puerto paralelo

I/O
I/O

ST
TTL

I/O digital.
Streaming datos del puerto paralelo

I/O
I/O

ST
TTL

I/O digital.
Streaming datos del puerto paralelo

I/O
I/O

ST
TTL

I/O digital.
Streaming datos del puerto paralelo

I/O
I/O
O

ST
TTL

I/O digital.
Streaming datos del puerto
paralelo.
Salida PWM CCP1 mejorado, el
canal B.

39

40

41

Prctica 1
Microcontroladores y DSPs
RD6/SPP6/P1C
RD6
SPP6
P1C

RD7/SPP7/P17
RD7
SPP7
P1D

30

I/O
I/O
O

ST
TTL

I/O digital.
Streaming datos del puerto
paralelo.
Salida PWM CCP1 mejorado, el
canal C.

I/O
I/O
O

ST
TTL

I/O digital.
Streaming datos del puerto
paralelo.
Salida PWM CCP1 mejorado, el
canal C.

TTL = entrada compatibles


TTL CMOS = CMOS De entrada o salida:
ST = Schmitt Trigger con niveles CMOS
I = entrada
O = Salida P = Potencia
Nota 1: Asignacin alternativo para CCP2 cuando se borra poco Configuracin CCP2MX.
2: Asignacin por defecto para CCP2 cuando se establece bits de configuracin CCP2MX.
3: Estos pines son No Conectar a menos que se establece el bit de configuracin ICPRT.
Para NC / ICPORTS, el pasador es n
Conecte menos ICPRT se establece y el bit de configuracin DEBUG se borra.

Prctica 1
Microcontroladores y DSPs
Tabla 1.2 Descripcin de los pines I/O del PIC18F4550 de 40 pines (continuacin)
Nombre del Pin

Nmero de Pin
PDIP

QFN

TQFP

RE0/AN5/CK1SPP
RE0
AN5
CK1SPP

25

25

RE1/AN6/CK2SPP
RE1
AN6
CK2SPP

RE2/AN7/OESPP
RE2
AN7
OESPP
RE3

10

VSS

12,31

VDD

11, 32

VUSB

NC/ICCK/ICPGC(3
)
ICCK
ICPGC
NC/ICDT/ICPGD(3
)
ICDT
ICPGD
NC/ICRST/ICVPP(
3)
ICRST
ICVPP
NC/ICPORTS(3)
ICPORTS

Tipo
de Pin

Tipo de
Buffer

Descripcin

I/O
I
O

ST
Analgico

PORTE es un puerto bidireccional,


de entrada/salida.
I/O digital.
Entrada analgica 5.
SPP reloj 1 salida.

I/O
I
O

ST
Analgico

I/O digital.
Entrada analgica 6.
SPP reloj 2 salida.

I/O
I
O

ST
Analgico
RE3

I/O digital.
Entrada analgica .
Salida SPP salida de habilitacin
Ver el pin MCLR/VPP/RE3

5,29

7, 28

Referencia de tierra para la lgica y


pines I / O.
Alimentacin positiva para la lgica
y pines I / O.

18

6,30,
31
7,8,
28,
29
37

37

12

12
I/O
I/O

ST
ST

I/O
I/O

ST
ST

I
P

26

27

26

27

13

33

34

3.3V salida del regulador de tensin


USB interna y positiva
de suministro para el transceptor
USB
Sin conexin o dedicada CIE / Reloj
puerto ICSP .
Depurador en circuito reloj.
Reloj programador ICSP
Sin conexin o dedicada reloj
puerto CIE / ICSP.
In-Circuit datos depurador.
Datos de programacin ICSP.
Sin conexon o dedicada puerto
Restablecer CIE / ICSP.
Borrado (Reinicio) de entrada.
Entrada de tensin de
programacin.
Sin Connect o emulacin de
dispositivos de 28 pines.
Activar emulacin de dispositivos

Prctica 1
Microcontroladores y DSPs

NC

13

de 28 pines cuando se conecta


a VSS.
No conectado

TTL = entrada compatibles


TTL CMOS = CMOS De entrada o salida:
ST = Schmitt Trigger con niveles CMOS
I = entrada
O = Salida P = Potencia
Nota 1: Asignacin alternativo para CCP2 cuando se borra poco Configuracin CCP2MX.
2: Asignacin por defecto para CCP2 cuando se establece bits de configuracin CCP2MX.
3: Estos pines son No Conectar a menos que se establece el bit de configuracin ICPRT.
Para NC / ICPORTS, el pasador es n
Conecte menos ICPRT se establece y el bit de configuracin DEBUG se borra.

1.2 Oscilador
Control del oscilador
El funcionamiento del oscilador en el PIC18F4550 que se controla a travs de dos registros
de configuracin y dos registros de control. Los registros de configuracin, CONFIG1L y
CONFIG1H, selecciona el modo de oscilador y opciones prescaler / postscaler USB.
Como los bits de configuracin, stos se establecen cuando el dispositivo est programado
y se deja en esa configuracin hasta que el dispositivo se reprograma.
El registro OSCCON (Registro 2-2) selecciona el Modo Activo del reloj; que se utiliza
principalmente en el control de reloj, el cambio en los modos logra potencia.
El registro OSCTUNE (Register 2-1) se utiliza para recortar la fuente de frecuencia
INTRC, as como seleccionar el fuente de reloj de baja frecuencia que impulsa varias
caractersticas especiales.
Tipos de oscilador
El PIC18F455 ofrece doce modos de oscilador distintos. Cuatro de ellos implican el uso de
dos tipos de oscilador a la vez.
Los usuarios pueden programar el FOSC3: Configuracin FOSC0
bits para seleccionar uno de estos modos:
1. XT Crystal / Resonador
2. HS de alta velocidad Crystal / Resonador
3. HSPLL alta velocidad Crystal / Resonador con PLL Activado
4. CE reloj externo con FOSC / 4 de salida
5. ECIO reloj externo con E / S en RA6
6. ECPLL reloj externo con PLL Activado y FOSC / 4 de salida en RA6
7. ECPIO reloj externo con PLL Habilitado,
E / S en RA6

Prctica 1
Microcontroladores y DSPs

8. INTHS oscilador interno utilizado como fuente de reloj, SA Oscilador utilizado como
Fuente de Reloj USB
9. intio oscilador interno utilizado como fuente de reloj, EC Oscilador utilizado como USB
fuente de reloj, E / S digital en RA6
10. INTCKO oscilador interno utilizado como fuente de reloj, EC Oscilador utilizado como
USB fuente de reloj, FOSC / 4 de salida en RA6.
Figura 1.1.1 Diagrama del Clock

Prctica 1
Microcontroladores y DSPs

1.3 Organizacin de la memoria


Figura 1.3.1 Mapa de la memoria

Prctica 1
Microcontroladores y DSPs
Figura 1.3.2 Uso del registro del banco de memoria (direccionamiento
directo)

Access Bank
Un Banco de Access, permite a los usuarios acceder a un bloque de memoria asignado sin
especificar un BSR. El Banco de acceso consta de los primeros 96 bytes de memoria (00h5Fh) en el banco 0 y los ltimos 160 bytes de memoria (60h-FFh) en el Bloque 15. La
mitad inferior es conocida como la "memoria RAM de acceso" y se compone de GPRS. El
medio superior es donde se asignan SFRs del dispositivo. Estas dos reas se asignan de
forma contigua en el Banco del acceso y se puede abordar de forma lineal por una direccin
de 8 bits (Figura 5-5). El Banco de acceso es utilizado por instrucciones PIC18 centrales
que incluyen el bit de acceso RAM (la 'a' parmetro la instruccin). Cuando 'a' es igual a '1',
la instruccin utiliza el BSR y la direccin de 8 bits incluido en el cdigo de operacin para
la direccin de memoria de datos. Cuando 'a' es '0', Sin embargo, la instruccin se ve
obligada a utilizar el mapa de direcciones del Banco de Acceso; el valor actual de la BSR
es ignorado por completo. Para las direcciones de 8 bits de 60h y anteriormente, esto
significa que los usuarios pueden evaluar y operar en SFRs ms eficiente. La memoria
RAM de acceso a continuacin 60h es un buen lugar para los valores de datos que pueda
necesitar el usuario para acceder rpidamente, como computacional inmediata resultados o
variables del programa comunes. Acceso RAM tambin permite contexto eficiente cdigo
ms rpido y ms el ahorro y el cambio de variables. El mapeo del Banco El acceso es
ligeramente diferente cuando el conjunto de instrucciones extendido est activado (XINST
Bit de configuracin = 1). Esto se discute en ms detalle en la Seccin 5.6.3 "Mapeando el
Banco de acceso en Indexado Literal modo Offset.

Prctica 1
Microcontroladores y DSPs

1.4 Resumen de operaciones


El PIC18F4550 incorpora un conjunto estndar de 75 instrucciones bsicas PIC18, as
como un conjunto extendido de ocho nuevas instrucciones para el optimizacin de cdigo
que es recursivo o que utiliza una pila de software.

Tabla 1.4.1 Set de Operaciones

Prctica 1
Microcontroladores y DSPs

2. Manejo de MPLAB
Barra de Herramientas y Mens:
MPLAB contiene 4 barras de herramientas personalizables segn la tarea que se est
realizando. La primera es la barra USER, que por defecto es la nica que utilizo, bueno tu
elegirs la que ms te agrade. La segunda es la barra EDIT, todo lo relacionado a la Edicin
de texto. La tercera es la barra DEBUG, con todo lo necesario para simular nuestro
programa, depurarlo, etc. Finalmente la barra PROJECT, todo lo referido al proyecto que
ests realizando.
Men de Archivo (file men):

NEW: Crea un nuevo archivo con extensin .asm


OPEN: Abre un archivo que puede ser .asm/.obj/.c/.err/.h/.lkr/.map/.hex/.lst
VIEW: Abre un archivo en modo solo lectura. y lo ms comn.
SAVE (Guardar), SAVE AS (guardar como), SAVE ALL (guardar todo).
CLOSE (cerrar un proyecto), CLOSE ALL (cerrar todos los proyectos abiertos).
PRINT (Imprime), y PRINT SETUP te permite configurar el modo de
impresin, EXIT cierra MPLAB, y finalmente los 5 ltimos archivos utilizados.

Men del Proyecto (Project Men):


Como MPLAB te permite trabajar con varios archivos y todos los elementos y herramientas
a la vez es bueno crear un proyecto y tener en l todo lo necesario para realizar tu tarea,
como ser; codificar, ensamblar, simular, etc. Este men contiene

NEW PROJECT: Abre un cuadro de dilogo para crear un nuevo proyecto y en l


todo lo que necesites para tenerlo ms a tu alcance.
OPEN PROJECT: Abrir un proyecto
CLOSE PROJECT: Cerrar un proyecto
SAVE PROYECT: Guardar Proyecto
EDIT PROJECT: Similar a New Project, pero referido a un proyecto ya abierto, al
que se le puede agregar nodos, libreras y la forma en que desarrollaras el proyecto
en cuestin.
MAKE PROJECT: Ensambla; crea archivo .HEX la cual compara con el archivo
.asm del que ensamblo. Si este tiene una fecha ms reciente que el archivo .HEX
asociado, debido digamos a una actualizacin del cdigo, entonces ensamblar
nuevamente el proyecto. En caso de que la fecha sea anterior al archivo .HEX

Prctica 1
Microcontroladores y DSPs

generado (es decir, archivo .ASM ms viejo que el .HEX) este no har
nada.(extrado textualmente de no recuerdo donde, pero igual, yo jams lo utilic)
BUILD ALL: Le importa nada la fecha y ensambla todo.
BUIL NODE: Ensamblar un nodo que hayamos asociado al proyecto.
INSTALL LANGUAGE TOOL: Es para configurar el lenguaje a utilizar, que en
nuestro caso es el ASM de Microchip.

Men de edicin (Men Edit):

UNDO: Deshacer, y en ese orden Cortar, Copiar y Pegar


SELECT ALL: Seleccionar todo SELECT WORD: Selecciona la palabra sobre la
que est el cursor.
DELETE LINE: Borra la lnea sobre la que est el cursor.
DELETE EOL: Borra desde donde est el cursor hasta el final de la lnea.
GOTO LINE: Abre un cuadro de dilogo para saltar a una determinada lnea (Line
to go to), te indica adems la cantidad total de lneas (Last Line) y la lnea en que
tienes el cursor (Current Line), es algo as como el "Ir a" de Word.
FIND: Es para buscar algn texto dentro de nuestro cdigo.
REPLACE: Es para reemplazar un texto o una pequea frase.
REPEAT FIND: Es para repetir la bsqueda si es que hay otra palabra o frase
igual. REPEAT REPLACE: Es para repetir el reemplazo.
TEMPLATE: Pues como todos los templates, para crear unos archivos
personalizados o plantillas, y as no estas reescribiendo todo un cdigo nuevamente.
TEXT: Tambin tiene sus opciones; Transpose intercambia los caracteres que
estn a ambos lados del cursor; Upper case cambiar a maysculas; Lower case
cambiar a minsculas; Indent mantiene la tabulacin de la lnea anterior; UnIndent lo opuesto.

Men de depuracin (Men Debug):

RUN: Inicia la simulacin. Vers la parte inferior de la ventana toda pintada de


amarillo (seal de que la simulacin est en proceso). til cuando colocas algunos
puntos de ruptura (breakpoints) para detener la ejecucin y as no estar esperando
que se ejecute todo aquello que sabes que est correcto.
RESET: Resetea el micro y te ubica en la primer lnea donde comenzar la
simulacin (en ese caso vers toda la lnea pintada de negro y las letras blancas)
"listo para comenzar la simulacin"
HALT: Detiene la ejecucin.
HALT TRACE: Detiene un traceo que se est haciendo.

Prctica 1
Microcontroladores y DSPs

ANIMATE: Es igual que RUN pero lo hace ms lento, para que vayas siguiendo la
ejecucin, mostrndote lnea por lnea todo lo que se est ejecutando.
STEP: Paso, es decir, un paso por cada vez que lo presionas (en la barra de
herramientas vers dos huellas de zapato, pues es eso, paso a paso). Simplemente
ejecuta una a una cada lnea de cdigo por cada vez que lo presionas.
STEP OVER: Igual que el anterior pero con un pequeo detalle, cada vez que se
encuentre con un call lo ejecuta de modo tan rpido que ni t te enteras de que ya
pas, es decir, utilzalo si no quieres perder tiempo con el call.
UPDATE ALL REGISTER: Actualiza el valor de todos los registros.
CHANGE PROGRAM COUNTER: Cambia el valor del PC y te ubica en la
etiqueta del cdigo a la que quieres ir.
EXECUTE AN OPCODE: Te permite ejecutar un cdigo cualquiera desde
cualquier sitio en el que te encuentras, por ejemplo ingresas un goto inicio y hacia
all ir. independiente a la secuencia del programa.
CONDITIONAL BREAK: Para ejecutar un breakpoint en forma condicional, Por
ejemplo por que cambi el valor de un registro, o porque quieres ver que paso hasta
ese punto.

SIMULATOR STIMULUS: Desde aqu se puede simular que le envas seales al micro
por uno de sus pines, este submen tiene 4 opciones

ASYNCHRONOUS STIMULUS: Te abrir un pequeo dilogo con 12 botones


como el que se muestra en la imagen, vendran a ser como interruptores, nota que al
primero le asign el pin RA0 (pin 17) y entre parntesis una T (de TOGGLE).

Imagen 1.1 Ventana Estmulos Asincronos

Si presionas con el botn derecho del mouse en uno de esos botones veras las opciones de
configuracin de estos estmulos desde donde los puedes configurar.

Prctica 1
Microcontroladores y DSPs

Imagen 2.2 Ventana de configuracin de los estmulos asncronos

o ASSIGN PIN: Muestra los pines del puerto para que selecciones aquel que
llevar un estmulo.
o PULSE: un pulso
o LOW: Le asigna un nivel bajo permanente
o HIGH: Lo contrario, nivel alto permanente
o TOGGLE: Cada vez que lo pulses cambiar de nivel de alto a bajo o de bajo
a alto.

PIN STIMULUS: Es para cuando creas un archivo de texto con extensin .sti,
desde aqu lo cargas o lo quitas, se trata de utilizar un archivo que creaste con esta
extensin y que contiene los estmulos ya asignados para cada uno de los pines.
CLOCK STIMULUS: Desde aqu puedes enviarle pulsos de reloj a un
determinado pin, indicando el tiempo que se mantendr en nivel alto y el tiempo en
nivel bajo, tipo (timer).

Imagen 2.2 Ventana de estmulos registrados

Tiene un par de opciones como ser; Guardarlo como un archivo .sti, Abrir alguno si es que
ya lo tienes creado, Aplicar los cambios, agregarle ms impulsos a otros pines, y el help
(por supuesto, la ayuda).

Prctica 1
Microcontroladores y DSPs

REGISTER STIMULUS: Es exactamente lo mismo que con los pines, solo que
lleva la extensin .reg y sirve para que en una determinada posicin del programa se
cargue un registro con el valor que t le quieras dar.

CENTER DEBUG LOCATION: Te ubica en la posicin en la cual el programa se est


ejecutando, se suele utilizar cuando detienes la ejecucin, empiezas a husmear por otro lado
y luego no sabes dnde andabas, pues bueno ah te lo acercas.
BREAK SETTINGS: Te muestra un dilogo para que le des nombre a los breakpoints y
luego desde aqu los habilitas, los quitas, los guardas etc.
TRIGGER IN/OUT SETTINGS: Son para los emuladores MPLABICE y PICMASTER,
aquellos que dijimos no tener.
CLEAR ALL POINT: Limpia todos los breakpoints y los tracepoints que pusiste a lo
largo del programa.
CLEAR PROGRAM MEMORY: Borra la memoria de programa
SYSTEM RESET: Eso mismo, Resetea el sistema.
POWER ON RESET: Para el caso en que se podra producir un reset en el micro, y as
saber que ocurre o que es lo que hace el micro si esto llegara a ocurrir.

Imagen 2.3 Ventana del power on reset

Slo le das a Power On Reset y habrs ocasionado un reset en el pin4 del micro (MCLR),
luego le das a "cancel" y continuas con la ejecucin para saber qu hace el PIC, y as
asegurarte de que todo est en orden.
Opciones del Men:

Prctica 1
Microcontroladores y DSPs

DEVELOPMENT MODE: Es donde hacemos las configuraciones del proyecto.


WINDOW SETUP: Puedes personalizar totalmente la forma en que vas a trabajar, tus
preferencias, luego Guardarlas (Save Setup), Cargarlas (Load Setup) si es que ya las tienes
guardadas, o utilizar una por defecto (Default Configuration).
CURRENT EDITOR MODES: Es para que personalices el modo de edicin.

Imagen 2.4 Ventana de modos de edicin actuales

RESET EDITOR MODES: Elimina los cambios que hiciste anteriormente


ENVIRONMENT SETUP: Para una personalizacin completa.
PROGRAMMER OPTIONS: Son las opciones para configurar el programador que
utilizars con MPLAB.
Vista del Men:
El ms importante de todos, ya que desde aqu nos veremos cara a cara con cada uno de los
bits de los registros del micro, el estado que tienen y como se modifican, claro que lo vers
cuando lo ejecutes en modo "step" (paso a paso) o "Animate" (de forma animada)...

PROGRAM MEMORY: Vers la memoria de programa, y as sabes cunto


espacio te queda disponible.
STACK: La pila.

Prctica 1
Microcontroladores y DSPs

Imagen 2.5: Ventana de la pila.

FILE REGISTER: Para que veas como se modifican los registros mientras el
programa se est ejecutando, solo en modo "Step" o "Animate".

Imagen 2.6: Ventana de registros de programa.

SPECIAL FUNCTION REGISTER: Los Registros de funciones especiales con


nombre y todo, trisa/b, porta/b, status, w, se puede ver como se modifican los bits
de entrada y salida de los puertos. Slo los vers cuando lo ejecutas en modo "Step"
o "Animate".

Prctica 1
Microcontroladores y DSPs

Imagen 2.7: Ventana de funciones especiales de registro

SHOW SIMBOL LIST: Todos los smbolos utilizados y su respectiva ubicacin


(direccin de registro), aquello que definimos al iniciar nuestro cdigo, como
"status equ 0x03".

Imagen 2.8: Ventana de smbolos

STOPWATCH: Para ver el tiempo en milisegundos, consumidos por el micro que


cuenta con un XT de 4 MHz.

Imagen 2.9: Ventana del crongrafo

PROJECT: Los datos del proyecto que se est realizando


WATCH WINDOW: Para crear una ventana de registros.
MODIFY: Para modificar los valores de algn registro determinado.

Prctica 1
Microcontroladores y DSPs

Uso del simulador en MPLAB IDE


El software MPLAB IDE incluye un programa simulador, que es una herramienta de
desarrollo sumamente til, no solamente para localizar errores (bugs) en un programa, sino
tambin como auxiliar didctico.
El usuario puede seguir paso por paso cada instruccin del programa, insertar breakpoints,
generar entradas digitales en cualquier bit de los puertos y observar el contenido de
cualquier registro interno del microcontrolador, as como de las localidades de la memoria
de datos y de cdigo, la EEPROM y el Stack.
El simulador cuenta tambin con la opcin de
tiempos de ejecucin.

una funcin Stopwatch para medir

Para saber ms sobre cmo realizar la simulacin consulte el video tutorial disponible en
https://youtu.be/VkH4344lgIE

3. Procedimiento y desarrollo de la prctica


Clculos, diseo y codificacin del algoritmo
La tarea primordial de esta prctica es 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.
Despus de analizar los requerimientos del problema, se elabor el diagrama de flujo de
este algoritmo el cual se muestra en la siguiente figura:

Algoritmo
1. Inicio
2. Determinar el PIC con el que se trabaja
3. Configurarlo
4. Utilizar un oscilador externo de 4 MHz
5. Establecer los puertos de E/S
6. Definir las variables (operandos)
7. Leer los datos de entrada (Puerto B)
8. Asignar los datos de entrada a las variables
9. Sumar los datos
10. Mostrarlos a travs del puerto D
11. Volver a leer datos en B y repetir el ciclo completo
12. Fin

Prctica 1
Microcontroladores y DSPs

Imagen 3.1 Diagrama de flujo y algoritmo asociados al problema

Este algoritmo se codific en el software MPLAB; dicho cdigo se muestra a continuacin.


Los cuadros en naranja son la descripcin genera de cada parte del cdigo. A manera de
comentarios dentro del mismo cdigo se explican el porqu de cada lnea en el cdigo.

Prctica 1
Microcontroladores y DSPs

Prctica 1
Microcontroladores y DSPs

Ensamble y simulacin en MPLAB IDE 8.92


Una vez codificado el algoritmo en MPLAB IDE se ensambl para obtener el archivo
.HEX que es el que se carga al PIC.

Se selecciona Make en el men proyect

Prctica 1
Microcontroladores y DSPs

Imagen 3.2 Ensamble del cdigo

Si el cdigo no tiene errores de sintaxis aparece la siguiente ventana donde nos dice
que se ha ensamblado correctamente; esto no necesariamente significa que el
programa realizar lo que queremos pero nos indica que a menos est bien escrito.

Imagen 3.3 Ensamble exitoso

Automticamente en la carpeta donde est guardado el proyecto aparecer el


archivo .HEX

Prctica 1
Microcontroladores y DSPs

Imagen 3.4 Creacin automtica del archivo .HEX

Luego se simula el cdigo en el mismo software. Esta simulacin nos sirve para probar el
manejo de puertos.

En el men VIEW habilitamos la vista de File registers, Special function registers


y Program memory que mientras se ejecuta el programa nos permitirn ver cmo
se modifican los registros, como se modifican los bits de entrada y salida de los
puertos saber cunto espacio te queda disponible en la memoria.

Prctica 1
Microcontroladores y DSPs

Imagen 3.5 Prerrequisitos para la simulacin 1

En el men Debugger se habilita la vista de Stopwatch que, como vimos en el


marco terico, nos permite visualizar el tiempo en milisegundo consumidos por el
micro que cuenta con un XT de 4 MHz.

Prctica 1
Microcontroladores y DSPs

Imagen 3.6 Prerrequisitos para la simulacin 2

En ese mismo men seleccionar ANIMATE QUE empieza a correr el programa

Imagen3.7 Ventana para iniciar animacin

Las siguientes imgenes muestran parte de la simulacin realizada. El archivo completo


para realizar y visualizar la simulacin se encuentra en la carpeta de archivos de cdigo.

Prctica 1
Microcontroladores y DSPs

Imagen 3.8.1 Animacin del programa. Imagen 1

Prctica 1
Microcontroladores y DSPs

Imagen 3.8.2 Animacin del programa

Prctica 1
Microcontroladores y DSPs

Imagen 3.9 Animacin del programa

Prctica 1
Microcontroladores y DSPs

Simulacin en Proteus 8.0


La simulacin del circuito completo se realiz en el software Proteus 8.0. Professional Para
esta primera prctica, el circuito para simular en Proteus y armar fsicamente en la tablilla
de experimentos no se dise por el equipo sino que fue proporcionado por el profesor.

Implementacin
Una vez simulado el cdigo en ensamblador se prosigui a armar el circuito fsicamente en
la placa de experimentos a fin de comprobar la operacin del microcontrolador y
experimentar las diferencias contra los resultados obtenidos por el software de simulacin.
Los dispositivos debern de conectarse como se muestra en la figura siguiente

Imagen 3.10 Circuito con PIC18F4550

Imagen 3.11 Pines del microcontrolador PIC18F4550

Posteriormente agregamos el archivo .HEX al microcontrolador

Prctica 1
Microcontroladores y DSPs

Imagen 3.12 Ventana para agregar archivo .HEX

La ventana que mostramos aparece al realizar doble clic sobre el microcontrolador buscar y
elegir nuestro archivo .HEX. Finalmente hacemos clic en OK, que nos regresa a la pantalla
donde tenemos el circuito electrnico.

Imagen 3.13 Barra de herramienta de simulacin

Prctica 1
Microcontroladores y DSPs

Una vez cargado el archivo .HEX en la barra de herramienta de simulacin (Ilustracin 2)


hacemos clic en el botn de PLAY para que empiece la simulacin. Y nos aparecer el
circuito como se muestra a continuacin

Imagen 3.14 Circuito en simulacin

Cabe mencionar que tanto en el circuito conectado en la protoboard como el realizado en la


simulacin tuvieron algunos detalles. Es decir los leds se activaban en cero y se apagaban
en uno.
A continuacin se muestra el circuito ya armado en la tablilla de experimentos.

Imagen 3.15 Circuito con PIC18F4550 armado en tablilla de experimentos.

Resultados
Pasos previos.
Una vez que ya se ha verificado el funcionamiento y lgica del circuito por medio de la
simulacin se procedi al armado y experimentacin del circuito en la tablilla de
experimentos.

Prctica 1
Microcontroladores y DSPs

Como primer paso para llegar a los resultados deseados se procedi a programar el
PIC con ayuda de un programador proporcionado por el maestro. La programacin
se realiz a travs del programa MPLAB.
Una vez programado el PIC, se realiz el armado del circuito ya mencionado, el
circuito se arm en una tablilla de experimentos que fue alimentada con una fuente
de alimentacin regulada proporcionada por el laboratorio.

Imagen 3.16 Circuito armado en la tablilla de experimentos.

Pruebas y errores.
Para explicar la fase de pruebas debemos aclarar el orden del circuito:

Hacia arriba es 0 y
hacia abajo es 1

Bit menos significativo

Imagen 3.17 Asignacin del bit menos significativo. E/S

Algunos problemas que surgieron al probar el circuito fueron solo tcnicos, ya que el
dipswitch dio problemas por falso contacto, pero eso se arregl buscando un dipswitch
apropiado.
Ahora, se hicieron pruebas con diferentes combinaciones entre la suma de 1 y 15:
Tabla 3.1 Suma, ilustracin de los resultados obtenidos en la tablilla de experimentos y esquema en Proteus

Suma

1+0

Resultado

Prctica 1
Microcontroladores y DSPs

1+1

3+1

Prctica 1
Microcontroladores y DSPs

3+2

3+3

3+4

Prctica 1
Microcontroladores y DSPs

4+4

5+4

Prctica 1
Microcontroladores y DSPs

5+5

6+5

6+6

Prctica 1
Microcontroladores y DSPs

7+6

7+7

Prctica 1
Microcontroladores y DSPs

7+8

Como se puede apreciar, los resultados experimentales concuerdan con los de la simulacin
perfectamente, en ninguna combinacin hubo discrepancias ni ninguna desviacin
importante, adems como extra tambin se prob la combinacin de 8+8 y probamos que
solo prende el bit de acarreo como indicaba la simulacin. Imagen 3.18 a) y b)

Imagen 3.18 a) Resultado de la suma de 8+8 en la tablilla de experimentos.

Prctica 1
Microcontroladores y DSPs

Imagen 3.18 b) Resultado de la suma de 8+8 en la simulacin

4. Conclusiones
Guiados por el profesor, se llev a cabo el cdigo en lenguaje ensamblador de un
sumador de cuatro bits donde tuvimos que identificar los pines del microcontrolador
involucrado, as como en algunos casos su correspondiente configuracin , para as
poder mandar a llamarlos y llevar las entradas a la memoria, por ejemplo. Por lo que
tuvimos que elegir que oscilador utilizar segn nuestras necesidades, ya que el PIC nos
permite escoger uno de sus osciladores internos o tambin alguno externo. Para poder
llevar acabo el cdigo empleamos el software MPLAB, el cual no todos estbamos
familiarizados con l, lo que nos permiti no solo conocerlo sino comenzar a manejarlo.
En adicin, contamos con la ayuda del profesor al mostrarnos las herramientas y el
proceso para simular nuestro contador, ya con el cdigo elaborado, en el programa
Proteus, lo cual nos permiti no solo saber en primera instancia mediante la
compilacin exitosa del MPLAB que nuestro cdigo funcionaba, sino tambin mediante
la simulacin, vista con los componentes del circuito, en la que veramos si funcionaba
como queramos.
Una vez hecho esto, mediante un archivo .HEX fue programado el PIC18F4550 y dado
que el codigo fue proporcionado por el profesor y fue verificado, no hubo problemas
para despus solo mandarlo a programar, finalmente se arm el circuito implementando
el PIC y los resultados fueron completamente exitosos. Esta prctica cumpli con su
objetivo que era ensearnos lo bsico para programar un PIC, desarrollando su cdigo
para despus pasarlo a lenguaje ensamblador e implementarlo en un software de
simulacin, una vez obtenidos los resultados esperados, poder llevarlo al fsico.

Prctica 1
Microcontroladores y DSPs

5. Bibliografa y referencias
[1] Simulacin en MPLAB. Disponible en
https://www.youtube.com/watch?v=VkH4344lgIE. Consultado el 19 de septiembre de
2015
[2]MANUAL PIC 18F4550. Disponible en
http://rapidshare.com/files/268879576/PIC18F4550.pdf
Universidad de Valencia. Consultado el 10 de septiembre de 2015
[3]MPLAB IDE Quick Start Guide - Microchip
Disponible en http://ww1.microchip.com/downloads/en/DeviceDoc/51281d.pdf
Consultado el 19 de septiembre de 2015
[4] William Bolton. (2012.) Mecatrnica. (4a edicin).Mxico D.F: Alfaomega.