UNIVERSIDAD NACIONAL DEL CALLAO FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS EXAMEN PARCIAL Docente: MG.CASAZOLA CR
Views 195 Downloads 5 File size 4MB
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.