Вы находитесь на странице: 1из 18

c   




   c

Ô   
    
   
    

   
Las ventajas de que disponemos actualmente los que nos dedicamos a la
electr nica aplicada en cualquiera de sus facetas, es realmente para tener
en cuenta. Hace poco tiempo (ciertamente, cada vez queda m s lejos), no
dispon amos de las herramientas f sicas y las de software con las
prestaciones que se presentan en estos tiempos. Esto es verdaderamente
bueno. En lo referente a equipos f sicos, el que empieza es evidente que no
pueda disponerlas, sin embargo en el apartado de software, existen una
serie de herramientas que prestan gran ayuda a los dise adores incluso a
los que empiezan, facilitando su tarea y aprendizaje en los ltimos, esto
repercute en un mejor aprovechamiento del tiempo y un mayor rendimiento.

Hay una gran variedad de paquetes EDA (Herrami entas de CAD


Electr nico) estas herramientas unas mas conocidas que otras entre ellas
podemos citar: V   , !  , "# ,   $,
!% , ! , etc. Todas son marcas registradas, algunas de ellas
disponen de versiones demo que pueden serv ir para conocer su
funcionamiento. Aqu , nos ocuparemos del &'V!($, se disponen de
manuales en espa ol, muy muy buenos y muy extensos, los cuales sacar n
de dudas a quien las tenga, m s tarde les doy algunos enlaces.

Una de estas herramientas es la que nos ocupa en este pr ctico y r pido


manual con un nivel superficial. Se trata es poner en manos del estudiante,
lector o interesado, las bases m nimas para poner en pr ctica las ideas o
necesidades que le surjan en el ejercicio de su trabajo o simplemente para
su entretenimiento (hobby), por lo tanto, ser s lo eso un asomo al uso de
esta herramienta de dise o y an lisis electr nico, dejando para otros
manuales ya existentes la labor de de sarrollar en profundidad su
conocimiento a fondo.

El objetivo de esta clase tutorial es de mostrar, por la creaci n de un simple


esquem tico, como conducir una simulaci n interactiva que usa  
$. Mientras nos concentramos en el empleo de Componentes Activos y
las instalaciones de eliminaci n poe depurado de fallos del editor ISIS
tambi n miraremos lo b sico de presentar una direcci n de circuito
esquem tica y general. La cobertura plena de estos temas puede ser
encontrada en el Manual ISIS.

&'V!($$
La herramienta &'V!($ es un entorno integrado dise ado para la
realizaci n completa de proyectos para construcci n de equipos
electr nicos en todas sus etapas.   el $istema irtual de odelado
(VSM) combina el modo mixto la simulaci n de circuito de $ !,
componentes animados y modelos completos de dise os basados en
microprocesador para facilitar la co -simulaci n del microcontrolador. Esta
herramienta dispone de los m dulos conocidos por: Captura de
esquem ticos $ $, Layout de )&!$ y Simulador ( $ *$). Por
primera vez, es posible desarrollar y probar dise os antes de construir un
prototipo f sico.

!+,  $ $
Una vez instalado el programa, iniciar $ $, se presenta la suite de dise o
en la que se aprecian dos zonas, a la izquierda un visor del plano del
proyecto, debajo, la ventana para mostrar dispositivos y a la derecha la zona
de trabajo propiamente dicha, en la que el dise ador trazar los circuitos
el ctricos con sus componentes, posteriormente podr ejecutar un modelo
virtual que simule su proyecto en funcionamiento.

En la columna de la izquierda pulsamos sobre el bot n  que nos antepone


la ventana de librer as, en esta ventana elegiremos el dispositivo que
necesitemos con doble-click, eligiendo otros componentes del mismo modo,
lo que enviar dichos dispositivos a la ventana principal, en la columna de la
izquierda donde aparecen los componentes a usar. Incorpora una librer a
de m s de 6.000 modelos de dispositivos digitales y anal gicos. En
posteriores tutoriales se describir su funcionamiento.

" )&!$ 
Es la herramienta que usaremos para la elaboraci n de nuestras placas de
circuito impreso, )&!$ dispone de un posicionador autom tico de
elementos, con generaci n autom tica de pistas. El dise ador con
experiencia ya no tiene que hacer el trabajo duro, es el PC quien se encarga
de esta tarea.

&'$ !
Se trata de una herramienta de simulaci n de circuitos seg n el est ndar
industrial. La versi n b sica, suministrada con todas las versiones de
 , s lo soporta an lisis de transitorios.

$
$ es la herramienta integrada que incluye &'V!($, se trata de un
completo simulador para esquemas electr nicos que contienen
microprocesador. El coraz n de $ es  $ !, un producto que
combina un n cleo de simulaci n anal gica usando el est ndar SPICE3f5,
con modelos animados de los componentes electr nicos y los
microprocesadores que comprenden el circuito, tanto si el programa se ha
escrito en ensamblador como si se ha utilizado un lenguaje de alto nivel,
permitiendo interactuar con nuestro dise o, utilizando elementos gr ficos
animados realizando operaciones de indicadores de entrada y salida.

La simulaci n se realiza en tiempo casi real, los efectos se pueden


considerar pr cticamente como a tiempo real. Incorpora pr cticos controles
de depuraci n paso a paso y visualizaci n del estados de las variables. La
caracter stica m s sorprendente e importante de $ es su capacidad de
simular el software que se ejecuta en el microcontrolador y su interacci n
con cualquier componente electr nico digital o anal gico conectado a l.

!-      , 


,    
Como podremos comprobar y seg n dice el fabricante, la caracter stica
m s sorprendente e importante de $ es su capacidad de simular el
software que se ejecuta en el microcontrolador y su interacci n con
cualquier componente electr nico digital o anal gico conectado a l.

Veamos un ejemplo sencillo: Trazamos un circuito sencillo compuesto por


unos pocos componentes alrededor de un microcontrolador como el
PIC16F84A, el siguiente puede ser el esquema de lo descrito.
En el esquema se aprecia un pulsador P1, un LED con su resistencia R2 de
seguridad, la resistencia R1 para el reset y el micro PIC16F84A. Al usar el
puerto B como entrada, por software reducimos componentes, como son las
resistencias de pull-up del puerto B que internamente ya dispone.

(   $ $
Una vez iniciado el programa, elegimos los componentes que se van a
usar. Pulsamos sobre el icono , esto abrir una
ventana como la que se muestra debajo, en ella se
aprecian tres columnas con distintas posibilidades:

La columna de la izquierda tiene u na celda en la


que podemos entrar el c digo del dispositivo
deseado y podemos automatizar su b squeda,
para ello hemos de conocer el nombre con el que
figura en las librer as disponibles, en otro caso no
dar buenos resultados.
Debajo de esta celda se en cuentra un rea con nombre "Category:" en ella
se ven los nombres de las categor as de los dispositivos y series que
aparecen en las librer as, debajo las subcategorias con algo mas de
definici n por familias y debajo se muestra los distintos fabricantes.

En la medida en que elijamos las distintas categor as, as , se podr


seleccionar con una mayor precisi n, el dispositivo deseado para la
realizaci n m s exacta de nuestro proyecto. A n as , puede que no se
disponga del dispositivo exacto, es el momento de actualizar o pedir
informaci n al fabricante por una opci n que nos pueda interesar.

La columna central, nos mostrar una lista con una cierta cantidad de
elementos y una descripci n, dependiendo del elemento que estemos
buscado, podremos encontrar el dispositivo necesitado, moviendo la
corredera correspondiente, al seleccionarlo su s mbolo y su representaci n
esquem tica ser mostrada en
la columna de al lado. Estas
operaciones se tienen que
realizar por cada uno de los
elementos que constituyen
nuestro circuito, de modo que al
llegar a esta situaci n, habiendo
encontrado el dispositivo
buscado, para ganar tiempo
s lo hay que dar un doble -click
sobre el mismo y sin cerrar esta
ventana podremos seguir
buscando m s elementos.
Cuando demos por terminada la
lista de componentes
pulsaremos "OK" para salir.
Es de especial inter s que al elegir un componente (siempre que sea
posible) nos decidamos por el que disponga de simulaci n animada, como
pueden ser componentes de entrada (generadores, motores) o de salida
(LEDs, Display, LCD, motores). La figura de la derecha puede ayudar al
lector a identificar los elementos esenciales para localizar, seleccionar, girar
y emplazar cada uno de los component es en un determinado circuito.

El bot n corresponde a las librer as y muestra el contenido de las


mismas, esto no lo vamos a ver aqu , ya que se trata de un repaso r pido
sobre esta maravillosa herramienta, hay otros manuales muy buenos que
est n hechos en espa ol, por citar uno de ellos podemos citar los; 11
video Tutoriales, hechos por Germ n Tojeiro sobre Proteus entre otros,
buscando en la red puede encontrar informaci n en p ginas sobre el tema.

Una vez seleccionados todos los componentes necesarios para el


desarrollo del circuito esquem tico, procederemos a la ubicar en el rea de
trabajo cada unos de los componentes. Para ello, seleccionamos en la
columna de la izquierda el componente a ubicar, por ej. el microcontrolador,
en el visor de arriba se muestra la posici n del componente, si es necesario
el usuario mediante las flechas de girar y rotar adecuar la posici n del
mismo con un click en el lugar elegido. Ahora seguir con los dem s
componentes, procurando ubicarlos en lugares cercanos entre si para que
est n relativamente juntos como se aprecia en el gr fico que se muestra
m s arriba.

Quiz s el lector ya haya creado el listado del programa que vamos a


implementar en esta pr ctica, en otro caso este es el momento de hacerlo o
talvez se decida por copiar y pegar el listado que est +, para evitar que
surjan problemas derivados de la ruta entre el   y el propio programa
en asm, es conveniente que ste se ubique en una carpeta donde est el
 . Si ya tenemos todo como se ha descrito, es el momento de seguir.

Con esto ya tenemos el circuito terminado. Si queremos simularlo entonces


debemos proceder de la siguiente forma. En la barra de men , seguir estos
pasos: ir a Source/Add/Remove... como se aprecia en la imagen.
Ahora, con el men $   , se abre una persiana con distintas opciones
que describiremos, seleccionamos la primera )*&,     .
esto presenta a ventana de abajo, en la que primero seleccionamos la
herramienta para generar el c digo (?   
), en este caso
)$, luego seleccionamos el fichero en c digo asm que contiene el
programa que deseamos ejecutar en el micro, exactamente el mismo que
cargar amos en el chip real, con el buscador dentro de la carpeta donde lo
tengamos, con el bot n "/  ", no actuaremos sobre los flags en este
caso y pulsamos "'0" para finalizar, se cerrar la ventana.

El siguiente paso es elegir la herramienta para definir la generaci n del


c digo (›  ?  
 ), en la celda de la persiana " V "
seleccionamos )$, el resto no se toca y para terminar pulsar '0.
Volver a "Source" en la opci n "Setup External Text Editor" del men , nos
puede servir para indicarle al $ $ que queremos usar nuestro editor
habitual, en otro caso no se toca. Cuando lo tenemos todo configurado,
entonces usaremos la opci n " " para que nos genere el archivo HEX,
podr a ser que tuvi ramos alg n error en cuyo caso nos mostrar en una
ventana indicando donde y cuales son las l neas que dan el error para su
correcci n. La ltima opci n, nos sirve para editar el archivo en ASM, con el
que corregir los posibles errores.

Personalmente llegado el caso de la aparici n de errores, hago una copia


del programa en asm y mediante el MPLAB hago la depuraci n del c digo,
una vez he solucionado todos los errores, hago un copiado del programa
terminado y lo pego en el sitio donde estaba en el Prote us, ahora ya lo tengo
depurado, sin embargo lo de nuevo por el "Build" para que me confirme lo
evidente, este paso no es necesario si tambi n he copiado el archivo hex
generado por el MPLAB.
El siguiente paso es: Seleccionar el microcontrolador en el esq uema (en
este caso PIC16F84A), estar resaltado en rojo, entonces pulsamos el
bot n izquierdo del rat n (dije, el izquierdo, se ha borrado el componente!,
hacer CRTL-Z, volver todo a su sitio) y se abrir la siguiente ventana:

En primer lugar si es el caso, modificaremos la frecuencia del reloj, en la


imagen, la celda con asterisco, seg n tengamos previsto. Despu s, en
"Program File:", pulsaremos sobre la carpeta que aparece y buscaremos el
archivo HEX que se ha generado (debe e star en el mismo sitio que el listado
ASM) seleccionar y aceptar, si se tienen mas definiciones o propiedades se
pueden indicar en el apartado del pi del cuadro y aceptar en OK. Con esto
el programa $ $, ya dispone de la informaci n b sica necesaria para
proceder a la simulaci n virtual del programa.

 ,  
Las simulaciones interactivas son controladas por un simple VCR, como el
panel que se comporta como un mando a distancia normal. Este control se
sit a en el lado izquierdo inferior de la pantalla. Si no es visible se debe
seleccionar la opci n de Animaci n de Circuito del men de Gr fico. Hay
cuatro botones con los que se suele controlar el flujo del circuito.

- El bot n , inicia la ejecuci n continuada del programa.


- El bot n de modo )$' simple o paso a paso para seguir con detalle el
proceso, lo que nos ayudar a la hora de depurar nuestro programa. Si el
bot n es presionado y liberado entonces avanzar la simulaci n un paso, si
el bot n se mantiene presionado entonces los avances de animaci n
continuamente hasta que el bot n sea liberado.
- El bot n de )($) suspende la animaci n y entonces puede ser
reactivada pulsando el bot n de PAUSA otra vez, o solo dado un paso
presionando el bot n de PASO. El simulador tambi n entrar en el estado
de pausa si encuentran un punto de interrupci n.
- El bot n de )&)1) indica a PROSPICE deja de hacer la simulaci n en
tiempo real. Toda la animaci n es parada y el simulador es descargado de la
memoria. Todos los indicadores son reinicializados a sus estados inactivos
pero los actuadores (interruptores etc.) conservan sus ajustes existentes.

Se puede configurar el incremento de tiempo de paso simple, usando el


bot n de PASO v a el cuadro de di logo de Configuraci n de Circuito
Animado (es decir la cantidad de tiempo avanzado por cada vez que se
presione del bot n). La capacidad de tiempo de paso es til para supervisar
el da la vuelta m s estrechamente y la vista en el movimiento lento que
afecta que.

Notar que el bot n de paso simple sobre el panel de control de animaci n


es usado para avances incrementales de sistema, pero no para pasos
simples por el c digo donde requieren la regularidad espec fica -
eliminando fallos del c digo se comenta con detalle +.

Durante una animaci n, el tiempo de simulaci n actual y la carga media de


CPU se muestran en la barra de estado. Si la potencia de la CPU es
insuficiente para controlar la simulaci n en tiempo real, la lectura mostrar
el 100 % y el tiempo de simulaci n dejar de avanzar en tiempo real. Aparte
de esto, ning n da o a resaltar de simular muy r pido circuitos, como el
sistema autom ticamente regula la cantidad de simulaci n realizada por
marco de animaci n.

Aparte de componentes ordinarios electr nicos, las simulaciones


interactivas generalmente aprovech an, usan Componentes especiales
Activos. Estos componentes tienen un n mero de estados gr ficos y vienen
en dos condiciones: Indicadores y Actuadores. Los indicadores muestran un
estado gr fico que se cambia seg n alg n par metro moderado del
circuito, mientras los Actuadores permiten determinar por el usuario su
estado, para luego modificar alguna caracter stica del circuito.

Los actuadores son designados por la presencia de los peque os


s mbolos de marcador rojos que pueden ser pulsados con el rat n para
manejar el control. Si se tiene un rat n con una rueda, tambi n se pueden
manejar los actuadores se alando en ellos y haciendo rodar la rueda en la
direcci n apropiada.

")$ (") 2


Tradicionalmente, la simulaci n de circuitos ha sido un asunto no
interactivo. En los primeros d as, complejos listados fueron preparados a
mano, cuya salida consist a en un mont n de n meros. Si se ten a suerte,
obten an una salida pseudo-gr fica trazada con asteriscos para mostrar el
voltaje y formas de onda de las corrientes.

Recientemente, se ha convertido en norma la captura esquem tica sobre


pantalla grafica, pero el proceso de simulaci n es todav a no-interactivo [se
dibuja el circuito, se imprime y entonces] se estudia el result ado en una
especie de procesado posterior.

Esto es en esencia, si el circuito que se prueba es esencialmente est tico


en su comportamiento, por ejemplo, un oscilador que oscila a 1MHz
simplemente. Sin embargo, si se dise a una alarma antirrobo y se quiere
averiguar que pasa cuando un ladr n sin llaves entra el (PIN) n mero de
identificaci n personal incorrecto en el teclado num rico, la funci n
requerida se hace bastante poco pr ctica y hay que recurrir a un prototipo
f sico. Esto es una verg enza, c mo trabajando en el "ciberespacio" que
tiene tanto para ofrecer en t rminos de productividad de dise o y sin
embargo carece de este tipo de simulador.
S lo en c rculos educativos, se ha hecho una tentativa para presentar la
simulaci n de un circuito como la vida real, en la electr nica, donde es
posible actuar rec procamente con el circuito mientras ste es simulado. El
problema aqu ha sido que, los modelos de componentes animados han
sido arduamente codificados en el programa. S lo un n mero limitado de
dispositivos simples se han ofrecido, como motores el ctricos, interruptores,
bombillas, etc. y estos son de poco uso al usuario profesional. Adem s, la
calidad de simulaci n de circuito a menudo no se aproximaba mucho a lo
deseado. Por ejemplo, un producto p rincipal de este tipo no tiene ninguna
informaci n de temporizadores dentro de sus modelos digitales.

Si el programa escribe en uno de los puertos del micro, los niveles l gicos
en los circuitos cambian de acuerdo con esto. Y si los circuitos provocan el
cambio en el estado de alguno de los pines del microprocesador, entonces
estos se visualizar n en pantalla de acuerdo al programa ejecutado.
Exactamente como en la vida real.

Los modelos de CPU utilizados por $ emulan por completo los puertos
de entrada y salida, las interrupciones, los temporizadores, los puertos
USART y cualquier otro perif rico presente en cada uno de los
microprocesadores soportados. A diferencia de un simulador de software
m s sencillo, la interacci n de todos estos perif ricos con los circuitos
externos, se realiza completamente utilizando modelos de ondas.

El simulador $, si el proyecto lo requiere, puede simular esquemas


electr nicos que contengan m s de un microprocesador. Para lo cual,
simplemente se colocan los microprocesadores en el esquema y se cablean
entre s o con el resto de la circuiter a. VSM es una herramienta nica por
su capacidad de ejecutar simulaciones cercanas al tiempo real de sistemas
completos basados en microprocesadores. Sin embargo, su potencia real se
descubre al realizar simulaciones en el modo de ejecuci n del programa
paso a paso. Es entonces cuando se comprueba que VSM trabaja justo igual
que el depurador de software preferido.

La mejor descripci n es una muestra, continuando con el ejemplo que


venimos desarrollando. En este punto, pulsaremos el mencionado bot n
para ejecutar la simulaci n. Que ocurre al pulsar "Play". En primer lugar, el
circuito muestra unos puntos rojos en algunos extremos de ciertos
componentes, si reparamos en ello, veremos que esto ocurre en los puntos
que en un caso real estar an en nivel l gico alto, el color de los que est n a
nivel bajo se representan en azul, esto no indica en un primer momento,
mucha informaci n de los estados en los puntos que nos interesen controlar ,
como se puede ver en la imagen.
Se ha modificado en el circuito, el componente LED est ndar por un LED
"animado", es decir, que interact a, cuando una corriente adecuada le
atraviesa, el LED modifica su apariencia mostrando que est activado como
en el mundo real. Adem s, se observa que en este estado, los componentes
que configuran el circuito, no pueden ser modificados, esto es debido al
hecho de estar ejecut ndose la simulaci n. En la barra de mensajes LOG,
se muestra en verde, la cuenta del tiempo transcurrido de la simulaci n.

Por otra parte, si actuamos con el puntero del rat n sobre el componente
identificado como pulsador, si todo transcurre bien, observamos que el
contacto del pulsador conectado al micro, cae de nivel al ser pulsado y esto
conmuta el estado del LED, esto es debido al c digo que se est
ejecutando junto con la simulaci n. Con cada pulsaci n, se conmuta el
estado del LED. En definitiva, esto es lo que se esperaba en la simulaci n,
lo que confirmar a que el c digo que hemos escrito es correcto y adecuado
para nuestros requisitos.

Esto es una simulaci n simple y como ya est depurado el programa no


ha habido problemas en los que hayamos tenido que entrar a discutir o
describir, no obstante, es cierto que no siemp re ser tan simple, por ese
motivo vamos a contemplar un caso en el que se tenga que solucionar un
problema, en el que tengamos que localizar un tramo de c digo el cual
tengamos que cambiar o modificar en alg n modo.

$,   
Cuando estamos simulando un programa, se pueden dar dos casos, uno
como el anterior, donde todo va bien, aunque es m s probable que se
produzca alg n tipo de error, en cuyo caso ser a deseable poder acceder,
en tiempo de ejecuci n al c digo que generamos, para ver in-situ su
comportamiento. Y en este caso, para que podamos averiguar que ocurre y
en que punto del programa se produce el resultado indeseado o el problema
por llamarlo de alg n modo, se encuentra la simulaci n al Paso. Veamos un
caso concreto.
"  
Para los objetivos de nuestra clase tutorial, hemos preparado el programa
siguiente que permitir al PIC controlar los sem foros. Este programa en un
archivo fuente llamado TL.ASM.

|| |||| ||||
| | |  

| | | |


|
|
||||||||||| | 
  | |||!| |
|
||||||||||| " # $|%&% | | | | '| | ((|
(|
|||||||||||||| |
|||||||||||||| )*|
||||||||||| + , |
|
||||||||||| -|||||%| | | ||| |
||||||||||| -|||| | | |||-|| |
|
| ||||-|||||
| | | || |
.||||||-|||| | | | | | | |
|!| |
|
.||/ | | | | ||||0 |
||||||||||| (/1||| #23 | | | 3-| 4| #23| | |
||! |
||||||||||| (/1||| #2" | | | 3-| 4| #2"| | |
||! |
||||||||||| 1|||||35)2 % || ||"6| |
||||||||||| /| | | | | '| | |
||(| |
||||||||||| (/1|||2" | | |||-|2" |
||||||||||| 1|||||35 )2 %|| |2-||"6|% |
|
.|/ | | | || |
||||||||||| (/1||| | | ||
|
.|||||||-(6 | | | | | | |
(|| |
||||||||(/1||| #2" || | |||| |
||||||||1||||)0 | | | | (|  | |
0|
||||||||/|||%&%
| | | |(||| |
||||||||(/1||| || | | ||||(( |
||||||||||||/ | | | |+|
||||||||-|||| | | | |7|8|
|
||||||||| |  | | | (| | | | | |
||| |
|
||||||||| | +| | | | | | | | -| |
|7||| |
||||||||| | | | | | | | -| "| | | )| *|
|(|
||||||||| |7||9|||+||
||| |
|
-(6.|(1||||)0 | | |(|||0| |
||||||||/1||| ) || | |  | | ( | | 0|
| |
||||||||/|||%&
 | | | |%||:|7|2 |
||||||||/|||%&*9 | | | | | | 3(| 7|
2;3( |
|
||||||||/|||%&
| | | |9||2|7|: |
||||||||/|||%&9* | | | | 
| | 2; 3(| 7|
3(|
|
||||||||||| | |4|||8||8|| |
/.|||(/|||< |
||||||||(/1||| |
|
/.|||||||||/* |
||||||||18|| |
||||||||-||||/ |
|||||||||
|
/*.||1||||* |
/*.|||||18||* |
||||||||-||||/* |
|||||||||
|
||||||||+ ,||

De hecho, hay un error deliberado en dicho c digo, esto lo veremos m s


adelante. Este listado lo puede encontrar en los ejemplos del propio Proteus.

! 3   /  


La siguiente etapa debe enlazar el programa al dise o para que podamos
simular su comportamiento. Hacemos esto con las rdenes sobre el Men
Source. Ir al Men Source y ahora seleccionar la Orden Agregar/Quitar
Archivos Source. Hacer click en bot n Nuevo, buscar (Change) hasta
alcanzar el directorio "Samples\Tutorials" y seleccionar el archivo TL.ASM.
Hacer click sobre Abrir y el archivo deber a aparecer en la lista bajo el
Nombre del archivo de C digo original.

Ahora tenemos que seleccionar el instrumento de generaci n de c digo


para el archivo. Para nuestros objetivos el instrumento MPASM bastar .
Esta opci n deber a estar disponible de la lista desplegada y entonces
pulsando el bot n izquierdo se seleccionar de forma habitual. (Notar que si
se planea usar un ensamblador nuevo o el compilador por pri mera vez, se
tendr que registrar usando la orden de Definir Instrumentos de Generaci n
de C digo).

Finalmente, es necesario especificar que archivo debe ejecutar el


procesador. En nuestro ejemplo este ser tl.hex (el archivo exadecimal
producido por MPASM subsiguiente al tl.asm ensamblado). Para enlazar
este archivo al procesador, bot n derecho sobre el PIC en el esquema y
pulsar luego el izquierdo sobre Editar Propiedades. Esto crear la forma de
di logo de Componente de Revisi n que contiene un campo para el Archivo
de Programa. Si esto no esta ya especificado en el tl.hex entrar a mano la
ruta al archivo o buscar la posici n del archivo v a el bot n '?' a la derecha
del campo. Una vez que usted ha especificado el archivo exadeci mal a
controlar pulse Aceptar para salir del di logo.

Ahora ya hemos enlazado el archivo fuente al dise o y hemos especificado


el Generador de C digo que se usar . Una explicaci n m s detallada
sobre el Sistema de Control de C digo est disponible en la documentaci n
de ayuda.

$,     


Para simular el circuito, pulsar con el rat n sobre el bot n Play del panel
de animaci n en el inferior de la pantalla y d jelo. La barra de estado
deber a aparecer con el tiempo que la animaci n ha sido activa. Tambi n
deber amos notar que uno de los sem foros es verde mientras el otro es
rojo y el estado l gico de los pines se puede ver sobre el esquema. Nota, sin
embargo, que los sem foros no cambian su estado. Esto est previsto, un
error (bug) deliberado que hemos introducido en el c digo. En esta etapa,
ser a apropiado eliminar fallos de nuestro programa e intentar aislarlos del
problema.

1 ,
Para asegurar que estamos atentos en la eliminaci n de fallos del circuito,
pararemos la simulaci n corriente. Una vez que se ha hecho esto se puede
comenzar a eliminar fallos, presionando CTRL+F12. Dos ventanas deber an
aparecer - 1) propiedad valores CPU Registros corrientes y 2) propia que
muestra el c digo fuente original del program a. Cualquiera de estas puede
ser activada en el Men Debug es un servidor de otras ventanas
informativas. Tambi n podemos activar la Ventana Watch Window en la que
podemos supervisar los cambios apropiados de la variable state. Una
explicaci n completa de estas caracter sticas est disponible en la secci n
titulada Watch Window en la documentaci n de ayuda.

Centr ndonos por ahora en la ventana Source, en el lado izquierdo notar el


icono flecha sobre punto rojo. Esto, con la l nea resaltada indica la posici n
actual del contador de programa (PC). Para poner un punto de interrupci n
(breackpoint) aqu pulsar ENTER, el punto de ruptura siempre se resaltar
la l nea. Si quisi ramos limpiar el punto de ruptura lo podr amos hacer
pulsando ENTER otra vez, pero en e ste momento lo dejaremos puesto.

)-  &
Mirando el programa, se pueden ver los bucles rotar sobre s mismo en un
ciclo que se repite. Por lo tanto es una buena idea el poner un punto de
interrupci n al principio de este lazo antes de empezar. Esto se puede
hacer, pulsando el bot n Pausa y resaltando la l nea (en la direcci n 000E)
con el rat n y entonces pulsar F9. Luego pulsar F12 para poner el programa
a correr. El programa se detendr en el punto de ruptura que pusimos al
principio del bucle.

El programa en el Men Debug da una lista de las llaves de depuraci n,


pero principalmente usaremos F11 para seguir el programa. Ahora pulsar
F11, entonces la flecha roja de la izquierda (puntero) bajar a la pr xima
instrucci n. Qu hemos hecho realmente, hemos ejecutado la instrucci n
"clrw" y se ha parado. Se puede verificar esto, viendo el registro W en la
ventana de CPU Registros, advirtiendo que se ha puesto a cero.

Necesitar amos determinar lo que esperamos que suceda en la ejecuci n


de la pr xima instrucci n y entonces probarla, para ver si sucede realmente.
Por ejemplo, la pr xima instrucci n del programa, debe mover el contenido
del registro W al PUERTO A, es decir el Puerto A se debe limpiar. Debe
advertirse que, ambos puertos han sido aclarados, listos para la salida (como
indica el registro TRISB) y que la variable state ha sido puesta correctamente
a 0. Ejecutar esta instrucci n y verificar en la ventana ( & , que
esto es verdad. Continuar en esta l nea, hasta que se alcance el punto de
ruptura por segunda vez. Para ver mejor como se producen los pasos,
pongamos otro punto de ruptura justo en la l nea 0015, pulsando F9 y
sigamos.

Como esto es una funci n de )"" (llamada) tenemos la opci n de al


Paso (pulsando F10), pero para asegurarnos pasaremos por cada
instrucci n. Al pulsar F11 aqu nos saltar a la primera l nea ejecutable de
la funci n de ,. y se parar . Al dar un paso m s, vemos que la
operaci n ,  era acertada ya que se 'aterriza' en el lugar correcto, pa ra
agregar una desviaci n de cero en la tabla de consulta. Por lo tanto, cuando
volvemos al programa principal, tenemos la m scara que nosotros
esper bamos. Dar a n un paso m s para escribir la m scara al puerto y
podemos ver el resultado correcto en el esquema. Un nuevo paso otra vez
para incrementar state, tambi n es un xito como se ve en la ventana (
& , donde el valor para el registro W es incrementado en 1.

Un paso nos tomar la instrucci n dise ada para mantener state cerca de
cero cuando se incrementa por arriba de 3. Esto, no funciona como deber a,
se puede ver en la   4 / . Claramente, state se debe incrementar
aqu para indicar 1 en la orden, para poner la m scara correctamente en la
pr xima ejecuci n del lazo.

Nos tomar un paso la instrucci n dise ada, para mantener el registro


state cerca de cero, cuando se incremente por encima de 3. Esto, no
funciona como deber a, se puede ver en la    4 / . El registro
state debe ser claramente incrementado para indicar 1 aqu de modo que la
m scara sea puesta correctamente en la pr xima ejecuci n del lazo.

!  567
Un vistazo m s de cerca revela que el problema es causado por la orden
AND con 4 en vez de 3. Los estados que queremos ver de la tabla son
0,1,2,3 y cualquiera de stos sumado (ANDed) con 4 da 0. De ah que al
correr la simulaci n el estado de los sem foros no cambia. La soluci n del
problema es cambiar simplemente en la instrucci n AND (sumar) a state con
3 en lugar de 4. Esto significa que state se incrementar a 3 y cuando el
registro W es incrementado a 4 state devolver un 0. Una soluci n
alternativa ser a de probar simplemente para el caso cuando el registro "W"
tenga 4 y para reiniciarlo poner a cero.

Este es un corto ejemplo que ilustra lo b sico de las t cnicas de


depuraci n de fallos disponibles en Proteus VSM, hay mucha funcionalidad
adicional disponible. Se re comiendan que se mire la secci n sobre Nivel de
Depuraci n de c digo fuente (Source Level Debugging) para una
explicaci n m s detallada.

2'V) En pr ximos art culos, siempre que lo requiera el caso, tratar de


utilizar este programa de simulaci n y depuraci n que es Proteus, para
mostrar otras cualidades de esta herramienta, de modo que el interesado
pueda ampliar sus conocimientos. Este peque o manual producto de mi
experiencia, parte de la ayuda que acompa a al Proteus y de lo aprendido en
los tutoriales que tan bien ha elaborado el profesor Germ n Tojeiro, al que
quiero felicitar desde aqu .

Volver al    de art culos PIC.


Creada el: 12-12-07
Actualizada el: 12-12-07
Copyright 2007, Hispavila.com. Reservados todos los derechos. | Declaraci n de privacidad | P ngase en contacto con
nosotros

Вам также может понравиться