Circuits de microcontroladors

Circuits de microcontroladors

Jump to TINA Main Page & General Information 

TINA dóna suport a molts (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) microcontroladors; s’afegeixen constantment noves MCU. Podeu veure, modificar i depurar el programa que s'executa al processador i, per descomptat, podeu crear el vostre propi codi.

Hi ha dues maneres d’oferir el programa de microcontroladors a TINA. Podeu utilitzar el codi de codi binari i el fitxer de depuració realitzats per un compilador estàndard (per exemple, MPLAB per a PIC) o només podeu carregar el codi de muntatge per executar-lo i depurar-lo a TINA utilitzant el seu assemblador-depurador incorporat.

Creació d'un circuit de comptador simple mitjançant un microcontrolador PIC amb programació de llenguatge de muntatge

Creació d'un simple comptador de circuits mitjançant un microcontrolador PIC amb programació en llenguatge C

Depuració bàsica del microcontrolador mitjançant TINA

A TINA es poden simular els microcontroladors no només sols sinó també conjuntament amb models analògics, digitals, HDL o altres.

Execució i edició del codi MCU

Carregueu el circuit PIC Flasher.TSC de la carpeta ExamplesMicrocontrollersPic.

El següent esquema amb el microcontrolador 16F73 PIC apareixerà amb el microcontrolador 16F73 PIC:

Circuits de microcontroladors, imatge 1

Aquest circuit només compta cap endavant. Premeu el botó botó per veure com funciona.

La pantalla hauria de fer un pas endavant.

Feu doble clic a l'MCU per veure el codi ASM. (vegeu més detalls al manual d'inici ràpid).

TINA té una gran característica que permet editar i canviar el codi font directament a TINA.

Permet fer el següent canvi al codi:

Canvieu la instrucció (seleccionada més amunt) a la línia 25 (podeu veure el número de línia a la part inferior dreta de la finestra de l'editor de codi):

de addlw 01H

per afegir 02H

Deseu el codi modificat a TINA prement el botó icona i tanqueu les finestres MCU obertes.

Si prem el botó ara, l’increment serà 2!

Tingueu en compte que el codi modificat es desarà automàticament al fitxer TINA .TSC.

Ús del depurador

Vegem una altra aplicació amb més interactivitat.

Carregueu l’exemple PIC16F84interrupt_rb0.TSC de TINA de la carpeta ExamplesMicrocontrollersPic.

Premeu el botó botó. Sembla al principi que no passa res.

Tanmateix, si feu clic al commutador SW-HL1, la pantalla passarà cap endavant per 1 cada vegada que el canvi canvia de Baixa a Alta.

La capacitat de manipulació d'interrupcions del PIC ens permetrà detectar els canvis del canvi.

Ara anem a veure l’operació amb més detall utilitzant el depurador interactiu ASM de TINA.

Per activar el depurador, seleccioneu Opció al menú Anàlisi. A continuació, establiu la casella "Habilita el depurador del codi MCU", tal com es mostra a continuació al quadre de diàleg Opcions d'anàlisi.

Premeu el botó D'acord i apareixerà el depurador de l'MCU:

Seguirem l'execució del programa pas a pas prement el botó Traça el botó Into.

Després d’arribar als clics de 14 arribem a l’etiqueta PT1: on el programa sembla estar en un bucle infinit.

PT1: INCF TEMP, F GOTO PT1

Ara feu clic al commutador SW-HL1 i canvieu-lo a Alt. (Feu clic quan el cursor es converteixi en una fletxa ascendent Î). Torna al depurador i fes clic a Traça el botó Into dues vegades. El programa reconeixerà l’interrupció i saltarà a l’interruptor


NT_SERV: label.
INT_SERV: INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT

Incrementeu el comptador i copieu a PORT A i la sortida serà 1. Després d'això, el programa tornarà al "bucle infinit" de PT1.

Edició del codi al depurador

Ara fem un petit canvi en el programa per demostrar l’ús del depurador. Dupliqueu la declaració INCF COUNTER, F utilitzant Copia i Enganxa com aquesta:

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

Ara, quan premeu el botó el programa preguntarà:

Premeu Sí i premeu el botó de nou. Ara l’increment serà 2 en cada canvi de Baix Alt del commutador.

També podeu comprovar el circuit en el mode d’execució continu del depurador prement el botó botó.

Tot i que el depurador funcionarà ràpidament, encara podeu veure el "cicle infinit" i després saltar a la part del servidor d'interrupció (INT_SERV:) quan canvieu el commutador.

Fer un punt d'interrupció

Utilitzant el mode pas a pas, sovint és impossible arribar a un punt concret del programa. Fins i tot si sou prou pacient com per fer un pas de mil passos, el flux del programa potser no us permetrà fer el pas on vulgueu.

Per aturar-se en una línia concreta, podeu marcar l’enunciat d’objectiu establint un "punt d’interrupció".

Executeu el programa en el mode continu del depurador usant el Executeu l'ordre i ara el programa s'aturarà a la línia desitjada abans d'executar la comanda marcada.

Per demostrar-ho, feu clic a la declaració d'increment al nostre servidor d'interrupcions després de l'etiqueta INT_SERV: i premeu el botó Commuta el botó de ruptura.

Ara premeu el botó Botó Executar. El programa comença a funcionar en un "cicle infinit".

Tot i que heu establert un punt d’interrupció, l’execució del codi no s’aturarà perquè mai arriba al punt d’interrupció. Tanmateix, quan canvieu el commutador de Baixa a Alta, el programa s'aturarà a la declaració marcada:

   INT_SERV:
             INCF COUNTER, F

Ara podeu continuar pas a pas o en mode d'execució