Menú
Está libre
registro
hogar  /  Instalacion y configuracion/ Proteus VSM. Guía de modelado interactivo

Proteus VSM. Guía de modelado interactivo

  • 2.7. Barras de herramientas superiores (conectables).
  • 2.8. Conjunto de botones de la barra de herramientas izquierda. Vinculándolos a un selector de objetos y una ventana de vista previa.
  • 2.9. "¿Cómo llegar a la biblioteca? ¿A las tres de la mañana? - (película "Operación Y").
  • 2.10. Seleccionamos componentes, los organizamos en el proyecto.
  • 2.11. Técnicas de edición rápida. Disposición de cables y buses.
  • 2.12. Técnicas de edición rápida. Marcado de cables y buses. Renumerar y asignar propiedades a elementos mediante las herramientas de asignación de propiedades.
  • 2.13. Propiedades de los modelos de microcontroladores. Configuración de valores numéricos y dimensiones.
  • Microcontrolador "Firmware" en ISIS.
  • 2.15. Primer inicio fallido de la simulación. Bailes con pandereta o análisis de posibles causas de inoperabilidad en un simulador de circuito realmente funcional.
  • 2.17. Propiedades útiles de las sondas.
  • 2.18. Gráfico digital: lo ponemos en práctica.
  • 2.19. Propiedades de los gráficos digitales.
  • 2.20. Oportunidades adicionales para analizar el gráfico al maximizar la ventana.
  • 2.21. Comparación con un proyecto en marcha de indicación dinámica. Encontramos la causa de la falla.
  • 2.22. Opciones de menú y gráfico en la ventana maximizada.
  • 2.23. Conectamos el archivo de firmware para la depuración paso a paso.
  • 2.24. Modo de depuración de programas paso a paso en ISIS.
  • 2.25. Menú contextual de la ventana de depuración paso a paso.
  • 2.26. Menú de depuración ampliado.
  • 2.28. Menú de depuración ampliado (final). Ventanas emergentes. Ventana de vigilancia súper útil.
  • 2.29. Examinemos el código fuente en ensamblador. Cómo y cómo abrirlo y editarlo.
  • 2.30. Indicaciones reales de la indicación en la ventana del reloj.
  • 2.31. Corrigiendo el archivo ensamblador. "Y sin embargo, se vuelve".
  • 2.32. La versión final del proyecto con una pantalla de trabajo.
  • 2.33. Conclusiones sobre el uso de la indicación dinámica en Proteus y en la realidad. Recursos adicionales.
  • 2.34. Conclusión de la primera parte.
  • 2. Instalación y lanzamiento Proteo. Interfaz de programa ISIS.

    2.1. Dónde conseguir el paquete de instalación de Proteus.

    La última versión de demostración está disponible en el sitio web oficial de Labcenter Electronics. este momento v.7.5.SP3. Tiene limitaciones importantes: no hay opción para guardar el proyecto, la mayoría de los ejemplos de la carpeta Samples suministrada se simulan en tiempo real. Teniendo en cuenta la distancia geográfica de "Albion brumoso" y el tamaño decente del instalador, más de 60 MB, no recomendaría la descarga con fines informativos. este paquete aquellos con una conexión lenta a Internet. Pero el mundo no está exento de "buenas" personas. No tiene sentido proporcionar enlaces específicos a sitios de alojamiento de archivos aquí, la vida útil de los archivos es limitada en el tiempo. Por lo tanto, utilice una búsqueda en Google u otro motor de búsqueda con los parámetros Proteus v. 7 (o 6), Proteus VSM o Proteus ISIS y encontrará fácilmente enlaces nuevos. Simplemente no utilice la búsqueda de una palabra "Proteus" o "Proteus" si no se esfuerza por comprar el entrenador de potencia del mismo nombre para bombear músculos.

    2.2. Instalación del programa en una computadora.

    Para instalar, debe ejecutar el paquete de instalación Setup.exe. Durante la instalación, Proteus (si no es una versión de demostración) le pedirá la ruta al archivo de licencia. Si en este momento falta el archivo de licencia, simplemente puede seleccionar la opción de tener una licencia en el servidor y dejar la ventana del servidor vacía, pero antes del primer lanzamiento, aún necesitará instalar el archivo de licencia license.lxk usando el administrador de licencias. Por defecto, el programa se instala en el directorio: Archivos de programa \ Labcenter Electronics \ Proteus 7 sin embargo, puede cambiar la ruta si lo desea. Como ya se señaló para la versión profesional, después de la instalación, debe instalar una licencia. Para hacer esto, se inicia el programa administrador de licencias (Fig.1):

    INICIO => Todos los programas => Proteus x Professional => Administrador de licencias

    en la ventana izquierda, utilizando los botones Buscar archivo de clave (manualmente) o Buscar todos los archivos de clave (búsqueda automática), seleccione la ruta al archivo de licencia, luego haga clic en el botón Instalar, que estará disponible cuando haga clic en la licencia requerida en el ventana izquierda, y la información seleccionada debería aparecer en la ventana derecha. Entonces se puede cerrar el administrador. Me gustaría llamar su atención sobre el hecho de que, frente a las imágenes clave, se enumeran las funciones del programa disponibles para esta licencia.

    Figura 1

    2.3. Primer lanzamiento y primeros problemas.

    I. Al intentar iniciar ISIS o ARES, aparece una ventana con el mensaje:

    No se puede encontrar una clave de licencia válida para ISIS (ARES) en esta computadora.

    Comentario: no hay licencia, es decir, el párrafo anterior no se ha completado o no se ha completado en su totalidad.

    II. Al iniciar la simulación(incluidos los ejemplos adjuntos de la carpeta Samples) no

    funciones, y aparece un mensaje en el registro de simulación (Fig.2):

    No se puede abrir "C: \ DOCUME ~ 1 \ = TECPOLES = \ Local Setting \ Temp \ LISAxxx.SDF’ La simulación FALLÓ debido a errores fatales del simulador

    donde en lugar de \ = TEKPOLZ = \ garabatos incomprensibles (kryakozyabry)

    Comentario: este problema no es relevante para las versiones 7.4 y posteriores. Antes de eso, Proteus rechazó categóricamente el alfabeto cirílico en el nombre de usuario de la computadora, así como en la ruta al archivo del proyecto y en el nombre del archivo en sí.

    Hay dos formas de resolver este problema:

    1) Cambiar el nombre de usuario a inglés.

    2) Ir a mi computadora=> Propiedades => Avanzado => Variables de entorno. En la ventana superior, seleccione la variable TEMP, haga clic en Cambiar y en lugar de% USERPROFILE%

    escriba% ALLUSERPROFILE% (en este caso es necesario que en el Documento y

    Configuración \ Todos los usuarios, existían las correspondientes carpetas de configuración local y temporal; simplemente pueden copiarse del usuario actual (las carpetas OCULTAS) o crearse manualmente). Puede, siguiendo el consejo de Nemo78, cambiar la ruta a% SYSTEMROOT% \ Temp (así sin la configuración local), luego Proteus usará la carpeta TEMP en el directorio de sistema de Windows.

    III. Comienza la simulación, pero después de unos segundos (minutos) el programa se cierra. La simulación solo funciona con ciertos tipos de modelos. Ejemplos de muestras

    simulado sin problemas.

    Comentario: No hay licencia para uno de los modelos usados. Está utilizando la versión "no oficial" (crackeada) y la crack no está instalada o está instalada incorrectamente. Proteus tiene una protección de múltiples etapas contra el uso ilegal, que se comprueba muchas veces durante la simulación. Los archivos están protegidos como en la carpeta principal del programa. \ BIN (Isis.exe, Ares.exe, License.dll, Prospice.dll), y en la carpeta de bibliotecas de modelos \ Modelos (Avr.dll, Lcdalfa.dll, Lcdpixel.dll, LedMPX.dll, Pic16.dll, Pic18.dll, Mcs8051.dll y algunos otros modelos). Por lo tanto, la simulación solo funcionará con aquellas bibliotecas para las que exista una licencia, o para las que se haya aplicado una "revisión".

    2.4. Interfaz del programa ISIS.

    A continuación se muestra la ventana principal del programa ISIS con explicaciones sobre el propósito de los elementos principales de la interfaz. En el futuro, me adheriré a esta terminología en una forma algo abreviada, es decir: menú de la izquierda, menú de comandos superior, menú principal superior, botones de simulación, selector de objetos. La ventana del programa no se corresponde ligeramente con la ventana completamente expandida, porque cuando se redujo el tamaño, algunos de los menús cambiaron de posición. Como en muchos otros programas de Windows, los menús se pueden arrastrar a un lugar conveniente dentro de la ventana del programa. Enganchando el botón izquierdo del mouse en el elemento del menú de inicio (una barra gris rectangular para los menús horizontales a la izquierda, y para los verticales, en la parte superior), sin soltar el botón, arrastre, por ejemplo, el menú de orientación (en la imagen, el elemento inicial es visible encima de la flecha de rotación a la derecha) dentro de la ventana a la ventana de borde vertical derecha y después de soltar el botón, se "pega" verticalmente a la derecha. Puede hacer lo mismo con cualquiera de los menús de comandos superiores. Por lo tanto, puede personalizar el diseño de los elementos del programa que le resulten más convenientes. Otra característica interesante del programa: si hace clic con el botón derecho dentro de la ventana del selector y hace clic con el botón izquierdo en la función Ocultar automáticamente en la ventana emergente, el selector se colapsará automáticamente si el cursor del mouse no se desplaza sobre él. Esto permite que los monitores 4: 3 ganen espacio para la ventana de edición. Cancelación de este modo por acciones repetidas.

    Figura 2

    2.5. La carpeta de Muestras es un tesoro de proyectos de muestra para principiantes.

    Cuando inicia ISIS por primera vez, aparecen dos ventanas emergentes. En uno de ellos, se le pedirá que compruebe si hay actualizaciones; aquí puede marcar de forma segura: "no volver a mostrar". Otra ventana le pide que abra los numerosos diseños de muestra incluidos con el programa. Si realmente es un usuario novato, no se apresure a marcar una casilla de verificación similar para bloquear las reimpresiones. Bueno, si ya ha bloqueado esta ventana, no se desespere. Siempre es posible acceder rápidamente a los ejemplos a través del menú superior Ayuda => Diseños de muestra. ¿Por qué recomiendo tanto leer los ejemplos? Si, porque el tercero

    Algunas de las preguntas que llegan al foro tienen respuestas listas en el adjunto con el programa.

    ejemplos. Desafortunadamente, para familiarizarse con el contenido de un ejemplo, debe abrirlo, ya que en la mayoría de los casos es imposible entender por el nombre del archivo lo que hay dentro. Con las sextas versiones de Proteus, la ayuda se adjuntó con ejemplos, pero en las séptimas versiones, el desarrollador lo arrebató silenciosamente por alguna razón. No es posible describir aquí el contenido de todos los ejemplos debido a la gran cantidad de información. Por lo tanto, solo me detendré

    en el más importante para principiantes y adjuntaré el archivo SAMPLES.HLP original de la versión 6.9sp5. Por supuesto, carece de una descripción de ejemplos para el nuevo MK agregado en las próximas versiones, así como ejemplos de generadores de programas de las versiones 7.4 y 7.5, pero para aquellos que hablan incluso un inglés básico esta Ayuda es de gran ayuda. Además, incluso con el

    con las últimas versiones, cuando hace clic en el nombre verde del proyecto en la ayuda, se abre automáticamente.

    Schematic & PCB Layout es una de las carpetas más interesantes para principiantes. Todos los proyectos, con la excepción de Shiftpcb, contenidos en él no están destinados a la simulación en tiempo real, pero al mismo tiempo tienen una versión terminada del circuito xxx.DSN en ISIS y el diseño de la placa xxx.LYT en

    Preste atención a los proyectos de Cpu utilizando MK Z80 y Dbell - doorbell. Estos proyectos contienen archivos PSB (placas) intermedios denominados Cpuu.LYT y Dbellu.LYT sin componentes instalados en la placa. Al abrir estos proyectos en ARES, puede probar la función de colocación automática de componentes usted mismo. Basta con seleccionar Herramientas => Auto Placer en el menú superior y en la ventana abierta simplemente hacer clic en Aceptar. Los componentes ya están colocados en los proyectos Cpu.LYT y Dbell.LYT, pero también puede probar Tools => Auto Router autorouting tracks. Los proyectos Cpur.LYT y Dbellr.LYT contienen placas preinstaladas. En cualquier etapa de ARES, a través del menú superior Salida => Visualización 3D, puede llamar a una

    imagen de la pizarra y enganchándola con el botón izquierdo del ratón para rotar y examinar desde todos los lados

    (Fig. 3).

    Fig. 3

    Me detendré por separado en el proyecto Shiftpcb.DSN, un registro de desplazamiento de 16 bits basado en una lógica fina. Merece atención por dos razones. En primer lugar, utiliza una estructura jerárquica de 4 niveles, es decir, es un proyecto complejo. La primera hoja contiene cuatro módulos de registros de desplazamiento de cuatro bits. Para ver la estructura de cada módulo, haga clic con el botón derecho en él (el elemento se volverá rojo) y seleccione la opción Ir a hoja secundaria (Ctrl + C) en el menú emergente; vaya a la hoja secundaria. Del mismo modo, puede pasar al siguiente nivel y más al final, que contiene el habitual RS-flip-flop en los elementos 2 AND NOT.

    Vuelve al nivel anterior también haciendo clic con el botón derecho, haciendo clic solo en un espacio vacío en la ventana y seleccionando la opción Salir a la hoja principal. En segundo lugar aquí

    puede ejecutar la simulación después de algunas correcciones del proyecto y ver de primera mano el trabajo del registro de desplazamiento. En su forma original, el proyecto se adapta al gráfico colocado en la primera hoja, por lo tanto, al simular a través del botón de control Reproducir simulación, recibiremos una advertencia en el log (signo de exclamación amarillo) sobre la carga de CPU del equipo del 100%. y la imposibilidad de la simulación en tiempo real:

    La simulación no se ejecuta en tiempo real debido a una carga excesiva de la CPU

    La ventana se abrirá haciendo clic en Registro de simulación con el botón izquierdo del mouse. Acostúmbrese al principio del semáforo en el Registro de simulación de inmediato: señal roja - error grave - la simulación es imposible; amarillo ("tarjeta amarilla") - advertencia - la simulación se puede realizar, pero el resultado es incorrecto y verde - la simulación procede normalmente sin errores. Por tanto, para evitar el aviso, es necesario en las propiedades de los generadores D y Clk (disponibles a través del botón derecho del ratón)

    Opción Editar propiedades Ctrl + E) establezca en consecuencia Ancho de pulso 200 my 100 m (en este caso milisegundos). Después de iniciar la simulación con el botón Reproducir, puede observar el estado de las salidas del registro de desplazamiento en los contactos del conector J2.

    Esta carpeta contiene otros ejemplos:

    EPE.DSN es un gran proyecto de programador EPROM en tres hojas (transición entre hojas

    accesible a través del menú superior Diseño o haciendo clic derecho en un espacio vacío en la ventana de edición y seleccionando la hoja correspondiente 1, 2 o 3). Algunas hojas contienen submódulos. Ya ha aprendido que tienen un contorno azul oscuro y, en consecuencia, hojas secundarias accesibles.

    FEATURES.DSN - el proyecto muestra diferentes caminos ejecución de circuitos en ISIS. Preste atención a la esquina superior derecha: una variante de un preamplificador estereofónico, diseñado en forma de 2 submódulos con hojas secundarias.

    PPSU.DSN es un proyecto de regulador de voltaje muy simple. Tiene dos opciones de PSB: PPSU.LYT

    - para un microcircuito en un paquete DIL8 (montaje a través de agujeros) y PSMT.LYT - m / cx en un paquete plano SO8. Tenga en cuenta que DIL - Dual-In-Line por alguna razón en Rusia generalmente se llama DIP. Si elige un paquete DIP Dual-In-Plane para PSB en Proteus, ¡no verá agujeros en la placa! "Ataúd" se mostrará en ARES como plano con un paso de 2,54 mm.

    SIGGEN.DSN es un proyecto generador de señales. La ayuda afirma que se está simulando, sí, pero después de una edición significativa.

    ESTILO1, 2, 3: ejemplos de diferentes diseños del mismo proyecto.

    THERMO es un termómetro con un termopar como sensor e indicación en indicadores de siete segmentos. No se simula aquí, pero en la carpeta Termómetro VSM para PIC18 \ MAX6675 hay un proyecto de trabajo con un programa PICC18 y un proyecto para MPLAB.

    dsPIC33_REC: el proyecto del dispositivo de registro de presión, similar al anterior, tiene un funcionamiento

    tome la carpeta VSM para dsPIC33.

    Simulación interactiva - carpeta contiene una subcarpeta Circuitos animados con ejemplos animados muy sencillos para principiantes.

    Básico: los ejemplos que comienzan con esta abreviatura se basan en conocimientos básicos de ingeniería eléctrica: una bombilla, una batería, un interruptor, un potenciómetro y muestran el flujo de corriente en un circuito.

    MVCR: varios ejemplos que utilizan instrumentos de voltímetro / amperímetro virtuales. PCV: ejemplos con potenciómetro de límite de corriente.

    Intres: ejemplos sobre la resistencia interna de una fuente de corriente. Cap son tres ejemplos de cómo funciona un condensador.

    CA - ejemplos con corriente alterna.

    Diodo: ejemplos sobre el uso de diodos y puentes de diodos. Inrel: ejemplos de aplicaciones de inductancia y relés. TRAN: siete ejemplos con transistores.

    Opamp - seis varios ejemplos con amplificadores operacionales. Merecen una atención especial. Existe la opción de incluir el amplificador operacional como comparador (Opamp1.DSN). Todo esto está animado, colgado con dispositivos virtuales, puedes girarlo y ver la reacción del amplificador operacional.

    Osc: ejemplos de generadores. Osc03.DSN y Osc04.DSN en el temporizador 555 que contiene una hoja secundaria con una estructura de temporizador interna en las primitivas de Spice. Esta es la "plataforma de lanzamiento" para dominar la creación de sus propios modelos.

    Comb y Seq son ejemplos para dominar el funcionamiento de circuitos digitales lógicos.

    Bueno, algunos ejemplos informativos: TRAFFIC.DSN - un semáforo, COUNTER.DSN - un contador de cuatro dígitos en 74LS390, TTLCLOCK.DSN - un reloj en lógica TTL, LISSAJOUS.DSN - usando un osciloscopio virtual para observar figuras de Lissajous y LM3914.DSN: utiliza un controlador del mismo nombre para el control de escala LED lineal.

    El resto de las subcarpetas de Interactive Simulation contienen ejemplos de proyectos para el uso de instrumentos virtuales del mismo nombre de las bibliotecas de Proteus: Counter Timer: uso de un temporizador / contador virtual en los modos de temporizador y contador de frecuencia. Ejemplos de motores: ejemplos de proyectos de motores paso a paso. Generador de patrones: ejemplos de uso del generador de secuencia de código virtual. Demostración de COMPIM: un ejemplo del uso de un puerto COM virtual y un terminal virtual en Proteus. Para realizar la simulación, este último debe tener dos puertos COM reales en la computadora conectados por un cable de módem nulo, o instalar un programa de puerto COM virtual en la computadora para simular una conexión con uno real. En este caso, en el modo de simulación, es posible organizar el intercambio de datos a través de esta conexión desde el programa ISIS con cualquier programa de la computadora que permita trabajar con un puerto COM (por ejemplo, el Hyper Terminal estándar).

    El resto de las subcarpetas de la carpeta Samples contienen ejemplos de proyectos que utilizan la serie correspondiente de microcontroladores (por ejemplo, VSM para PIC16 - ejemplos con Microchip PIC16 MK). No los consideraré en detalle ahora, ya que los más interesantes se considerarán más adelante, a medida que domine el programa ISIS.

    Aquí solo enumeraré que la simulación basada en gráficos contiene ejemplos de aplicaciones. diferentes tipos gráficos para explorar circuitos, nos referiremos a la carpeta Tutoriales al crear nuestros propios modelos. Me gustaría resaltar dos carpetas: VSM MPLAB Viewer y VSM AVR Studio Viewer. Estas carpetas contienen ejemplos de cómo compartir los respectivos kits de herramientas. Donde

    ¡Buen día, queridos colegas! Hace tiempo que quería contarles sobre mi experiencia en el modelado de circuitos en una computadora. Además de los conocidos, hay muchos otros emuladores, pero no muchos saben cómo usarlos, y de hecho dónde conseguir la versión normal del programa. Yo también solía hacer esta pregunta. Cuando todavía estaba en la escuela, en los grados 10-11 me dejé llevar por los circuitos de modelado en los mismos programas. Conocí a un chico al que también le gustaba la electrónica, luego me habló de un programa tan excelente como Proteo... Lo subí al correo, aunque en ese momento no tenía Internet normal y no fue fácil descargarlo.

    Entonces, después de descargar Proteus del correo, procedí a la instalación; todo es muy simple aquí, pero aún así los principiantes pueden tener algunos problemas, por lo tanto, describiré la instalación en sí en etapas:

    Instalación de Proteus

    1) Descargue el programa en sí, aquí hay 2 opciones: descárguelo usted mismo de Internet o escríbame por correo.

    3) En el archivo en sí hay una lista de programas útiles que ahora uso, aquí están AVR Studio, Barracks y Sina Prog; todos encajan, como verá.


    4) Encuentra el archivo Configuración de Proteus 7.7, haga clic en "instalar", durante el proceso de instalación, le pedirá una clave, haga clic en "descargar del servidor", luego (en inglés próximo ), y después de un tiempo el programa completará la instalación.


    5) Ahora, en nombre del ADMINISTRADOR, ejecute el programa Grieta Proteus 7.7 si no es del administrador, no saldrá nada.


    6) Cualquiera que hable mal inglés puede rusificar el programa, pero al mismo tiempo tuve krakozyabry y sé inglés bien, así que lo dejé como está.


    Trabajando con Proteus

    Empecemos con el modelo más simple- tomar el microcontrolador ATMEGA-8 y escribir un programa para él en C ++ que hará parpadear un LED, para ello realizaremos los siguientes pasos:

    1) En el archivo con Proteus hay un archivo AvrStudio4Setup, ejecútelo, no requiere ninguna clave, pero hay una condición para un robot normal de este programa: más sobre esto ...


    2) Al instalar el programa, automáticamente le pedirá que instale controladores adicionales en USB; esta acción debe confirmarse, entonces comprenderá por qué.

    3) Luego instale un programa llamado Win AVR, su instalación es intuitiva, por lo que no lo describiré en detalle.


    5) No quería abrir el programa en el Ocho, así que descargué la quinta versión. Si alguien quiere hacer lo mismo, seguiré escribiendo sobre la quinta versión, no es muy diferente de la cuarta.

    6) Inicie el programa, seleccione un nuevo proyecto.


    7) En la parte inferior, ingrese el nombre del proyecto y el directorio donde se guardará.



    9) Ingresamos el texto del programa, presionamos F7-depurar, luego F5-creación.

    10) Tengo un texto como este:

    11) #define F_CPU 1000000UL // especifica la frecuencia en hercios
    12)
    13) #incluir
    14) #incluir
    15)
    16) int main (void) (// inicio del programa principal
    17)
    18) DDRD = 0xff; // configurar todos los pines del puerto D como salidas
    19)
    20) PORTD | = _BV (PD1); // establece "1" (nivel alto) en el pin PD1,
    21) // enciende el LED
    22)
    23) _delay_ms (500); // espera 0,5 seg.
    24)
    25) PORTD & = ~ _BV (PD1); // establece "0" (nivel bajo) en el pin PD1,
    26) // apaga el LED
    27)
    28) _delay_ms (500); // espera 0,5 seg.
    29)
    30) PORTD | = _BV (PD1); // establece "1" (nivel alto) en el pin PD1,
    31) // enciende el LED
    32)
    33) _delay_ms (500); // espera 0,5 seg.
    34)
    35) PORTD & = ~ _BV (PD1); // establece "0" (nivel bajo) en el pin PD1,
    36) // apaga el LED
    37)
    38)) // paréntesis de cierre del programa principal

    41) Pasando al proteus. Nosotros abrimos Isis.


    42) En la línea del lateral, seleccione Modo componente.


    43) Microprocesadores

    44) Seleccione nuestro controlador.


    45) Construimos un diagrama.


    47) Ahora indicamos la carpeta donde se guardó el código del programa, debe tener la extensión maleficio.

    48) Programamos el controlador, luego hacemos clic lanzamiento, vemos el parpadeo del propio LED.

    Ahora hemos aprendido los datos básicos para modelar. Pero estas no son todas las características del programa Proteus. Ahora usemos el paquete Ares para crear una placa de circuito impreso en 3D.


    Por ejemplo, elegí un modelo ya hecho.

    Pero el programa también tiene la capacidad de crear nuevos proyectos. Después de construir el tablero, seleccione Producción , Visualización 3D y listo: la placa 3D está lista. Espero que este artículo haya ayudado al menos un poco a dominar este útil programa de radioaficionados. estaba contigo Columnista.

    Comenta el artículo PROTEUS

    Seguramente, a muchos de los lectores de este sitio les gustaría desarrollar y ensamblar de forma independiente algún dispositivo en el MK AVR. Pero puede haber muchas razones por las que es difícil hacer esto con hierro. Por ejemplo, vivir en una zona rural donde no hay tiendas de radio con una gran selección de componentes de radio. Aunque en este caso, como siempre, la web de Ali Express viene al rescate. O un presupuesto limitado. Esto es especialmente cierto para los escolares y estudiantes que aún no tienen fuente constante ingreso.

    Entonces, ¿qué se debe hacer en este caso? Aquí es donde vienen a nuestro rescate programas especiales de simulación, especialmente creados para depurar circuitos.

    Uno de ellos, Proteus versión 7.7, lo analizaremos en este artículo en relación a nuestro proyecto.

    ¿Qué nos aporta este programa? Los principiantes pensarán que es demasiado difícil de dominar. No, no es así. Simplemente no usaremos todas las funciones del programa al emular nuestros primeros proyectos. Realmente es posible dominar sus conceptos básicos en una o dos noches. ¿Qué nos aporta en cuanto a aprender a trabajar con microcontroladores? Allí, por ejemplo, hay una representación visual del funcionamiento de los LED, pantallas en tiempo real. Puede optar por emular el trabajo de muchos tipos de MK AVR, incluidos aquellos en los que se basarán nuestras lecciones: Tiny2313 y Mega8. ¿Qué significa esto y cómo se hace? Escribimos el código de nuestro firmware, lo compilamos, obtenemos el archivo HEX que necesitamos y virtualmente flasheamos nuestro MK en el programa Proteus. Además, también podemos cambiar los bits de fusible de nuestro MK virtual.

    Echemos un vistazo a las acciones que debemos realizar para ensamblar este circuito en el campo de trabajo por nuestra cuenta y realizar la emulación.

    Aquí hay una ventana que se abre inmediatamente después de iniciar el programa (haga clic para ampliar):


    Luego, debemos seleccionar de la biblioteca las partes de radio que necesitamos para el proyecto y colocarlas en la lista de partes. Luego podemos seleccionarlos e instalarlos en el campo de trabajo. En nuestro proyecto usaremos un Attiny2313 MK, un LED amarillo-LED AMARILLO (“brilla” bien en el Proteus) y una resistencia RES para limitar la corriente que fluye a través del LED. De lo contrario, no importa lo ridículo que suene, "quemaremos" el LED virtual :-).

    Para seleccionar estos elementos de radio, debemos hacer clic en la letra "P":

    Después de hacer clic, aparecerá esta ventana:


    En el campo "Máscara", manejamos lo que queremos encontrar, es decir, nuestro MK, LED y resistencia.


    Escribimos en el campo Máscara "Tiny2313" y hacemos clic en el MK encontrado por nosotros en la columna "Resultados (1)":


    Luego repetimos lo mismo con la resistencia. Conducimos en "res":


    y de la misma forma buscamos un LED:


    Bueno, ahora estos tres elementos deberían mostrarse en la columna "Dispositivos":

    Ahora hacemos clic en la flecha negra y luego seleccionamos el elemento de radio que necesitamos de la lista:

    A la izquierda, en la columna vertical, vemos el icono de “Terminal”. Estamos interesados ​​en dos líneas allí: Power y Ground. Esto es, respectivamente, en nuestro circuito de alimentación de +5 voltios y tierra. No es necesario suministrar energía al MK, se suministra automáticamente. Para el diagrama, solo tomamos el icono de tierra.

    Sacamos todos los radioelementos al campo de trabajo.


    Luego necesitamos conectarlos con una conexión de línea, luego de eso tendremos todos iguales que están conectados por un conductor, por ejemplo, una pista en una placa o un cableado.


    Debo decir de inmediato, no intente instalar un cable de la pieza de un extremo a otro, ni siquiera superponerlo, sin usar líneas de conexión. El programa no entenderá esto como una conexión y el circuito no funcionará.

    También necesitamos cambiar el valor de la resistencia. Por defecto, no es adecuado para nuestro esquema. ¿Cómo hacerlo?

    Haga clic derecho en la resistencia, seleccione Editar propiedades


    Y luego cambiamos el valor a 200 ohmios. Es suficiente que nuestro LED virtual no haya muerto)


    A veces, el área de trabajo intenta escapar de la pantalla, luego debemos usar el desplazamiento de la rueda del mouse para cambiar la escala y hacer clic en la configuración marco verde en la esquina superior izquierda para que todo nuestro proyecto esté dentro

    Por cierto, quiero decir de inmediato que si hemos cometido alguna acción errónea, solo debemos hacer clic en el botón “Cancelar” y se cancelará la última acción. Creo que mucha gente lo sabe por los programas de terceros, pero nunca se sabe).

    Entonces, hemos ensamblado el diagrama. Ahora tenemos que cargar el firmware en nuestro microcontrolador y ver cómo se ve en acción. Para hacer esto, necesitamos hacer clic botón derecho del ratón en MK y haga clic en el icono con la imagen de la carpeta amarilla en la columna Archivos de programa. Por cierto, aquí puede, si es necesario, configurar los latidos del fusible (haga clic para ampliar la imagen):


    Luego, debe seleccionar el archivo de firmware con la extensión * .HEX y hacer clic en "Abrir". Todo está listo, puedes emular el proyecto.

    (Haga clic en la foto para ampliarla)


    Para iniciar la emulación, debe presionar el botón "triángulo" en la esquina inferior izquierda del programa "Proteus":


    Comenzaremos la emulación. Veremos parpadear el LED. En algún momento, nuestro LED se encenderá. Mira lo brillante que se quema en amarillo :-)


    Y luego volverá a salir:


    Ahora podemos, si lo deseamos, guardar nuestro proyecto con cualquier nombre seleccionando "Guardar proyecto como", y también si queremos abrir un archivo terminado de otro proyecto seleccionando "Abrir proyecto"

    Así es como se ve el icono del proyecto guardado en el escritorio:

    Espero que ustedes, los lectores, no tengan dificultad para armar este proyecto por su cuenta y, en el futuro, habiendo mejorado la habilidad, puedan armar fácilmente cualquier proyecto más complejo por su cuenta. El proyecto terminado para el programa Proteus 7.7 y el firmware se adjuntan en el archivo.

    ¡Eso es todo! A continuación se muestra un video de cómo funciona el circuito, así como todas las etapas de la emulación:

    En general, existen muchos sistemas de modelado circuitos electrónicos... De todo lo que he visto, el que mas me gustó Multisim y ISIS Proteus... Multisim tiene una interfaz muy fácil de usar y es conveniente depurar dispositivos analógicos en ella, porque le permite usar transistores y amplificadores virtuales (es decir, usted mismo especifica los parámetros), pero no admite sistemas complejos, como microcontroladores o todo tipo de controladores. Más precisamente, es compatible, pero extremadamente lento. Solo recientemente contó con el apoyo de los antiguos AT89C2051 y varios FOTO'S

    Contra, Proteo sabe cómo trabajar muy bien con los controladores, pero está limitado por su biblioteca de elementos reales, por lo que sin saber qué parte necesita, hará poco allí, y también tiene una interfaz miserable, pero es mejor sistema simulaciones que he visto en mi vida. Por lo tanto, lo describiré exactamente.

    Pesa unos treinta metros en el archivo, la última versión que conozco es 7.2 Considere solo que la versión gruñona de Proteus funciona muy extraño a veces, por ejemplo, ve el código del procesador, pero la depuración no continúa y deja valores en los registros. Por lo tanto, mira con atención;))))

    Propongo tomar inmediatamente al toro por los cuernos y simular rápidamente algún circuito simple en un microcontrolador. Explique dónde y qué estaré durante el proceso.

    Correr Proteo, inmediatamente debe desprenderse una ventana beige con puntos. Este es un campo de trabajo. Aquí es donde construiremos nuestro esquema. Por ejemplo, estropeemos el circuito de mi controlador favorito. AT89S51 no hará nada que valga la pena, simplemente enviará cartas a la ventana del terminal presionando los botones adjuntos a los puertos del controlador.

    Para agregar un componente, debe seleccionar primero flecha negra en la esquina superior izquierda, y luego presione el botón con lupa y triangulo se encuentra en la barra de herramientas superior en el medio.

    Se abrirá una enorme lista de elementos que sabe que se abrirán. Proteo... Las bibliotecas se complementan y actualizan constantemente, así que navegue por Internet en busca de nuevas piezas.
    Encuentra el controlador en la lista AT89S51, para no perder el tiempo, utilice una búsqueda por palabra clave; simplemente escriba " AT89»Verás a toda la familia MSC-51 famoso Proteo.

    Elige el que quieras y pincha OK". Luego coloque el microcircuito en un lugar conveniente para usted. Inmediatamente haré una reserva de que los modelos de los procesos en Proteo algo simplificado, por lo que no requieren la presencia de un cuarzo en el circuito virtual, un sistema de reinicio (pull-up REINICIAR al nivel deseado), la presencia de una señal para usar la memoria interna (+5 en EA, una característica del C51 capaz de trabajar desde el exterior ROM) y esto no hay que olvidarlo cuando al final hagamos un circuito real, de lo contrario, al final, se tardará muchísimo en buscar la causa del circuito inoperativo.

    Aunque no son necesarios, agregaremos los detalles de la moldura. Nuevamente pincha la lupa con un triángulo y busca cuarzo ahí, los burgueses lo llaman " cristal"Ponlo en el diagrama junto a las conclusiones XTAL.

    La principal miseria de la interfaz. Proteo el hecho de que siempre el clic derecho primero selecciona y luego borra el componente, y el izquierdo pone uno nuevo igual. Terriblemente molesto, en Multisim todo se hace mucho más conveniente y tradicional, pero, por desgracia, Multisim no tan poderoso.

    Ahora coloque el cursor sobre el pin de cuarzo y conéctelo al pin XTAL1 procesador, haga lo mismo con la segunda pata de cuarzo, solo en XTAL2... Ahora necesitamos condensadores, regrese a la biblioteca y mire allí Condensadores... Habrá una enorme lista de conductores reales, elija algunos SMT condensador de orden 33pF... En la ventana superior a la derecha estará su designación en el diagrama, y ​​debajo las dimensiones generales, o más bien las almohadillas de contacto para su sellado.

    Por cierto, mire en la ventana justo debajo de la barra de búsqueda. Ves la linea alli Modelado primitivo? Allí hay primitivas virtuales. No tienen cuerpo, por lo tanto, al cablear placa de circuito impreso aparecerá con un error, pero si no va a cablear la placa, pero solo desea modelar el circuito, entonces tómelo mejor: puede cambiar sus valores como desee.

    Pega un par de conductores al lado del cuarzo y cuélgalos de las patas del cuarzo con un cable, combina el otro y cuélgalos en el suelo. Donde conseguir la tierra? Buena pregunta:). Busque en la barra de herramientas de la izquierda dos cosas que parecen etiquetas, llamadas Modo terminal... Empuje en él, se abrirá justo al lado, a la izquierda, un panel donde debe seleccionar una línea SUELO esta es la tierra. Instálalo donde quieras. Poder en el mismo lugar: este es el voltaje de suministro del circuito. Suele ser común, pero a veces puede haber problemas con el hecho de que el circuito tenga múltiples fuentes de alimentación (como, por ejemplo, en una computadora, hay 5 y 12 y 3.3 voltios y, en general, la oscuridad de diferentes voltajes) .

    A continuación, debe ensamblar el circuito de reinicio. Proteus no necesita esto, funcionará bien de todos modos, pero esquema real es necesario. Esto se hace de forma sencilla. Ponemos una resistencia y un condensador. Cuando se enciende, cuando el condensador no está cargado, entonces su resistencia es cero y a la salida RST Se suministran +5 voltios, es decir 1 lógico, y tan pronto como se cargue el condensador, sucederá en un par de milisegundos, luego el tramo a través de la resistencia quedará en el suelo, y este ya es un cero lógico real y el porcentaje comenzará en modo normal.

    Haz todo como en la imagen y empieza a colgar botones en nuestro dispositivo. Mejor colgar en el puerto 1. ¿Por qué? Y no se necesitan resistencias adicionales. El hecho es que el puerto 0 de C51 tiene la capacidad de funcionar en el bus de datos, lo que significa que tiene el llamado estado Z. Esto es cuando la salida no es 1 y no 0, hay una alta resistencia (impedancia), casi un circuito abierto, pero el puerto puede olfatear el bus en este momento sin una paleta de valores que vuelan allí, sin delatarse. o interferir con otros dispositivos.

    El puerto 3 está cubierto con todo tipo de periféricos adicionales, y el puerto 2 no está muy convenientemente ubicado en el modelo de proteus. Por lo tanto, usamos el puerto 1 :))))). Busque algún interruptor o botón en la biblioteca. Me gusta el componente de botón, así que eso es lo que estoy usando. Pondré cuatro botones y los colgaré en los pines P1.0, P1.2, P1.4, P1.6, y pondré los otros pines del botón todos juntos en el suelo. ¿Cómo funcionará?

    ¡Sencillo! Primero, traigo uno al puerto para todas las salidas. Las piernas desde el interior se levantan inmediatamente hasta la unidad lógica. Ahora, para leer los datos, basta con tomar el valor del registro del puerto P1, y si presionamos alguno de los botones, entonces esta pata queda firmemente plantada en el suelo, dominando el pull-up interno a uno. Aquellos. el botón presionado da en el puerto un cero en su bit. Este principio de determinar la pulsación de un botón en todos los microcontroladores. También recomiendo encarecidamente desviar los botones con condensadores de 40pF; no habrá falsas alarmas por ruido impulsivo.

    Pero esto es solo en dispositivos reales, en Proteusa de todos modos no importa, pero agregaré. Eso es todo, la entrada de datos está lista. Ahora tenemos que sacar una conclusión. Para la salida, puede colgar estúpidamente LED virtuales en las patas y también hacerlos parpadear virtualmente, pero esto es de mala educación, aunque, no lo discuto, a menudo ayuda a depurar el programa.

    Prefiero complacer a mis seres queridos UART ohm. En pocas palabras, una terminal. Subimos al apartado de dispositivos virtuales. Busque un icono con un dispositivo de flecha dibujado en la barra de herramientas izquierda y suba allí. Tendrá una lista de toda la basura que puede usar. Aquí tienes un voltímetro, un amperímetro, un osciloscopio, un analizador digital y varios pribluda altamente especializados como un monitor de protocolo. SPI o I2C... Para divertirse, lleve un osciloscopio ( osciloscopio) y cuélgalo con un canal por salida TxD... También necesitamos Terminal virtual... Selecciónelo e insértelo en el diagrama. Y ahora conecta sus salidas con las salidas de la sonda, de forma transversal. Rx con Tx, Tx con Rx.

    ¡Listo! Bueno, para completa felicidad, pon otro LED en el puerto. P2... ¿Cómo conectar los LED a los puertos del procesador? ¡Es muy simple! Cuelga el más del LED en la fuente de alimentación y el menos en la resistencia, y esta resistencia ya está en la salida del procesador. Para encender el diodo, debe emitir 0 en este tramo.

    Entonces, la diferencia de voltaje entre el voltaje de suministro y el voltaje cero en la pata será máxima y el diodo se quemará. Buscar en los componentes DIRIGIÓ Bueno, ponlo como te dije. Probablemente ya me he dado cuenta de que más a menudo definimos o establecemos un evento por cero, y no por uno. Esto se debe al hecho de que es más fácil obtener cero a la fuerza que levantar las piernas. Pero este no es siempre el caso, por ejemplo, los controladores familiares AVR saben plantar bien las piernas tanto a cero como a la tensión de alimentación, de modo que allí el diodo pueda encenderse con uno. Para hacer esto, será necesario darle la vuelta y no colgar el otro extremo a través de una resistencia. Poder y en el suelo.

    Entonces, dibujamos el hardware. Es hora de comenzar a configurar y depurar.

    Seleccione el microcontrolador y haga doble clic en él, se abrirá la ventana de propiedades.
    Paquete de PCB- Este es el tipo de envolvente, es importante en el diseño de la placa de circuito impreso. Que sea DIL40

    Archivo de programa- este es el archivo de firmware real. Aquí debe registrar la ruta a archivo hexadecimal a.

    Frecuencia de reloj- la frecuencia con la que funcionará el porcentaje.

    En la vida real, la frecuencia depende del cristal o del generador de reloj incorporado. V Proteo se exhibe aquí. No olvides configurarlo correctamente, ya que los valores predeterminados suelen diferir de los que vas a utilizar.
    Establezca la frecuencia deseada del procesador y anote la ruta al firmware, esto completa la configuración del circuito. Puede comenzar a depurar.

    Pulsa el botón con el icono Jugar como en una grabadora. Todo es sencillo, sin complicaciones. Solo notaré que modo de pasos es solo un comienzo intermitente con un ligero desfase de tiempo. Para la depuración, debe utilizar el código de depuración.

    Tu circuito ahora funciona. Puedes observar los procesos que tienen lugar en él. Si selecciona un voltímetro en la barra de herramientas, verá el voltaje, o puede medir la corriente si usa un amperímetro. Los cuadrados de colores que se iluminaron en las patas del procesador son niveles lógicos. El azul es cero, también conocido como tierra. El rojo es lógico y el gris es de alta impedancia, también conocido como Hi-Z.

    En principio, esto ya es suficiente para depurar el funcionamiento del dispositivo. Y qué, depuramos el programa en Keil uVision(si hablamos de C51) o en Estudio AVR, compile y vea qué sucedió. Esto funciona muy bien en dispositivos simples con un controlador de control y un arnés.

    Pero cuando tiene varios microcontroladores o un controlador funcionando en su sistema y algún dispositivo muy inteligente, por ejemplo, una llave Dallas, no empiezan a aparecer hemorroides débiles, ya que es difícil decir en qué momento qué controlador está haciendo qué. En tal situación, un depurador interno vendrá en nuestra ayuda. Proteo, que le permite depurar el programa desde el código fuente sin salir de la simulación.

    Agrega la fuente.
    Sube al menú y busca un artículo allí. Fuente y lo golpearé con valentía con mano inquebrantable. Escoger Agregar o quitar fuente y agregue la fuente. Te lo aconsejo enseguida, para que el compilador no sea estúpido, los códigos fuente se pinchan por sendas rutas, sin espacios y sin letras rusas. Por ejemplo, como el mío: " d: \ coding \ C51 \ hack_2.asm"Al agregar la fuente, no olvide especificar el compilador con el que deberá compilarse. Para este caso en "Herramientas de generación de código" es necesario indicar “ ASEM51”, Es decir, el compilador de arquitectura MCS-51.

    prensa OK y en el menú Fuente Aparecerá un elemento más: el archivo de origen agregado, seleccionando cuál el editor abre automáticamente y puede corregir rápidamente el texto del programa.

    Configuración del compilador.
    De nuevo, ve al menú Fuente y busque el artículo " Definir herramientas de generación de código”Estas son opciones del compilador. Inicialmente están configurados de forma torcida, en la sección " Establecer reglas"Empuje en la línea" Línea de comando Y saca toda la basura que hay. Deja solo “%1 "Sin comillas. ASEM51 contagio inteligente, él mismo agregará archivos requeridos con descripciones de registros y variables, especialmente porque toda la familia MСS-51 todas las direcciones son iguales.

    Compilacion
    Haga clic en el mismo menú Fuente párrafo Construir todo y sal de camino archivo hexadecimal, pero ya de fabricación local. En el mismo lugar, parpadeará la ventana del compilador, en la que habrá información sobre errores y una serie de datos de servicio.

    Corriendo
    Inicie el esquema con un botón Jugar en el panel inferior e inmediatamente presione el modo de pausa o paso a paso. Debería abrirse inmediatamente una ventana con el código del programa, como en el depurador con el que ya está familiarizado. Si no se abrió, lo encontrará en el menú. Depurar -> 8051CPU -> Código fuente - U1

    También habrá muchas otras cosas útiles, como el contenido de los registros del procesador o la memoria de programas / datos.

    Tio corriendo rojo- Lanzamiento del código para su ejecución.
    Pierna saltando sobre tonterías- ejecución con procedimientos de omisión
    Flecha hacia abajo- sigue una instrucción, da un paso.
    Flecha hacia arriba- salir de la subrutina.
    Pierna y flecha hacia adelante- ejecutar hasta el cursor.
    Círculos con flechas- establecer / eliminar / deshabilitar los puntos de interrupción de BreakPoint. Un punto de interrupción es un lugar en el programa donde su programa permanecerá arraigado en el lugar y llegará más lejos solo con su consentimiento, algo insustituible en la depuración.


    Al agregar un segundo procesador al proyecto, su código, registros y memoria estarán en el mismo lugar, pero ya se llamará Código fuente - U2 etc.
    Además, en el directorio Proteus'a hay una carpeta MUESTRAS aquí hay un montón de ejemplos diferentes, muy complejos, que muestran las capacidades del sistema ISIS Proteus.

    ZY
    Escribí este artículo para la revista Hacker. En una forma ligeramente diferente (un poco más detallada) se publicó en la revista de diciembre de 2007.

    El propósito de esta guía es mostrarle, mediante la creación de un esquema simple, cómo realizar simulaciones interactivas utilizando Proteus VSM. Por ahora, nos centraremos en usar Componentes activos (Componentes activos) y las capacidades de depuración del editor ISIS, también cubriremos los conceptos básicos del enrutamiento y los conceptos básicos de la gestión esquemática. Se puede encontrar una descripción completa de estos temas en el sistema de ayuda de ISIS.

    El circuito que usaremos para la simulación son dos semáforos conectados a un microcontrolador PIC16F84 como se muestra a continuación.

    Mientras dibujamos el diagrama desde cero, la versión terminada se puede encontrar a lo largo del camino "Samples \ Tutorials \ Traffic.DSN" en la carpeta donde tienes instalado Proteus. Los usuarios que estén familiarizados con los métodos básicos de trabajo en ISIS pueden seleccionar un circuito ya hecho e ir a la sección sobre el programa del microcontrolador. Sin embargo, tenga en cuenta que este archivo de proyecto contiene un error deliberado; lea para obtener más información. información detallada.

    Si no está familiarizado con ISIS, la interfaz y los conceptos básicos de uso se detallan en Descripción general del editor ISIS y aunque cubriremos estos temas en la siguiente sección, debe tomarse el tiempo para familiarizarse con el programa antes de continuar.

    Dibujar un diagrama

    Colocación de elementos

    Empecemos por colocar dos semáforos y un PIC16F84 en el nuevo trazado de los circuitos. Inicie un nuevo proyecto, seleccione un icono Componente (Componente) (todos los iconos tienen información sobre herramientas y ayuda contextual para ayudarle a utilizarlos). Luego haga clic izquierdo en la letra 'PAG' en la parte superior del selector de objetos ( Selector de objetos) para abrir la ventana del navegador de bibliotecas ( Navegador de biblioteca), que aparecerá en la parte superior de la ventana del editor (ver Conceptos básicos para ingresar a esquemas(consulte el sistema de ayuda de ISIS).

    Presione la tecla P en su teclado y escriba "Tráfico" en el campo Palabras clave ( Palabras clave) y haga doble clic en el resultado para mover los semáforos al selector de objetos. Haga lo mismo con el PIC16F84A.

    Una vez que haya seleccionado los semáforos y el PIC16F84 en el proyecto, cierre el navegador de la biblioteca y haga clic una vez en PIC16F84 en el selector de objetos (esto resaltará su elección y el elemento se mostrará en la ventana de vista previa en la esquina superior derecha de la pantalla) . Ahora haga clic con el botón izquierdo en la ventana del editor para colocar el elemento en el diagrama; repita el proceso para colocar dos semáforos en el diagrama.

    Movimiento y Orientación

    Creamos los nodos esquemáticos, pero accidentalmente no los colocamos perfectamente. Para mover un elemento, haga clic derecho sobre él (esto seleccionará el elemento), luego mantenga presionado el botón izquierdo del mouse y arrastre el elemento (verá el contorno del elemento "siguiente" detrás del cursor del mouse) a la posición requerida . Cuando la ruta esté donde lo desea, suelte el botón izquierdo del mouse y el elemento se moverá a la posición especificada. Tenga en cuenta que en el momento en que el elemento todavía está seleccionado, al hacer clic con el botón derecho en un espacio vacío en la ventana del editor, el elemento volverá a su estado normal.

    Para rotar un elemento, haga clic con el botón derecho en él de la misma manera que en el caso anterior, y luego haga clic con el botón izquierdo en uno de los iconos de rotación ( Rotación). Esto rotará el elemento 90 grados; repítalo tantas veces como sea necesario. Nuevamente, una buena práctica es hacer clic derecho en un área vacía del esquema cuando haya terminado para restaurar el elemento a su estado original.

    Diseñe el diagrama de manera significativa (por ejemplo, según la facilidad de percepción), mueva y gire los elementos según sea necesario. Si tiene algún problema, le recomendamos que consulte el tutorial en la Ayuda de ISIS - Tutorial de ISIS.

    Para nuestro propósito, ignoramos los gráficos 2D para evitar confusiones y nos concentramos en crear un circuito simulado; para aquellos interesados, se puede encontrar una charla completa sobre las capacidades gráficas de ISIS en la sección Gráficos 2D.

    Escala y captura

    Como regla general, al diseñar un diagrama, es útil poder cambiar la escala del área requerida. Pulsando la tecla F6 o el icono Incrementar (Acercarse) acercará la posición actual del mouse o, alternativamente, mantenga presionada la tecla MAYÚS y mantenga presionado el botón izquierdo del mouse y seleccione el área que desea ampliar. Para alejar, presione la tecla F7 o el icono Disminución (Disminuir el zoom), o si desea alejar la imagen para poder ver el diagrama completo, presione la tecla F8 o use la rueda del mouse para alejar o aumentar el área requerida. Se puede acceder a los comandos correspondientes desde el menú Vista (Vista).

    ISIS tiene capacidades muy poderosas llamadas Instantánea en tiempo real... Cuando el cursor del mouse está cerca del final de un alfiler o cable, estos objetos capturan la ubicación del cursor. Esto facilita la edición y gestión del circuito. Esta función se puede encontrar en el menú Herramientas ( Instrumentos) y está habilitado de forma predeterminada.

    Puede encontrar más información sobre escalado y captura en el sistema de ayuda de ISIS - Ventana del editor.

    Seguimiento de conexión

    La forma más sencilla de conectar un esquema es utilizar la opción de enrutador automático de cables ( Enrutador automático de alambre) en el menú Herramientas ( Instrumentos). Asegúrese de que esté activado (debería ver una marca de verificación en el menú a la izquierda de la opción). Para obtener más información, consulte la sección "Autorouter de rastreo de cables" en el Manual de ISIS. Amplíe el PIC para que todos los pines estén visibles, luego mueva el cursor del mouse al final del pin 6 (RB0 / INT). Verá un pequeño cursor "x" al final del mouse. Esto indica que el mouse está en la posición correcta para conectar un cable a este pin. Haga clic con el botón izquierdo para iniciar la conexión y luego mueva el mouse al pin conectado a la luz roja de uno de los semáforos. Cuando vuelva a colocar el cursor "x" sobre este pin, haga clic con el botón izquierdo para finalizar la conexión. Repita este proceso para conectar ambos semáforos como se muestra en el circuito de muestra.

    Un par de preguntas sobre el proceso de cableado que vale la pena mencionar:

    • Puede hacer conexiones en cualquier modo: ISIS es lo suficientemente inteligente como para saber lo que está haciendo.
    • Cuando el enrutamiento automático del explorador está habilitado ( Enrutador automático de alambre), se distribuye alrededor de obstáculos y, por regla general, se busca una trayectoria conveniente entre las conexiones. Con este método, generalmente solo necesita hacer clic izquierdo en ambos extremos de la conexión y dejar que ISIS se encargue de la ruta entre ellos.
    • ISIS moverá automáticamente la pantalla si toca el borde de la ventana del editor moviendo el cable. Con eso en mente, puede acercarse a un nivel adecuado y, asumiendo que conoce la posición aproximada del elemento objetivo, simplemente empuje la pantalla hasta que lo vea. Alternativamente, puede acercar y alejar mientras mueve el cable (usando las teclas F6 y F7).

    Finalmente, debemos conectar el pin 4 al terminal de potencia. Seleccione un icono "Terminal" (Terminal) y resaltar "Nutrición" (PODER) en el selector de objetos. Ahora haga clic izquierdo en el lugar apropiado y coloque el terminal. Elija una orientación adecuada y conecte el terminal al pin 4 usando el mismo método que antes.

    En esta etapa, le recomendamos que descargue la versión terminada del circuito; esto le evitará cualquier confusión si la versión que ha dibujado está en un lugar diferente al nuestro. Además, si no ha comprado la biblioteca de modelos de controlador de imagen, para continuar, debe descargar el archivo de ejemplo preparado.

    Escribir un programa

    Listado del programa fuente

    Para el éxito de nuestra consulta, hemos elaborado el siguiente programa, que queda registrado en el PIC para el control de los semáforos. Este programa está preparado en el archivo TL.ASM y se puede encontrar en la carpeta "Muestras \ Tutoriales".

    ; PIC16F844 es el procesador de destino LIST p = 16F84; Incluir archivo de encabezado #include "P16F84.INC"; Almacenamiento temporal CBLOCK 0x10 estado l1, l2 ENDC org 0; Poner en marcha el vector. goto setports; Vaya al código de inicio. org 4; Interrumpir vector. detener ir a detener; Siéntese en bucle sin fin y no haga nada. setports clrw; Céntrese en W. movwf PORTA; Asegúrese de que PORTA sea cero antes de habilitarlo. movwf PORTB; Asegúrese de que PORTB sea cero antes de habilitarlo. bsf STATUS, RP0; Seleccione Clrw del banco 1; Máscara para todos los bits como salidas. movwf TRISB; Establecer registro TRISB. bcf STATUS, RP0; Vuelva a seleccionar el banco 0. initialise clrw; Estado inicial. estado movwf; Configurarlo. bucle de llamada getmask; Convierta el estado en máscara de bits. movwf PORTB; Escríbalo al puerto. estado incf, W; Incrementar el estado en W. andlw 0x04; Envuélvalo alrededor. estado movwf; Vuelva a ponerlo en la memoria. Llamada en espera; Espere :-) goto loop; Y bucle :-); Función para devolver la máscara de bits para el puerto de salida; para el estado actual. ; El nibble superior contiene los bits de un conjunto; de luces y el nibble inferior los bits de; el otro conjunto. El bit 1 es rojo, el 2 es ámbar y el bit tres es verde. El bit cuatro no se utiliza. getmask movf state, W; Obtenga el estado en W. addwf PCL, F; Agregue compensación en W a PCL para calc.goto. retlw 0x41; estado == 0 es verde y rojo. retlw 0x23; estado == 1 es ámbar y rojo / ámbar retlw 0x14; el estado == 3 es rojo y verde retlw 0x32; state == 4 es rojo / ámbar y ámbar. ; Función usando dos bucles para lograr un retraso. esperar movlw 5 movwf l1 w1 llamar esperar2 decfsz l1 ir a w1 regresar esperar2 clrf l2 w2 decfsz l2 ir a w2 regresar FIN

    De hecho, hay un error deliberado en el código, pero más sobre eso más adelante ...

    Adjuntar un archivo fuente

    El siguiente paso es adjuntar el programa a nuestro esquema para que podamos modelar con éxito su comportamiento. Hagámoslo a través de los comandos del menú. Fuente (Fuente). Ahora ve al menú Fuente y elige el comando "Agregar / eliminar archivos de origen" (Agregar o quitar archivos de origen). Haga clic en el botón Nuevo, vaya a la carpeta "Samples \ Tutorials" y seleccione el archivo TL.ASM. Haga clic en "abrir" y el archivo aparecerá en la lista desplegable de nombres de archivo de código fuente ( Nombre de archivo del código fuente).

    Ahora debe seleccionar el programa para generar el código para el archivo. El programa MPASM es adecuado para nuestro propósito. Esta opción estará disponible en la lista desplegable Herramienta de generación de código, selecciónelo de la manera habitual haciendo clic izquierdo (tenga en cuenta que si planea usar un nuevo ensamblador o compilador, debe registrarlo usando el comando "Definir un programa generador de código" (Definir herramientas de generación de código)).

    Finalmente, debe establecer con qué archivo está trabajando el procesador. En nuestro ejemplo, será tl.hex (el archivo hexadecimal generado por MPASM, resultante de la traducción de tl.asm). Para adjuntar este archivo al procesador, haga clic en el controlador de imagen primero con el botón derecho del mouse y luego con el izquierdo. Esto abrirá el cuadro de diálogo de edición del elemento que contiene el campo "Archivo de programa" (Archivo de programa). Si tl.hex aún no está instalado en él, ingrese la ruta al archivo ya sea manualmente o busque la ubicación donde se encuentra el archivo haciendo clic en ‘?’ a la derecha del campo. Con el archivo hexadecimal instalado, haga clic en Aceptar para salir del formulario de diálogo.

    Ahora hemos adjuntado el archivo fuente al proyecto y hemos establecido qué programa de generación de código usar. Explicación más detallada sistemas de control de fuente está disponible más adelante en esta documentación.

    Depurar un programa

    Simulación de circuito

    Para simular el funcionamiento de los circuitos, haga clic con el botón izquierdo en el botón Jugar en el modelo de animación en la esquina inferior derecha de la pantalla. La barra de estado mostrará el tiempo durante el cual ha comenzado la animación. Tenga en cuenta que uno de los semáforos es verde mientras que el otro es rojo, también puede ver los niveles lógicos en los pines en el diagrama. Sin embargo, tenga en cuenta que los semáforos no cambian de estado. Esto se debe a un error deliberado introducido en el código. En esta etapa es bueno depurar nuestro programa y encontrar el problema.

    Modo de depuración

    Para asegurarnos de que tenemos cuidado con la depuración, pausaremos la simulación actual. Cuando haya terminado con eso, puede comenzar a depurar presionando CTRL + F12. Aparecerán dos ventanas: la primera almacena los valores actuales de los registros, la segunda muestra fuente programas. Cualquiera de ellos se puede activar desde el menú "Depuración" (Depurar) junto con un conjunto de otras ventanas de información. También queremos activar ventana de observación (Ventana de reloj), en el que podemos observar los cambios realizados en los parámetros de estado. Una explicación completa de este elemento está disponible en la sección titulada "Ventana de visualización", en esta documentación.

    Establecer un punto de ruptura

    Eche un vistazo al programa, notará que está cerrado en un ciclo repetitivo. Por lo tanto, es una buena idea establecer un punto de interrupción al comienzo de este ciclo antes de comenzar. Puede hacer esto seleccionando la línea con el mouse (en las direcciones 0005 y 000E) y luego presionando F9. Luego presione F12 para ejecutar el programa. Ahora verá un mensaje en la barra de estado que indica que se ha alcanzado un punto de interrupción digital, así como la dirección del contador de comandos. Corresponde a la dirección del primer punto que establezcamos.

    La lista de claves de depuración se puede encontrar en el menú Depurar, pero usaremos principalmente F11 para recorrer el programa. Ahora presione F11 y observe que la flecha roja de la izquierda se ha movido hacia la siguiente instrucción. De hecho, seguimos la instrucción "clrw" y luego nos detuvimos. Puede verificar esto mirando el registro W en la ventana de registro y observando que es cero.

    Ahora debe determinar qué debería suceder cuando ejecute la siguiente declaración y luego verificar si realmente sucedió. Por ejemplo, la siguiente instrucción mueve el contenido del registro "W" al PUERTO A, es decir. El PUERTO A se borrará. La ejecución de esta instrucción y la inspección de la ventana de registro confirma que este es realmente el caso. Continúe de esta manera hasta que llegue a nuestro segundo punto de interrupción, tenga en cuenta que ambos puertos están configurados para salida (como lo indica el registro TRISB) y configurados en ceros.

    Y así, nos detuvimos en la llamada a la función, tenemos la opción de recorrer las funciones ( Pasando por encima) (presionando la tecla F10), pero para completar, recorremos cada instrucción. Presionando F11 aquí lo lleva a la primera línea ejecutable de la función getmask. Dando un paso adelante, vemos que la operación de movimiento fue exitosa y que estamos en el lugar correcto para agregar un desplazamiento cero a nuestra tabla de búsqueda. Por tanto, cuando volvamos al programa principal, tenemos la "máscara" que esperábamos. Dando el siguiente paso y escribiendo la máscara en el puerto, podemos ver el resultado correcto en el diagrama. Otro paso para inyectar el modo también es exitoso, como lo demuestra la ventana de registro, donde el valor en el registro W se ha incrementado en 1.

    El siguiente paso contiene instrucciones para envolver el modo con ceros cuando se eleva por encima de 3. Esto, como puede ver en la ventana de visualización, no se está realizando. Obviamente, el modo ha aumentado a 1 aquí, que corresponde a la máscara y es cierto para la siguiente ejecución del bucle.

    Encontrar error

    El análisis encubierto revela que la causa del problema es un Y con un 4 en lugar de un 3. Los modos que queremos son 0, 1, 2, 3 cuando bit a bit Y ellos con 4 dan 0. Es por eso que cuando la simulación se está ejecutando, el modo de semáforo no cambia. La solución es simplemente reemplazar la instrucción del problema con AND de 3 en lugar de 4. Esto significa que el modo aumenta a 3, y cuando el registro W aumenta a 4, el modo se restablecerá. Una solución alternativa es verificar cuándo la 'W' sube a 4 y restablecerla a cero.

    Esta sección está traducida de la versión 7.2 de la Ayuda de Proteus.