You are on page 1of 17

MANUAL PRACTICO DE PROTEUS VSM

Introduccin.
Las ventajas de que disponemos actualmente los que nos dedicamos a la
electrnica aplicada en cualquiera de sus facetas, es realmente para tener en
cuenta. Hace poco tiempo (ciertamente, cada vez queda ms lejos), no
disponamos de las herramientas fsicas y las de softare con las
prestaciones que se presentan en estos tiempos. !sto es verdaderamente
"ueno. !n lo referente a equipos fsicos, el que empieza es evidente que no
pueda disponerlas, sin em"ar#o en el apartado de softare, e$isten una serie
de herramientas que prestan #ran 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 #ran variedad de paquetes !'( (Herramientas de )('
!lectrnico) estas herramientas unas mas conocidas que otras entre ellas
podemos citar* TangoPCB, Elegance, Lie!ire, Proteu" VSM, E#$re"PCB,
Eagle, etc. +odas son marcas re#istradas, al#unas de ellas disponen de
versiones demo que pueden servir para conocer su funcionamiento. (qu, nos
ocuparemos del PROTEUS%, se disponen de manuales en espa%ol, muy muy
"uenos y muy e$tensos, los cuales sacarn de dudas a quien las ten#a, ms
tarde les doy al#unos enlaces.
,na de estas herramientas es la que nos ocupa en este prctico y rpido
manual con un nivel superficial. -e trata es poner en manos del estudiante,
lector o interesado, las "ases mnimas para poner en prctica las ideas o
necesidades que le surjan en el ejercicio de su tra"ajo o simplemente para su
entretenimiento (ho""y), por lo tanto, ser slo eso un asomo al uso de esta
herramienta de dise%o y anlisis electrnico, dejando para otros manuales ya
e$istentes la la"or de desarrollar en profundidad su conocimiento a fondo.
!l o"jetivo de esta clase tutorial es de mostrar, por la creacin de un simple
esquemtico, como conducir una simulacin interactiva que usa Proteu"
VSM. .ientras nos concentramos en el empleo de )omponentes (ctivos y las
instalaciones de eliminacin poe depurado de fallos del editor /-/- tam"i0n
miraremos lo "sico de presentar una direccin de circuito esquemtica y
#eneral. La co"ertura plena de estos temas puede ser encontrada en el
.anual /-/-.
PROTEUS VSM.
La herramienta PROTEUS% es un entorno inte#rado dise%ado para la
realizacin completa de proyectos para construccin de equipos electrnicos
en todas sus etapas. Proteu" el Sistema Virtual de Modelado (1-.) com"ina
el modo mi$to la simulacin de circuito de SPICE, componentes animados y
modelos completos de dise%os "asados en microprocesador para facilitar la
co2simulacin del microcontrolador. !sta herramienta dispone de los mdulos
conocidos por* )aptura de esquemticos ISIS, Layout de ARES PCB y
-imulador (ProS$ice&VSM). 3or primera vez, es posi"le desarrollar y pro"ar
dise%os antes de construir un prototipo fsico.
Ca$tura de E"'ue()tico ISIS.
,na vez instalado el pro#rama, iniciar ISIS, se presenta la suite de dise%o
en la que se aprecian dos zonas, a la izquierda un visor del plano del
proyecto, de"ajo, la ventana para mostrar dispositivos y a la derecha la zona
de tra"ajo propiamente dicha, en la que el dise%ador trazar los circuitos
el0ctricos con sus componentes, posteriormente podr ejecutar un modelo
virtual que simule su proyecto en funcionamiento.
!n la columna de la izquierda pulsamos so"re el "otn P que nos antepone
la ventana de li"reras, en esta ventana ele#iremos el dispositivo que
necesitemos con do"le2clic4, eli#iendo 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. /ncorpora una li"rera de
ms de 5.666 modelos de dispositivos di#itales y anal#icos. !n posteriores
tutoriales se descri"ir su funcionamiento.
La*out de ARES PCB.
!s la herramienta que usaremos para la ela"oracin de nuestras placas de
circuito impreso, ARES dispone de un posicionador automtico de elementos,
con #eneracin automtica de pistas. !l dise%ador con e$periencia ya no tiene
que hacer el tra"ajo duro, es el 3) quien se encar#a de esta tarea.
PROSPICE.
-e trata de una herramienta de simulacin de circuitos se#&n el estndar
industrial. La versin "sica, suministrada con todas las versiones de
Proteu", slo soporta anlisis de transitorios.
VSM.
VSM es la herramienta inte#rada que incluye PROTEUS, se trata de un
completo simulador para esquemas electrnicos que contienen
microprocesador. !l corazn de VSM es ProSPICE, un producto que com"ina
un n&cleo de simulacin anal#ica usando el estndar -3/)!7f8, con
modelos animados de los componentes electrnicos y los microprocesadores
que comprenden el circuito, tanto si el pro#rama se ha escrito en ensam"lador
como si se ha utilizado un len#uaje de alto nivel, permitiendo interactuar con
nuestro dise%o, utilizando elementos #rficos animados realizando
operaciones de indicadores de entrada y salida.
La simulacin se realiza en tiempo casi real, los efectos se pueden
considerar prcticamente como a tiempo real. /ncorpora prcticos controles de
depuracin paso a paso y visualizacin del estados de las varia"les. La
caracterstica ms sorprendente e importante de VSM es su capacidad de
simular el softare que se ejecuta en el microcontrolador y su interaccin con
cualquier componente electrnico di#ital o anal#ico conectado a 0l.
E+ecucin del $rogra(a con
(icro$roce"adore".
)omo podremos compro"ar y se#&n dice el fa"ricante, la caracterstica ms
sorprendente e importante de VSM es su capacidad de simular el softare
que se ejecuta en el microcontrolador y su interaccin con cualquier
componente electrnico di#ital o anal#ico conectado a 0l.
1eamos un ejemplo sencillo* +razamos un circuito sencillo compuesto por
unos pocos componentes alrededor de un microcontrolador como el
3/)95:;<(, el si#uiente puede ser el esquema de lo descrito.
!n el esquema se aprecia un pulsador 39, un L!' con su resistencia => de
se#uridad, la resistencia =9 para el reset y el micro 3/)95:;<(. (l usar el
puerto ? como entrada, por softare reducimos componentes, como son las
resistencias de pull2up del puerto ? que internamente ya dispone.
U"o del Ca$turador ISIS
,na vez iniciado el pro#rama, ele#imos los componentes que se van a
usar. 3ulsamos so"re el icono , esto a"rir una
ventana como la que se muestra de"ajo, en ella se
aprecian tres columnas con distintas posi"ilidades*
La columna de la izquierda tiene una celda en la
que podemos entrar el cdi#o del dispositivo deseado
y podemos automatizar su "&squeda, para ello hemos
de conocer el nom"re con el que fi#ura en las li"reras
disponi"les, en otro caso no dar "uenos resultados.
'e"ajo de esta celda se encuentra un rea con nom"re @)ate#ory*@ en ella
se ven los nom"res de las cate#oras de los dispositivos y series que
aparecen en las li"reras, de"ajo las su"cate#orias con al#o mas de definicin
por familias y de"ajo se muestra los distintos fa"ricantes.
!n la medida en que elijamos las distintas cate#oras, as, se podr
seleccionar con una mayor precisin, el dispositivo deseado para la
realizacin ms e$acta de nuestro proyecto. (&n as, puede que no se
dispon#a del dispositivo e$acto, es el momento de actualizar o pedir
informacin al fa"ricante por una opcin que nos pueda interesar.
La columna central, nos mostrar una lista con una cierta cantidad de
elementos y una descripcin, dependiendo del elemento que estemos
"uscado, podremos encontrar el dispositivo necesitado, moviendo la corredera
correspondiente, al seleccionarlo su sm"olo y su representacin esquemtica
ser mostrada en la columna de al lado. !stas operaciones se tienen que
realizar por cada uno de los elementos que constituyen nuestro circuito, de
modo que al lle#ar a esta situacin, ha"iendo encontrado el dispositivo
"uscado, para #anar tiempo slo hay que dar un do"le2clic4 so"re el mismo y
sin cerrar esta ventana podremos se#uir "uscando ms elementos. )uando
demos por terminada la lista de
componentes pulsaremos @AB@
para salir.
!s de especial inter0s que al
ele#ir un componente (siempre que
sea posi"le) nos decidamos por el
que dispon#a de simulacin
animada, como pueden ser
componentes de entrada
(#eneradores, motores) o de salida
(L!'s, 'isplay, L)', motores). La
fi#ura de la derecha puede ayudar al lector a identificar los elementos
esenciales para localizar, seleccionar, #irar y emplazar cada uno de los
componentes en un determinado circuito.
!l "otn corresponde a las li"reras y muestra el contenido de las mismas,
esto no lo vamos a ver aqu, ya que se trata de un repaso rpido so"re esta
maravillosa herramienta, hay otros manuales muy "uenos que estn hechos en
espa%ol, por citar uno de ellos podemos citar losC 99 video +utoriales, hechos
por Dermn +ojeiro so"re 3roteus entre otros, "uscando en la red puede
encontrar informacin en p#inas so"re el tema.
,na vez seleccionados todos los componentes necesarios para el desarrollo
del circuito esquemtico, procederemos a la u"icar en el rea de tra"ajo cada
unos de los componentes. 3ara ello, seleccionamos en la columna de la
izquierda el componente a u"icar, por ej. el microcontrolador, en el visor de
arri"a se muestra la posicin del componente, si es necesario el usuario
mediante las flechas de #irar y rotar adecuar la posicin del mismo con un
clic4 en el lu#ar ele#ido. (hora se#uir con los dems componentes,
procurando u"icarlos en lu#ares cercanos entre si para que est0n
relativamente juntos como se aprecia en el #rfico que se muestra ms arri"a.
Euizs el lector ya haya creado el listado del pro#rama que vamos a
implementar en esta prctica, en otro caso este es el momento de hacerlo o
talvez se decida por copiar y pe#ar el listado que est a'u,, para evitar que
surjan pro"lemas derivados de la ruta entre el Proteu" y el propio pro#rama
en asm, es conveniente que 0ste se u"ique en una carpeta donde est0 el
Proteu". -i ya tenemos todo como se ha descrito, es el momento de se#uir.
)on esto ya tenemos el circuito terminado. -i queremos simularlo entonces
de"emos proceder de la si#uiente forma. !n la "arra de men&, se#uir estos
pasos* ir a -ourceF(ddF=emove... como se aprecia en la ima#en.
(hora, con el men& Source, se a"re una persiana con distintas opciones
que descri"iremos, seleccionamos la primera Add&Re(oe "ouce -i.e" esto
presenta la ventana de a"ajo, en la que primero seleccionamos la herramienta
para #enerar el cdi#o (Code Generation Tool), en este caso MPASM, lue#o
seleccionamos el fichero en cdi#o asm que contiene el pro#rama que
deseamos ejecutar en el micro, e$actamente el mismo que car#aramos en el
chip real, con el "uscador dentro de la carpeta donde lo ten#amos, con el
"otn @C/ange@, no actuaremos so"re los fla#s en este caso y pulsamos @O0@
para finalizar, se cerrar la ventana.
!l si#uiente paso es ele#ir la herramienta para definir la #eneracin del
cdi#o (Define Code Generation Tools...), en la celda de la persiana @Tool@
seleccionamos MPASM, el resto no se toca y para terminar pulsar O0.
1olver a @-ource@ en la opcin @-etup !$ternal +e$t !ditor@ del men&, nos
puede servir para indicarle al ISIS que queremos usar nuestro editor ha"itual,
en otro caso no se toca. )uando lo tenemos todo confi#urado, entonces
usaremos la opcin @Build@ para que nos #enere el archivo H!G, podra ser
que tuvi0ramos al#&n error en cuyo caso nos mostrar en una ventana
indicando donde y cuales son las lneas que dan el error para su correccin.
La &ltima opcin, nos sirve para editar el archivo en (-., con el que corre#ir
los posi"les errores.
3ersonalmente lle#ado el caso de la aparicin de errores, ha#o una copia
del pro#rama en asm y mediante el .3L(? ha#o la depuracin del cdi#o,
una vez he solucionado todos los errores, ha#o un copiado del pro#rama
terminado y lo pe#o en el sitio donde esta"a en el 3roteus, ahora ya lo ten#o
depurado, sin em"ar#o lo de nuevo por el @?uild@ para que me confirme lo
evidente, este paso no es necesario si tam"i0n he copiado el archivo he$
#enerado por el .3L(?.
!l si#uiente paso es* -eleccionar el microcontrolador en el esquema (en
este caso 3/)95:;<(), estar resaltado en rojo, entonces pulsamos el "otn
izquierdo del ratn (dije, el izquierdo, Hse ha "orrado el componenteI, hacer
)=+L2J, volver todo a su sitio) y se a"rir la si#uiente ventana*
!n primer lu#ar si es el caso, modificaremos la frecuencia del reloj, en la
ima#en, la celda con asterisco, se#&n ten#amos previsto. 'espu0s, en
@3ro#ram :ile*@, pulsaremos so"re la carpeta que aparece y "uscaremos el
archivo H!G que se ha #enerado (de"e estar en el mismo sitio que el listado
(-.) seleccionar y aceptar, si se tienen mas definiciones o propiedades se
pueden indicar en el apartado del pi0 del cuadro y aceptar en AB. )on esto el
pro#rama ISIS, ya dispone de la informacin "sica necesaria para proceder a
la simulacin virtual del pro#rama.
Panel de "i(ulacin.
Las simulaciones interactivas son controladas por un simple 1)=, como el
panel que se comporta como un mando a distancia normal. !ste control se
sit&a en el lado izquierdo inferior de la pantalla. -i no es visi"le se de"e
seleccionar la opcin de (nimacin de )ircuito del men& de Drfico. Hay
cuatro "otones con los que se suele controlar el flujo del circuito.
2 !l "otn Pla*, inicia la ejecucin continuada del pro#rama.
2 !l "otn de modo PASO simple o paso a paso para se#uir con detalle el
proceso, lo que nos ayudar a la hora de depurar nuestro pro#rama. -i el
"otn es presionado y li"erado entonces avanzar la simulacin un paso, si el
"otn se mantiene presionado entonces los avances de animacin
continuamente hasta que el "otn sea li"erado.
2 !l "otn de PAUSA suspende la animacin y entonces puede ser
reactivada pulsando el "otn de 3(,-( otra vez, o solo dado un paso
presionando el "otn de 3(-A. !l simulador tam"i0n entrar en el estado de
pausa si encuentran un punto de interrupcin.
2 !l "otn de PARADA indica a 3=A-3/)! deja de hacer la simulacin en
tiempo real. +oda la animacin es parada y el simulador es descar#ado de la
memoria. +odos los indicadores son reinicializados a sus estados inactivos
pero los actuadores (interruptores etc.) conservan sus ajustes e$istentes.
-e puede confi#urar el incremento de tiempo de paso simple, usando el
"otn de 3(-A va el cuadro de dilo#o de )onfi#uracin de )ircuito
(nimado (es decir la cantidad de tiempo avanzado por cada vez que se
presione del "otn). La capacidad de tiempo de paso es &til para supervisar el
da la vuelta ms estrechamente y la vista en el movimiento lento que afecta
que.
Kotar que el "otn de paso simple so"re el panel de control de animacin es
usado para avances incrementales de sistema, pero no para pasos simples
por el cdi#o donde requieren la re#ularidad especfica 2 eliminando fallos del
cdi#o se comenta con detalle a'u,.
'urante una animacin, el tiempo de simulacin actual y la car#a media de
)3, se muestran en la "arra de estado. -i la potencia de la )3, es
insuficiente para controlar la simulacin en tiempo real, la lectura mostrar el
966 L y el tiempo de simulacin dejar de avanzar en tiempo real. (parte de
esto, nin#&n da%o a resaltar de simular muy rpido circuitos, como el sistema
automticamente re#ula la cantidad de simulacin realizada por marco de
animacin.
(parte de componentes ordinarios electrnicos, las simulaciones
interactivas #eneralmente aprovechan, usan )omponentes especiales
(ctivos. !stos componentes tienen un n&mero de estados #rficos y vienen
en dos condiciones* /ndicadores y (ctuadores. Los indicadores muestran un
estado #rfico que se cam"ia se#&n al#&n parmetro moderado del circuito,
mientras los (ctuadores permiten determinar por el usuario su estado, para
lue#o modificar al#una caracterstica del circuito.
Los actuadores son desi#nados por la presencia de los peque%os sm"olos
de marcador rojos que pueden ser pulsados con el ratn para manejar el
control. -i se tiene un ratn con una rueda, tam"i0n se pueden manejar los
actuadores se%alando en ellos y haciendo rodar la rueda en la direccin
apropiada.
LA SIMULACI1N.
+radicionalmente, la simulacin de circuitos ha sido un asunto no interactivo.
!n los primeros das, complejos listados fueron preparados a mano, cuya
salida consista en un montn de n&meros. -i se tena suerte, o"tenan una
salida pseudo2#rfica trazada con asteriscos para mostrar el voltaje y formas
de onda de las corrientes.
=ecientemente, se ha convertido en norma la captura esquemtica so"re
pantalla #rafica, pero el proceso de simulacin es todava no2interactivo Mse
di"uja el circuito, se imprime y entoncesN se estudia el resultado en una
especie de procesado posterior.
!sto es en esencia, si el circuito que se prue"a es esencialmente esttico en
su comportamiento, por ejemplo, un oscilador que oscila a 9.Hz
simplemente. -in em"ar#o, si se dise%a una alarma antirro"o y se quiere
averi#uar que pasa cuando un ladrn sin llaves entra el (3/K) n&mero de
identificacin personal incorrecto en el teclado num0rico, la funcin requerida
se hace "astante poco prctica y hay que recurrir a un prototipo fsico. !sto es
una ver#Oenza, cmo tra"ajando en el @ci"erespacio@ que tiene tanto para
ofrecer en t0rminos de productividad de dise%o y sin em"ar#o carece de este
tipo de simulador.
-lo en crculos educativos, se ha hecho una tentativa para presentar la
simulacin de un circuito como la vida real, en la electrnica, donde es posi"le
actuar recprocamente con el circuito mientras 0ste es simulado. !l pro"lema
aqu ha sido que, los modelos de componentes animados han sido
arduamente codificados en el pro#rama. -lo un n&mero limitado de
dispositivos simples se han ofrecido, como motores el0ctricos, interruptores,
"om"illas, etc. y estos son de poco uso al usuario profesional. (dems, la
calidad de simulacin de circuito a menudo no se apro$ima"a mucho a lo
deseado. 3or ejemplo, un producto principal de este tipo no tiene nin#una
informacin de temporizadores dentro de sus modelos di#itales.
-i el pro#rama escri"e en uno de los puertos del micro, los niveles l#icos
en los circuitos cam"ian de acuerdo con esto. P si los circuitos provocan el
cam"io en el estado de al#uno de los pines del microprocesador, entonces
estos se visualizarn en pantalla de acuerdo al pro#rama ejecutado.
!$actamente como en la vida real.
Los modelos de )3, utilizados por VSM emulan por completo los puertos
de entrada y salida, las interrupciones, los temporizadores, los puertos
,-(=+ y cualquier otro perif0rico presente en cada uno de los
microprocesadores soportados. ( diferencia de un simulador de softare ms
sencillo, la interaccin de todos estos perif0ricos con los circuitos e$ternos, se
realiza completamente utilizando modelos de ondas.
!l simulador VSM, si el proyecto lo requiere, puede simular esquemas
electrnicos que conten#an ms de un microprocesador. 3ara lo cual,
simplemente se colocan los microprocesadores en el esquema y se ca"lean
entre s o con el resto de la circuitera. 1-. es una herramienta &nica por su
capacidad de ejecutar simulaciones cercanas al tiempo real de sistemas
completos "asados en microprocesadores. -in em"ar#o, su potencia real se
descu"re al realizar simulaciones en el modo de ejecucin del pro#rama paso
a paso. !s entonces cuando se comprue"a que 1-. tra"aja justo i#ual que el
depurador de softare preferido.
La mejor descripcin es una muestra, continuando con el ejemplo que
venimos desarrollando. !n este punto, pulsaremos el mencionado "otn para
ejecutar la simulacin. Eue ocurre al pulsar @3lay@. !n primer lu#ar, el circuito
muestra unos puntos rojos en al#unos e$tremos de ciertos componentes, si
reparamos en ello, veremos que esto ocurre en los puntos que en un caso real
estaran en nivel l#ico alto, el color de los que estn a nivel "ajo se
representan en azul, esto no indica en un primer momento, mucha informacin
de los estados en los puntos que nos interesen controlar, como se puede ver
en la ima#en.
-e ha modificado en el circuito, el componente L!' estndar por un L!'
@animado@, es decir, que interact&a, cuando una corriente adecuada le
atraviesa, el L!' modifica su apariencia mostrando que est activado como
en el mundo real. (dems, se o"serva que en este estado, los componentes
que confi#uran el circuito, no pueden ser modificados, esto es de"ido al hecho
de estar ejecutndose la simulacin. !n la "arra de mensajes LAD, se
muestra en verde, la cuenta del tiempo transcurrido de la simulacin.
3or otra parte, si actuamos con el puntero del ratn so"re el componente
identificado como pulsador, si todo transcurre "ien, o"servamos que el
contacto del pulsador conectado al micro, cae de nivel al ser pulsado y esto
conmuta el estado del L!', esto es de"ido al cdi#o que se est ejecutando
junto con la simulacin. )on cada pulsacin, se conmuta el estado del L!'.
!n definitiva, esto es lo que se espera"a en la simulacin, lo que confirmara
que el cdi#o que hemos escrito es correcto y adecuado para nuestros
requisitos.
!sto es una simulacin simple y como ya est depurado el pro#rama no ha
ha"ido pro"lemas en los que hayamos tenido que entrar a discutir o descri"ir,
no o"stante, es cierto que no siempre ser tan simple, por ese motivo vamos
a contemplar un caso en el que se ten#a que solucionar un pro"lema, en el
que ten#amos que localizar un tramo de cdi#o el cual ten#amos que cam"iar
o modificar en al#&n modo.
Si(ulacin al Pa"o.
)uando estamos simulando un pro#rama, se pueden dar dos casos, uno
como el anterior, donde todo va "ien, aunque es ms pro"a"le que se
produzca al#&n tipo de error, en cuyo caso sera desea"le poder acceder, en
tiempo de ejecucin al cdi#o que #eneramos, para ver in2situ su
comportamiento. P en este caso, para que podamos averi#uar que ocurre y en
que punto del pro#rama se produce el resultado indeseado o el pro"lema por
llamarlo de al#&n modo, se encuentra la simulacin al 3aso. 1eamos un caso
concreto.
Li"tado -uente.
3ara los o"jetivos de nuestra clase tutorial, hemos preparado el pro#rama
si#uiente que permitir al 3/) controlar los semforos. !ste pro#rama en un
archivo fuente llamado +L.(-..
LIST p=16F84 ; PIC16F844 es el procesador
objetivo
#include P16F84!I"C; cabecera del arc#ivo Include
C$L%C& '(1' ; )acro de *e*oria te*poral
state
l1+l,
-".C
or/ ' ; vector de inicio!
/oto setports ; salta al codi/o de inicio
or/ 4 ; vector Interrupt!
alto0 /oto alto ; sentarse a esperar sin #acer nada!
setports0 clr1 ; poner cero en 2!
*ov13 P%4T5 ; 5se/ura 6ue P%4T5 es cero antes de
#abilitarlo!
*ov13 P%4T$ ; 5se/ura 6ue P%4T$ es cero antes de
#abilitarlo!
bs3 ST5T7S+4P' ; Selecciona $an8 1
clr1 ; )ascara para todos los bits co*o
salida!
*ov13 T4IS$ ; poner en re/istro T4IS$!
bc3 ST5T7S+4P' ; 4e/resa al $an8 '!
initialise0 clr1 ; estado inicial!
*ov13 state ; ponlo!
loop0 call /et*as8 ; Convierte state a *ascara de bits!
*ov13 P%4T$ ; escribelo en el portb
inc3 state+2 ; Incre*enta state en 2!
andl1 '('4 ; *antener cerca de cero!
*ov13 state ; Ponlo en a la *e*oria
call 1ait ; -sperar
/oto loop ; 9 la:o
; Funci;n para devolver *ascara de bits del estado actual en puerto
de salida!
; -l nibble superior contiene los bits para un jue/o de luces 9 el
; nibble bajo los bits para otros jue/o! $it 1 es rojo+ , es a*bar
; 9 bit < es verde! -l bit 4 no se usa!
/et*as80 *ov3 state+2 ; *ueva state a 2
add13 PCL+F ; a=adir la co*pensaci;n de 2 a PCL
retl1 '(41 ; state==' es >erde 9 4ojo
retl1 '(,< ; state==1 es 5*bar 9 4ojo?5*bar
retl1 '(14 ; state==< es 4ojo 9 >erde
retl1 '(<, ; state==4 es 4eojo?5*bar 9 5*bar!
; Funci;n 6ue usa dos la:os para alcan:ar un retardo!
1ait0 *ovl1 @
*ov13 l1
110 call 1ait,
dec3s: l1
/oto 11
return
1ait,0 clr3 l,
1,0 dec3s: l,
/oto 1,
return
-".
'e hecho, hay un error deli"erado en dicho cdi#o, esto lo veremos ms
adelante. !ste listado lo puede encontrar en los ejemplos del propio 3roteus.
Enla2ando el arc/io -uente.
La si#uiente etapa de"e enlazar el pro#rama al dise%o para que podamos
simular su comportamiento. Hacemos esto con las rdenes so"re el .en&
-ource. /r al .en& -ource y ahora seleccionar la Arden (#re#arFEuitar
(rchivos -ource. Hacer clic4 en "otn Kuevo, "uscar ()han#e) hasta alcanzar
el directorio @-amplesQ+utorials@ y seleccionar el archivo +L.(-.. Hacer clic4
so"re ("rir y el archivo de"era aparecer en la lista "ajo el Kom"re del archivo
de )di#o ori#inal.
(hora tenemos que seleccionar el instrumento de #eneracin de cdi#o
para el archivo. 3ara nuestros o"jetivos el instrumento .3(-. "astar. !sta
opcin de"era estar disponi"le de la lista desple#ada y entonces pulsando el
"otn izquierdo se seleccionar de forma ha"itual. (Kotar que si se planea
usar un ensam"lador nuevo o el compilador por primera vez, se tendr que
re#istrar usando la orden de 'efinir /nstrumentos de Deneracin de )di#o).
:inalmente, es necesario especificar que archivo de"e ejecutar el
procesador. !n nuestro ejemplo este ser tl.he$ (el archivo e$adecimal
producido por .3(-. su"si#uiente al tl.asm ensam"lado). 3ara enlazar este
archivo al procesador, "otn derecho so"re el 3/) en el esquema y pulsar
lue#o el izquierdo so"re !ditar 3ropiedades. !sto crear la forma de dilo#o
de )omponente de =evisin que contiene un campo para el (rchivo de
3ro#rama. -i esto no esta ya especificado en el tl.he$ entrar a mano la ruta al
archivo o "uscar la posicin del archivo va el "otn RSR a la derecha del
campo. ,na vez que usted ha especificado el archivo e$adecimal a controlar
pulse (ceptar para salir del dilo#o.
(hora ya hemos enlazado el archivo fuente al dise%o y hemos especificado
el Denerador de )di#o que se usar. ,na e$plicacin ms detallada so"re el
-istema de )ontrol de )di#o est disponi"le en la documentacin de ayuda.
Si(ulando el circuito.
3ara simular el circuito, pulsar con el ratn so"re el "otn 3lay del panel de
animacin en el inferior de la pantalla y d0jelo. La "arra de estado de"era
aparecer con el tiempo que la animacin ha sido activa. +am"i0n de"eramos
notar que uno de los semforos es verde mientras el otro es rojo y el estado
l#ico de los pines se puede ver so"re el esquema. Kota, sin em"ar#o, que
los semforos no cam"ian su estado. !sto est previsto, un error ("u#)
deli"erado que hemos introducido en el cdi#o. !n esta etapa, sera
apropiado eliminar fallos de nuestro pro#rama e intentar aislarlos del
pro"lema.
De$urar el $rogra(a.
3ara ase#urar que estamos atentos en la eliminacin de fallos del circuito,
pararemos la simulacin corriente. ,na vez que se ha hecho esto se puede
comenzar a eliminar fallos, presionando )+=LT:9>. 'os ventanas de"eran
aparecer 2 9) propiedad valores )3, =e#istros corrientes y >) propia que
muestra el cdi#o fuente ori#inal del pro#rama. )ualquiera de estas puede ser
activada en el .en& 'e"u# es un servidor de otras ventanas informativas.
+am"i0n podemos activar la 1entana Uatch Uindo en la que podemos
supervisar los cam"ios apropiados de la varia"le state. ,na e$plicacin
completa de estas caractersticas est disponi"le en la seccin titulada Uatch
Uindo en la documentacin de ayuda.
)entrndonos por ahora en la ventana -ource, en el lado izquierdo notar el
icono flecha so"re punto rojo. !sto, con la lnea resaltada indica la posicin
actual del contador de pro#rama (3)). 3ara poner un punto de interrupcin
("reac4point) aqu pulsar !K+!=, el punto de ruptura siempre se resaltar la
lnea. -i quisi0ramos limpiar el punto de ruptura lo podramos hacer pulsando
!K+!= otra vez, pero en este momento lo dejaremos puesto.
A+u"tar el Punto de Ru$tura.
.irando el pro#rama, se pueden ver los "ucles rotar so"re s mismo en un
ciclo que se repite. 3or lo tanto es una "uena idea el poner un punto de
interrupcin al principio de este lazo antes de empezar. !sto se puede hacer,
pulsando el "otn 3ausa y resaltando la lnea (en la direccin 666!) con el
ratn y entonces pulsar :V. Lue#o pulsar :9> para poner el pro#rama a correr.
!l pro#rama se detendr en el punto de ruptura que pusimos al principio del
"ucle.
!l pro#rama en el .en& 'e"u# da una lista de las llaves de depuracin,
pero principalmente usaremos :99 para se#uir el pro#rama. (hora pulsar :99,
entonces la flecha roja de la izquierda (puntero) "ajar a la pr$ima
instruccin. Eu0 hemos hecho realmente, hemos ejecutado la instruccin
@clr@ y se ha parado. -e puede verificar esto, viendo el re#istro U en la
ventana de )3, =e#istros, advirtiendo que se ha puesto a cero.
Kecesitaramos determinar lo que esperamos que suceda en la ejecucin de
la pr$ima instruccin y entonces pro"arla, para ver si sucede realmente. 3or
ejemplo, la pr$ima instruccin del pro#rama, de"e mover el contenido del
re#istro U al 3,!=+A (, es decir el 3uerto ( se de"e limpiar. 'e"e
advertirse que, am"os puertos han sido aclarados, listos para la salida (como
indica el re#istro +=/-?) y que la varia"le state ha sido puesta correctamente
a 6. !jecutar esta instruccin y verificar en la ventana CPU Regi"tro", que
esto es verdad. )ontinuar en esta lnea, hasta que se alcance el punto de
ruptura por se#unda vez. 3ara ver mejor como se producen los pasos,
pon#amos otro punto de ruptura justo en la lnea 6698, pulsando :V y
si#amos.
)omo esto es una funcin de CALL (llamada) tenemos la opcin de al 3aso
(pulsando :96), pero para ase#urarnos pasaremos por cada instruccin. (l
pulsar :99 aqu nos saltar a la primera lnea ejecuta"le de la funcin de
get(a". y se parar. (l dar un paso ms, vemos que la operacin (oe era
acertada ya que se RaterrizaR en el lu#ar correcto, para a#re#ar una desviacin
de cero en la ta"la de consulta. 3or lo tanto, cuando volvemos al pro#rama
principal, tenemos la mscara que nosotros esper"amos. 'ar a&n un paso
ms para escri"ir la mscara al puerto y podemos ver el resultado correcto en
el esquema. ,n nuevo paso otra vez para incrementar state, tam"i0n es un
0$ito como se ve en la ventana CPU Regi"tro", donde el valor para el re#istro
U es incrementado en 9.
,n paso nos tomar la instruccin dise%ada para mantener state cerca de
cero cuando se incrementa por arri"a de 7. !sto, no funciona como de"era,
se puede ver en la Ventana 3atc/. )laramente, state se de"e incrementar
aqu para indicar 9 en la orden, para poner la mscara correctamente en la
pr$ima ejecucin del lazo.
Kos tomar un paso la instruccin dise%ada, para mantener el re#istro state
cerca de cero, cuando se incremente por encima de 7. !sto, no funciona como
de"era, se puede ver en la Ventana 3atc/. !l re#istro state de"e ser
claramente incrementado para indicar 9 aqu de modo que la mscara sea
puesta correctamente en la pr$ima ejecucin del lazo.
Encontrar el -allo 45ug6.
,n vistazo ms de cerca revela que el pro"lema es causado por la orden
(K' con < en vez de 7. Los estados que queremos ver de la ta"la son 6,9,>,7
y cualquiera de 0stos sumado ((K'ed) con < da 6. 'e ah que al correr la
simulacin el estado de los semforos no cam"ia. La solucin del pro"lema es
cam"iar simplemente en la instruccin (K' (sumar) a state con 7 en lu#ar de
<. !sto si#nifica que state se incrementar a 7 y cuando el re#istro U es
incrementado a < state devolver un 6. ,na solucin alternativa sera de
pro"ar simplemente para el caso cuando el re#istro @U@ ten#a < y para
reiniciarlo poner a cero.
!ste es un corto ejemplo que ilustra lo "sico de las t0cnicas de depuracin
de fallos disponi"les en 3roteus 1-., hay mucha funcionalidad adicional
disponi"le. -e recomiendan que se mire la seccin so"re Kivel de 'epuracin
de cdi#o fuente (-ource Level 'e"u##in#) para una e$plicacin ms
detallada.
NOTA. !n pr$imos artculos, siempre que lo requiera el caso, tratar0 de
utilizar este pro#rama de simulacin y depuracin que es 3roteus, para mostrar
otras cualidades de esta herramienta, de modo que el interesado pueda
ampliar sus conocimientos. !ste peque%o manual producto de mi e$periencia,
parte de la ayuda que acompa%a al 3roteus y de lo aprendido en los tutoriales
que tan "ien ha ela"orado el profesor Dermn +ojeiro, al que quiero felicitar
desde aqu.

You might also like