Parcial Ensamblador

UNIVERSIDAD NACIONAL DEL CALLAO FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS EXAMEN PARCIAL Docente: MG.CASAZOLA CR

Views 195 Downloads 5 File size 4MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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 Víctor 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 continuación: 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 título.

3) En Untitled digite el siguiente programa. Código .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 compilación es exitosa deberá aparecer el archivo .asm con una flecha verde que señala la primera instrucción a ejecutarse. En caso de errores de compilación habrá que corregirlos antes de continuar. Haciendo doble click en el error lo conduce al sitio del error. Si la compilación es exitosa deberá aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION Como resultado de la compilación 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 simulación en el ´programa PROTEUS nos permite una excelente visualización 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 selección 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 también 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 gráfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione en la línea de Program File el icono de la carpeta y aparecerá un directorio de búsqueda que tenemos que hacerlo apuntar al archivo problema1_led.hex que se formó como resultado de la compilación y que debe de estar en su carpeta de trabajo. Luego presione ok y está listo para la simulación.

8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulación. 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 dirección de memoria datos 0Eh y el dato F3 en la dirección 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 continuación: 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 título.

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 compilación es exitosa deberá aparecer el archivo .asm con una flecha verde que señala la primera instrucción a ejecutarse. En caso de errores de compilación habrá que corregirlos antes de continuar. Haciendo doble click en el error lo conduce al sitio del error. Si la compilación es exitosa deberá aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION Como resultado de la compilación 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

2

C2 27p

U1 16 15

R2

4

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 continuación: 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 título.

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 compilación es exitosa deberá aparecer el archivo .asm con una flecha verde que señala la primera instrucción a ejecutarse. En caso de errores de compilación habrá que corregirlos antes de continuar. Haciendo doble click en el error lo conduce al sitio del error. Si la compilación es exitosa deberá aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION Como resultado de la compilación 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 simulación en el ´programa PROTEUS nos permite una excelente visualización 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 selección 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 también 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 gráfica: 7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione en la línea de Program File el icono de la carpeta y aparecerá un directorio de búsqueda que tenemos que hacerlo apuntar al archivo problema3_led.hex que se formó como resultado de la compilación y que debe de estar en su carpeta de trabajo. Luego presione ok y está listo para la simulación. 8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulación. 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 continuación: 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 título.

3) En Untitled digite el siguiente programa. Código .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 compilación es exitosa deberá aparecer el archivo .asm con una flecha verde que señala la primera instrucción a ejecutarse. En caso de errores de compilación habrá que corregirlos antes de continuar. Haciendo doble click en el error lo conduce al sitio del error. Si la compilación es exitosa deberá aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION Como resultado de la compilación 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 simulación en el ´programa PROTEUS nos permite una excelente visualización 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 selección 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 también 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 gráfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione en la línea de Program File el icono de la carpeta y aparecerá un directorio de búsqueda que tenemos que hacerlo apuntar al archivo problema4_led.hex que se formó como resultado de la compilación y que debe de estar en su carpeta de trabajo. Luego presione ok y está listo para la simulación. 8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulación. 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 operación 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 continuación: 1) Seleccione CONFIGURE SELECT DEVICE de la ventana desplegable seleccione microcontrolador 16F84A y presione ok. 2) Seleccione FILE

NEW y aparecerá una ventana sin título.

3) En Untitled digite el siguiente programa. Código .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 compilación es exitosa deberá aparecer el archivo .asm con una flecha verde que señala la primera instrucción a ejecutarse. En caso de errores de compilación habrá que corregirlos antes de continuar. Haciendo doble click en el error lo conduce al sitio del error. Si la compilación es exitosa deberá aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION Como resultado de la compilación 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 simulación en el ´programa PROTEUS nos permite una excelente visualización 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 selección 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 también 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 gráfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione en la línea de Program File el icono de la carpeta y aparecerá un directorio de búsqueda que tenemos que hacerlo apuntar al archivo problema5_led.hex que se formó como resultado de la compilación y que debe de estar en su carpeta de trabajo. Luego presione ok y está listo para la simulación.

8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulación. 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 función espejo en el puerto B, el nibble menos significativo del puerto B será de entrada y el nibble más 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 continuación: 1) Seleccione CONFIGURE SELECT DEVICE de la ventana desplegable seleccione microcontrolador 16F84A y presione ok. 2) Seleccione FILE

NEW y aparecerá una ventana sin título.

3) En Untitled digite el siguiente programa.

el

Código .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 compilación es exitosa deberá aparecer el archivo .asm con una flecha verde que señala la primera instrucción a ejecutarse. En caso de errores de compilación habrá que corregirlos antes de continuar. Haciendo doble click en el error lo conduce al sitio del error. Si la compilación es exitosa deberá aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION Como resultado de la compilación 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 simulación en el ´programa PROTEUS nos permite una excelente visualización 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 selección 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 también 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 gráfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione en la línea de Program File el icono de la carpeta y aparecerá un directorio de búsqueda que tenemos que hacerlo apuntar al archivo Ejercicio-6.hex que se formó como resultado de la compilación y que debe de estar en su carpeta de trabajo. Luego presione ok y está listo para la simulación. 8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulación. 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 señal cuadrada simétrica 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 continuación: 1) Seleccione CONFIGURE SELECT DEVICE de la ventana desplegable seleccione microcontrolador 16F84A y presione ok. 2) Seleccione FILE

NEW y aparecerá una ventana sin título.

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 dirección 0Dh ;hace refencia a la dirección 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 instrucción 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 compilación es exitosa deberá aparecer el archivo .asm con una flecha verde que señala la primera instrucción a ejecutarse. En caso de errores de compilación habrá que corregirlos antes de continuar. Haciendo doble click en el error lo conduce al sitio del error. Si la compilación es exitosa deberá aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION Como resultado de la compilación 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 simulación en el ´programa PROTEUS nos permite una excelente visualización 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 selección 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 también 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 gráfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione en la línea de Program File el icono de la carpeta y aparecerá un directorio de búsqueda que tenemos que hacerlo apuntar al archivo EJERCICIO7.hex que se formó como resultado de la compilación y que debe de estar en su carpeta de trabajo. Luego presione ok y está listo para la simulación. 8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulación. 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 señal cuadrada simétrica de 50 hz en el bit 7, una señal cuadrada simétrica 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 continuación: 1) Seleccione CONFIGURE SELECT DEVICE de la ventana desplegable seleccione microcontrolador 16F84A y presione ok. 2) Seleccione FILE

NEW y aparecerá una ventana sin título.

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 compilación es exitosa deberá aparecer el archivo .asm con una flecha verde que señala la primera instrucción a ejecutarse. En caso de errores de compilación habrá que corregirlos antes de continuar. Haciendo doble click en el error lo conduce al sitio del error. Si la compilación es exitosa deberá aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION Como resultado de la compilación 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 simulación en el ´programa PROTEUS nos permite una excelente visualización 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 selección 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 también 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 gráfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione en la línea de Program File el icono de la carpeta y aparecerá un directorio de búsqueda que tenemos que hacerlo apuntar al archivo Ejercicio8.hex que se formó como resultado de la compilación y que debe de estar en su carpeta de trabajo. Luego presione ok y está listo para la simulación. 8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulación. 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 rotación para que el bit se rote de la posición 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 continuación: 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 título.

3) En Untitled digite el siguiente programa. Código 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 compilación es exitosa deberá aparecer el archivo .asm con una flecha verde que señala la primera instrucción a ejecutarse. En caso de errores de compilación habrá que corregirlos antes de continuar. Haciendo doble click en el error lo conduce al sitio del error. Si la compilación es exitosa deberá aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACIÓN Como resultado de la compilación 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 simulación en el ´programa PROTEUS nos permite una excelente visualización 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 selección 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 también 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 gráfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione en la línea de Program File el icono de la carpeta y aparecerá un directorio de búsqueda que tenemos que hacerlo apuntar al archivo Ejercicio9.hex que se formó como resultado de la compilación y que debe de estar en su carpeta de trabajo. Luego presione ok y está listo para la simulación. 8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulación. 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 rotación a la derecha, de la posición del bit 7 a la posición 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 continuación: 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 título.

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 compilación es exitosa deberá aparecer el archivo .asm con una flecha verde que señala la primera instrucción a ejecutarse. En caso de errores de compilación habrá que corregirlos antes de continuar. Haciendo doble click en el error lo conduce al sitio del error. Si la compilación es exitosa deberá aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACIÓN Como resultado de la compilación 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 simulación en el ´programa PROTEUS nos permite una excelente visualización 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 selección 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 también 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 gráfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione en la línea de Program File el icono de la carpeta y aparecerá un directorio de búsqueda que tenemos que hacerlo apuntar al archivo Ejercicio10.hex que se formó como resultado de la compilación y que debe de estar en su carpeta de trabajo. Luego presione ok y está listo para la simulación. 8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulación. 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 después que apague todos desde el bit 7 al bit 0, que se repita esto de manera cíclica.

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 continuación: 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 título.

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 compilación es exitosa deberá aparecer el archivo .asm con una flecha verde que señala la primera instrucción a ejecutarse. En caso de errores de compilación habrá que corregirlos antes de continuar. Haciendo doble click en el error lo conduce al sitio del error.

Si la compilación es exitosa deberá aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACIÓN Como resultado de la compilación 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 simulación en el ´programa PROTEUS nos permite una excelente visualización 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 selección 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 también 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 gráfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione en la línea de Program File el icono de la carpeta y aparecerá un directorio de búsqueda que tenemos que hacerlo apuntar al archivo Ejercicio11.hex que se formó como resultado de la compilación y que debe de estar en su carpeta de trabajo. Luego presione ok y está listo para la simulación. 8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulación. 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 rotación 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 continuación: 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 título.

3) En Untitled digite el siguiente programa. Código .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 ;Dirección del Puerto B ESTADO equ 0x03 ;Dirección del Estado PCL equ 0x02 ;Dirección de PCL Aux1 equ 0x0D Aux2 equ 0x0E npaso equ 0x20 ;Dirección del reg que lleva el conteo de los pasos ;| CONFIGURACIÓN DEL PUERTO B COMO SALIDA | ;| Y EL PUERTO A COMO DE SALIDA | ORG 0x00 ;Dirección 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 compilación es exitosa deberá aparecer el archivo .asm con una flecha verde que señala la primera instrucción a ejecutarse. En caso de errores de compilación habrá que corregirlos antes de continuar. Haciendo doble click en el error lo conduce al sitio del error. Si la compilación es exitosa deberá aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION Como resultado de la compilación 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 simulación en el ´programa PROTEUS nos permite una excelente visualización 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 selección 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 también 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 gráfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione en la línea de Program File el icono de la carpeta y aparecerá un directorio de búsqueda que tenemos que hacerlo apuntar al archivo problema12.hex que se formo como resultado de la compilación y que debe de estar en su carpeta de trabajo. Luego presione ok y está listo para la simulación.

8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulación. 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 dirección del reloj, el bit 1 controlara el sentido de giro en dirección 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 continuación: 1) Seleccione CONFIGURE SELECT DEVICE de la ventana desplegable seleccione microcontrolador 16F84A y presione ok. 2) Seleccione FILE

NEW y aparecerá una ventana sin título.

3) En Untitled digite el siguiente programa. Código .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 ;Dirección del Puerto B ESTADO equ 0x03 ;Dirección del Estado PCL equ 0x02 ;Dirección de PCL Aux1 equ 0x0D Aux2 equ 0x0E npaso equ 0x20 ;Dirección del reg que lleva el conteo de los pasos ;| CONFIGURACIÓN DEL PUERTO B COMO SALIDA ;| Y EL PUERTO A COMO DE SALIDA ORG 0x00 ;Dirección 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 compilación es exitosa deberá aparecer el archivo .asm con una flecha verde que señala la primera instrucción a ejecutarse. En caso de errores de compilación habrá que corregirlos antes de continuar. Haciendo doble click en el error lo conduce al sitio del error. Si la compilación es exitosa deberá aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION Como resultado de la compilación 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 simulación en el ´programa PROTEUS nos permite una excelente visualización 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 selección 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 también 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 gráfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione en la línea de Program File el icono de la carpeta y aparecerá un directorio de búsqueda que tenemos que hacerlo apuntar al archivo problema13.hex que se formo como resultado de la compilación y que debe de estar en su carpeta de trabajo. Luego presione ok y está listo para la simulación. 8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulación. 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 continuación: 1) Seleccione CONFIGURE SELECT DEVICE de la ventana desplegable seleccione microcontrolador 16F84A y presione ok. 2) Seleccione FILE

NEW y aparecerá una ventana sin título.

3) En Untitled digite el siguiente programa. Código .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 ;Dirección del Puerto B ESTADO equ 0x03 ;Dirección del Estado PCL equ 0x02 ;Dirección de PCL Aux1 equ 0x0D Aux2 equ 0x0E npaso equ 0x20 ;Dirección del reg que lleva el conteo de los pasos ;| CONFIGURACIÓN DEL PUERTO B COMO SALIDA | ;| Y EL PUERTO A COMO DE SALIDA ORG 0x00 ;Dirección 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 compilación es exitosa deberá aparecer el archivo .asm con una flecha verde que señala la primera instrucción a ejecutarse. En caso de errores de compilación habrá que corregirlos antes de continuar. Haciendo doble click en el error lo conduce al sitio del error. Si la compilación es exitosa deberá aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION Como resultado de la compilación 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 simulación en el ´programa PROTEUS nos permite una excelente visualización 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 selección 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 también 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 gráfica:

7) Haga un clic derecho en el centro del Microcontrolador y en la ventana que se abre seleccione en la línea de Program File el icono de la carpeta y aparecerá un directorio de búsqueda que tenemos que

hacerlo apuntar al archivo problema14.hex que se formo como resultado de la compilación y que debe de estar en su carpeta de trabajo. Luego presione ok y está listo para la simulación. 8) Presione PLAY en la parte inferior izquierda de la pantalla de ISIS y empezara la simulación. 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 continuación:

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

NEW y aparecerá una ventana sin título.

3) En Untitled digite el siguiente programa. Código .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 ;Dirección del Puerto B ;Dirección del Estado ;Dirección de PCL ;Direcciones de ocupados para ;la subrutina de retardo ;Dirección del registro que lleva el conteo ;Dirección 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 DÍGITOS (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 compilación es exitosa deberá aparecer el archivo .asm con una flecha verde que señala la primera instrucción a ejecutarse. En caso de errores de compilación habrá que corregirlos antes de continuar. Haciendo doble click en el error lo conduce al sitio del error.

Si la compilación es exitosa deberá aparecer una ventana que diga BUILD SUCCEEDED.

7) PROGRAMACION Como resultado de la compilación 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 simulación en el ´programa PROTEUS nos permite una excelente visualización 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 selección 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 también 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 gráfica:

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