Mikrokontrollerkretsar

Mikrokontrollerkretsar

Jump to TINA Main Page & General Information 

TINA stöder mycket av (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) mikrocontrollers; Nya MCU läggs ständigt till. Du kan se, ändra och felsöka programmet som körs i processorn och självklart kan du skapa din egen kod.

Det finns två sätt att tillhandahålla programmet för mikrokontroller i TINA. Du kan använda binärkoden och felsökningsfilen som gjorts av en standardkompilator (t.ex. MPLAB för PIC) eller du kan bara ladda din monterings kod för att köra och felsöka i TINA med hjälp av den inbyggda assembler-debuggeren.

Skapa en enkel räknarkrets med hjälp av en PIC-mikrokontroller med monteringssprogprogrammering

Skapa en enkel räknarkrets med hjälp av en PIC-mikrokontroller med C-språkprogrammering

Grundläggande microcontroller debugging med TINA

I TINA kan mikrocontrollers simuleras inte bara ensam men också tillsammans med analoga, digitala, HDL eller andra modeller.

Köra och redigera MCU-kod

Ladda PIC Flasher.TSC-kretsen från mappen ExamplesMicrocontrollersPic.

Följande schematiska med hjälp av 16F73 PIC-mikrokontroller visas med 16F73 PIC-mikrokontrollern:

Mikroprocessorkretsar, bild 1

Denna krets räknar enkelt fram en-för-en. tryck på knappen för att se hur det fungerar.

Displayen ska gå framåt en efter en.

Dubbelklicka på MCU-enheten för att se ASM-koden i den. (se mer information i snabbstartshandboken).

TINA har en bra funktion där du kan redigera och ändra källkoden direkt i TINA.

Låt oss göra följande ändring i koden:

Ändra anvisningarna (vald ovan) i rad 25 (du kan se linjenummeret längst ner till höger i kodredigeringsfönstret):

från addlw 01H

att addlw 02H

Spara den ändrade koden till TINA genom att trycka på ikonen och stäng de öppna MCU-fönstren.

Om du trycker på knappen nu, ökningen blir 2!

Observera att den ändrade koden automatiskt sparas i filen TINA .TSC.

Använda debugger

Låt oss se en annan applikation med mer interaktivitet.

Ladda PIC16F84interrupt_rb0.TSC-exemplet på TINA från mappen ExamplesMicrocontrollersPic.

Tryck knapp. Det verkar först att ingenting händer.

Om du klickar på SW-HL1-omkopplaren kommer displayen att gå framåt med 1 varje gång växeln ändras från Låg till Hög.

PIC: s avbrottshanteringsfunktion tillåter oss att upptäcka växlingsändringar.

Låt oss nu se operationen mer detaljerat med TINAs interaktiva ASM-debugger.

För att aktivera debuggeren, välj Alternativ på analysmenyn. Ange sedan kryssrutan Aktivera MCU-kodfelsökare, som visas nedan i dialogrutan Analysalternativ.

Tryck på OK-knappen och MCU-debugger kommer att visas:

Låt oss följa programkörningen steg för steg genom att trycka på Spåra till knapp.

Efter omkring 14-klick kommer vi till PT1: etiketten där programmet verkar vara i en oändlig loop.

PT1: INCF TEMP, F GOTO PT1

Klicka nu på SW-HL1-omkopplaren och ändra den till Hög. (Du bör klicka när markören ändras till en uppåtriktad pekspil Î). Gå tillbaka till Debugger och klicka på Spåra till knapp två gånger. Programmet kommer att känna igen avbrottet och hoppa in i


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

öka COUNTER och kopiera till PORT A, och utgången blir 1. Efter detta kommer programmet att återgå till "oändliga loop" på PT1.

Redigering av koden i debuggeren

Låt oss nu göra en liten förändring i programmet för att visa användningen av debuggern. Kopiera INCF COUNTER, F-steget med Kopiera och klistra in så här:

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

Nu när du trycker på programmet kommer att fråga:

Tryck på Ja och tryck på knappen igen. Nu kommer inkrementet att bli 2 vid varje lågväxlad växlingsknapp.

Du kan också kontrollera kretsen i det kontinuerliga körläge för debugger genom att trycka på knapp.

Även om debuggeren kör fort, kan du fortfarande se "oändlig cykel" och sedan hoppa till avbrytarserverdelen (INT_SERV:) när du byter strömbrytaren.

Gör en brytpunkt

Genom att använda steg-för-steg-läget är det ofta omöjligt att komma till en viss punkt i programmet. Även om du är tillräckligt tålmodig för att klara tusen steg, kan programmets flöde inte låta dig stega där du vill.

För att stoppa vid en särskild linje kan du markera målsättningen genom att ange en "brytpunkt".

Kör programmet i kontinuerligt läge för debugger med hjälp av Kör kommando och nu kommer programmet att stanna vid önskad rad innan du kör det markerade kommandot.

För att visa detta klickar du på inkrementet i vår avbrottservern efter INT_SERV: etiketten och trycker på Växla pausknappen.

Tryck nu på Körknapp. Programmet börjar springa i en "oändlig cykel".

Även om du har ställt en brytpunkt, kommer kodkörningen inte att sluta eftersom den aldrig kommer till brytpunkten. När du ändrar växeln från Låg till Hög slutar programmet dock med det markerade uttalandet:

   INT_SERV:
             INCF COUNTER, F

Nu kan du fortsätta antingen steg för steg eller i körläget