Mikrokontroller áramkörök

Mikrokontroller áramkörök

Jump to TINA Main Page & General Information 

A TINA számos mikrokontroller (PIC, AVR, Arduino8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC, ESP32 ) mikrokontrollerek; új MCU-kat folyamatosan adnak hozzá. Láthatja, módosíthatja és hibakeresheti a processzorban futó programot, és természetesen létrehozhat saját kódot is.

A TINA programban a mikrokontrollerek használatának két módja van. Használhatja a szabványos fordító program által készített bináris kódot és nyomkövető fájlt (pl. MPLAB a PIC-khez) vagy egyszerűen csak betöltheti az assembly kódot a TINA futtatásához és lépésenkénti követéséhez a beépített assembly nyomkövető (debugger) segítségével.

A TINA programban a mikrokontrollerek nemcsak önállóan, hanem analóg, digitális, HDL vagy más modellekkel együtt is szimulálhatók. 

MCU kód futtatása és szerkesztése

Az esp32c3 mikrovezérlő szimulációja

Töltse be a PIC Flasher.TSC áramkört a EXAMPLES\Microcontrollers\PIC mappából. 

Az alábbi 16F73 PIC mikrokontrollert tartalmazó kapcsolási rajz jelenik meg:

Mikrokontroller áramkörök, 1 kép

Ez az áramkör egy egyszerű számlálót valósít meg. Nyomja meg a

A kijelző ekkor egyesével számol előrefelé.

Kattintson duplán az MCU-ra az ASM-kód megtekintéséhez. (További részletek a TINA kézikönyvben találhatóak).

A TINA program nagyszerű tulajdonságai közé tartozik, hogy a forráskódot közvetlenül a TINA-ban (akár futtatás közben is) szerkesztheti és módosíthatja.

Változtassuk meg a kódot a következőképp:

Változtassuk meg a 25. sorban lévő utasítást (a sorszámláló a szerkesztő ablak jobb alsó sarkában található)

addlw 01H-ról a következőre:

02H

Mentse el a módosított kódot a TINA-ba a gombbal majd csukjuk be az MCU szerkesztő ablakot.

Ha most megnyomja a

Ne feledje, hogy a módosított kód automatikusan elmentésre kerül a TINA .TSC fájlba.

A nyomkövető használata

Lássunk egy másik, több interaktivitást tartalmazó példát!

Töltse be a PIC16F84interrupt_rb0.TSC példáját a TINA Examples\Microcontrollers\PIC mappából.

Nyomja meg a

Ha azonban az SW-HL1 kapcsolóra kattint, a kijelző egyet lép előre minden alkalommal, amikor a kapcsoló alacsonyról magasra vált.

A PIC mikrokontroller képes a lábain fellépő változások detektálására.

Most nézük meg részletesebben az MCU nyomkövető használatát a TINA interaktív ASM nyomkövetőjének segítségével

A hibakereső aktiválásához válassza az Elemzés menü Option elemét. Ezután jelölje be az „MCU-kód hibakereső engedélyezése jelölőnégyzetet”, az alábbiakban az Elemzési beállítások párbeszédpanelen látható módon.

Nyomja meg az OK gombot. Az alábbi MCU nyomkövető (ablak) jelenik meg:

A programot lépésenként is követhetjük az

Körülbelül 14 ciklus után a PT1 címkéhez kerülünk, aminél úgy tűnik a program végtelen ciklusba került.

PT1: INCF TEMP, F GOTO PT1

Most kattintson az SW-HL1 kapcsolóra, és állítsa magasra. (Kattintson, ha a kurzor felfelé mutató nyíllá változik changes). Menjen vissza a hibakeresőhöz, és kattintson a gombra gombot kétszer. A program felismeri a külső megszakítást, majd erre a címre ugrik:


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

A számláló értékét eggyel növeli, ami a kijelzőn is megjelenik, majd visszatér a megszakításból a PT1 ciklusba.

Szerkesztés nyomkövető üzemmódban

Most hajtsunk végre egy kis módosítást a programban, a nyomkövető használata közben Duplikálja le az INCF COUNTER, F sort.

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

Most nyomja meg az

Nyomjuk meg az Igen gombot a dialógusban, majd nyomjuk meg

A programot folytonosan futtathatjuk a

Annak ellenére, hogy a hibakereső gyorsan fut, a kapcsoló megváltoztatásakor még mindig láthatja a „végtelen ciklust”, majd a megszakítás szerverrészre ugrást (INT_SERV:).

Töréspontok használata

A lépésenkénti nyomkövetés nem alkalmas sokszor bizonyos kódrészek elérésére, mert ilyenkor túl sok lépést kellene megtenni manuálisan.

Töréspont (breakpoint) megadása a kiválasztott sornál.

Egy adott sor eléréséhez használjuk a töréspontokat ilyenkor, nyomjuk meg a

Nézzük ezt egy példán keresztül. Helyezzünk el töréspontot a gomb segítségével. Helyezzük a kurzort az INT_SERV címkéhez, majd nyomjuk meg a Töréspont be/ki kapcsolás gombot.

Most nyomja meg a

A program belefut a PTXNUMX címkénél levő végtelen ciklusba, azonban ha a kapcsolót Alacsony szintből Magas szintbe visszük, a program megáll az általunk kijelölt töréspontnál:

   INT_SERV:
             INCF COUNTER, F

A végrehajtást folytathatja innen a