Sei sulla pagina 1di 21

MANUAL PRACTICODEL PROTEUS VS

PRACTICAS CON EL MICROCONTROALDOR

Ren j. Alonso Tllez 12/06/2010

MANUAL PRACTICO
DEL PROTEUS

VSM

Creado por: Ren Jorge Alonso Tllez .

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 soft are 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 soft are, 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, Live ire, Proteus !"#, E$presPCB, 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 PR%TE&"', 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 Proteus !"#. .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

/-/-.

PR%TE&" !"#.
La herramienta PR%TE&"' es un entorno inte#rado dise%ado para la realizacin completa de proyectos para construccin de equipos electrnicos en todas sus etapas. Proteus el "istema !irtual de #odelado (1-.) com"ina el modo mi$to la simulacin de circuito de "PICE, componentes animados y modelos completos de dise%os "asados en microprocesador para facilitar la co2 simulacin del microcontrolador. !sta herramienta dispone de los mdulos conocidos por* )aptura de esquemticos I"I", Layout de ARE" PCB y -imulador (Pro"pice(!"#). 3or primera vez, es posi"le desarrollar y pro"ar dise%os antes de construir un prototipo fsico.

Captura de Es)ue*+tico I"I".


,na vez instalado el pro#rama, iniciar I"I", 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 ARE" PCB.


!s la herramienta que usaremos para la ela"oracin de nuestras placas de circuito impreso, ARE" 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.

PR%"PICE.
-e trata de una herramienta de simulacin de circuitos se#&n el estndar industrial. La versin "sica, suministrada con todas las versiones de Proteus, slo soporta anlisis de transitorios.

!"#.
!"# es la herramienta inte#rada que incluye PR%TE&", se trata de un completo simulador para esquemas electrnicos que contienen microprocesador. !l corazn de !"# es Pro"PICE, 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 !"# es su capacidad de simular el soft are que se ejecuta en el microcontrolador y su interaccin con cualquier componente electrnico di#ital o anal#ico conectado a 0l.

E-ecucin del progra*a con *icroprocesadores.


)omo podremos compro"ar y se#&n dice el fa"ricante, la caracterstica ms sorprendente e importante de !"# es su capacidad de simular el soft are 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 soft are reducimos componentes, como son las resistencias de pull2up del puerto ? que internamente ya dispone.

&so del Capturador I"I"


,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 Proteus y el propio pro#rama en asm, es conveniente que 0ste se u"ique en una carpeta donde est0 el Proteus. -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& "ource, se a"re una persiana con distintas opciones que descri"iremos, seleccionamos la primera Add(Re*ove souce /i0es esto presenta a ventana de a"ajo, en la que primero seleccionamos la herramienta para #enerar el cdi#o (Code Generation Tool), en este caso #PA"#, 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 @C1ange@, no actuaremos so"re los fla#s en este caso y pulsamos @ %2@ 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 #PA"#, el resto no se toca y para terminar pulsar %2.

1olver a @-ource@ en la opcin @-etup !$ternal +e$t !ditor@ del men&, nos puede servir para indicarle al I"I" 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 I"I", ya dispone de la informacin "sica necesaria para proceder a la simulacin virtual del pro#rama.

Panel de si*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 PA"% 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 PA&"A 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 PARA3A 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 "I#&LACI45.
+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 !"# 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 soft are ms sencillo, la interaccin de todos estos perif0ricos con los circuitos e$ternos, se realiza completamente utilizando modelos de ondas. !l simulador !"#, 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 soft are 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.

"i*ulacin al Paso.
)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.

Listado /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 objetivo #include te*poral P16F84!I"C ; cabecera del arc#ivo Include ; )acro de *e*oria p=16F84 ; PIC16F844 es el procesador

C$L%C& '(1' state l1+l, -".C

or/ /oto or/ alto0 /oto #acer nada! clr1 *ov13 de #abilitarlo! *ov13 de #abilitarlo! bs3 clr1 bits co*o salida! *ov13 bc3 initialise0 clr1 *ov13 loop0 call *ascara de bits! *ov13 inc3 andl1 *ov13 call /oto setports0

' setports 4 alto

; vector de inicio! ; salta al codi/o de inicio ; vector Interrupt! ; sentarse a esperar sin ; poner cero en 2! ; 5se/ura 6ue P%4T5 es cero antes ; 5se/ura 6ue P%4T$ es cero antes ; Selecciona $an8 1 ; )ascara para todos los ; poner en re/istro T4IS$! ; 4e/resa al $an8 '! ; estado inicial! ; ponlo! ; Convierte state a

P%4T5 P%4T$ ST5T7S+4P' T4IS$ ST5T7S+4P' state /et*as8 P%4T$ state+2 '('4 state 1ait loop

; escribelo en el portb ; Incre*enta state en 2! ; *antener cerca de cero! ; Ponlo en a la *e*oria ; -sperar ; 9 la:o

; Funci;n para devolver *ascara de bits del estado actual en puerto de salida! 9 el a*bar ; -l nibble superior contiene los bits para un jue/o de luces ; nibble bajo los bits para otros jue/o! $it 1 es rojo+ , es ; 9 bit < es verde! -l bit 4 no se usa! /et*as80 *ov3 add13 PCL retl1 retl1 retl1 retl1 5*bar! 1ait0 110 ; Funci;n 6ue usa dos la:os para alcan:ar un retardo! *ovl1 @ *ov13 l1 call dec3s: /oto 1ait, l1 11 state+2 PCL+F '(41 '(,< '(14 '(<, ; *ueva state a 2 ; a=adir la co*pensaci;n de 2 a ; state==' es >erde 9 4ojo ; state==1 es 5*bar 9 4ojo?5*bar ; state==< es 4ojo 9 >erde ; state==4 es 4eojo?5*bar 9

return 1ait,0 1,0 clr3 dec3s: /oto return -". l, l, 1,

'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.

Enlazando el arc1ivo /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.

"i*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.

3epurar el progra*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-ustar el Punto de Ruptura.


.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 CP& Registros, 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*as0 y se parar. (l dar un paso ms, vemos que la operacin *ove 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 CP& Registros, 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 !entana 6atc1. )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 !entana 6atc1. !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 78ug9.


,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.

PRIMER PROYECTO CON EL PIC 16F84A

Introduccin.
!sta es la primera incursin en este apartado de pro#ramacin para microcontroladores 3/), pretendo mostrar al#unos proyectos con los que el interesado en aprender a pro#ramar microcontroladores 3/), consi#a ciertos conocimientos y cierta fluidez, al mismo tiempo que dispon#a de una Rli"reraR de rutinas en la que inspirarse a la hora de plantear un proyecto o la solucin a un posi"le pro"lema que le surja.

El Pri*er Pro,ecto.
!sta pretende ser una apro$imacin muy lineal a la escritura de un pro#rama. -on muchos los que escri"en y producen su"rutinas muy peque%as con saltos (DA+ARs) de una su"rutina a otra, de modo que el pro#rama salta por todas partes como Rpalomitas de mazR. !l micro es capaz, perfectamente capaz de saltar por un pro#rama, sin em"ar#o, 0ste tipo de disposicin es muy difcil de se#uir incluso por un lector avezado. !s mucho ms fcil se#uir la secuencia de acontecimientos y as, muy pronto seremos capaces de escri"ir pro#ramas similares a los de la seccin de proyectos de cualquier empresa.@ 2 (s, empieza otro de los artculos que ten#o en esta e". !n inconta"les sitios se utiliza un listado de apoyo al que se inicia en la pro#ramacin, dicho listado descri"e qu0 hace dicho listado. !n este caso descri"e, cmo controlar el encendido y apa#ado de un punto de luz mediante un diodo L!'. 'espu0s de considerar otros modos de empezar este camino, he lle#ado a la conclusin que, por al#o hay que empezar y ese camino trazado por otros puede que sea el mejor y en ello estamos. -e de"e utilizar un editor de te$to que no a%ada cdi#os e$tra%os, puede utilizarse el ?loc de Kotas, aunque hay otros ms adaptados a la pro#ramacin que ofrecen mejores prestaciones como el !dit3lus>, eso lo dejo a eleccin del lector. !l .3L(? inte#ra un editor eficiente, aunque tiene sus @cosas@ y distin#ue entre may&sculas y min&sculas, as que, decdase por un criterio y si#amos. !l listado del pro#rama en len#uaje ensam"lador se muestra en las lneas si#uientes, recu0rdese que cualquier lnea que empieza por un R :R (punto y coma) se interpretar como un comentario sin efecto en el pro#rama, estas lneas sirven de ayuda y recomiendo utilizarlas para una mejor comprensin de qu0 hace el pro#rama en ciertos momentos. !l listado de"e ser #uardado con la e$tensin .as*

Potrebbero piacerti anche