Mikrokontroller áramkörök

Mikrokontroller áramkörök

A TINA számos mikrokontrollert (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) támogat; További típusok hozzáadása folyamatban van. A processzorban futó programot láthatja, módosíthatja és lépésenként követheti (debug funkció) és természetesen létrehozhat saját kódot is.

A TINA mikrovezérlő programjának két módja van. A szabványos fordító által készített bináris kódot és hibakeresési fájlt (pl. MPLAB a PIC-khez) használhatja, 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 nyomonkövető (debugger) segítségével.

Egyszerű számláló áramkör létrehozása a PIC mikrokontrollerrel az összeszerelési nyelv programozásával

Egyszerű számláló áramkör létrehozása PIC mikrokontrollerrel C nyelv programozással

Alapvető mikrokontroller hibakeresés a TINA használatával

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

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 teszteléshez.

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-nak nagyszerű tulajdonsága, hogy a forráskódot közvetlenül a TINA-ban 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 (az sorszámláló a szerkesztő ablak jobb alsó sarkában található)

az addlw 01H-ról

02H-ra

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

Ha most megnyomja a gombot most, a kijelző kettővel fog előre lépni.

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ással 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 gombot. Először úgy tűnik, hogy semmi sem történik.

Ha azonban az SW-HL1 kapcsolóra kattint, a kijelző az 1 előrelépést hajtja végre 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 nyomkövetés engedélyezéséhez kapcsoljuk be az MCU nyomkövető engedélyezése opciót az Analízis opciók-nál. Ezután jelölje be az „Enable MCU Code debugger" checkboxot, ahogyan az az alábbiakban látható az Analízis beállításai párbeszédpanelen.

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 Előre lép gombbal (Trace into button).

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 kapcsoljuk át az SW-HL1 kapcsolót Magas szintbe. (Akkor kapcsoljunk át, ha a kurzor ikonja egy nyíllá változik). Menjünk vissza a nyomkövetőbe majd nyomjuk meg a gombot kétszer. A program felismeri a külső megszakítást, majd erre a címre ugrik:


NT_SERV: címke.
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 Előre lép gombot, a program meg fogja kérdezni:

Nyomjuk meg az Igen gombot a dialógusban, majd nyomjuk meg gombot újra. Most a kijelzőn lévő érték mindig kettővel fog változni, ha a SW-HL2 kapcsolót Alacsony szintből Magas szintbe hozzuk.

A programot folytonosan futtathatjuk a gomb segítségével.

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ás (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. Egy adott sor eléréséhez használjuk a töréspontokat ilyenkor, majd nyomjuk meg a

Egy adott sor megállításához jelölheti a célnyilatkozatot egy „töréspont” beállításával.

Egy adott sor eléréséhez használjuk a töréspontokat ilyenkor, nyomjuk meg a gombot. Ilyenkor a program automatikusan megáll a töréspontnál.

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 gombot Futtatás gombot.

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 gombbal vagy a következő gombbal