Circuite microcontroler

Circuite microcontroler

Jump to TINA Main Page & General Information 

TINA susține o mulțime de (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) microcontrolere; noi MCU-uri sunt în mod constant adăugate. Puteți vedea, modifica și depana programul care rulează în procesor și, desigur, vă puteți crea propriul cod.

Există două modalități de a furniza programul pentru microcontrolere în TINA. Puteți folosi codul binar și fișierul de depanare realizat de un compilator standard (de exemplu, MPLAB pentru PIC-uri) sau puteți încărca doar codul dvs. de asamblare pentru a rula și depana în TINA folosind built-in-assembler-debugger.

Crearea unui circuit simplu contra folosind un microcontroler PIC cu programare în limbaj de asamblare

Crearea unui circuit simplu contra folosind un microcontroler PIC cu programare în limbajul C

Depanarea de bază a microcontrolerului utilizând TINA

În microcontrolerele TINA pot fi simulate nu numai singure, ci și împreună cu analogice, digitale, HDL sau alte modele.

Rularea și editarea codului MCU

Încărcați circuitul PIC Flasher.TSC din dosarul ExamplesMicrocontrollersPic.

Următoarele scheme care utilizează microcontrolerul 16F73 PIC vor apărea împreună cu microcontrolerul 16F73 PIC:

Circuite microcontroler, imagine 1

Acest circuit contează pur și simplu unul câte unul. apasă pe pentru a vedea cum funcționează.

Afișajul ar trebui să avanseze unul câte unul.

Faceți dublu clic pe MCU pentru a vedea codul ASM din acesta. (vedeți mai multe detalii în manualul de pornire rapidă).

TINA are o caracteristică excelentă prin care puteți edita și modifica codul sursă direct în TINA.

Faceți următoarea modificare în cod:

Schimbați instrucțiunea (selectată mai sus) în rândul 25 (puteți vedea numărul liniei în colțul din dreapta jos al ferestrei editorului de cod):

de la adăugarea 01H

pentru a adăuga 02H

Salvați codul modificat la TINA apăsând pe pictograma și închideți ferestrele MCU deschise.

Dacă apăsați butonul de acum, incrementul va fi 2!

Rețineți că codul modificat va fi salvat automat în fișierul TINA .TSC.

Utilizarea depanatorului

Să vedem o altă aplicație cu mai multă interactivitate.

Încărcați exemplul PIC16F84interrupt_rb0.TSC al TINA din folderul ExamplesMicrocontrollersPic.

Apăsaţi buton. Se pare că la început nu se întâmplă nimic.

Cu toate acestea, dacă faceți clic pe comutatorul SW-HL1., Afișajul va merge mai departe cu 1 de fiecare dată când comutatorul se schimbă de la Low la High.

Capacitatea de manipulare a întreruperilor de la PIC ne va permite să detectăm modificările comutatoarelor.

Acum, să vedem operațiunea în detaliu folosind programul de depanare ASM interactiv al TINA.

Pentru a activa programul de depanare, selectați opțiunea din meniul Analiză. Apoi bifați caseta de selectare "Activați debuggerul codului MCU", după cum se arată mai jos în caseta de dialog Opțiuni de analiză.

Apăsați butonul OK și apare debuggerul MCU:

Să urmăm pasul cu execuția programului apăsând pe Trasează în buton.

După aproximativ clicurile 14 ajungem la eticheta PT1: unde programul pare să fie într-o buclă infinită.

PT1: INCF TEMP, F GOTO PT1

Acum faceți clic pe comutatorul SW-HL1 și schimbați-l la High. (Ar trebui să faceți clic atunci când cursorul se schimbă într-o săgeată indicatoare în sus Î). Reveniți la Debugger și faceți clic pe Apăsați butonul Trace Into de două ori. Programul va recunoaște întreruperea și saltul în


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

incrementați COUNTER și copiați la PORT A, iar ieșirea va fi 1. Apoi programul va reveni la "buclă infinită" la PT1.

Editarea codului în depanator

Acum, să facem o mică schimbare în program pentru a demonstra folosirea programului de depanare. Duplicați instrucțiunea INCF COUNTER, F utilizând funcția Copiere și lipire astfel:

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

Acum când apăsați tasta programul va cere:

Apăsați Da și apăsați pe butonul din nou. Acum incrementul va fi 2 la fiecare schimbare joasă înaltă a comutatorului.

De asemenea, puteți verifica circuitul în modul de funcționare continuă al depanatorului apăsând pe butonul.

Chiar dacă programul de depanare va rula rapid, puteți vedea în continuare "ciclul infinit" și apoi saltul la partea serverului de întrerupere (INT_SERV:) când schimbați comutatorul.

Efectuarea unui punct de întrerupere

Utilizând modul pas-cu-pas, adesea este imposibil să ajungeți la un anumit punct al programului. Chiar dacă sunteți suficient de răbdători pentru a pași o mie de pași, fluxul programului ar putea să nu vă permită să faceți pasul acolo unde doriți.

Pentru a opri la o anumită linie, puteți marca instrucțiunea țintă stabilind un "punct de întrerupere".

Rulați programul în modul continuu al aplicației de depanare folosind Executați comanda și acum programul se va opri la linia dorită înainte de a executa comanda marcată.

Pentru a demonstra acest lucru, faceți clic pe instrucțiunea incrementului din serverul de întrerupere după eticheta INT_SERV: și apăsați pe Comutați butonul de întrerupere.

Acum, apăsați pe Butonul de funcționare. Programul începe să funcționeze într-un "ciclu infinit".

Chiar dacă ați setat un punct de întrerupere, executarea de cod nu se va opri deoarece nu ajunge niciodată la punctul de întrerupere. Totuși, atunci când schimbați comutatorul de la Low la High, programul se va opri la instrucțiunea marcată:

   INT_SERV:
             INCF COUNTER, F

Acum puteți continua fie pas cu pas sau în modul Run