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; vengono costantemente aggiunti nuovi MCU. Puoi vedere, modificare ed eseguire il debug del programma in esecuzione nel processore e, ovviamente, puoi creare il tuo 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.
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:
Questo circuito conta semplicemente avanti uno per uno. premi il
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
Se si preme il
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
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 utilizzando il debugger ASM interattivo di TINA.
Per attivare il debugger, seleziona Opzione dal menu Analisi. Quindi impostare la casella di controllo "Abilita debugger codice MCU", come mostrato di seguito nella finestra di dialogo Opzioni di analisi.
Premi il pulsante OK e apparirà il debugger MCU:
Seguiamo passo passo l'esecuzione del programma premendo il tasto
Dopo circa 14 clic arriviamo al PT1: etichetta in cui il programma sembra essere in un ciclo infinito.
PT1: INCF TEMP, F GOTO PT1
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
Premere Sì e premere
È inoltre possibile controllare il circuito nella modalità di esecuzione continua del debugger premendo il 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
Per dimostrarlo, fare clic sull'istruzione di incremento nel nostro server di interrupt dopo INT_SERV: label e premere il tasto
Ora premi il
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