Programar y Simular Con Proteus
-
Upload
isaias-rodriguez -
Category
Documents
-
view
91 -
download
7
Transcript of 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
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.
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
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
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 ; 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
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
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.