You are on page 1of 61

UNIVERSIDAD NACIONAL DEL CALLAO

FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

EXAMEN PARCIAL
Docente:
MG.CASAZOLA CRUZ O. DANIEL
Grupo de Lenguaje ensamblador:

Acosta Mieles, Edward Yohn


Contreras Centeno, Nelson Luis
Garay Alburqueque, Jair Edson
Ramos Ramos, Alex Vctor
Mendoza Rosado, Irvin Fernando

2015

PROBLEMA 1

OBJETIVO
1.

Proponer un circuito que tenga el puerto b como salida conectando 8 leds, realizando
un programa que me encienda los bits 0, 1, 3, 5, 7.

CONTENIDO:
a) CREACION DE UN PROYECTO NUEVO CON EL MPLAB
b) SIMULACION EN PROTEUS

a) CREACION DE UN PROYECTO NUEVO


Lo primero que se necesita es un archivo .asm que puede ser creado en cualquier
procesador de texto o en el ambiente del MPLAB. Esta segunda alternativa combinada con
el Proyecto Wizard es la que se sigue a continuacin:
1) Seleccione CONFIGURE
SELECT DEVICE de la ventana desplegable seleccione el
microcontrolador 16F84A y presione ok.
2) Seleccione FILE

NEW y aparecer una ventana sin ttulo.

3) En Untitled digite el siguiente programa.


Cdigo .asm
LIST
RADIX

P=16F84A
HEX

;comando que indica el pic usado.


;los valores en hexadecimal

STATUS
PTOB

CICLO

EQU
EQU

0x03
0x06

;direcciona al registro de STATUS


;direcciona al puerto B

ORG
BSF
MOVLW
MOVWF
BCF

0x00
STATUS,5
0x00
PTOB
STATUS,5

;seleccionar el banco 1
;carga w con el valor 00h
;para habilitar el puerto B como salida
;seleccionar el banco 0

CLRF
MOVLW
MOVWF
GOTO
END

PTOB
0xAB
PTOB
CICLO

;limpia el puerto B
;cargamos registro w con el numero ABh
;enviamos el registro w al puerto B
;ir a ciclo
;fin del programa

4) Guarde el documento creado con en su carpeta de trabajo con el nombre de


problema1_led.asm.
5) Seleccione VIEW PROJECT y aparecer una ventana, dar click derecho en source files y
cargar el archivo problema1_led.asm.

6) Para compilar el programa asm, seleccione Project Build All. Si la compilacin es


exitosa deber aparecer el archivo .asm con una flecha verde que seala la primera
instruccin a ejecutarse. En caso de errores de compilacin habr que corregirlos antes de
continuar. Haciendo doble click en el error lo conduce al sitio del error.
Si la compilacin es exitosa deber aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION
Como resultado de la compilacin debi haberse generado un archivo .hex que es el
ejecutable que se usa para programar el PIC se necesita un quemador y un software por
ejemplo Pickit 2.
b) SIMULACION EN PROTEUS
La simulacin en el programa PROTEUS nos permite una excelente visualizacin del
comportamiento del PIC programado dentro del circuito utilizado. Siga los siguientes pasos:
1) En el programa PROTEUS abra ISIS.
2) Seleccione Component y luego P, Esto abrir una ventana de seleccin de componentes en
donde escogeremos los que vamos a utilizar.
3) En Keywords ingresamos PIC 16F84A y hacemos doble clic en el elemento respectivo de la
derecha, esto transfiere el componente a nuestro ambiente de trabajo. Hacemos lo mismo con
button, cap de 22pF, crystal, res de 10k y 100R y led, para que tambin se transfieran.
4) Guardar la hoja de ISIS con el nombre problema1_led.
5) Con estos elementos se puede empezar a dibujar el circuito arrastrando y pegando elementos del
espacio de trabajo al plano de dibujo.
6) Acercando el Mouse a los terminales de los componentes se los va uniendo. El bus se hace con el
icono de buses del margen izquierdo del proteus y las etiquetas se crean con el icono LBL del
mismo margen. El resultado se observa en la siguiente grfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione en
la lnea de Program File el icono de la carpeta y aparecer un directorio de bsqueda que
tenemos que hacerlo apuntar al archivo problema1_led.hex que se form como resultado de la
compilacin y que debe de estar en su carpeta de trabajo. Luego presione ok y est listo para la
simulacin.

8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulacin.


Observe que haciendo clic sobre los switches causara que estos se abran o cierren y afecten el
valor de prendido o apagado de los LEDS.

PROBLEMA 2
OBJETIVO
2.-Realice un programa que permita guardar el dato 3F en la direccin de memoria datos
0Eh y el dato F3 en la direccin de memoria 0Fh, luego realice un intercambio entre 0Eh y
0Fh.
CONTENIDO:
a)

CREACION DE UN PROYECTO NUEVO CON EL MPLAB

a) CREACION DE UN PROYECTO NUEVO


Lo primero que se necesita es un archivo .asm que puede ser creado en cualquier
procesador de texto o en el ambiente del MPLAB. Esta segunda alternativa combinada con
el Proyecto Wizard es la que se sigue a continuacin:
1) Seleccione CONFIGURE
SELECT DEVICE de la ventana desplegable seleccione el
microcontrolador 16F84A y presione ok.
2) Seleccione FILE

NEW y aparecer una ventana sin ttulo.

3) En Untitled digite el siguiente programa.


LIST P=16F84A

;comando que indica el pic usado.

RADIX HEX

;los valores de hexadecimal

STATUS EQU

0X03

;direcciona al registro de STATUS

AUX

EQU

0X0D

;direccion de memoria 0DH

DIR1

EQU

0X0E

;direccion de memoria 0EH

DIR2

EQU

0X0F

;direccion de memoria 0FH

ORG

0X00

CLRF

DIR1

;limpia la direccion 0EH

CLRF

DIR2

;limpia la direccion 0FH

CLRF

AUX

;limpia la direccion 0DH

MOVLW 0X3f

;cargar el reg w con el num 3Fh

MOVWF DIR1

;almacenar el reg w en la dir 0Eh

MOVWF AUX

;almacenar reg w en aux 0Dh

MOVLW 0XF3

;cargar reg w con el numero F3h

MOVWF DIR2

;almacenar el reg w en la dir 0Fh

MOVWF DIR1

;almacenar el reg w en la dir 0Eh

MOVFW AUX

;cargar reg w con dato de dir 0Dh

MOVWF DIR2

;almacenar reg w en la dir 0Fh

END

;fin del programa

4) Guarde el documento creado con en su carpeta de trabajo con el nombre de


problema2_led.asm.
5) Seleccione VIEW PROJECT y aparecer una ventana, dar click derecho en source files y
cargar el archivo problema2_led.asm.

6) Para compilar el programa asm, seleccione Project Build All. Si la compilacin es


exitosa deber aparecer el archivo .asm con una flecha verde que seala la primera
instruccin a ejecutarse. En caso de errores de compilacin habr que corregirlos antes de
continuar. Haciendo doble click en el error lo conduce al sitio del error.
Si la compilacin es exitosa deber aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION
Como resultado de la compilacin debi haberse generado un archivo .hex que es el
ejecutable que se usa para programar el PIC se necesita un quemador y un software por
ejemplo Pickit 2.

PROBLEMA 3
C1
1

27p

X1
CRYSTAL

C2
27p

U1
16
15

R2

OSC1/CLKIN
OSC2/CLKOUT
MCLR

10k

RA0
RA1
RA2
RA3
RA4/T0CKI
RB0/INT
RB1
RB2
RB3
RB4
RB5
RB6
RB7

R1
100R

17
18
1
2
3
6
7
8
9
10
11
12
13

PIC16F84A

D8

D7

D6

D5

D4

D3

D2

D1

LED-BLUELED-BLUELED-BLUELED-BLUELED-BLUELED-BLUELED-BLUELED-BLUE

OBJETIVO
3.

Del ejercicio anterior, sabiendo los datos existentes en las localidades de memoria
0Eh y 0Fh, modifique el programa que transfiera el dato de las localidades de
memoria 0Eh al puerto B.

CONTENIDO:
a)

CREACION DE UN PROYECTO NUEVO CON EL MPLAB

b) SIMULACION EN PROTEUS

a) CREACION DE UN PROYECTO NUEVO


Lo primero que se necesita es un archivo .asm que puede ser creado en cualquier
procesador de texto o en el ambiente del MPLAB. Esta segunda alternativa combinada con
el Proyecto Wizard es la que se sigue a continuacin:
1) Seleccione CONFIGURE
SELECT DEVICE de la ventana desplegable seleccione el
microcontrolador 16F84A y presione ok.
2) Seleccione FILE

NEW y aparecer una ventana sin ttulo.

3) En Untitled digite el siguiente programa.

LIST

P=16F84A

;comando que indica el pic usado.

RADIX

HEX

STATUS
PTOB
AUX
DIR1
DIR2

EQU
EQU
EQU
EQU
EQU

0x03
0x06
0x0D
0x0E
0x0F

;direciona al registro de STATUS


;direcciona al puerto B
; direccion de mamoria 0DH
;direccion de mamoria 0EH
;direccion de mamoria 0FH

ORG
BSF
MOVLW
MOVWF
BCF

0x00
STATUS,5
0x00
PTOB
STATUS,5

;seleccionar el banco 1
;carga w con el valor 00h
;para habilitar el puerto B salida
;seleccionar el banco 0

CLRF
CLRF
CLRF

DIR1
DIR2
AUX

ORG
0x00
;limpia la direccion 0EH
;limpia la direccion 0FH
;limpia la direccion 0DH

MOVLW
MOVWF
MOVWF
MOVLW
MOVWF
MOVWF
MOVFW
MOVWF
MOVFW
MOVWF
GOTO

0X3f
DIR1
AUX
0xF3
DIR2
DIR1
AUX
DIR2
DIR1
PTOB
CICLO

CICLO

;los valores en hexadecimal

;cargar el reg w con el num 3Fh


;almacenar el reg w en la dir 0Eh
;almacenar el reg w en aux 0Dh
;cargar reg w con el numero F3h
;almacenar el reg w en la dir 0Fh
;almacenar el reg w en la dir 0Eh
;cargar reg w con dato de dir 0Dh
;almacenar reg w en la dir 0Fh
;cargar reg w con dato de dir 0Eh
;enviar el reg w al pto B
;ir a ciclo
;fin del programa

END

4) Guarde el documento creado con en su carpeta de trabajo con el nombre de


problema3_led.asm.
5) Seleccione VIEW PROJECT y aparecer una ventana, dar click derecho en source files y
cargar el archivo problema3_led.asm.
6) Para compilar el programa asm, seleccione Project Build All. Si la compilacin es
exitosa deber aparecer el archivo .asm con una flecha verde que seala la primera
instruccin a ejecutarse. En caso de errores de compilacin habr que corregirlos antes de
continuar. Haciendo doble click en el error lo conduce al sitio del error.
Si la compilacin es exitosa deber aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION
Como resultado de la compilacin debi haberse generado un archivo .hex que es el
ejecutable que se usa para programar el PIC se necesita un quemador y un software por
ejemplo Pickit 2.
b) SIMULACION EN PROTEUS
La simulacin en el programa PROTEUS nos permite una excelente visualizacin del
comportamiento del PIC programado dentro del circuito utilizado. Siga los siguientes pasos:
1) En el programa PROTEUS abra ISIS.
2) Seleccione Component y luego P, Esto abrir una ventana de seleccin de componentes en
donde escogeremos los que vamos a utilizar.
3) En Keywords ingresamos PIC 16F84A y hacemos doble clic en el elemento respectivo de la
derecha, esto transfiere el componente a nuestro ambiente de trabajo. Hacemos lo mismo con
button, cap de 22pF, crystal, res de 10k y 100R y led, para que tambin se transfieran.
4) Guardar la hoja de ISIS con el nombre problema3_led.
5) Con estos elementos se puede empezar a dibujar el circuito arrastrando y pegando elementos
del espacio de trabajo al plano de dibujo.
6) Acercando el Mouse a los terminales de los componentes se los va uniendo. El bus se hace
con el icono de buses del margen izquierdo del proteus y las etiquetas se crean con el icono LBL
del mismo margen. El resultado se observa en la siguiente grfica:
7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione
en la lnea de Program File el icono de la carpeta y aparecer un directorio de bsqueda que
tenemos que hacerlo apuntar al archivo problema3_led.hex que se form como resultado de la
compilacin y que debe de estar en su carpeta de trabajo. Luego presione ok y est listo para la
simulacin.
8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulacin.
Observe que haciendo clic sobre los switches causara que estos se abran o cierren y afecten el
valor de prendido o apagado de los LEDS

PROBLEMA 4

OBJETIVO
4.Proponer un circuito que tenga el puerto B como salida conectando 8 leds y el puerto
A como entradas, realizar un programa que transfiera todas las entradas en el puerto A
hacia el puerto B.
CONTENIDO:
a) CREACION DE UN PROYECTO NUEVO CON EL MPLAB
b) SIMULACION EN PROTEUS

a) CREACION DE UN PROYECTO NUEVO


Lo primero que se necesita es un archivo .asm que puede ser creado en cualquier procesador de texto
o en el ambiente del MPLAB. Esta segunda alternativa combinada con el Proyecto Wizard es la que se
sigue a continuacin:
1) Seleccione CONFIGURE
SELECT DEVICE de la ventana desplegable seleccione
microcontrolador 16F84A y presione ok.
2) Seleccione FILE

el

NEW y aparecer una ventana sin ttulo.

3) En Untitled digite el siguiente programa.


Cdigo .asm
LIST
RADIX

P=16F84A
HEX

STATUS
PTOA
PTOB

EQU
EQU
EQU

0x03
0x05
0X06

;direciona al registro de STATUS


;direcciona al puerto A
;direcciona al puerto B

ORG
BSF
MOVLW
MOVWF
MOVLW
MOVWF
BCF

0x00
STATUS,5
0x1F
PTOA
0x00
PTOB
STATUS,5

;seleccionar el banco 1
;carga w con el valor 01h para habilitar
; el puerto A como entrada
;carga w con el valor 00h para habilitar
; el puerto B como salida
;seleccionar el banco 0

CLRF
CLRF

PTOA
PTOB

;limpia el puerto A
;limpia el puerto B

MOVFW
MOVWF
GOTO
END

PTOA
PTOB
CICLO

;cargamos w con el valor del puerto A


;enviamos el registro w al puerto B
;ir a la subrutina CICLO
;fin del programa

CICLO

;comando que indica el pic usado.


;los valores en hexadecimal

4) Guarde el documento creado con en su carpeta de trabajo con el nombre de problema4_led.asm.


5) Seleccione VIEW PROJECT y aparecer una ventana, dar click derecho en source files y cargar el
archivo problema4_led.asm.

6) Para compilar el programa asm, seleccione Project Build All. Si la compilacin es exitosa deber
aparecer el archivo .asm con una flecha verde que seala la primera instruccin a ejecutarse. En caso
de errores de compilacin habr que corregirlos antes de continuar. Haciendo doble click en el error lo
conduce al sitio del error.
Si la compilacin es exitosa deber aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION
Como resultado de la compilacin debi haberse generado un archivo .hex que es el
ejecutable que se usa para programar el PIC se necesita un quemador y un software por
ejemplo Pickit 2.
b) SIMULACION EN PROTEUS
La simulacin en el programa PROTEUS nos permite una excelente visualizacin del
comportamiento del PIC programado dentro del circuito utilizado. Siga los siguientes pasos:
1) En el programa PROTEUS abra ISIS:
2) Seleccione Component y luego P, Esto abrir una ventana de seleccin de componentes en
donde escogeremos los que vamos a utilizar.
3) En Keywords ingresamos PIC 16F84A y hacemos doble clic en el elemento respectivo de la
derecha, esto transfiere el componente a nuestro ambiente de trabajo. Hacemos lo mismo con
button, SW-SPDT, cap, de 27pF, crystal, res de 10k y 100R y led, para que tambin se
transfieran.
4) Guardar la hoja de ISIS con el nombre problema4_led.

5) Con estos elementos se puede empezar a dibujar el circuito arrastrando y pegando


elementos del espacio de trabajo al plano de dibujo.
6) Acercando el Mouse a los terminales de los componentes se los va uniendo. El bus se hace
con el icono de buses del margen izquierdo del proteus y las etiquetas se crean con el icono LBL
del mismo margen. El resultado se observa en la siguiente grfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre


seleccione en la lnea de Program File el icono de la carpeta y aparecer un directorio de
bsqueda que tenemos que hacerlo apuntar al archivo problema4_led.hex que se form como
resultado de la compilacin y que debe de estar en su carpeta de trabajo. Luego presione ok y
est listo para la simulacin.
8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulacin.
Observe que haciendo clic sobre los switches causara que estos se abran o cierren y afecten el
valor de prendido o apagado de los LEDS.

PROBLEMA 5

OBJETIVO
5.

Proponer un circuito que tenga el puerto B como salida conectando 8 leds y el puerto A como
entradas, realizar un programa que permita hacer la operacin de suma del puerto A
(entrada) con el dato 05h y el resultado mostrarlo en el puerto B (salida). Porta=porta+05h.

CONTENIDO:
a) CREACION DE UN PROYECTO NUEVO CON EL MPLAB
b) SIMULACION EN PROTEUS

a) CREACION DE UN PROYECTO NUEVO


Lo primero que se necesita es un archivo .asm que puede ser creado en cualquier procesador de texto
o en el ambiente del MPLAB. Esta segunda alternativa combinada con el Proyecto Wizard es la que se
sigue a continuacin:
1) Seleccione CONFIGURE
SELECT DEVICE de la ventana desplegable seleccione
microcontrolador 16F84A y presione ok.
2) Seleccione FILE

NEW y aparecer una ventana sin ttulo.

3) En Untitled digite el siguiente programa.


Cdigo .asm
LIST
RADIX
STATUS
PTOA
PTOB

P=16F84A
HEX
EQU
EQU
EQU

ORG
BSF
MOVLW
MOVWF
MOVLW
MOVWF
BCF

0x00
STATUS,5
0x1F
PTOA
0x00
PTOB
STATUS,5

;seleccionar el banco 1
;carga w con 1Fh
;habilitar puerto A como entrada
;carga w con 00h
;habilitar puerto B como salida
;seleccionar el banco 0

CLRF
CLRF

PTOA
PTOB

;limpia el puerto A
;limpia el puerto B

MOVLW
ADDWF
MOVWF
GOTO

0x05
PTOA,0
PTOB
CICLO

;cargamos w con el numero 05h


;suma, W = PuertoA + W
;enviamos el reg w al puerto B
;ir a CICLO

0x03
0x05
0x06

; comando que indica el pic usado.


;los valores en hexadecimal
;direcciona al registro de STATUS
;direcciona al puerto A
;direcciona al puerto B

el

END

;fin del programa

4) Guarde el documento creado con en su carpeta de trabajo con el nombre de problema5_led.asm.


5) Seleccione VIEW PROJECT y aparecer una ventana, dar click derecho en source files y cargar el
archivo problema5_led.asm.

6) Para compilar el programa asm, seleccione Project Build All. Si la compilacin es exitosa deber
aparecer el archivo .asm con una flecha verde que seala la primera instruccin a ejecutarse. En caso
de errores de compilacin habr que corregirlos antes de continuar. Haciendo doble click en el error lo
conduce al sitio del error.
Si la compilacin es exitosa deber aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION
Como resultado de la compilacin debi haberse generado un archivo .hex que es el ejecutable que se
usa para programar el PIC se necesita un quemador y un software por ejemplo Pickit 2.

b) SIMULACION EN PROTEUS
La simulacin en el programa PROTEUS nos permite una excelente visualizacin del
comportamiento del PIC programado dentro del circuito utilizado. Siga los siguientes pasos:
1) En el programa PROTEUS abra ISIS:
2) Seleccione Component y luego P, Esto abrir una ventana de seleccin de componentes en
donde escogeremos los que vamos a utilizar.
3) En Keywords ingresamos PIC 16F84A y hacemos doble clic en el elemento respectivo de la
derecha, esto transfiere el componente a nuestro ambiente de trabajo. Hacemos lo mismo con
button, SW-SPDT, cap, de 27pF, crystal, res de 10k y 100R y led, para que tambin se transfieran.

4) Guardar la hoja de ISIS con el nombre problema5_led.


5) Con estos elementos se puede empezar a dibujar el circuito arrastrando y pegando elementos
del espacio de trabajo al plano de dibujo.
6) Acercando el Mouse a los terminales de los componentes se los va uniendo. El bus se hace con
el icono de buses del margen izquierdo del proteus y las etiquetas se crean con el icono LBL del
mismo margen. El resultado se observa en la siguiente grfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione
en la lnea de Program File el icono de la carpeta y aparecer un directorio de bsqueda que
tenemos que hacerlo apuntar al archivo problema5_led.hex que se form como resultado de la
compilacin y que debe de estar en su carpeta de trabajo. Luego presione ok y est listo para la
simulacin.

8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulacin.


Observe que haciendo clic sobre los switches causara que estos se abran o cierren y afecten el
valor de prendido o apagado de los LEDS.

PROBLEMA 6

OBJETIVO
6. Realizar un programa que permita hacer la funcin espejo en el puerto B, el nibble
menos significativo del puerto B ser de entrada y el nibble ms significativo ser de
salida, permitiendo de esta manera monitorear el estado del nibble de entrada en el
nibble de salida.
.
CONTENIDO:
a) CREACION DE UN PROYECTO NUEVO CON EL MPLAB
b) SIMULACION EN PROTEUS

a) CREACION DE UN PROYECTO NUEVO


Lo primero que se necesita es un archivo .asm que puede ser creado en cualquier procesador de
texto o en el ambiente del MPLAB. Esta segunda alternativa combinada con el Proyecto Wizard es la
que se sigue a continuacin:
1) Seleccione CONFIGURE
SELECT DEVICE de la ventana desplegable seleccione
microcontrolador 16F84A y presione ok.
2) Seleccione FILE

NEW y aparecer una ventana sin ttulo.

3) En Untitled digite el siguiente programa.

el

Cdigo .asm

LIST
RADIX

P=16F84A
HEX

STATUS
PTOA
PTOB

EQU
EQU
EQU

0x03
0x05
0x06

;direciona al registro de STATUS


;direcciona al puerto A
;direcciona al puerto B

ORG
BSF
MOVLW
MOVWF

0x00
STATUS,5
0x0F
PTOB

;seleccionar el banco 1
;carga w con el valor 0fh
;habilitar puerto B en nibble

BCF

STATUS,5

;seleccionar el banco 0

CLRF
SWAPF
GOTO

PTOB
PTOB,1
CICLO

;limpia el puerto B
;intercambia nibbles del puerto B
;ir a la subrutina CICLO

CICLO

END

;comando que indica el pic usado.


;los valores en hexadecimal

;fin del programa

4) Guarde el documento creado con en su carpeta de trabajo con el nombre de Ejercicio-6.asm.


5) Seleccione VIEW PROJECT y aparecer una ventana, dar click derecho en source files y cargar el
archivo Ejercicio-6.asm.

6) Para compilar el programa asm, seleccione Project Build All. Si la compilacin es exitosa deber
aparecer el archivo .asm con una flecha verde que seala la primera instruccin a ejecutarse. En caso
de errores de compilacin habr que corregirlos antes de continuar. Haciendo doble click en el error
lo conduce al sitio del error.
Si la compilacin es exitosa deber aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION
Como resultado de la compilacin debi haberse generado un archivo .hex que es el ejecutable que
se usa para programar el PIC se necesita un quemador y un software por ejemplo Pickit 2.
b) SIMULACION EN PROTEUS
La simulacin en el programa PROTEUS nos permite una excelente visualizacin del comportamiento del
PIC programado dentro del circuito utilizado. Siga los siguientes pasos:
1) En el programa PROTEUS abra ISIS:
2) Seleccione Component y luego P, Esto abrir una ventana de seleccin de componentes en
donde escogeremos los que vamos a utilizar.
3) En Keywords ingresamos PIC 16F84A y hacemos doble clic en el elemento respectivo de la
derecha, esto transfiere el componente a nuestro ambiente de trabajo. Hacemos lo mismo con
button, cap de 22pF, crystal, SW-SPDT-MOM, res de 10k y 100R y led, para que tambin se
transfieran.
4) Guardar la hoja de ISIS con el nombre EJERCICIO6-PROTEUS.
5) Con estos elementos se puede empezar a dibujar el circuito arrastrando y pegando elementos
del espacio de trabajo al plano de dibujo.
6) Acercando el Mouse a los terminales de los componentes se los va uniendo. El bus se hace con el
icono de buses del margen izquierdo del proteus y las etiquetas se crean con el icono LBL del
mismo margen. El resultado se observa en la siguiente grfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione en
la lnea de Program File el icono de la carpeta y aparecer un directorio de bsqueda que
tenemos que hacerlo apuntar al archivo Ejercicio-6.hex que se form como resultado de la
compilacin y que debe de estar en su carpeta de trabajo. Luego presione ok y est listo para la
simulacin.
8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulacin.
Observe que haciendo clic sobre los switches causara que estos se abran o cierren y afecten el
valor de prendido o apagado de los LEDS.

PROBLEMA 7

OBJETIVO
7. Realizar un programa que permita tener una seal cuadrada simtrica de 50 hz en el bit 7
del puerto B.
CONTENIDO:
a) CREACION DE UN PROYECTO NUEVO CON EL MPLAB
b) SIMULACION EN PROTEUS
a) CREACION DE UN PROYECTO NUEVO
Lo primero que se necesita es un archivo .asm que puede ser creado en cualquier procesador
de texto o en el ambiente del MPLAB. Esta segunda alternativa combinada con el Proyecto
Wizard es la que se sigue a continuacin:
1) Seleccione CONFIGURE
SELECT DEVICE de la ventana desplegable seleccione
microcontrolador 16F84A y presione ok.
2) Seleccione FILE

NEW y aparecer una ventana sin ttulo.

el

3) En Untitled digite el siguiente programa.

LIST
RADIX

P=16F84A
HEX

STATUS
PTOB
CONTA1
CONTA2

EQU
EQU
EQU
EQU

0x03
0x06
0x0D
0x0E

;direcciona al registro de STATUS


;direcciona al puerto B
;hace refencia a la direccin 0Dh
;hace refencia a la direccin 0Eh

ORG
BSF
MOVLW
MOVWF
BCF

0x00
STATUS,5
0x00
PTOB
STATUS,5

;seleccionar el banco 1
;carga w con 00h para habilitar puerto B salida
;transfiere contenido de w en 0x05 del banco 1
;seleccionar el banco 0

CLRF
MOVLW
MOVWF
CALL
MOVLW
MOVWF
CALL
GOTO

PTOB
0x80
PTOB
TIEMPO
0x00
PTOB
TIEMPO
CICLO

;limpia el puerto B
;cargamos w con el numero 80h
;enviamos el registro w al puerto B
;llamamos a la subrutina de tiempo TIEMPO
;cargamos w con el numero 80h
;enviamos el registro w al puerto B
;llamamos a la subrutina de tiempo TIEMPO
;ir a la subrutina CICLO

MOVLW
MOVWF
MOVLW
MOVWF
DECFSZ

D'150'
CONTA1
D'20'
CONTA2
CONTA2,1

;cargamos w con el numero decimal 5


;almacenamos w en la direccion 0Dh
;cargamos w con el numero decimal 5
;almacenamos w en la direccion 0Eh
;decrementa CONTA2 -1 y si el resultado es

GOTO
DECFSZ

LAZO1
CONTA1,1

;ir a la subrutina LAZO1

GOTO
RETURN

LAZO2

;ir a la subrutina LAZO2


;retorno de la instruccin CALL

CICLO

TIEMPO
LAZO2
LAZO1

END

; comando que indica el pic usado.


;los valores se representan en hexadecimal

;fin del programa

4) Guarde el documento creado con en su carpeta de trabajo con el nombre de EJERCICIO7.asm.


5) Seleccione VIEW PROJECT y aparecer una ventana, dar click derecho en source files y cargar el
archivo EJERCICIO7.asm.

6) Para compilar el programa asm, seleccione Project Build All. Si la compilacin es exitosa deber
aparecer el archivo .asm con una flecha verde que seala la primera instruccin a ejecutarse. En caso
de errores de compilacin habr que corregirlos antes de continuar. Haciendo doble click en el error
lo conduce al sitio del error.
Si la compilacin es exitosa deber aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION
Como resultado de la compilacin debi haberse generado un archivo .hex que es el ejecutable que
se usa para programar el PIC se necesita un quemador y un software por ejemplo Pickit 2.
b) SIMULACION EN PROTEUS
La simulacin en el programa PROTEUS nos permite una excelente visualizacin del
comportamiento del PIC programado dentro del circuito utilizado. Siga los siguientes pasos:
1) En el programa PROTEUS abra ISIS.
2) Seleccione Component y luego P, Esto abrir una ventana de seleccin de componentes en
donde escogeremos los que vamos a utilizar.
3) En Keywords ingresamos PIC 16F84A y hacemos doble clic en el elemento respectivo de la
derecha, esto transfiere el componente a nuestro ambiente de trabajo. Hacemos lo mismo con
button, cap de 22pF, crystal, res de 10k y 100R y led, para que tambin se transfieran.
4) Guardar la hoja de ISIS con el nombre EJERCICIO-7.

5) Con estos elementos se puede empezar a dibujar el circuito arrastrando y pegando elementos del
espacio de trabajo al plano de dibujo.
6) Acercando el Mouse a los terminales de los componentes se los va uniendo. El bus se hace con el
icono de buses del margen izquierdo del proteus y las etiquetas se crean con el icono LBL del
mismo margen. El resultado se observa en la siguiente grfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre


seleccione en la lnea de Program File el icono de la carpeta y aparecer un directorio de
bsqueda que tenemos que hacerlo apuntar al archivo EJERCICIO7.hex que se form
como resultado de la compilacin y que debe de estar en su carpeta de trabajo. Luego
presione ok y est listo para la simulacin.
8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la
simulacin. Observe que haciendo clic sobre los switches causara que estos se abran o
cierren y afecten el valor de prendido o apagado de los LEDS.

PROBLEMA 8

OBJETIVO
8. Realizar un programa que permita tener una seal cuadrada simtrica de 50 hz en el bit 7,
una seal cuadrada simtrica de 60 hz en el bit 6 del puerto B.
CONTENIDO:
a) CREACION DE UN PROYECTO NUEVO CON EL MPLAB
b) SIMULACION EN PROTEUS
a) CREACION DE UN PROYECTO NUEVO
Lo primero que se necesita es un archivo .asm que puede ser creado en cualquier procesador
de texto o en el ambiente del MPLAB. Esta segunda alternativa combinada con el Proyecto
Wizard es la que se sigue a continuacin:
1) Seleccione CONFIGURE
SELECT DEVICE de la ventana desplegable seleccione
microcontrolador 16F84A y presione ok.
2) Seleccione FILE

NEW y aparecer una ventana sin ttulo.

LIST
RADIX

P=16F84
HEX

W
F
EDO
PTAB
CONTA4
CONTA1
CONTA2
CONTA3

EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU

0x00
0x01
0x03
0x06
0x0C
0x0D
0x0E
0x0F

ORG

0x00

BSF
MOVLW
MOVWF
BCF

EDO,5
b'00000000'
PTAB
EDO,5

INICIO

;-----------------------------BUCLE

INICIA PROGRAMA----------------------------------MOLVW
MOVWF
CALL
MOVLW
MOVWF
CALL

0x80
PTAB
TEMPO
0x00
PTAB
TEMPO

MOVLW

0x40

el

MOVWF
CALL
MOVLW
MOVWF
CALL
GOTO
;--------------------------------TEMPO
LAZO2
LAZO1

TEMPO1
LAZO4
LAZO3

PTAB
TEMPO1
0x00
PTAB
TEMPO1
BUCLE
RUTINA DE TIEMPO---------------------------------

MOVLW
MOVWF
MOVLW
MOVWF
DECFSZ
GOTO
DECFSZ
GOTO
RETURN

D'5'
CONTA1
D'5'
CONTA2
CONTA2,1
LAZO1
CONTA1,1
LAZO2

MOVLW
MOVWF
MOVLW
MOVWF
DECFSZ
GOTO
DECFSZ
GOTO
RETURN

D'6'
CONTA3
D'6'
CONTA4
CONTA4,1
LAZO3
CONTA3,1
LAZO4

END

4) Guarde el documento creado con en su carpeta de trabajo con el nombre de Ejercicio8asm.


5) Seleccione VIEW PROJECT y aparecer una ventana, dar click derecho en source files y cargar
el archivo Ejercicio8.asm.

6) Para compilar el programa asm, seleccione Project Build All. Si la compilacin es exitosa
deber aparecer el archivo .asm con una flecha verde que seala la primera instruccin a
ejecutarse. En caso de errores de compilacin habr que corregirlos antes de continuar. Haciendo
doble click en el error lo conduce al sitio del error.
Si la compilacin es exitosa deber aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION
Como resultado de la compilacin debi haberse generado un archivo .hex que es el ejecutable
que se usa para programar el PIC se necesita un quemador y un software por ejemplo Pickit 2.
b) SIMULACION EN PROTEUS
La simulacin en el programa PROTEUS nos permite una excelente visualizacin del
comportamiento del PIC programado dentro del circuito utilizado. Siga los siguientes pasos:
1) En el programa PROTEUS abra ISIS
2) Seleccione Component y luego P, Esto abrir una ventana de seleccin de componentes en
donde escogeremos los que vamos a utilizar.

3) En Keywords ingresamos PIC 16F84A y hacemos doble clic en el elemento respectivo de la


derecha, esto transfiere el componente a nuestro ambiente de trabajo. Hacemos lo mismo con
button, cap de 22pF, crystal, res de 10k y 100R y led, para que tambin se transfieran.
4) Guardar la hoja de ISIS con el nombre EJERCICIO-8.
5) Con estos elementos se puede empezar a dibujar el circuito arrastrando y pegando elementos
del espacio de trabajo al plano de dibujo.
6) Acercando el Mouse a los terminales de los componentes se los va uniendo. El bus se hace con
el icono de buses del margen izquierdo del proteus y las etiquetas se crean con el icono LBL del
mismo margen. El resultado se observa en la siguiente grfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione
en la lnea de Program File el icono de la carpeta y aparecer un directorio de bsqueda que
tenemos que hacerlo apuntar al archivo Ejercicio8.hex que se form como resultado de la
compilacin y que debe de estar en su carpeta de trabajo. Luego presione ok y est listo para la
simulacin.
8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulacin.
Observe que haciendo clic sobre los switches causara que estos se abran o cierren y afecten el
valor de prendido o apagado de los LEDS.

Problema 9

OBJETIVO
9. Proponer un circuito que tenga el puerto B como salida conectando 8 leds, realizar un programa
que permita rotar el dato 01h en el puerto B de manera infinita. Controle la rotacin para que el
bit se rote de la posicin del bit 0 al bit 7.
CONTENIDO:
c)

CREACION DE UN PROYECTO NUEVO CON EL MPLAB

d) SIMULACION EN PROTEUS

a) CREACION DE UN PROYECTO NUEVO


Lo primero que se necesita es un archivo .asm que puede ser creado en cualquier procesador de
texto o en el ambiente del MPLAB. Esta segunda alternativa combinada con el Proyecto Wizard es
la que se sigue a continuacin:
1) Seleccione CONFIGURE

SELECT DEVICE de la ventana desplegable seleccione el

microcontrolador 16F84A y presione ok.


2) Seleccione FILE

NEW y aparecer una ventana sin ttulo.

3) En Untitled digite el siguiente programa.


Cdigo asm.
LIST P=16F84A
RADIX HEX
STATUS
PTOB
CONT1
CONT2

INICIO
IZQ

EQU
EQU
EQU
EQU

0x03
0x06
0x0D
0x0E

ORG
BSF
MOVLW
MOVWF
BCF

0x00
STATUS,5
0x00
PTOB
STATUS,5

CLRF

PTOB

BCF

STATUS,0

MOVLW
0x01
MOVWF
PTOB
CALL
TIEMPO
RLF
PTOB,1
BTFSS
PTOB,7

GOTO IZQ
GOTO INICIO
TIEMPO MOVLW D'150'
MOVWF CONT1
LAZO2 MOVLW D'20'
MOVWF CONT2
LAZO1 DECFSZ CONT2,1
GOTO LAZO1
DECFSZ CONT1,1
GOTO LAZO2
RETURN
END

4) Guarde el documento creado con en su carpeta de trabajo con el nombre de Ejercicio9.asm.


5) Seleccione VIEW PROJECT y aparecer una ventana, dar click derecho en source files y cargar
el archivo Ejercicio9.asm.

6) Para compilar el programa asm, seleccione Project Build All. Si la compilacin es exitosa
deber aparecer el archivo .asm con una flecha verde que seala la primera instruccin a
ejecutarse. En caso de errores de compilacin habr que corregirlos antes de continuar. Haciendo
doble click en el error lo conduce al sitio del error.
Si la compilacin es exitosa deber aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACIN
Como resultado de la compilacin debi haberse generado un archivo .hex que es el ejecutable
que se usa para programar el PIC se necesita un quemador y un software por ejemplo Pickit 2.
b) SIMULACION EN PROTEUS
La simulacin en el programa PROTEUS nos permite una excelente visualizacin del
comportamiento del PIC programado dentro del circuito utilizado. Siga los siguientes pasos:
1) En el programa PROTEUS abra ISIS:
2) Seleccione Component y luego P, Esto abrir una ventana de seleccin de
componentes en donde escogeremos los que vamos a utilizar.
3) En Keywords ingresamos PIC 16F84A y hacemos doble clic en el elemento respectivo
de la derecha, esto transfiere el componente a nuestro ambiente de trabajo.
Hacemos lo mismo con button, cap , crystal, res, led Green y led red para que
tambin se transfieran.
4) Guardar la hoja de ISIS con el nombre Ejercicio9.
5) Con estos elementos se puede empezar a dibujar el circuito arrastrando y pegando
elementos del espacio de trabajo al plano de dibujo.

6) Acercando el Mouse a los terminales de los componentes se los va uniendo. El bus se


hace con el icono de buses del margen izquierdo del proteus y las etiquetas se crean
con el icono LBL del mismo margen. El resultado se observa en la siguiente grfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre


seleccione en la lnea de Program File el icono de la carpeta y aparecer un directorio
de bsqueda que tenemos que hacerlo apuntar al archivo Ejercicio9.hex que se
form como resultado de la compilacin y que debe de estar en su carpeta de
trabajo. Luego presione ok y est listo para la simulacin.
8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la
simulacin. Observe que haciendo clic sobre los switches causar que estos se abran
o cierren y afecten el valor de prendido o apagado de los LEDS.
Problema 10

OBJETIVO
10. Proponer un circuito que tenga el puerto B como salida conectando 8 leds, realizar un
programa que permita rotar el dato 01h en el puerto B a la izquierda y cuando llegue al bit 7 se
realice la rotacin a la derecha, de la posicin del bit 7 a la posicin del bit 0 de forma infinita.
CONTENIDO:
a)

CREACION DE UN PROYECTO NUEVO CON EL MPLAB

b) SIMULACION EN PROTEUS

a) CREACION DE UN PROYECTO NUEVO


Lo primero que se necesita es un archivo .asm que puede ser creado en cualquier procesador de
texto o en el ambiente del MPLAB. Esta segunda alternativa combinada con el Proyecto Wizard es
la que se sigue a continuacin:
1) Seleccione CONFIGURE

SELECT DEVICE de la ventana desplegable seleccione el

microcontrolador 16F84A y presione ok.


2) Seleccione FILE

NEW y aparecer una ventana sin ttulo.

3) En Untitled digite el siguiente programa.


LIST P=16F84
RADIX HEX

ESTADO

EQU

0x03

PORTB

EQU

0x06

AUX1

EQU

0x0C

AUX2

EQU

0x0D

AUX3

EQU

0x0E

ORG

BCF

0x00

ESTADO,0

CLRF PORTB

BCF

ESTADO,5

MOVLW 0x01

MOVWF PORTB

BCF

ESTADO,0

CALL RETARDO
ROTARI

RLF

PORTB,1

CALL RETARDO
BTFSS PORTB,7
GOTO ROTARI

ROTARD

RRF

PORTB,1

CALL RETARDO
BTFSS PORTB,0
GOTO ROTARD
GOTO ROTARI

RETARDO

MOVLW 0x0F

MOVWF AUX1

UNO

MOVLW 0x0E
MOVWF AUX2

DOS

CLRWDT

TRES

GOTO CUATRO

CUATRO
CINCO

GOTO CINCO
CLRWDT

DECFSZ AUX2,F
GOTO

DOS

DECFSZ AUX1,F
GOTO

UNO

SEIS

GOTO

SIETE

SIETE

GOTO

OCHO

OCHO

GOTO

NUEVE

NUEVE

CLRWDT

RETURN
END
4) Guarde el documento creado con en su carpeta de trabajo con el nombre de Ejercicio10.asm.
5) Seleccione VIEW PROJECT y aparecer una ventana, dar click derecho en source files y cargar
el archivo Ejercicio10.asm.

6) Para compilar el programa asm, seleccione Project Build All. Si la compilacin es exitosa
deber aparecer el archivo .asm con una flecha verde que seala la primera instruccin a
ejecutarse. En caso de errores de compilacin habr que corregirlos antes de continuar. Haciendo
doble click en el error lo conduce al sitio del error.
Si la compilacin es exitosa deber aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACIN
Como resultado de la compilacin debi haberse generado un archivo .hex que es el ejecutable
que se usa para programar el PIC se necesita un quemador y un software por ejemplo Pickit 2.
b) SIMULACION EN PROTEUS
La simulacin en el programa PROTEUS nos permite una excelente visualizacin del
comportamiento del PIC programado dentro del circuito utilizado. Siga los siguientes pasos:
1) En el programa PROTEUS abra ISIS:

2) Seleccione Component y luego P, Esto abrir una ventana de seleccin de componentes


en donde escogeremos los que vamos a utilizar.
3) En Keywords ingresamos PIC 16F84A y hacemos doble clic en el elemento respectivo de la
derecha, esto transfiere el componente a nuestro ambiente de trabajo. Hacemos lo
mismo con button, cap , crystal, res, led para que tambin se transfieran.
4) Guardar la hoja de ISIS con el nombre Ejercicio10.
5) Con estos elementos se puede empezar a dibujar el circuito arrastrando y pegando
elementos del espacio de trabajo al plano de dibujo.

6) Acercando el Mouse a los terminales de los componentes se los va uniendo. El bus se


hace con el icono de buses del margen izquierdo del proteus y las etiquetas se crean con
el icono LBL del mismo margen. El resultado se observa en la siguiente grfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre


seleccione en la lnea de Program File el icono de la carpeta y aparecer un directorio de
bsqueda que tenemos que hacerlo apuntar al archivo Ejercicio10.hex que se form
como resultado de la compilacin y que debe de estar en su carpeta de trabajo. Luego
presione ok y est listo para la simulacin.
8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la
simulacin. Observe que haciendo clic sobre los switches causar que estos se abran o
cierren y afecten el valor de prendido o apagado de los LEDS.

Problema11

OBJETIVO
10. Proponer un circuito que tenga el puerto B como salida conectando 8 leds, realizar un
programa que permita encender el puerto B de manera secuencial del bit 7 al bit 0, y despus que
apague todos desde el bit 7 al bit 0, que se repita esto de manera cclica.

CONTENIDO:
a)

CREACION DE UN PROYECTO NUEVO CON EL MPLAB

b) SIMULACION EN PROTEUS

a) CREACION DE UN PROYECTO NUEVO


Lo primero que se necesita es un archivo .asm que puede ser creado en cualquier procesador de
texto o en el ambiente del MPLAB. Esta segunda alternativa combinada con el Proyecto Wizard es
la que se sigue a continuacin:
1) Seleccione CONFIGURE

SELECT DEVICE de la ventana desplegable seleccione el

microcontrolador 16F84A y presione ok.


2) Seleccione FILE

NEW y aparecer una ventana sin ttulo.

3) En Untitled digite el siguiente programa.


LIST P=16F84
RADIX HEX

W EQU
F EQU

0
1

PUERTOB EQU
ESTADO EQU
PCL

EQU

0x06
0x03

0x02

AUX1

EQU

0x0C

AUX2

EQU

0x0D

AUX3

EQU

0X0E

CUENTA

EQU

ORG
BSF

0x20

0x00
ESTADO,5

CLRF PUERTOB
BCF

ESTADO,5

CICLO1

CLRF CUENTA

CICLO2

MOVF CUENTA,W

CALL TABLA
MOVWF PUERTOB
CALL RETARDO
INCF CUENTA,F

MOVLW 0x10
XORWF CUENTA,W
BTFSS ESTADO,2
GOTO CICLO2
GOTO CICLO1

RETARDO

MOVLW 0x0D

MOVWF AUX1
UNO

MOVLW 0X48
MOVWF AUX2

DOS

MOVLW 0x07A
MOVWF AUX3

TRES

CLRWDT
DECFSZ AUX3,F
GOTO TRES
DECFSZ AUX2,F
GOTO DOS
DECFSZ AUX1,F
GOTO UNO
GOTO SIG

SIG

CLRWDT
RETURN

TABLA

ADDWF PCL,F
RETLW B'10000000'
RETLW B'11000000'
RETLW B'11100000'
RETLW B'11110000'
RETLW B'11111000'
RETLW B'11111100'
RETLW B'11111110'
RETLW B'11111111'
RETLW B'01111111'
RETLW B'00111111'
RETLW B'00011111'
RETLW B'00001111'
RETLW B'00000111'
RETLW B'00000011'

RETLW B'00000001'
RETLW B'00000000'

END
4) Guarde el documento creado con en su carpeta de trabajo con el nombre de Ejercicio11.asm.
5) Seleccione VIEW

PROJECT y aparecer una ventana, dar click derecho en source files y cargar

el archivo Ejercicio11.asm

6) Para compilar el programa asm, seleccione Project Build All. Si la compilacin es exitosa
deber aparecer el archivo .asm con una flecha verde que seala la primera instruccin a
ejecutarse. En caso de errores de compilacin habr que corregirlos antes de continuar. Haciendo
doble click en el error lo conduce al sitio del error.

Si la compilacin es exitosa deber aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACIN
Como resultado de la compilacin debi haberse generado un archivo .hex que es el ejecutable
que se usa para programar el PIC se necesita un quemador y un software por ejemplo Pickit 2.
b) SIMULACION EN PROTEUS
La simulacin en el programa PROTEUS nos permite una excelente visualizacin del
comportamiento del PIC programado dentro del circuito utilizado. Siga los siguientes pasos:
1) En el programa PROTEUS abra ISIS:

2) Seleccione Component y luego P, Esto abrir una ventana de seleccin de componentes


en donde escogeremos los que vamos a utilizar.
3) En Keywords ingresamos PIC 16F84A y hacemos doble clic en el elemento respectivo de la
derecha, esto transfiere el componente a nuestro ambiente de trabajo. Hacemos lo
mismo con button, cap , crystal, res, led para que tambin se transfieran.
4) Guardar la hoja de ISIS con el nombre Ejercicio10.
5) Con estos elementos se puede empezar a dibujar el circuito arrastrando y pegando
elementos del espacio de trabajo al plano de dibujo.

6) Acercando el Mouse a los terminales de los componentes se los va uniendo. El bus se


hace con el icono de buses del margen izquierdo del proteus y las etiquetas se crean con
el icono LBL del mismo margen. El resultado se observa en la siguiente grfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre


seleccione en la lnea de Program File el icono de la carpeta y aparecer un directorio de
bsqueda que tenemos que hacerlo apuntar al archivo Ejercicio11.hex que se form
como resultado de la compilacin y que debe de estar en su carpeta de trabajo. Luego
presione ok y est listo para la simulacin.
8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la
simulacin. Observe que haciendo clic sobre los switches causar que estos se abran o
cierren y afecten el valor de prendido o apagado de los LEDS.

PROBLEMA 12

OBJETIVO
12. Proponer un circuito que tenga el puerto B como salida conectando un motor a pasos en
sentido del reloj. Que inicie la rotacin cuando se presione el bit 0 del puerto A y si se
presiona cuando est rotando este deber parar, es decir el bit ser de arranque y paro.

CONTENIDO:
e)
f)

CREACION DE UN PROYECTO NUEVO CON EL MPLAB


SIMULACION EN PROTEUS

a) CREACION DE UN PROYECTO NUEVO


Lo primero que se necesita es un archivo .asm que puede ser creado en cualquier procesador de
texto o en el ambiente del MPLAB. Esta segunda alternativa combinada con el Proyecto Wizard es
la que se sigue a continuacin:
1) Seleccione CONFIGURE
SELECT DEVICE de la ventana desplegable seleccione
microcontrolador 16F84A y presione ok.
2) Seleccione FILE

el

NEW y aparecer una ventana sin ttulo.

3) En Untitled digite el siguiente programa.


Cdigo .asm
;|
ENCABEZADO
|
LIST
p = 16F84
;Usar el PIC16F84A-04/P
RADIX
HEX
;Todo en hexadecimal
;|
VARIABLES
|
w
equ
0
;Cuando d=0 el destino es w
f
equ
1
;Cuando d=1 el destino es f
PUERTOA
equ
0x05
;Direccion del Puerto A
PUERTOB
equ
0x06
;Direccin del Puerto B
ESTADO
equ
0x03
;Direccin del Estado
PCL
equ
0x02
;Direccin de PCL
Aux1
equ
0x0D
Aux2
equ
0x0E
npaso
equ
0x20
;Direccin del reg que lleva el conteo de
los pasos
;|
CONFIGURACIN DEL PUERTO B COMO SALIDA |
;|
Y EL PUERTO A COMO DE SALIDA
|
ORG
0x00
;Direccin de inicio
BSF
ESTADO,5
;Pasarse al Banco 1
MOVLW
0x00
MOVWF
PUERTOB
;Establecer el Puerto B como de salida
MOVLW
0x0F
MOVWF
PUERTOA
;Puerto A como de entrada RA0-RA3
BCF
ESTADO,5
;Volver al banco 0
;|
PROGRAMA PRINCIPAL
|
;inicio
Inicio
CLRF
npaso
;Borrar contenido de npaso
Test
BTFSS
PUERTOA,0
;El bit 0 del puerto A es 1?
GOTO
Inicio
;No, ir a inicio
GOTO
Giro
;Si, ir a Giro

;fin
;+-----------------------------------------------------------------;|
;+-----------------------------------------------------------------;inicio
Giro

+
|

GIRA MOTOR HACIA LA DERECHA

XORWF
BTFSS
GOTO
GOTO

npaso,w
ESTADO,2
Test
Inicio

;fin
;+-------------------------------------------------------------------;| RETARDO DE 60 mlSeg
;+-------------------------------------------------------------------Retardo
MOVLW
.33
MOVWF
Aux1
PLoop1
MOVLW
.60
MOVWF
Aux2
PLoop2
CLRWDT
CLRWDT
DECFSZ
Aux2,1
GOTO
PLoop2
DECFSC
Aux1,1
GOTO
PLoop1
CLRWDT
RETURN
;fin
;+-------------------------------------------------------------------;|
TABLA MOTOR GIRA A LA DERECHA |
;+-------------------------------------------------------------------TablaD
ADDWF
PCL,f
RETLW
B'00001001'
RETLW
B'00000011'
RETLW
B'00000110'
RETLW
B'00001100'
END

;Hacer ope XOR cuenta con W


;El contador es igual a 4?
;No,va a ciclo
;Si, regresa al testeo

+
|

+
; 1 set number of repetitions (B)
;1|
; 1 set number of repetitions (A)
;1|
; 1 clear watchdog
; 1 cycle delay
; 1 + (1) is the time over? (A)
; 2 no, loop
; 1 + (1) is the time over? (B)
; 2 no, loop
; 1 cycle delay
; 2+2 Done

+
;09
;03
;06
;0C
;Fin del programa

4) Guarde el documento creado con en su carpeta de trabajo con el nombre de problema12.asm.


5) Seleccione VIEW PROJECT y aparecer una ventana, dar click derecho en source files y cargar el
archivo problema12.asm

6) Para compilar el programa asm, seleccione Project Build All. Si la compilacin es exitosa deber
aparecer el archivo .asm con una flecha verde que seala la primera instruccin a ejecutarse. En caso
de errores de compilacin habr que corregirlos antes de continuar. Haciendo doble click en el error
lo conduce al sitio del error.
Si la compilacin es exitosa deber aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION
Como resultado de la compilacin debi haberse generado un archivo .hex que es el ejecutable que
se usa para programar el PIC se necesita un quemador y un software por ejemplo Pickit 2.
b) SIMULACION EN PROTEUS
La simulacin en el programa PROTEUS nos permite una excelente visualizacin del comportamiento
del PIC programado dentro del circuito utilizado. Siga los siguientes pasos:

1) En el programa PROTEUS abra ISIS:


2) Seleccione Component y luego P, Esto abrir una ventana de seleccin de componentes en donde
escogeremos los que vamos a utilizar.
3) En Keywords ingresamos PIC 16F84A y hacemos doble clic en el elemento respectivo de la derecha,
esto transfiere el componente a nuestro ambiente de trabajo. Hacemos lo mismo con button, cap de
27pF, crystal, res de 10k y 100R ,Motor y Switches, para que tambin se transfieran.
4) Guardar la hoja de ISIS con el nombre problema12.
5) Con estos elementos se puede empezar a dibujar el circuito arrastrando y pegando elementos del
espacio de trabajo al plano de dibujo.
6) Acercando el Mouse a los terminales de los componentes se los va uniendo. El bus se hace con el
icono de buses del margen izquierdo del proteus y las etiquetas se crean con el icono LBL del mismo
margen. El resultado se observa en la siguiente grfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione en la
lnea de Program File el icono de la carpeta y aparecer un directorio de bsqueda que tenemos que
hacerlo apuntar al archivo problema12.hex que se formo como resultado de la compilacin y que
debe de estar en su carpeta de trabajo. Luego presione ok y est listo para la simulacin.

8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulacin. Observe
que haciendo clic sobre los switches causara que estos se abran o cierren y afecten el valor de
prendido o apagado del Motor.mas

PROBLEMA 13

OBJETIVO
13. Proponer un circuito que tenga el puerto B como salida conectando un motor a pasos en sentido
contrario del reloj. El bit 0 del puerto A ser de arranque y paro, el bit 1 controlara el sentido de
giro en direccin del reloj, el bit 1 controlara el sentido de giro en direccin contraria del reloj.

CONTENIDO:
g) CREACION DE UN PROYECTO NUEVO CON EL MPLAB
h) SIMULACION EN PROTEUS

a) CREACION DE UN PROYECTO NUEVO


Lo primero que se necesita es un archivo .asm que puede ser creado en cualquier procesador de texto
o en el ambiente del MPLAB. Esta segunda alternativa combinada con el Proyecto Wizard es la que se
sigue a continuacin:
1) Seleccione CONFIGURE
SELECT DEVICE de la ventana desplegable seleccione
microcontrolador 16F84A y presione ok.
2) Seleccione FILE

NEW y aparecer una ventana sin ttulo.

3) En Untitled digite el siguiente programa.


Cdigo .asm
;+------------------------------------------------------------------;|

ENCABEZADO

el

;+------------------------------------------------------------------LIST
p = 16F84
;Usar el PIC16F84A-04/P
RADIX
HEX
;Todo en hexadecimal
;+------------------------------------------------------------------;|
VARIABLES
w
equ
0
;Cuando d=0 el destino es w
f
equ
1
;Cuando d=1 el destino es f
PUERTOA
equ
0x05
;Direccion del Puerto A
PUERTOB
equ
0x06
;Direccin del Puerto B
ESTADO
equ
0x03
;Direccin del Estado
PCL
equ
0x02
;Direccin de PCL
Aux1
equ
0x0D
Aux2
equ
0x0E
npaso
equ
0x20
;Direccin del reg que lleva el conteo de
los pasos
;|
CONFIGURACIN DEL PUERTO B COMO SALIDA
;|
Y EL PUERTO A COMO DE SALIDA
ORG
0x00
;Direccin de inicio
BSF
ESTADO,5
;Pasarse al Banco 1
MOVLW
0x00
MOVWF
PUERTOB
;Establecer el Puerto B como de salida
MOVLW
0x0F
MOVWF
PUERTOA
;Puerto A como de entrada RA0-RA3
BCF
ESTADO,5
;Volver al banco 0
;+-------------------------------------------------------------------;|
PROGRAMA PRINCIPAL
;inicio
Inicio
CLRF
npaso
;Borrar contenido de npaso
Test
BTFSS
PUERTOA,0
;El bit 0 del puerto A es 1?
GOTO
Inicio
;No, ir a inicio
BTFSS
PUERTOA,1
;Si,El bit 1 del puerto A es 1?
GOTO
GiroD
;No, ir a gira hacia la derecha
GOTO
GiroI
;Si, ir a gira hacia la izquierda
;|
GIRA MOTOR HACIA LA DERECHA
;inicio
GiroD
MOVF
npaso,w
;Pasar a W el contenido de contador
CALL
TablaD
;Llamar la tabla de pasos
MOVWF
PUERTOB
;Mandar al Puerto B el valor obtenido
CALL
Retardo
;Llamar retardo
INCF
npaso,f
;Incrementar npaso = npaso + 1
MOVLW
0x04
;Mover b'00000100' a W
XORWF
npaso,w
;Hacer ope XOR cuenta con W
BTFSS
ESTADO,2
;El contador es igual a 4?
GOTO
Test
;No,va a ciclo

GOTO
Inicio
;fin
;+-------------------------------------------------------------------;|
GIRA MOTOR HACIA LA IZQUIERDA
;+-------------------------------------------------------------------;inicio
GiroI
MOVF
npaso,w
CALL
TablaI
MOVWF
PUERTOB
CALL
Retardo
INCF
npaso,f
MOVLW
0x04
XORWF
npaso,w
BTFSS
ESTADO,2
GOTO
Test
GOTO
Inicio
;fin
Retardo
MOVLW
.33
MOVWF
Aux1
PLoop1
MOVLW
.60
MOVWF
Aux2
PLoop2
CLRWDT
CLRWDT
DECFSZ
Aux2,1
GOTO
PLoop2
DECFSZ
Aux1,1
GOTO
PLoop1
CLRWDT
RETURN
;fin
;|
TABLA MOTOR GIRA A LA DERECHA
;+-------------------------------------------------------------------TablaD
ADDWF
PCL,f
RETLW
B'00001001'
RETLW
B'00000011'
RETLW
B'00000110'
RETLW
B'00001100'
--------------------------------------------------------------------;|
TABLA MOTOR GIRA A LA IZQUIERDA
TablaI
ADDWF
PCL,f
RETLW
B'00001100'
RETLW
B'00000110'
RETLW
B'00000011'
RETLW
B'00001001'

;Si, regresa al testeo

;Pasar a W el contenido de contador


;Llamar la tabla de pasos
;Mandar al Puerto B el valor obtenido
;Llamar retardo
;Incrementar npaso = npaso + 1
;Mover b'00000100' a W
;Hacer ope XOR cuenta con W
;El contador es igual a 4?
;No,va a ciclo
;Si, regresa al testeo
; 1 set number of repetitions (B)
;1|
; 1 set number of repetitions (A)
;1|
; 1 clear watchdog
; 1 cycle delay
; 1 + (1) is the time over? (A)
; 2 no, loop
; 1 + (1) is the time over? (B)
; 2 no, loop
; 1 cycle delay
; 2+2 Done

;09
;03
;06
;0C

;0C
;06
;03
;09

END

;Fin del programa

4) Guarde el documento creado con en su carpeta de trabajo con el nombre de problema13.asm.


5) Seleccione VIEW PROJECT y aparecer una ventana, dar click derecho en source files y
cargar el archivo problema13.asm

6) Para compilar el programa asm, seleccione Project Build All. Si la compilacin es exitosa
deber aparecer el archivo .asm con una flecha verde que seala la primera instruccin a
ejecutarse. En caso de errores de compilacin habr que corregirlos antes de continuar.
Haciendo doble click en el error lo conduce al sitio del error.
Si la compilacin es exitosa deber aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION
Como resultado de la compilacin debi haberse generado un archivo .hex que es el ejecutable
que se usa para programar el PIC se necesita un quemador y un software por ejemplo Pickit 2.

b) SIMULACION EN PROTEUS
La simulacin en el programa PROTEUS nos permite una excelente visualizacin del
comportamiento del PIC programado dentro del circuito utilizado. Siga los siguientes pasos:
1) En el programa PROTEUS abra ISIS.
2) Seleccione Component y luego P, Esto abrir una ventana de seleccin de componentes en
donde escogeremos los que vamos a utilizar.
3) En Keywords ingresamos PIC 16F84A y hacemos doble clic en el elemento respectivo de la
derecha, esto transfiere el componente a nuestro ambiente de trabajo. Hacemos lo mismo con
button, cap de 27pF, crystal, res de 10k y 100R, Motor y Switches, para que tambin se
transfieran
4) Guardar la hoja de ISIS con el nombre problema13.
5) Con estos elementos se puede empezar a dibujar el circuito arrastrando y pegando elementos
del espacio de trabajo al plano de dibujo.
6) Acercando el Mouse a los terminales de los componentes se los va uniendo. El bus se hace con
el icono de buses del margen izquierdo del proteus y las etiquetas se crean con el icono LBL del
mismo margen. El resultado se observa en la siguiente grfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione
en la lnea de Program File el icono de la carpeta y aparecer un directorio de bsqueda que
tenemos que hacerlo apuntar al archivo problema13.hex que se formo como resultado de la
compilacin y que debe de estar en su carpeta de trabajo. Luego presione ok y est listo para la
simulacin.
8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulacin.
Observe que haciendo clic sobre los switches causara que estos se abran o cierren y afecten el
valor de prendido o apagado de los Motor.

PROBLEMA 14

OBJETIVO
14. Proponer un circuito que tenga el puerto B como salida conectando un motor a pasos,
conectado al puerto B, y en el puerto A como entrada: el bit 0 incrementa la velocidad, el bit
1 decrementa la velocidad.
CONTENIDO:
a) CREACION DE UN PROYECTO NUEVO CON EL MPLAB
b) SIMULACION EN PROTEUS

a) CREACION DE UN PROYECTO NUEVO


Lo primero que se necesita es un archivo .asm que puede ser creado en cualquier procesador de texto
o en el ambiente del MPLAB. Esta segunda alternativa combinada con el Proyecto Wizard es la que se
sigue a continuacin:
1) Seleccione CONFIGURE
SELECT DEVICE de la ventana desplegable seleccione
microcontrolador 16F84A y presione ok.
2) Seleccione FILE

NEW y aparecer una ventana sin ttulo.

3) En Untitled digite el siguiente programa.


Cdigo .asm
;|
LIST
RADIX

ENCABEZADO
p = 16F84
HEX

;Usar el PIC16F84A-04/P
;Todo en hexadecimal

el

;|
VARIABLES
w
equ
0
;Cuando d=0 el destino es w
f
equ
1
;Cuando d=1 el destino es f
PUERTOA
equ
0x05
;Direccion del Puerto A
PUERTOB
equ
0x06
;Direccin del Puerto B
ESTADO
equ
0x03
;Direccin del Estado
PCL
equ
0x02
;Direccin de PCL
Aux1
equ
0x0D
Aux2
equ
0x0E
npaso
equ
0x20
;Direccin del reg que lleva el conteo de
los pasos
;|
CONFIGURACIN DEL PUERTO B COMO SALIDA |
;|
Y EL PUERTO A COMO DE SALIDA
ORG
0x00
;Direccin de inicio
BSF
ESTADO,5
;Pasarse al Banco 1
MOVLW
0x00
MOVWF
PUERTOB
;Establecer el Puerto B como de salida
MOVLW
0x0F
MOVWF
PUERTOA
;Puerto A como de entrada RA0-RA3
BCF
ESTADO,5
;Volver al banco 0
;+-------------------------------------------------------------------;|
PROGRAMA PRINCIPAL
;+-------------------------------------------------------------------;inicio
Inicio
CLRF
npaso
;Borrar contenido de npaso
Test
BTFSS
PUERTOA,0
;El bit 0 del puerto A es 1?
GOTO
Inicio
;No, ir a inicio
BTFSC
PUERTOA,1
;Si,El bit 1 del puerto A es 0?
GOTO
VelMax
;No, gira a vel max
BTFSC
PUERTOA,2
;Si, el bit 2 del puerto A es 0?
GOTO
VelMin
;No, gira a vel min
GOTO
Inicio
;Si, vuelve al testeo
;fin
;|
GIRA MOTOR A VEL MAX
;inicio
VelMax
MOVF
npaso,w
;Pasar a W el contenido de contador
CALL
TablaD
;Llamar la tabla de pasos
MOVWF
PUERTOB
;Mandar al Puerto B el valor obtenido
CALL
Retardo1
;llamar la subrutina de retardo
INCF
npaso,f
;Incrementar npaso = npaso + 1
MOVLW
0x04
;Mover b'00000100' a W
XORWF
npaso,w
;Hacer ope XOR cuenta con W
BTFSS
ESTADO,2
;El contador es igual a 4?
GOTO
Test
;No,va a ciclo
GOTO
Inicio
;Si, regresa al testeo
;fin
;+----------------------------------------------------------

----------;|
;inicio
VelMin

GIRA MOTOR A VEL MIN


MOVF
CALL
MOVWF
CALL
INCF
MOVLW
XORWF
BTFSS
GOTO
GOTO

npaso,w
TablaD
PUERTOB
Retardo
npaso,f
0x04
npaso,w
ESTADO,2
Test
Inicio

;fin
;+-------------------------------------------------------------------;| RETARDO DE 60 mlSeg
;+-------------------------------------------------------------------Retardo
MOVLW
.33
MOVWF
Aux1
PLoop1
MOVLW
.60
MOVWF
Aux2
PLoop2
CLRWDT
CLRWDT
DECFSZ
Aux2,1
GOTO
PLoop2
DECFSZ
Aux1,1
GOTO
PLoop1
CLRWDT
RETURN
;fin
;| RETARDO DE 30 mlSeg
Retardo1
MOVLW
.15
MOVWF
Aux1
PLoop1
MOVLW
.30
MOVWF
Aux2
PLoop2
CLRWDT
CLRWDT
DECFSZ
Aux2,1
GOTO
PLoop2
DECFSZ
Aux1,1
GOTO
PLoop1
CLRWDT
RETURN
;|
TABLA MOTOR GIRA A LA DERECHA |
TablaD
ADDWF
PCL,f
RETLW
B'00001001'
RETLW
B'00000011'

;Pasar a W el contenido de contador


;Llamar la tabla de pasos
;Mandar al Puerto B el valor obtenido
;Llamar la subrutina de retardo1
;Incrementar npaso = npaso + 1
;Mover b'00000100' a W
;Hacer ope XOR cuenta con W
;El contador es igual a 4?
;No,va a ciclo
;Si, regresa al testeo

; 1 set number of repetitions (B)


;1|
; 1 set number of repetitions (A)
;1|
; 1 clear watchdog
; 1 cycle delay
; 1 + (1) is the time over? (A)
; 2 no, loop
; 1 + (1) is the time over? (B)
; 2 no, loop
; 1 cycle delay
; 2+2 Done

; 1 set number of repetitions (B)


;1|
; 1 set number of repetitions (A)
;1|
; 1 clear watchdog
; 1 cycle delay
; 1 + (1) is the time over? (A)
; 2 no, loop
; 1 + (1) is the time over? (B)
; 2 no, loop
; 1 cycle delay
; 2+2 Done

;09
;03

RETLW
RETLW
END

B'00000110'
B'00001100'

;06
;0C
;Fin del programa

4) Guarde el documento creado con en su carpeta de trabajo con el nombre de problema12.asm.


5) Seleccione VIEW PROJECT y aparecer una ventana, dar click derecho en source files y cargar el
archivo problema14.asm.

6) Para compilar el programa asm, seleccione Project Build All. Si la compilacin es exitosa deber
aparecer el archivo .asm con una flecha verde que seala la primera instruccin a ejecutarse. En caso
de errores de compilacin habr que corregirlos antes de continuar. Haciendo doble click en el error
lo conduce al sitio del error.
Si la compilacin es exitosa deber aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION
Como resultado de la compilacin debi haberse generado un archivo .hex que es el ejecutable que
se usa para programar el PIC se necesita un quemador y un software por ejemplo Pickit 2.
b) SIMULACION EN PROTEUS
La simulacin en el programa PROTEUS nos permite una excelente visualizacin del comportamiento
del PIC programado dentro del circuito utilizado. Siga los siguientes pasos:
1) En el programa PROTEUS abra ISIS:
2) Seleccione Component y luego P, Esto abrir una ventana de seleccin de componentes en donde
escogeremos los que vamos a utilizar.
3) En Keywords ingresamos PIC 16F84A y hacemos doble clic en el elemento respectivo de la derecha,
esto transfiere el componente a nuestro ambiente de trabajo. Hacemos lo mismo con button, cap de
27pF, crystal, res de 10k y 100R, Motor y Switches, para que tambin se transfieran.
4) Guardar la hoja de ISIS con el nombre problema14.
5) Con estos elementos se puede empezar a dibujar el circuito arrastrando y pegando elementos del
espacio de trabajo al plano de dibujo.
6) Acercando el Mouse a los terminales de los componentes se los va uniendo. El bus se hace con el
icono de buses del margen izquierdo del proteus y las etiquetas se crean con el icono LBL del mismo
margen. El resultado se observa en la siguiente grfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione en la
lnea de Program File el icono de la carpeta y aparecer un directorio de bsqueda que tenemos que

hacerlo apuntar al archivo problema14.hex que se formo como resultado de la compilacin y que
debe de estar en su carpeta de trabajo. Luego presione ok y est listo para la simulacin.
8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulacin. Observe
que haciendo clic sobre los switches causara que estos se abran o cierren y afecten el valor de
prendido o apagado el Motor.

PROBLEMA 15

OBJETIVO
15. Proponer un circuito que tenga el puerto B como salida conectando un display de 7 segmentos
conectando al puerto B de tal forma que podamos visualizar en el display un contador de 0 al 9.
CONTENIDO:
a) CREACION DE UN PROYECTO NUEVO CON EL MPLAB
b) SIMULACION EN PROTEUS

a) CREACION DE UN PROYECTO NUEVO


Lo primero que se necesita es un archivo .asm que puede ser creado en cualquier procesador de texto
o en el ambiente del MPLAB. Esta segunda alternativa combinada con el Proyecto Wizard es la que se
sigue a continuacin:

1) Seleccione CONFIGURE
SELECT DEVICE de la ventana desplegable seleccione
microcontrolador 16F84A y presione ok.
2) Seleccione FILE

NEW y aparecer una ventana sin ttulo.

3) En Untitled digite el siguiente programa.


Cdigo .asm
;|
LIST
p = 16F84
RADIX
HEX
;|
w
equ
f
equ
PUERTOB
equ
PUERTOA
equ
ESTADO
equ
PCL
equ
Aux1
equ
Aux2
equ
Aux3
equ
cuenta
equ
ORG

;|

Ciclo1
Ciclo2

Retardo
Uno
Dos
Tres

ENCABEZADO

|
;Usar el PIC16F84A-04/P
;Todo en hexadecimal

VARIABLES
0
1
0x06
0x05
0x03
0x02
0x0C
0x0D
0x0E
0x20
0x00

|
;Cuando d=0 el destino es w
;Cuando d=1 el destino es f
;Direccin del Puerto B
;Direccin del Estado
;Direccin de PCL
;Direcciones de ocupados para
;la subrutina de retardo
;Direccin del registro que lleva el conteo
;Direccin de inicio

BSF
ESTADO,5
CLRF
PUERTOB
CLRF
PUERTOA
BCF
ESTADO,5
PROGRAMA PRINCIPAL
BSF
PUERTOA,0

;Pasarse al Banco 1
;Establecer el Puerto B como de salida

CLRF
MOVF
CALL
MOVWF
CALL
INCF
MOVLW
XORWF
BTFSS
GOTO
GOTO
MOVLW
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
CLRWDT
DECFSZ
GOTO
DECFSZ

;Inicializar el contador
;Pasar a W el contenido de contador
;Llamar a la tabla dependiendo de W
;Mandar al Puerto B el valor obtenido
;Llamar la subrutina de retardo
;Incrementar al contador
;Mover b'1010' a W
;Hacer ope XOR cuenta con W
;El contador es igual a 10?
;No, seguir con el conteo
;Si, ir a inicilizar el contador
;14

cuenta
cuenta,w
Tabla
PUERTOB
Retardo
cuenta,f
0x0A
cuenta,w
ESTADO,2
Ciclo2
Ciclo1
0x0D
Aux1
0x48
Aux2
0x7A
Aux3
Aux3,f
Tres
Aux2,f

;Volver al banco 0
|
;Activar el display 1

;72
;0xF7

;247

;Limpiar el reloj del Perro guardian


;Decrementar Aux3 -> Aux3-1
;Decrementar Aux2 -> Aux2-1

el

Sig
;|
Tabla

RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
END

GOTO
Dos
DECFSZ
Aux1,f
GOTO
Uno
GOTO
Sig
CLRWDT
RETURN
TABLA DE LOS DGITOS (0-9)
;B'gfedcba'
ADDWF
PCL,f
RETLW
B'00111111'
RETLW
B'00000110'
RETLW
B'01011011'
RETLW
B'01001111'
B'01100110'
;4
B'01101101'
;5
B'01111100'
;6
B'00000111'
;7
B'01111111'
;8
B'01100111'
;9

;Decrementar Aux1 -> Aux1-1

;Limpiar el reloj del Perro guardian


|

;0
;1
;2
;3

;Fin del programa

4) Guarde el documento creado con en su carpeta de trabajo con el nombre de problema1_led.asm.


5) Seleccione VIEW PROJECT y aparecer una ventana, dar click derecho en source files y cargar el
archivo problema15_led.asm.

6) Para compilar el programa asm, seleccione Project Build All. Si la compilacin es exitosa deber
aparecer el archivo .asm con una flecha verde que seala la primera instruccin a ejecutarse. En caso
de errores de compilacin habr que corregirlos antes de continuar. Haciendo doble click en el error
lo conduce al sitio del error.

Si la compilacin es exitosa deber aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION
Como resultado de la compilacin debi haberse generado un archivo .hex que es el ejecutable que
se usa para programar el PIC se necesita un quemador y un software por ejemplo Pickit 2.
b) SIMULACION EN PROTEUS
La simulacin en el programa PROTEUS nos permite una excelente visualizacin del
comportamiento del PIC programado dentro del circuito utilizado. Siga los siguientes pasos:
1) En el programa PROTEUS abra ISIS.
2) Seleccione Component y luego P, Esto abrir una ventana de seleccin de componentes en donde
escogeremos los que vamos a utilizar.
3) En Keywords ingresamos PIC 16F84A y hacemos doble clic en el elemento respectivo de la
derecha, esto transfiere el componente a nuestro ambiente de trabajo. Hacemos lo mismo con
button, res de 10k , 2.2k y 220R, Display-anodo y BC548 para que tambin se transfieran.
4) Guardar la hoja de ISIS con el nombre problema15.
5) Con estos elementos se puede empezar a dibujar el circuito arrastrando y pegando elementos del
espacio de trabajo al plano de dibujo.
6) Acercando el Mouse a los terminales de los componentes se los va uniendo. El bus se hace con el
icono de buses del margen izquierdo del proteus y las etiquetas se crean con el icono LBL del mismo
margen. El resultado se observa en la siguiente grfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione en
la lnea de Program File el icono de la carpeta y aparecer un directorio de bsqueda que tenemos
que hacerlo apuntar al archivo problema15.hex que se formo como resultado de la compilacin y
que debe de estar en su carpeta de trabajo. Luego presione ok y est listo para la simulacin.
8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulacin.
Observe que haciendo clic sobre los switches causara que estos se abran o cierren y afecten el valor
de prendido o apagado el Motor.