12
T.S.U Isaías Rodríguez. [email protected] GUÍA SENCILLA: PROGRAMAR Y SIMULAR EN PROTEUS En este apartado se dan las recomendaciones a seguir para la entrega del proyecto final de Microcontroladores I. El desarrollo del programa en Assembler Para generar el archivo en lenguaje ensamblador: 1. Abrir el Bloc de Notas de office siguiendo esta ruta: Inico/Todos los programas/Bloc de Notas 2. Una vez abierto el programa se deberá escribir el programa el cual debe contener: a. Una cabecera donde se muestre el título. b. Cada línea deberá estar comentada. c. Las secciones para las Sub-rutinas y/o interrupciones deben estar especificadas para su mejor comprensión. Cabecera Comentarios Programa en Assembler

Programar y Simular Con Proteus

Embed Size (px)

Citation preview

Page 1: Programar y Simular Con Proteus

T.S.U Isaías Rodríguez. [email protected]

GUÍA SENCILLA: PROGRAMAR Y SIMULAR EN PROTEUS

En este apartado se dan las recomendaciones a seguir para la entrega del

proyecto final de Microcontroladores I.

El desarrollo del programa en Assembler

Para generar el archivo en lenguaje ensamblador:

1. Abrir el Bloc de Notas de office siguiendo esta ruta:

Inico/Todos los programas/Bloc de Notas

2. Una vez abierto el programa se deberá escribir el programa el cual debe

contener:

a. Una cabecera donde se muestre el título.

b. Cada línea deberá estar comentada.

c. Las secciones para las Sub-rutinas y/o interrupciones deben estar

especificadas para su mejor comprensión.

Cabecera

Comentarios Programa en

Assembler

Page 2: Programar y Simular Con Proteus

T.S.U Isaías Rodríguez. [email protected]

3. Guardar el archivo.

a. Hacer click sobre “Archivo” luego en “Guardar como”

b. Se crea una carpeta nueva para guardar el los archivos referentes al

programa. Click derecho sobre la ventana de guardar como/

Nuevo/carpeta

c. Se nombra el archivo y se guarda con la extensión “.asm”

nombre_del_archivo.asm

d. Click sobre guardar y listo.

Page 3: Programar y Simular Con Proteus

T.S.U Isaías Rodríguez. [email protected]

Crear un proyecto en Proteus 7 y simularlo

1. Una vez instalado Proteus abrir el programa siguiendo la siguiente ruta:

Inicio/ todos los programas/ Proteus 7 Professional/ ISIS 7 Professional

2. Para buscar los componentes se hace click sobre el símbolo “P” en el menú

de la izquierda.

3. Al hacer click en el menú “P” se abre la siguiente ventana para buscar los

componentes.

Símbolo

P

a

b

c

d

e

Page 4: Programar y Simular Con Proteus

T.S.U Isaías Rodríguez. [email protected]

a. Se teclea el componente a buscar

b. Muestra los componentes con el nombre indicado dentro de la

librería

c. Aquí se puede buscar por categoría

d. Muestra el símbolo del componente que se agregará

e. Una vez seleccionado el componente deseado se clickea sobre ok

4. Para colocar un componente en el área de trabajo:

a. Se selecciona del menú de componentes del proyecto a la izquierda

b. Se hace click sobre el lugar del área de trabajo donde se desea

colocar.

5. Para realizar las conecciones sólo se debe hacer click en el terminal del

dispositivo que se desea conectar luego en el siguiente terminal y listo

a b

“Área de trabajo”

Terminales

Page 5: Programar y Simular Con Proteus

T.S.U Isaías Rodríguez. [email protected]

6. Para cambiar las propiedades de un componente se hace “doble click”

sobre el componente y en el cuadro que se despliega tras la acción se

colocan los valores que se desean.

7. Una vez terminado todas las conexiones se procede a cargar el programa

en el microcontrolador para simular. El procedimiento es el siguiente:

a. Se hace click sobre “Source”, luego en add/Remove Source file…

b. En la sección “Source Code Filename” se hace click sobre “New” y

se ubica el arcivo “.asm” que se había guardado.

Page 6: Programar y Simular Con Proteus

T.S.U Isaías Rodríguez. [email protected]

c. Asegurate de que en “Code Generation Tool” aparezca

“MPSAMWIN” si no selecciónalo desde la barra desplegable

pulsando sobre la flecha.

d. Una vez seleccionado el archivo se da click en OK

e. Luego se hace doble click sobre el PIC

f. En el cuadro que aparece seleccionamos la frecuencia del cristal y

hacemos click sobre OK.

Nota que en el cuadro “Program File” aparece el archivo

seleccionado pero con la extensión “.HEX” eso está bien.

g. Luego le damos a “Play” para simular. Si el programa no tiene

errores todo marchará bien y verás una ventana que se abre y se

cierra muy rápido, pero eso dice que está bien, y ya puedes

presionar los pulsadores o ver cómo se comporta lo que

programaste.

Page 7: Programar y Simular Con Proteus

T.S.U Isaías Rodríguez. [email protected]

¿Qué hacer si hay ERRORES y el programa no corre?

Si hay algún error con el programa se abrirá una ventana con muchas

palabras en inglés como la siguiente y el programa no correrá.

Pero no te preocupes que todo tiene solución.

1. Debes leer el reporte donde dice “ERROR [133] y seguido, después de los

dos puntos, dice cual es el error: Symbol not Previously defined

Page 8: Programar y Simular Con Proteus

T.S.U Isaías Rodríguez. [email protected]

(POTB_TRISB). No hace falta saber mucho inglés para darse cuenta que el

símbolo está definido mal, debería ser “PORTB_TRISB” falta una “R”; jeje,

un error tonto, pero ahora ¿dónde está?

2. Para ubicar el error tienes que ir a la carpeta que creaste para guardar los

archivos del programa que creaste ¿recuerdas? Y abres el archivo que

tiene la extensión “.ERR”

3. Abres el archivo con Bloc de Notas y otra vez más cosas en ingles

4. Pero te vas a la línea que comienza por “ERR” justo antes de decir el error

muestra un número, en este caso 21. Ese número indica la línea donde

está el error, así que abrimos nuevamente el archivo “.asm” y clickeamos

en la barra de menú sobre “Ver” y checkeamos la opción “Barra de estado”.

5. Una vez que hacemos eso ahora podemos navegar por las líneas de

Page 9: Programar y Simular Con Proteus

T.S.U Isaías Rodríguez. [email protected]

programación y en la parte inferior derecha de la pantalla nos mostrará el

número de línea y columna en la que estamos. De esa manera ubicamos la

línea donde está el error que se mencionaba: Symbol not Previously

defined (POTB_TRISB) en la línea 21. Y allí está, solo tenemos que

acomodar el símbolo y listo.

6. Debemos repetir esto para cada error hasta que ya no exista ninguno.

7. Guardamos los cambios.

8. Vamos a nuestro proyecto de Proteus y hacemos click sobre “Play” y ya

veremos que todo marcha según lo planeado, es decir, “FUNCIONA

SEGÚN LO PROGRAMADO”

LOS COMPONENTES DEL PROYECTO EXPLICADO

Puedes buscar los componentes así:

Pic: PIC16F84A

Resistencia: RESISTOR

Led: LED-BLUE (O CUALQUIER COLOR PERO LOS QUE

DICEN ACTIVOS)

Pulsador: BUTTON

La fuente y la Tierra: Para estas has click derecho sobre el área de trabajo

selecciona Place/Terminal/ luego GROUND (para la tierra) o POWER (para

la fuente)

NOTA: Para los demás componentes solo tienes que tomarte un tiempo y

buscarlos en la librería.

Page 10: Programar y Simular Con Proteus

T.S.U Isaías Rodríguez. [email protected]

UN EJERCICIO PARA QUE PRACTIQUES

AQUÍ TE DEJO EL PROGRAMA ANTERIOR PARA QUE PRACTIQUE A

GUARDARLO Y SIMULARLO. TIENE UN ERROR PARA QUE LO CORRIJAS Y

LUEGO VEAS COMO FUNCIONA. NO ES EL MISMO ERROR EXPLICADO ASÍ

QUE DEBERÁS SEGUIR LOS PASOS PARA ENCONTRARLO.

;******************************************************************************* ; PROGRAMA PARA REPRESENTAR EL ESTADO DE UN ; PULSADOR CONECTADO EN RB0, MEDIANTE UN LED CONECTADO A RB1 ;******************************************************************************* LIST P=16F84A ; Directiva que indica el dispositivo a utilizar RADIX HEX STATUS EQU 03 ; Sección de declaración PORTB_TRISB EQU 06 ; de registros y variables rp0 EQU 5 ORG 00 ; Directiva de inicio goto inicio ; Salto a inicio ORG 05 ; la siguiente instrucción se escribirá a partir de la ; 05h de la memoria de programa inicio ; etiqueta de inicio bsf STATUS,rp0 ; se cambia al banco 1 para.... movlw b'00000001' ; se configura RB0 como entrada movwf PORTB_TRISB bcf STATUS,rp0 ; se vuelve al banco 0 bucle ; etiqueta donde se regresa el programa btfsc PORTB_TRISB,0 ; pregunta por el estado de RB0 si es uno apaga el led ; de lo contrario enciende el led goto apagar ; Va a apagar encender ; Etiqueta donde se enciende el led bsf PORTB_TISB,1 ; se coloca en "1" a RB1 para encender el led goto seguir ; va a seguir apagar ; Etiqueta donde se apaga el led bcf PORTB_TRISB,1 ; se coloca un "0" en RB1 para apagar el led seguir ; etiqueta para continuar la verificación goto bucle ; va al bucle de repetición del programa END ; Directiva de fin de programa

Page 11: Programar y Simular Con Proteus

T.S.U Isaías Rodríguez. [email protected]

GUÍA DE EJERCICIOS PROPUESTOS. MICROCONTROLADORES

1. Se desea realizar un programa en

lenguaje ensamblador que permita sumar dos

valores desconocidos que se encuentran en las

posiciones 0Ch y 0Dh de la memoria de datos. El

resultado deberá depositarse en la posición 0Eh.

2. Realice un programa que sume un valor

guardado en 0Ch de la memoria de datos y el

valor inmediato 0x07. El resultado de esta

operación deberá depositarse en la dirección 0Ch.

3. Se tienen 4 interruptores conectados a

las líneas RA0 a RA3 del puerto A. El programa

que se debe confeccionar tiene que leer el valor

introducido por estas líneas, sumarle el valor

inmediato 5 y guardar el resultado en la dirección

0Ch de la memoria de datos.

4. Se tienen 4 interruptores conectados a

las líneas RA0 a RA3 del puerto A y cuatro leds

conectados a las líneas RB0 a RB3 del puerto B.

se desea realizar un programa que permita

visualizar que interruptor está activo, sabiendo que

el led conectado a la línea RB0 indica el estado

del interruptor conectado a RA0 y así

sucesivamente.

5. Confeccione un programa que permita

sumar y restar el valor introducido por las líneas

RA0 – RA4 y RB0 – RB4. El resultado de la suma

debe depositarse en la dirección 0Ch y el

resultado de la resta en la dirección 0Dh.

6. Se dispone de cinco interruptores que

actúan como periféricos de entrada y se conectan

a las cinco líneas del puerto A de un PIC16F84

funcionando a 4 MHz con oscilador externo tipo

XT. Como periféricos de salida actúan 5 diodos

led unidos a las líneas RB0–RB4 del puerto B.

también se dispone de un pulsador manual para

provocar el reset. A) diseñe el esquema

electrónico de conexionado del PIC, (B)

confeccione un programa que explore el estado de

los interruptores e ilumine el led correspondiente

al interruptor que se halle cerrado.

7. Se desea confeccionar un programa que

incremente el valor de un contador CONTA de

unidad en unidad hasta alcanzar el valor 7Ah,

momento en el cual se deberá reiniciar y

comenzar nuevamente el conteo. El valor del

contador deberá mostrarse en las líneas del

puerto B.

8. En un PIC16F84 que trabaja a 1 MHz se

conecta un diodo led a la línea RB7. Se desea

hacer parpadear el led cada 8,2 ms. Confeccione

el programa.

9. En un PIC16F84 que trabaja a 4 MHz se

conecta un diodo led a la línea RB7. Se desea

hacer parpadear el led cada 10 ms. Confeccione

el programa.

10. Se desea incrementar un contador

CONTA cada 1 segundo y el resultado debe ser

visualizado en 4 diodos led conectados en las

líneas RB0 – RB3 de la puerta B. Cuando el

contador alcance el valor 0Fh deberá reiniciarse y

empezar nuevamente el conteo.

11. Confeccione un programa que permita

incrementar un contador CONTA cada vez que se

reciba una señal introducida mediante un pulsador

que se encuentra conectado a la línea RA4 del

puerto A.

12. Se desea confeccionar un programa que

mediante la interrupción por TMR0 permita el

encendido y apagado de un led cada 500 ms (500

ms encendido y 500 ms apagado). El led se

encuentra conectado a la línea RB7 y se sabe que

el PIC trabaja a una frecuencia de 4MHz.

13. Realice un programa, mediante

interrupciones, que permita explorar el estado de

dos interruptores conectados a las líneas RA0 y

RA1 continuamente y reflejar su estado sobre dos

Page 12: Programar y Simular Con Proteus

T.S.U Isaías Rodríguez. [email protected]

diodos led conectados a RB0 y RB1. Además

existe un tercer diodo conectado a RB7 que está

parpadeando continuamente cada segundo. El

PIC se encuentra funcionando a 4 MHz.

14. Confeccione un programa que haga rotar

el estado de ON en siete leds conectados desde

RB1 – RB7 cada 10 ms. Se deberá configurar una

interrupción externa que permita, mediante un

pulsador conectado a RB0, detener la rotación y

mostrar el último estado. También se encuentra

conectado un pulsador en RA0 que servirá como

inicializador del programa.

15. Confeccione un programa mediante

interrupciones que controle una alarma conectada

a las cuatro puertas de un automóvil. Conectadas

a RB4 – RB7 hay cuatro sensores que controlan

cada una de las puertas. Cuando cualquiera de las

puertas se abra deberá sonar un Buzzer que está

conectado en RA0. Para detener la alarma se

utilizará un sensor infrarrojo conectado a RB0.

16. Realice un programa que permita la

conversión de 3 dígitos binarios introducidos por

RA0 – RA2 a BCD y ser visualizado mediante un

display 7 segmentos conectado a las líneas del

Puerto B.

17. Confeccione un programa que visualice el

conteo mediante un display 7 segmento conectado

al puerto B. el valor a contar será seleccionado

mediante tres interruptores conectados a las

líneas de menos peso del puerto A. La pausa

entre cada número será de 500 ms. Asuma que el

PIC trabaja con un cristal de 4 MHz.