TINA -  Circuit Simulator for Analog, Digital, MCU & Mixed Circuit Simulation
MCU

Circuito Microcontrolador (MCU)

TINA v7 y versiones superiores admiten microcontroladores PIC y en TINA estamos agregando soporte para otros MCU constantemente. Aún cuando puede agregar sus propios microcontroladores descriptos en VHDL, los controladores incorporados en TINA son compilados previamente para un rendimiento superior. El código VHDL no está visible para el usuario. En cualquier caso, puede ver, modificar y depurar el programa que se está ejecutando en cualquiera de los procesadores admitidos y, obviamente, puede crear y ejecutar su propio código.

Existen dos maneras de alimentar el programa para microcontroladores en TINA. Puede utilizar el código binario y el archivo de depuración creados por cualquier compilador estándar (por ejemplo, MPLAB para los PIC) o puede simplemente cargar su código ensamblador para ejecutarlo y depurarlo directamente en TINA utilizando su depurador- ensamblador incorporado.

Ejemplo de Flasher PIC

Abra el circuito PI C Flasher.TS C de la carpeta Examples\VHDL\PIC\Asm. El siguiente esquemático aparecerá con el microcontrolador 16F73 PIC .

Este circuito sencillamente cuenta de a uno por vez. Presione el botón
para ver cómo funciona. La visualización debería avanzar de uno en uno.

Haga doble clic en el MCU, y presione el botón en el diálogo de abajo -


Presione el botón Editar ASM. El código ASM del MCU aparecerá en el editor de Código fuente MCU.

Ahora hagamos el siguiente cambio en el código. Cambie la instrucción (seleccionada arriba) en la línea 25 (puede ver el número de línea en el ángulo inferior derecho de la ventana del editor de código)
de

               addlw 01H

a

              addlw 02H
Guarde el código modificado presionando el ícono y cierre las ventanas abiertas del MCU. Si presiona el botón , el aumento ahora será de 2. Note que el código modificado se guardará automáticamente en el archivo TINA.TSC.


Ejemplo de controlador de interrupción PIC

Veamos ahora otra aplicación con mayor interactividad.

Abra el ejemplo PIC16F84interrupt_rb0.TS C de la carpeta Examples\VHDL\PIC\Asm.



Presione el botón . A primera vista, parece que nada ocurriera.

No obstante, si hace clic en el interruptor SW-HL1, la visualización avanzará de a 1 cada vez que el interruptor cambie de Bajo a Alto. Esto se materializa con la capacidad de controlar la interrupción del PIC16F84.
Ahora veamos la operación en más detalle utilizando el depurador interactivo ASM.
Para activar el depurador, seleccione Opciones en el menú Análisis. Seleccione “Activar casilla de verificación del depurador de Código MCU”, como se muestra abajo en el cuadro de diálogo Opciones del menú Análisis.


 

Si presiona el botón aparecerá el depurador MCU:

img src="images/Microcontroller5.png" width="400 class="btcenter"

Sigamos la ejecución del programa paso a paso presionando el botón trazar en . Luego de aproximadamente 14 clics llegamos a la etiqueta PT1: donde el programa parece estar en un lazo infinito.


PT1: INCF TEMP, F GOTO PT1

Ahora haga clic en el interruptor SW-HL1 y cámbielo a Alto. (Debe hacer clic cuando el cursor se transforma en una flecha que senala hacia arrib a Î).
Regrese al Depurador y haga clic en el botón Trazar en
dos veces.
El programa reconocerá la interrupción y saltará a la etiqueta.:

INT_SERV:
INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORTA

aumente el COUNTER y cópielo a PORT A. El resultado será ahora de 1. Luego de esto, el programa regresará al “bucle infinito” en PT1.

Edición del Código en el Depurador

Ahora veamos como realizar un pequeno cambio en el programa utilizando el depurador. Duplique la instrucción INCF COUNTER, F usando Copiar y Pegar de esta manera:

 INT_SERV: INCF COUNTER, F INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORTA 

Ahora, si presiona el botón el programa preguntará:

Presione Si y nuevamente el botón .El incremento ahora será de 2 en cada cambio del interruptor de Bajo-Alto. También puede comprobar el circuito en el modo Ejecución continua del Depurador presionando el botón . Aún cuando el depurador se ejecute rápido, puede ver el “ciclo infinito” y el salto a la rutina del Interrupt server (INT_SERV): cuando cambia el interruptor..

Realizar un Punto de Interrupción

Ahora ejecute el programa en el modo continuo del Depurador, mediante el comando Ejecutar y el programa se detendrá en el espacio indicado antes de la ejecución del comando indicado.
Para ilustrar esto, haga clic en la instrucción de incremento en nuestra rutina Interrupt Service después de la etiqueta INT_SERV: y presione el botón selector Punto de interrupción

Ahora presione el botón Ejecutar . El programa comienza la ejecución y cae en un “bucle infinito.” “ciclo infinito” Aún cuando haya definido un punto de interrupción, el código no se detendrá ya que no pasa el punto de interrupción. Sin embargo cuando cambie el interruptor de Bajo a Alto el programa se detendrá en la instrucción.

 INT_SERV: INCF COUNTER, F

Ahora puede retomar la ejecución ya sea paso a paso o con el comando Ejecutar de nuevo




Copyright © 2024 DesignSoft, Inc. Todos los derechos reservados.