{"id":612,"date":"2010-12-11T01:08:31","date_gmt":"2010-12-11T00:08:31","guid":{"rendered":"http:\/\/electronicapractica.crearblog.com\/?p=612"},"modified":"2019-06-20T18:14:16","modified_gmt":"2019-06-20T16:14:16","slug":"manual-rapido-del-mplab","status":"publish","type":"post","link":"https:\/\/www.diarioelectronicohoy.com\/blog\/manual-rapido-del-mplab","title":{"rendered":"Manual R\u00e1pido del MPLAB"},"content":{"rendered":"<p><a name=\"inici\"><\/a><\/p>\n<h2><span style=\"color: #000080; font-size: 16pt;\">Introducci\u00f3n.<\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\">En los proyectos que se describen en estas p\u00e1ginas utilizaremos el software de uso libre como es el <a href=\"http:\/\/www.microchip.com\/stellent\/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=1406&amp;dDocName=en019469\" target=\"_blank\" rel=\"noopener noreferrer\"> <strong>MPLAB<\/strong><\/a>, si por alguna raz\u00f3n el lector quiere usar la versi\u00f3n que he manejado en estos art\u00edculos puede bajarse la versi\u00f3n 5 (\u00a1ojo! pesa 11MBytes y si su conexi\u00f3n no es r\u00e1pida puede tardar algo de tiempo) El motivo es que hemos de entender y aprender a utilizarlo para ensamblar nuestros proyectos, hacerlo f\u00e1cil y esto es lo que vamos a describir aqu\u00ed.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\">Si no se dispone de esta herramienta recomendamos se obtenga es gratis, para poder seguir nuestros pasos. En programaci\u00f3n como ya se ha dicho en estas p\u00e1ginas, existen unas directivas generales que se utilizan de forma repetida y por ese motivo se ha descrito una plantilla del programador que encontrar\u00e1 en est\u00e1s p\u00e1ginas, como herramienta menor de ayuda.<!--more--><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\">El entorno de trabajo <strong>MPLAB vers5<\/strong>, necesita de una configuraci\u00f3n de las instrucciones para &#8216;que vaya como la seda&#8217;, ya hemos documentado este apartado en otras ocasiones y lo vamos a repetir aqu\u00ed. Para empezar, se debe documentar todo nuestro trabajo, esto significa que los comentarios aclaratorios necesarios son: <strong> Nombre del Autor<\/strong>, <strong>Archivo<\/strong>, <strong> Fecha<\/strong> y <strong>Descripci\u00f3n<\/strong> de qu\u00e9 hace el programa y para este fin el <strong> MPLAB<\/strong> dice que detr\u00e1s de \u00ab<\/span><strong><span style=\"color: #008000; font-size: medium;\">;<\/span><\/strong> <span style=\"font-size: small;\">\u00bb todo se considera comentario y no se tendr\u00e1 en cuenta al compilar el listado. <\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\">Podemos hacer una primera incursi\u00f3n en el <strong> MPLAB<\/strong> para tener una visi\u00f3n general de c\u00f3mo proceder a compilar un listado que tengamos en formato <strong>.asm<\/strong>, despu\u00e9s entraremos en detalles m\u00e1s extensos. Estos son <\/span><span style=\"font-size: small;\"><span style=\"font-size: small;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/programa-MPLAB.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1080\" title=\"programa MPLAB\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/programa-MPLAB.jpg\" alt=\"\" width=\"200\" height=\"137\" \/><\/a><\/span><\/span><span style=\"font-size: small;\">los pasos: <\/span><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>\n<p style=\"margin-left: 0pt; margin-top: 6px; margin-bottom: 4px; text-align: justify;\">Ejecutar el programa <strong>MPLAB<\/strong>. Hay disponibles cuatro men\u00fas de iconos, como muestra la figura de abajo. Elegir el segundo men\u00fa para empezar un proyecto y el primero, para ejecutar distintas acciones de an\u00e1lisis.<\/p>\n<\/li>\n<li>\n<p style=\"margin-left: 0pt; margin-top: 6px; margin-bottom: 4px; text-align: justify;\">Men\u00fa <strong>File<\/strong>&#8211;<strong>New<\/strong>, mostrar\u00e1 un cuadro de dialogo que dice: &#8216;A project is not currently opened&#8217; o sea, que no hay un proyecto disponible, &#8216;desea crear uno&#8217;, pulsamos sobre la opci\u00f3n Yes para empezar. Si ya lo hemos usado con un proyecto y al salir lo guardamos, ahora nos propondr\u00e1 si queremos abrirlo, pulsamos sobre la opci\u00f3n Yes para continuar con el proyecto.<\/p>\n<\/li>\n<li>\n<p style=\"margin-left: 0pt; margin-top: 6px; margin-bottom: 4px; text-align: justify;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/menu-programa-MPLAB.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1081\" title=\"menu programa MPLAB\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/menu-programa-MPLAB.jpg\" alt=\"\" width=\"480\" height=\"104\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/menu-programa-MPLAB.jpg 480w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/menu-programa-MPLAB-300x65.jpg 300w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/a>Mostrar\u00e1 una ventana &#8216;<strong>New Project<\/strong>&#8216; en la celda correspondiente daremos un nombre a nuestro proyecto y se puede elegir el directorio en el que guardarlo y pulsamos <strong>OK<\/strong>.<\/p>\n<\/li>\n<li>\n<p style=\"margin-left: 0pt; margin-top: 6px; margin-bottom: 4px;\">Empezaremos a crear nuestro proyecto en la ventana &#8216;<strong>Edit Proyect<\/strong>&#8216; como se ve en la imagen de abajo a la izquierda.<\/p>\n<\/li>\n<\/ul>\n<ol>\n<li>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Target-Proyect.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-1082\" title=\"Target Proyect\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Target-Proyect.gif\" alt=\"\" width=\"203\" height=\"257\" \/><\/a>En esta ventana hay cinco celdas en las que debemos introducir datos: E<\/span><span style=\"font-size: small;\">n la primera, &#8216;Target Proyect&#8217; aparecer\u00e1 el nombre de nuestro proyecto. &#8216;<strong>Include Path<\/strong>&#8216;, &#8216;<strong>Library Path<\/strong>&#8216; y &#8216;<strong>Linker &#8230;<\/strong>&#8216;, se dejan como est\u00e1n. En &#8216;<strong>Development Mode<\/strong>&#8216; nos aseguramos que el sistema de desarrollo es el correcto &#8216;MPLAB SIM PIC16F84&#8217; y en la cleda de abajo en &#8216;<strong>Language Tool Suite<\/strong>&#8216;, se encuentra <strong>Microchip<\/strong>.<a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Library-Path.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1084\" title=\"Library Path\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Library-Path.gif\" alt=\"\" width=\"263\" height=\"338\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Library-Path.gif 263w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Library-Path-233x300.gif 233w\" sizes=\"auto, (max-width: 263px) 100vw, 263px\" \/><\/a><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">Ahora viene la parte m\u00e1s compleja si se quiere, en el men\u00fa &#8216;Project&#8217; la opci\u00f3n &#8216;Edit Project&#8217; o <strong>CRTL+F3<\/strong>, abre un cuadro de dialogo, en la parte de abajo en &#8216;<strong>Project Files<\/strong>&#8216; aparecer\u00e1 el nombre del archivo que vamos a producir con la extensi\u00f3n [<strong>.<\/strong><strong>hex<\/strong>], al seleccionarlo, a su derecha se activar\u00e1 el bot\u00f3n &#8216;<strong>Node Properties&#8230;<\/strong>&#8216;, lo pulsamos, aparecer\u00e1 una nueva ventan con cuatro zonas diferenciadas, como se aprecia en la imagen de abajo, en la parte de arriba aparece la celda &#8216;<strong>Node<\/strong>&#8216; con el nombre del proyecto y la extensi\u00f3n hex, a su derecha la celda &#8216;<strong>Language Tool<\/strong>&#8216; que normalmente no se toca.<\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">En la zona central, se encuentra una cuadricula &#8216;<strong>Options<\/strong>&#8216; con seis columnas y distintas descripciones, observar que algunas no est\u00e1n activas, en definitiva y para acortar, deben estar activadas, en &#8216;<strong>On<\/strong>&#8216; las siguientes: &#8216;<strong>Hex Format<\/strong>&#8216;, &#8216;<strong>Error File<\/strong>&#8216;, &#8216;<strong>List File<\/strong>&#8216;, &#8216;<strong>Case Sensitivity<\/strong>&#8216; y &#8216;<strong>Default radix<\/strong>&#8216; y activada en &#8216;<strong>Off<\/strong>&#8216; la de &#8216;<strong>Cross-reference File<\/strong>&#8216;. Ya se describir\u00e1n m\u00e1s adelante estos criterios, ver esto en la imagen que sigue.<\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Options.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1085\" title=\"Options\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Options.gif\" alt=\"\" width=\"293\" height=\"208\" \/><\/a>Debajo, en la zona &#8216;<strong>Command Line<\/strong>&#8216;, se muestran las ordenes que se han generado en seg\u00fan lo asignado en el apartado anterior. En la \u00faltima zona &#8216;<strong>Additional Command Line Options<\/strong>&#8216; estar\u00e1 en blanco. Y para cerrar pulsamos <strong>OK<\/strong>.<\/span><\/span><\/p>\n<\/li>\n<li>\n<p style=\"margin-left: 0pt; margin-top: 6px; margin-bottom: 9px; text-align: justify;\">Se mostrar\u00e1 la ventana en blanco, de t\u00edtulo <strong>Untitle1<\/strong>, donde se debe escribir nuestro programa (c\u00f3digo fuente). Sin embargo como ya se ha dicho, en muchas ocasiones ya lo dispondremos de nuestro editor m\u00e1s habitual, podemos traer el c\u00f3digo fuente hasta la carpeta donde tenemos el proyecto con la extensi\u00f3n .prj . Entonces con el &#8216;<strong>Edit Project<\/strong>&#8216; pulsamos el bot\u00f3n &#8216;<strong>Add Mode&#8230;<\/strong>&#8216; y nos abrir\u00e1 una ventana para seleccionar la carpeta en la que localizamos la que contiene el archivo con la extensi\u00f3n <strong>.asm<\/strong> que ya tenemos guardado y luego pulsamos &#8216;<strong>Aceptar<\/strong>&#8216;. Ahora el archivo &#8216;puntoasm&#8217;\u00a0 se muestra debajo del anterior y para cerrar pulsamos &#8216;<strong>OK<\/strong>&#8216;.<\/p>\n<\/li>\n<li>\n<p style=\"margin-left: 0pt; margin-top: 6px; margin-bottom: 9px; text-align: justify;\">Digamos que, ya est\u00e1 en el simulador <strong> MPLAB<\/strong> el listado, por fin podremos compilar el programa.<\/p>\n<\/li>\n<li>\n<p style=\"margin-left: 0pt; margin-top: 6px; margin-bottom: 9px; text-align: justify;\">Es el momento de acceder al &#8216;<strong>Men\u00fa<\/strong>&#8211;<strong>Project<\/strong>&#8216; y &#8216;<strong>Make Project<\/strong>&#8216; o simplemente pulsamos la tecla <strong>F10<\/strong>. Esto abrir\u00e1 una nueva ventana como la de la derecha, en la que se mostrar\u00e1 una barra de progreso de color verde e inmediatamente debajo, unos indicadores con los Errores, Warnings, Menssages, etc. si es que los hay, aunque no siempre hay errores.<\/p>\n<\/li>\n<\/ol>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"> Normalmente si hay errores, presentar\u00e1 una ventana como la mostrada debajo que, nos indicar\u00e1 todos los errores producidos y su localizaci\u00f3n el n\u00famero de l\u00ednea en la que se encuentra cada uno. Para corregir los errores, haremos doble clic en uno de ellos, el puntero se desplaza hasta la l\u00ednea del listado de c\u00f3digo que contiene el error, para que as\u00ed lo modifiquemos. Revisamos las instrucciones que hayamos puesto, para corregir los fallos.<\/span><\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/results.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1086\" title=\"results\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/results.gif\" alt=\"\" width=\"460\" height=\"169\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/results.gif 460w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/results-300x110.gif 300w\" sizes=\"auto, (max-width: 460px) 100vw, 460px\" \/><\/a>Una vez rectificados los errores, volveremos al paso 7 y procederemos a la nueva compilaci\u00f3n del programa, verificaremos que no se hayan producido errores o los rectificaremos hasta lograr la depuraci\u00f3n del programa. Recuerde que nadie es perfecto y aprenda de sus errores.<\/span><\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">El caso m\u00e1s com\u00fan es que despu\u00e9s de ciertas correcciones no presente errores, quiz\u00e1s una atenci\u00f3n (warning) y obtendremos el listado en <strong>hex<\/strong>adecimal que se ha creado en la misma carpeta donde est\u00e1 el proyecto, \u00e9ste es el que tenemos que usar con el <strong><a href=\"http:\/\/www.hispavila.com\/3ds\/chipspic\/guia_icprog.html\"><span style=\"color: #008000;\"> &#8216;quemador&#8217;<\/span><\/a><\/strong>de chips descrito en otro art\u00edculo de la serie, para comprobar si nuestro proyecto refleja nuestros deseos, en caso de no ser as\u00ed, debemos realizar los cambios necesarios en el programa y volver a empezar el proceso de compilar de nuevo hasta lograr nuestro prop\u00f3sito y luego a por otro proyecto.<\/span><\/span><\/span><\/p>\n<h2><span style=\"color: #000080;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">Como estimular al MPLAB.<\/span><\/span><\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">Esta bien, cuando hemos terminado de ensamblar un listado .asm y antes de quemar el chip con el c\u00f3digo generado por este, es conveniente en muchas ocasiones, proceder a simular la ejecuci\u00f3n del archivo hexadecimal generado para mayor seguridad y para esto el MPLAB incorpora una herramienta que nos permite realizar dicha simulaci\u00f3n. Hasta aqu\u00ed, todo es normal, en el caso especial de necesitar estimular una l\u00ednea, es decir, como por ejemplo, simular que se ha presionado un pulsador en un momento de la simulaci\u00f3n, aqu\u00ed es donde se necesita dominar esta herramienta. <\/span><\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"> <a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/men\u00fa-Window.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-1087\" title=\"men\u00fa Window\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/men\u00fa-Window.gif\" alt=\"\" width=\"218\" height=\"213\" \/><\/a>En men\u00fa Window, disponemos de las ventanas que m\u00e1s nos servir\u00e1n para seguir con detalle la evoluci\u00f3n de la simulaci\u00f3n, tambi\u00e9n est\u00e1n los iconos propios en las barras de men\u00fa que se menciona al principio de este art\u00edculo. Destaca la ventana del <strong>stack<\/strong> o <strong>pila<\/strong>, aqu\u00ed se ver\u00e1n en acci\u00f3n la pila con sus 8 niveles y que el \u00faltimo en ingresar es el primero en salir, para eso tiene que estar la simulaci\u00f3n en activo. <\/span><\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">La ventana que mayor importancia le doy, en la de &#8216;<strong>Special Function Register<\/strong>&#8216;, o registros de funci\u00f3n especial de la izquierda, en esta se aprecia la evoluci\u00f3n de los distintos registros con sus valores cambiantes seg\u00fan el valor resultante de la ejecuci\u00f3n de cada instrucci\u00f3n. Todo esto es posible examinarse mediante la ejecuci\u00f3n del programa en el modo, paso a paso (step to step) o animado (animate).<a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Special-Function-Register.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1088\" title=\"Special Function Register\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Special-Function-Register.gif\" alt=\"\" width=\"258\" height=\"110\" \/><\/a><\/span><\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">Es conveniente que el interesado haga su propia simulaci\u00f3n en ambos modos y compruebe lo que ocurre en cada momento. <\/span><\/span><\/span><\/p>\n<p style=\"margin-right: 0pt; text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">Otra ventana es la de &#8216;<strong>Program Memory<\/strong>&#8216; a la derecha que, nos muestra la evoluci\u00f3n del programa instrucci\u00f3n a instrucci\u00f3n, obs\u00e9rvese las columnas que empiezan por 0000, corresponde a la localizaci\u00f3n en memoria y a su derecha con 4 d\u00edgitos, corresponde al c\u00f3digo de la instrucci\u00f3n de esa l\u00ednea, las siguientes columnas se refieren a la etiqueta, a la instrucci\u00f3n pr<\/span><\/span><\/span><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">opiamente y a sus valores. <\/span><\/span><\/span><\/p>\n<p style=\"margin-right: 0pt; text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"> <a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Program-Memory.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-1089\" title=\"Program Memory\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Program-Memory.gif\" alt=\"\" width=\"234\" height=\"91\" \/><\/a>En <strong>Modify<\/strong>, podemos modificar el valor de un registro en un momento dado, para no tener que esperar tanto tiempo de ejecuci\u00f3n como ocurre con un retardo. Sigamos con la simulaci\u00f3n.<\/span><\/span><\/span><\/p>\n<p style=\"margin-right: 0pt; text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">En el men\u00fa <strong>Debug\/Simulator Stimulus&#8230;\/Asincronus Stimulus<\/strong> tenemos la ventana donde se pueden configurar las se\u00f1ales que deben influir en la simulaci\u00f3n como son, pulsadores, se\u00f1ales de reloj, etc. Al abrir esta ventana, muestra 12 botones que, en principio indican Stim 1(P), Stim 2(P), etc. Con el bot\u00f3n d<\/span><\/span><\/span><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">erec<\/span><\/span><\/span><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Debug.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1090\" title=\"Debug\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Debug.gif\" alt=\"\" width=\"310\" height=\"220\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Debug.gif 310w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Debug-300x212.gif 300w\" sizes=\"auto, (max-width: 310px) 100vw, 310px\" \/><\/a><\/span><\/span><\/span><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">ho del rat\u00f3n sobre uno de ellos, mostr<\/span><\/span><\/span><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">ar\u00e1 una ventana para seleccionar distintas opciones. En nuestra simulaci\u00f3n se trata de sendos pulsadores en el puerto de entrada, por ej. RA2, RA3 y RA4.<br \/>\n<\/span><\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">En el mencionado men\u00fa emergente, se selecciona <strong>Assign pin&#8230;<\/strong> RA0, ahora es RA0 (P), nuevamente haremos click con el bot\u00f3n derecho sobre el mismo bot\u00f3n pero esta vez seleccionamos <strong>Toggle<\/strong> aqu\u00ed significa pulsador, con RA3 y RA4 se procede del mismo modo.<\/span><\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"> <a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/generador-de-tiempos.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-1091\" title=\"generador de tiempos\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/generador-de-tiempos.gif\" alt=\"\" width=\"270\" height=\"155\" \/><\/a>Una vez configurados estos botones, debemos iniciar el generador de tiempos que, como un generador de reloj, se encarga de enviar los pulsos a los terminales de puerto, indicados por los botones de estimulo anteriores, en la secuencia prevista.<\/span><\/span><\/span><\/span><\/p>\n<p align=\"justify\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">Ahora, en <strong>Debug\/Simulator Stimulus&#8230;\/Clock Stimulus<\/strong>, en la celda <strong>Stimulus pin<\/strong>, elegimos RA2. En la secuencia de reloj <strong>High<\/strong> y <strong>Low<\/strong> anotamos 4 que, es la marca espacio de la se\u00f1al o sea, el ancho del pulso <strong>H<\/strong> y <strong>L<\/strong>. Si fuera necesario, a\u00f1adir los dem\u00e1s botones de tiempos pulsa<\/span><\/span><\/span><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">ndo <strong> <\/strong><\/span><\/span><\/span><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><strong>A<\/strong><\/span><\/span><\/span><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><strong>dd..<\/strong> y para aplicar todo esto, pulsamos sobre <strong>Apply<\/strong>. Por fin est\u00e1n configurados los est\u00edmulos. <\/span><\/span><\/span><\/p>\n<p><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">Antes de empezar la simulaci\u00f3n, se debe hacer un <strong>Reset<\/strong> de la simulaci\u00f3n, imagen de la derecha.<a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/reset-del-micro.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1093\" title=\"reset del micro\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/reset-del-micro.gif\" alt=\"\" width=\"147\" height=\"62\" \/><\/a> <\/span><\/span><\/span><\/p>\n<p style=\"text-align: center;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"> Al pulsar el Reset, la simulaci\u00f3n se inicializa y los valores de los registros empiezan a moverse seg\u00fan se ejecutan las instrucciones. En este momento debemos disponer cinco ventanas en pantalla; la de <strong>proyecto<\/strong>, para seguir el programa; la de <strong>registros<\/strong>, para ver la <a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/registros.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1095 aligncenter\" title=\"registros\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/registros.gif\" alt=\"\" width=\"480\" height=\"429\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/registros.gif 480w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/registros-300x268.gif 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/registros-335x300.gif 335w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/a>evoluci\u00f3n de los mismos; la de <strong>memoria<\/strong> que, permite ver los valores de memoria en uso y la de <strong>tiempos y est\u00edmulos<\/strong>, ver posici\u00f3n en la figura para su mejor apreciaci\u00f3n. <\/span><\/span><\/span><\/p>\n<h2><span style=\"color: #000080;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">LA SIMULACI\u00d3N.<\/span><\/span><\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">Es el momento de iniciar la simulaci\u00f3n, en men\u00fa <strong>Debug\/Run\/Step<\/strong> se inicia el simulador en modo paso a paso, este modo nos permite apreciar el trasvase de informaci\u00f3n entre los registros que intervienen al ejecutar una instrucci\u00f3n, una vez iniciado y dependiendo del programa a simular, podemos optar por la opci\u00f3n de ejecuci\u00f3n animada mediante <strong>Debug\/Run\/Animate<\/strong> o usar\u00a0<strong>Ctrl+F9<\/strong>, que empezar\u00e1 desde el punto en el que se encuentre en ese momento hasta el final del programa. Si hubiera alg\u00fan error, se produce una parada que muestra una ventan emergente indicando el motivo, para poder corregir el error.<a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Run.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1096\" title=\"Run\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Run.gif\" alt=\"\" width=\"213\" height=\"56\" \/><\/a><\/span><\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">El proceso de simulaci\u00f3n podemos pararlo con una pulsaci\u00f3n en el icono sem\u00e1foro rojo, para seguir s\u00f3lo pulsamos <strong>Ctrl+F9<\/strong> y seguimos la tarea, debe seguirse el proceso para entender lo que ocurre con nuestro programa. En alguna ocasi\u00f3n el programa nos pide que se presione un pulsador o requiere una se\u00f1al de entrada por una l\u00ednea de un puerto, esto puede parecer un problema de, como interactuar con el programa. <\/span><\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">Supongamos que el programa trata de un temporizador que, se pone en marcha cuando se aprieta el pulsador A que est\u00e1 en RA1, iniciando el retardo de 1 minuto, al termino del mismo se activa un LED indicando que ha transcurrido el minuto. En ese caso al simular el programa, se ejecutar\u00e1 hasta la instrucci\u00f3n del lazo de espera a que se presione el pulsador y no avanzar\u00e1 hasta que le llegue esa se\u00f1al. Para\u00a0interactuar, usamos una herramienta que genera ese pulso en RA1 y podremos seguir. Estamos en el lazo. <\/span><\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">Entonces abrimos la ventana <strong>Asincronus Stimulus<\/strong> y le ponemos RA1 en el primer bot\u00f3n y la opci\u00f3n Toggle, a continuaci\u00f3n en la venta <strong>Clock Stimulus<\/strong>, ponemos lo que se indica en su apartado anterior que lo describe muy bien. Con esto, ya podemos seguir la simulaci\u00f3n, las se\u00f1ales necesarias se producir\u00e1n en el momento adecuado y se apreciar\u00e1 su efecto. Sin embargo, justo en nuestro programa se produce un retardo que para la simulaci\u00f3n puede ser tedioso su seguimiento, no hay problema, est\u00e1 todo previsto en el MPLAB, en el men\u00fa <strong>Debug\/Execute\/Execute An Opcode&#8230;<\/strong>, elegimos la opci\u00f3n<\/span> <strong>return<\/strong> y pulsamos <strong>Execute<\/strong>, en ese mismo momento habremos salido del lazo de retardo que nos reten\u00eda y seguir\u00e1 la simulaci\u00f3n si no hay otra condicionante. <\/span><\/span><\/p>\n<h2><span style=\"color: #000080;\"><span style=\"font-size: small;\">OTRO M\u00c9TODO.<\/span><\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">Cuando haga la simulaci\u00f3n de un retardo, como ya se ha comentado o ha de emplear largo tiempo en decrementar un registro, es interesante conocer esta posibilidad de Modificar que nos brinda el MPLAB. <\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">Por ej. Estamos simulando un programa que crea una se\u00f1al cuadrada a la salida RB0, para ello utiliza el TMR0 y la interrupci\u00f3n por desbordamiento del mismo, asignando el prescaler con un factor de divisi\u00f3n de 1\/2. De esta forma las interrupciones saltar\u00e1n a intervalos fijos de tiempo. Invirtiendo el estado de RB0 durante las interrupciones se conseguir\u00e1 una onda cuadrada perfecta. <\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"> <a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Registers-Window.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-1097\" title=\"Registers Window\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Registers-Window.gif\" alt=\"\" width=\"270\" height=\"155\" \/><\/a>Cuando <\/span><\/span><span style=\"font-size: small;\"><span style=\"font-size: small;\">estemos ejecutando el c\u00f3digo y lleguemos a la rutina &#8216;hacer nada&#8217;, nos detenemos y debemos acceder a <strong>File Registers Window<\/strong>, en el men\u00fa <strong> Window\/File Registers<\/strong>, se ver\u00e1 el cuadro Ventana Registros. Si nos fijamos en el c\u00f3digo, el registro <strong>PCL<\/strong> est\u00e1 aumentando con cada instrucci\u00f3n, cuando llega a la rutina &#8216;hacer nada&#8217;, el valor es 08 como muestra la imagen, al detenernos el registro mantiene el valor, ahora vamos a modificar el valor de este registro, para reducir el tiempo de espera. <\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/File-Register.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1098\" title=\"File Register\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/File-Register.gif\" alt=\"\" width=\"270\" height=\"155\" \/><\/a>Con el bot\u00f3n derecho del rat\u00f3n, hacemos un click justo sobre 08 y luego en <strong> File Register(s)<\/strong> como se aprecia en la imagen de la derecha y nos muestra un cuadro de di\u00e1logo <strong>Modify<\/strong> (ver debajo).<br \/>\n<strong>1)<\/strong> En \u00e9l seleccionar en <strong> Address<\/strong>, el registro que vamos a modificar, en este caso 01 <\/span><span style=\"font-size: small;\"> <strong><br \/>\n2)<\/strong> en <strong> Data\/Opcode<\/strong> el nuevo valor para ese registro en este caso ff (este valor hace que llegue al m\u00e1ximo de la cuenta), tal como se ve en esta imagen.\u00a0 Y<strong><br \/>\n3)<\/strong> Luego le damos a <strong> Write<\/strong> (escribir) y se habr\u00e1 modificado el valor del registro 0x01, para seguir la simulaci\u00f3n. <\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Address.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1099\" title=\"Address\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/Address.gif\" alt=\"\" width=\"182\" height=\"130\" \/><\/a>Ahora si, le damos a <strong>F7<\/strong> para ver que el registro adquiere el nuevo valor, con la siguiente <strong>F7<\/strong>, el registro se desborda y hace que el programa avance en su ejecuci\u00f3n saliendo del lazo y saltando a la subrutina de servicio de interrupci\u00f3n (RSI) BCF INTCON,2 en la simulaci\u00f3n, esto quiere decir que todo va correctamente y nos ahorramos una larga espera. <\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">Que podemos decir de una temporizaci\u00f3n de 50 segundos, lo que hacemos all\u00ed es verificar que los respectivos registros (19h,1Ah, 1Bh, 1Ch y 1Dh) se decrementan con cada iteraci\u00f3n del programa, de modo que, nuevamente nos encontramos ante un prolongado tiempo de espera para verificar una rutina que ha entrado en un lazo de retardo y ya conocemos su funcionamiento. <\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"> Con este ejemplo puede darse por aclarado el uso de algunas de las opciones que nos ofrece esta herramienta que es el MPLAB. <\/span><\/span><\/p>\n<h2><span style=\"color: #000080;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">DESENSAMBLADOR.<\/span><\/span><\/span><\/h2>\n<p style=\"text-align: justify;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">En alguna ocasi\u00f3n cuando por motivos extra\u00f1os, se pierde un listado en asambler (.asm) y solo dispones del listado en hexadecimal. La mejor forma de proceder para disponer del listado es usar un desensamblador, personalmente recomiendo el que viene integrado en el MPLAB.<\/span><\/span><\/span><\/p>\n<p align=\"left\"><span style=\"font-size: small;\"><span style=\"font-size: small;\"><span style=\"font-size: small;\">El procedimiento es el siguiente:<\/span><\/span><\/span><\/p>\n<ul>\n<li>\n<p style=\"margin-bottom: 0pt;\" align=\"left\"><span style=\"font-size: small;\">En el men\u00fa File, ir a Import y elegir el archivo en hexadecimal (.HEX)<\/span><\/p>\n<\/li>\n<li>\n<p style=\"margin-top: 0pt; margin-bottom: 0pt;\" align=\"left\"><span style=\"font-size: small;\">En el men\u00fa View, ir a Program Memory; dispone de tres opciones:<br \/>\nOPCODE HEX, MACHINE y SYMBOLIC.<\/span><\/p>\n<\/li>\n<li>\n<p style=\"margin-top: 0pt;\" align=\"left\"><span style=\"font-size: small;\">Sobre la pantalla, bot\u00f3n derecho pulsar &#8216;Output to file&#8217; para terminar.<\/span><\/p>\n<\/li>\n<\/ul>\n<p><span style=\"font-size: small; text-align: justify;\">\u00abVaya a FILE, IMPORT y elija el archivo .HEX que desee desensamblar. Luego vaya a VIEW, PROGRAM MEMORY y f\u00edjese que abajo tiene 3 opciones. OPCODE HEX, \u00a0MACHINE , SYMBOLIC. Luego bot\u00f3n derecho sobre la pantalla &#8216;&#8230; Output to file&#8217; y listo ya puede tener un .asm del archivo elegido. Eso s\u00ed, luego ser\u00e1 trabajo suyo determinar que es variable y que no lo es, etc.\u00bb<\/span><\/p>\n<p align=\"right\"><a href=\"#inici\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright\" src=\"http:\/\/s3.subirimagenes.com:81\/privadas\/previo\/thump_1251680uparrowsmall.gif\" alt=\"\" width=\"25\" height=\"19\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introducci\u00f3n. En los proyectos que se describen en estas p\u00e1ginas utilizaremos el software de uso libre como es el MPLAB, si por alguna raz\u00f3n el lector quiere usar la versi\u00f3n que he manejado en estos art\u00edculos puede bajarse la versi\u00f3n 5 (\u00a1ojo! pesa 11MBytes y si su conexi\u00f3n no es r\u00e1pida puede tardar algo de [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":1081,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[34,19],"tags":[110,115,269],"class_list":["post-612","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-manual-rapido-del-mplab","category-lecciones-de-electronica-analogica","tag-microchip","tag-mplab","tag-pic"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"Introducci\u00f3n. En los proyectos que se describen en estas p\u00e1ginas utilizaremos el software de uso libre como es el MPLAB, si por alguna raz\u00f3n el lector quiere usar la versi\u00f3n que he manejado en estos art\u00edculos puede bajarse la versi\u00f3n 5 (\u00a1ojo! pesa 11MBytes y si su conexi\u00f3n no es r\u00e1pida puede tardar algo de\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Vicente Garc\u00eda\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/manual-rapido-del-mplab\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Electr\u00f3nica Pr\u00e1ctica Aplicada - T\u00e9cnicas de Electr\u00f3nica Anal\u00f3gica y Digital\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Manual R\u00e1pido del MPLAB - Electr\u00f3nica Pr\u00e1ctica Aplicada\" \/>\n\t\t<meta property=\"og:description\" content=\"Introducci\u00f3n. En los proyectos que se describen en estas p\u00e1ginas utilizaremos el software de uso libre como es el MPLAB, si por alguna raz\u00f3n el lector quiere usar la versi\u00f3n que he manejado en estos art\u00edculos puede bajarse la versi\u00f3n 5 (\u00a1ojo! pesa 11MBytes y si su conexi\u00f3n no es r\u00e1pida puede tardar algo de\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.diarioelectronicohoy.com\/blog\/manual-rapido-del-mplab\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2010-12-11T00:08:31+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-06-20T16:14:16+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Manual R\u00e1pido del MPLAB - Electr\u00f3nica Pr\u00e1ctica Aplicada\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Introducci\u00f3n. En los proyectos que se describen en estas p\u00e1ginas utilizaremos el software de uso libre como es el MPLAB, si por alguna raz\u00f3n el lector quiere usar la versi\u00f3n que he manejado en estos art\u00edculos puede bajarse la versi\u00f3n 5 (\u00a1ojo! pesa 11MBytes y si su conexi\u00f3n no es r\u00e1pida puede tardar algo de\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/manual-rapido-del-mplab#blogposting\",\"name\":\"Manual R\\u00e1pido del MPLAB - Electr\\u00f3nica Pr\\u00e1ctica Aplicada\",\"headline\":\"Manual R\\u00e1pido del MPLAB\",\"author\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/author\\\/vicente#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/imagenes\\\/2010\\\/12\\\/menu-programa-MPLAB.jpg\",\"width\":480,\"height\":104},\"datePublished\":\"2010-12-11T01:08:31+01:00\",\"dateModified\":\"2019-06-20T18:14:16+02:00\",\"inLanguage\":\"es-ES\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/manual-rapido-del-mplab#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/manual-rapido-del-mplab#webpage\"},\"articleSection\":\"Manual R\\u00e1pido del MPLAB, Teor\\u00eda de la Electr\\u00f3nica, Microchip, MPLAB, PIC\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/manual-rapido-del-mplab#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/lecciones-de-electronica-analogica#listItem\",\"name\":\"Teor\\u00eda de la Electr\\u00f3nica\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/lecciones-de-electronica-analogica#listItem\",\"position\":2,\"name\":\"Teor\\u00eda de la Electr\\u00f3nica\",\"item\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/lecciones-de-electronica-analogica\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/lecciones-de-electronica-analogica\\\/manual-rapido-del-mplab#listItem\",\"name\":\"Manual R\\u00e1pido del MPLAB\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/lecciones-de-electronica-analogica\\\/manual-rapido-del-mplab#listItem\",\"position\":3,\"name\":\"Manual R\\u00e1pido del MPLAB\",\"item\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/lecciones-de-electronica-analogica\\\/manual-rapido-del-mplab\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/manual-rapido-del-mplab#listItem\",\"name\":\"Manual R\\u00e1pido del MPLAB\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/lecciones-de-electronica-analogica#listItem\",\"name\":\"Teor\\u00eda de la Electr\\u00f3nica\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/manual-rapido-del-mplab#listItem\",\"position\":4,\"name\":\"Manual R\\u00e1pido del MPLAB\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/lecciones-de-electronica-analogica\\\/manual-rapido-del-mplab#listItem\",\"name\":\"Manual R\\u00e1pido del MPLAB\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/#organization\",\"name\":\"Electr\\u00f3nica Pr\\u00e1ctica Aplicada\",\"description\":\"T\\u00e9cnicas de Electr\\u00f3nica Anal\\u00f3gica y Digital\",\"url\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/author\\\/vicente#author\",\"url\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/author\\\/vicente\",\"name\":\"Vicente Garc\\u00eda\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/manual-rapido-del-mplab#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e9fb2cbb71e9302e36eba7af946eee6dadb0d651c68c9fd47b7fb4e1ee40a1c8?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Vicente Garc\\u00eda\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/manual-rapido-del-mplab#webpage\",\"url\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/manual-rapido-del-mplab\",\"name\":\"Manual R\\u00e1pido del MPLAB - Electr\\u00f3nica Pr\\u00e1ctica Aplicada\",\"description\":\"Introducci\\u00f3n. En los proyectos que se describen en estas p\\u00e1ginas utilizaremos el software de uso libre como es el MPLAB, si por alguna raz\\u00f3n el lector quiere usar la versi\\u00f3n que he manejado en estos art\\u00edculos puede bajarse la versi\\u00f3n 5 (\\u00a1ojo! pesa 11MBytes y si su conexi\\u00f3n no es r\\u00e1pida puede tardar algo de\",\"inLanguage\":\"es-ES\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/manual-rapido-del-mplab#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/author\\\/vicente#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/author\\\/vicente#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/imagenes\\\/2010\\\/12\\\/menu-programa-MPLAB.jpg\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/manual-rapido-del-mplab\\\/#mainImage\",\"width\":480,\"height\":104},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/manual-rapido-del-mplab#mainImage\"},\"datePublished\":\"2010-12-11T01:08:31+01:00\",\"dateModified\":\"2019-06-20T18:14:16+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/\",\"name\":\"Electr\\u00f3nica Pr\\u00e1ctica Aplicada\",\"description\":\"T\\u00e9cnicas de Electr\\u00f3nica Anal\\u00f3gica y Digital\",\"inLanguage\":\"es-ES\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Manual R\u00e1pido del MPLAB - Electr\u00f3nica Pr\u00e1ctica Aplicada","description":"Introducci\u00f3n. En los proyectos que se describen en estas p\u00e1ginas utilizaremos el software de uso libre como es el MPLAB, si por alguna raz\u00f3n el lector quiere usar la versi\u00f3n que he manejado en estos art\u00edculos puede bajarse la versi\u00f3n 5 (\u00a1ojo! pesa 11MBytes y si su conexi\u00f3n no es r\u00e1pida puede tardar algo de","canonical_url":"https:\/\/www.diarioelectronicohoy.com\/blog\/manual-rapido-del-mplab","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/manual-rapido-del-mplab#blogposting","name":"Manual R\u00e1pido del MPLAB - Electr\u00f3nica Pr\u00e1ctica Aplicada","headline":"Manual R\u00e1pido del MPLAB","author":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/author\/vicente#author"},"publisher":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/menu-programa-MPLAB.jpg","width":480,"height":104},"datePublished":"2010-12-11T01:08:31+01:00","dateModified":"2019-06-20T18:14:16+02:00","inLanguage":"es-ES","mainEntityOfPage":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/manual-rapido-del-mplab#webpage"},"isPartOf":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/manual-rapido-del-mplab#webpage"},"articleSection":"Manual R\u00e1pido del MPLAB, Teor\u00eda de la Electr\u00f3nica, Microchip, MPLAB, PIC"},{"@type":"BreadcrumbList","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/manual-rapido-del-mplab#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog#listItem","position":1,"name":"Home","item":"https:\/\/www.diarioelectronicohoy.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/lecciones-de-electronica-analogica#listItem","name":"Teor\u00eda de la Electr\u00f3nica"}},{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/lecciones-de-electronica-analogica#listItem","position":2,"name":"Teor\u00eda de la Electr\u00f3nica","item":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/lecciones-de-electronica-analogica","nextItem":{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/lecciones-de-electronica-analogica\/manual-rapido-del-mplab#listItem","name":"Manual R\u00e1pido del MPLAB"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/lecciones-de-electronica-analogica\/manual-rapido-del-mplab#listItem","position":3,"name":"Manual R\u00e1pido del MPLAB","item":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/lecciones-de-electronica-analogica\/manual-rapido-del-mplab","nextItem":{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/manual-rapido-del-mplab#listItem","name":"Manual R\u00e1pido del MPLAB"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/lecciones-de-electronica-analogica#listItem","name":"Teor\u00eda de la Electr\u00f3nica"}},{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/manual-rapido-del-mplab#listItem","position":4,"name":"Manual R\u00e1pido del MPLAB","previousItem":{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/lecciones-de-electronica-analogica\/manual-rapido-del-mplab#listItem","name":"Manual R\u00e1pido del MPLAB"}}]},{"@type":"Organization","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/#organization","name":"Electr\u00f3nica Pr\u00e1ctica Aplicada","description":"T\u00e9cnicas de Electr\u00f3nica Anal\u00f3gica y Digital","url":"https:\/\/www.diarioelectronicohoy.com\/blog\/"},{"@type":"Person","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/author\/vicente#author","url":"https:\/\/www.diarioelectronicohoy.com\/blog\/author\/vicente","name":"Vicente Garc\u00eda","image":{"@type":"ImageObject","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/manual-rapido-del-mplab#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/e9fb2cbb71e9302e36eba7af946eee6dadb0d651c68c9fd47b7fb4e1ee40a1c8?s=96&d=mm&r=g","width":96,"height":96,"caption":"Vicente Garc\u00eda"}},{"@type":"WebPage","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/manual-rapido-del-mplab#webpage","url":"https:\/\/www.diarioelectronicohoy.com\/blog\/manual-rapido-del-mplab","name":"Manual R\u00e1pido del MPLAB - Electr\u00f3nica Pr\u00e1ctica Aplicada","description":"Introducci\u00f3n. En los proyectos que se describen en estas p\u00e1ginas utilizaremos el software de uso libre como es el MPLAB, si por alguna raz\u00f3n el lector quiere usar la versi\u00f3n que he manejado en estos art\u00edculos puede bajarse la versi\u00f3n 5 (\u00a1ojo! pesa 11MBytes y si su conexi\u00f3n no es r\u00e1pida puede tardar algo de","inLanguage":"es-ES","isPartOf":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/manual-rapido-del-mplab#breadcrumblist"},"author":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/author\/vicente#author"},"creator":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/author\/vicente#author"},"image":{"@type":"ImageObject","url":"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/12\/menu-programa-MPLAB.jpg","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/manual-rapido-del-mplab\/#mainImage","width":480,"height":104},"primaryImageOfPage":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/manual-rapido-del-mplab#mainImage"},"datePublished":"2010-12-11T01:08:31+01:00","dateModified":"2019-06-20T18:14:16+02:00"},{"@type":"WebSite","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/#website","url":"https:\/\/www.diarioelectronicohoy.com\/blog\/","name":"Electr\u00f3nica Pr\u00e1ctica Aplicada","description":"T\u00e9cnicas de Electr\u00f3nica Anal\u00f3gica y Digital","inLanguage":"es-ES","publisher":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/#organization"}}]},"og:locale":"es_ES","og:site_name":"Electr\u00f3nica Pr\u00e1ctica Aplicada - T\u00e9cnicas de Electr\u00f3nica Anal\u00f3gica y Digital","og:type":"article","og:title":"Manual R\u00e1pido del MPLAB - Electr\u00f3nica Pr\u00e1ctica Aplicada","og:description":"Introducci\u00f3n. En los proyectos que se describen en estas p\u00e1ginas utilizaremos el software de uso libre como es el MPLAB, si por alguna raz\u00f3n el lector quiere usar la versi\u00f3n que he manejado en estos art\u00edculos puede bajarse la versi\u00f3n 5 (\u00a1ojo! pesa 11MBytes y si su conexi\u00f3n no es r\u00e1pida puede tardar algo de","og:url":"https:\/\/www.diarioelectronicohoy.com\/blog\/manual-rapido-del-mplab","article:published_time":"2010-12-11T00:08:31+00:00","article:modified_time":"2019-06-20T16:14:16+00:00","twitter:card":"summary_large_image","twitter:title":"Manual R\u00e1pido del MPLAB - Electr\u00f3nica Pr\u00e1ctica Aplicada","twitter:description":"Introducci\u00f3n. En los proyectos que se describen en estas p\u00e1ginas utilizaremos el software de uso libre como es el MPLAB, si por alguna raz\u00f3n el lector quiere usar la versi\u00f3n que he manejado en estos art\u00edculos puede bajarse la versi\u00f3n 5 (\u00a1ojo! pesa 11MBytes y si su conexi\u00f3n no es r\u00e1pida puede tardar algo de"},"aioseo_meta_data":{"post_id":"612","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2025-01-14 13:10:10","updated":"2026-04-25 14:24:55","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/lecciones-de-electronica-analogica\" title=\"Teor\u00eda de la Electr\u00f3nica\">Teor\u00eda de la Electr\u00f3nica<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/lecciones-de-electronica-analogica\/manual-rapido-del-mplab\" title=\"Manual R\u00e1pido del MPLAB\">Manual R\u00e1pido del MPLAB<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tManual R\u00e1pido del MPLAB\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.diarioelectronicohoy.com\/blog"},{"label":"Teor\u00eda de la Electr\u00f3nica","link":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/lecciones-de-electronica-analogica"},{"label":"Manual R\u00e1pido del MPLAB","link":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/lecciones-de-electronica-analogica\/manual-rapido-del-mplab"},{"label":"Manual R\u00e1pido del MPLAB","link":"https:\/\/www.diarioelectronicohoy.com\/blog\/manual-rapido-del-mplab"}],"_links":{"self":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts\/612","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/comments?post=612"}],"version-history":[{"count":7,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts\/612\/revisions"}],"predecessor-version":[{"id":4836,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts\/612\/revisions\/4836"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/media\/1081"}],"wp:attachment":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/media?parent=612"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/categories?post=612"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/tags?post=612"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}