Programar y Simular Con Proteus

GUÍA SENCILLA: PROGRAMAR Y SIMULAR EN PROTEUS En este apartado se dan las recomendaciones a seguir para la entrega del p

Views 157 Downloads 1 File size 786KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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

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

Comentarios

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.

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.

Símbolo P

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

a b d

c

e

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.

b

a

“Área de trabajo”

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

Terminales

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.

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.

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

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

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.

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 utilizar RADIX HEX

;

Directiva

; ;

Sección de declaración de registros y variables

; ; ;

Directiva de inicio Salto a inicio la siguiente instrucción se escribirá a

;

05h de la memoria de programa

; ; ;

etiqueta de inicio se cambia al banco 1 para.... se configura RB0 como entrada

;

se vuelve al banco 0

; ;

etiqueta donde se regresa el programa pregunta por el estado de RB0 si es uno

apagar

; ;

de lo contrario enciende el led Va a apagar

PORTB_TISB,1

; ;

Etiqueta donde se enciende el led se coloca en "1" a RB1 para encender el

seguir

;

va a seguir

bcf

PORTB_TRISB,1

; ;

Etiqueta donde se apaga el led se coloca un "0" en RB1 para apagar el led

goto

bucle

; ;

etiqueta para continuar la verificación va al bucle de repetición del programa

;

Directiva de fin de programa

STATUS PORTB_TRISB rp0

EQU EQU EQU

ORG 00 goto inicio ORG 05 partir de la inicio bsf movlw movwf bcf

STATUS,rp0 b'00000001' PORTB_TRISB STATUS,rp0

bucle btfsc PORTB_TRISB,0 apaga el led goto encender bsf led goto apagar seguir END

03 06 5

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

que

indica

el

dispositivo

a

GUÍA DE EJERCICIOS PROPUESTOS. MICROCONTROLADORES

1.

Se desea realizar un programa en

los interruptores e ilumine el led correspondiente

lenguaje ensamblador que permita sumar dos

al interruptor que se halle cerrado.

valores desconocidos que se encuentran en las

7.

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

incremente el valor de un contador CONTA de

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

unidad en unidad hasta alcanzar el valor 7Ah,

2.

Realice un programa que sume un valor

momento en el cual se deberá reiniciar y

guardado en 0Ch de la memoria de datos y el

comenzar nuevamente el conteo. El valor del

valor inmediato 0x07. El resultado de esta

contador deberá mostrarse en las líneas del

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

puerto B.

3.

8.

Se tienen 4 interruptores conectados a

Se desea confeccionar un programa que

En un PIC16F84 que trabaja a 1 MHz se

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

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

que se debe confeccionar tiene que leer el valor

hacer parpadear el led cada 8,2 ms. Confeccione

introducido por estas líneas, sumarle el valor

el programa.

inmediato 5 y guardar el resultado en la dirección

9.

0Ch de la memoria de datos.

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

4.

hacer parpadear el led cada 10 ms. Confeccione

Se tienen 4 interruptores conectados a

En un PIC16F84 que trabaja a 4 MHz se

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

el programa.

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

10.

se desea realizar un programa que permita

CONTA cada 1 segundo y el resultado debe ser

visualizar que interruptor está activo, sabiendo que

visualizado en 4 diodos led conectados en las

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

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

del

contador alcance el valor 0Fh deberá reiniciarse y

interruptor

conectado

a

RA0

y

así

Se

desea

incrementar

sucesivamente.

empezar nuevamente el conteo.

5.

11.

Confeccione un programa que permita

un

contador

Confeccione un programa que permita

sumar y restar el valor introducido por las líneas

incrementar un contador CONTA cada vez que se

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

reciba una señal introducida mediante un pulsador

debe depositarse en la dirección 0Ch y el

que se encuentra conectado a la línea RA4 del

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

puerto A.

6.

12.

Se dispone de cinco interruptores que

Se desea confeccionar un programa que

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

mediante la interrupción por TMR0 permita el

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

encendido y apagado de un led cada 500 ms (500

funcionando a 4 MHz con oscilador externo tipo

ms encendido y 500 ms apagado). El led se

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

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

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

el PIC trabaja a una frecuencia de 4MHz.

también se dispone de un pulsador manual para

13.

provocar

interrupciones, que permita explorar el estado de

electrónico

el

reset. de

A)

diseñe

conexionado

el

del

esquema PIC,

Realice

un

programa,

mediante

(B)

dos interruptores conectados a las líneas RA0 y

confeccione un programa que explore el estado de

RA1 continuamente y reflejar su estado sobre dos

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.

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