Circuiti di microcontrollori

Circuiti di microcontrollori

Jump to TINA Main Page & General Information 

TINA supporta molti (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) microcontrollori; nuovi MCU vengono costantemente aggiunti. È possibile visualizzare, modificare ed eseguire il debug del programma in esecuzione nel processore e, naturalmente, è possibile creare il proprio codice.

Esistono due modi per fornire il programma per i microcontrollori in TINA. È possibile utilizzare il codice binario e il file di debug creati da un compilatore standard (ad es. MPLAB per PIC) oppure è sufficiente caricare il codice assembly per eseguire ed eseguire il debug in TINA utilizzando il compilatore di compilatori incorporato.

Creazione di un semplice contro-circuito usando un microcontrollore PIC con programmazione in linguaggio assembly

Creazione di un semplice contro-circuito usando un microcontrollore PIC con programmazione in linguaggio C.

Debug di base del microcontrollore tramite TINA

In TINA i microcontrollori possono essere simulati non solo da soli ma anche insieme a modelli analogici, digitali, HDL o altri.

Esecuzione e modifica del codice MCU

Carica il circuito PIC Flasher.TSC dalla cartella ExamplesMicrocontrollersPic.

Lo schema seguente che utilizza il microcontrollore PIC 16F73 apparirà con il microcontrollore PIC 16F73:

Circuiti per microcontrollori, immagine 1

Questo circuito conta semplicemente avanti uno per uno. premi il pulsante per vedere come funziona.

Il display dovrebbe avanzare di uno a uno.

Fare doppio clic sulla MCU per visualizzare il codice ASM al suo interno. (vedi maggiori dettagli nel manuale di avvio rapido).

TINA ha una grande funzionalità grazie alla quale puoi modificare e modificare il codice sorgente direttamente in TINA.

Consente di apportare le seguenti modifiche nel codice:

Cambia l'istruzione (selezionata sopra) nella riga 25 (puoi vedere il numero di riga nell'angolo in basso a destra della finestra dell'editor di codice):

da addlw 01H

aggiungere 02H

Salvare il codice modificato in TINA premendo il tasto icona e chiudi le finestre MCU aperte.

Se si preme il pulsante ora, l'incremento sarà 2!

Si noti che il codice modificato verrà automaticamente salvato nel file TINA .TSC.

Utilizzo del debugger

Vediamo un'altra applicazione con più interattività.

Carica l'esempio PIC16F84interrupt_rb0.TSC di TINA dalla cartella ExamplesMicrocontrollersPic.

Premere il tasto pulsante. All'inizio sembra che non stia succedendo nulla.

Tuttavia, se si fa clic sull'interruttore SW-HL1, il display avanzerà di 1 ogni volta che l'interruttore passa da Basso a Alto.

La capacità di gestione degli interrupt del PIC ci consentirà di rilevare i cambiamenti di commutazione.

Ora vediamo l'operazione in modo più dettagliato usando il debugger ASM interattivo di TINA.

Per attivare il debugger, selezionare Option dal menu Analysis. Quindi imposta la casella di controllo "Abilita debugger codice MCU", come mostrato sotto nella finestra di dialogo Opzioni analisi.

Premi il pulsante OK e apparirà il debugger MCU:

Seguiamo passo passo l'esecuzione del programma premendo il tasto Traccia nel pulsante.

Dopo circa 14 clic arriviamo al PT1: etichetta in cui il programma sembra essere in un ciclo infinito.

PT1: INCF TEMP, F GOTO PT1

Ora fai clic sull'interruttore SW-HL1 e cambialo in Alto. (È necessario fare clic quando il cursore si trasforma in una freccia rivolta verso l'alto Î). Torna al Debugger e fai clic su Traccia in pulsante due volte. Il programma riconoscerà l'interruzione e salterà nel


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

incrementare il COUNTER e copiare su PORT A e l'output sarà 1. Dopo questo il programma tornerà al "loop infinito" su PT1.

Modifica del codice nel debugger

Ora facciamo una piccola modifica nel programma per dimostrare l'uso del debugger. Duplica l'istruzione INCF COUNTER, F usando Copy e Paste in questo modo:

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

Ora quando premi il tasto il programma chiederà:

Premere Sì e premere pulsante di nuovo. Ora l'incremento sarà 2 ad ogni cambio Low-High dell'interruttore.

È inoltre possibile controllare il circuito nella modalità di esecuzione continua del debugger premendo il pulsante pulsante.

Anche se il debugger funzionerà velocemente, è ancora possibile vedere il "ciclo infinito" e quindi il passaggio alla parte del server Interrupt (INT_SERV:) quando si cambia lo switch.

Fare un punto di interruzione

Usando la modalità passo-passo, è spesso impossibile raggiungere un punto particolare del programma. Anche se hai la pazienza di compiere mille passi, il flusso del programma potrebbe non permetterti di andare dove vuoi.

Per fermarsi su una linea particolare, puoi contrassegnare la dichiarazione di destinazione impostando un "punto di interruzione".

Esegui il programma nella modalità continua del debugger usando il Esegui il comando e ora il programma si fermerà sulla riga desiderata prima di eseguire il comando segnato.

Per dimostrarlo, fare clic sull'istruzione di incremento nel nostro server di interrupt dopo INT_SERV: label e premere il tasto Attiva o disattiva il pulsante di interruzione.

Ora premi il Pulsante Esegui. Il programma inizia a girare in un "ciclo infinito".

Anche se è stato impostato un punto di interruzione, l'esecuzione del codice non si interromperà perché non raggiunge mai il punto di interruzione. Tuttavia, quando cambi il passaggio da Basso a Alto il programma si fermerà sull'istruzione marcata:

   INT_SERV:
             INCF COUNTER, F

Ora puoi continuare passo dopo passo o nella modalità Esegui