Mikrokontrollerkretser

Mikrokontrollerkretser

Jump to TINA Main Page & General Information 

TINA støtter mye av (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) mikrokontrollere; nye MCUer blir stadig lagt til. Du kan se, endre og feilsøke programmet som kjører i prosessoren, og selvfølgelig kan du lage din egen kode.

Det er to måter å levere programmet til mikrokontroller i TINA. Du kan bruke den binære koden og feilsøkingsfilen som er laget av en standardkompiler (f.eks. MPLAB for PICs), eller du kan bare laste inn forsamlingskoden for å kjøre og feilsøke i TINA ved hjelp av den innebygde assembler-debuggeren.

Opprette en enkel mot krets ved hjelp av en PIC mikrokontroller med monteringssprog programmering

Opprette en enkel motorkrets ved hjelp av en PIC mikrokontroller med C språk programmering

Grunnleggende mikrokontroller feilsøking ved hjelp av TINA

I TINA kan mikrokontrollere simuleres ikke bare alene, men også sammen med analog, digital, HDL eller andre modeller.

Kjører og redigerer MCU-kode

Last inn PIC Flasher.TSC-kretsen fra eksemplerMicrocontrollersPic-mappen.

Følgende skjematiske ved hjelp av 16F73 PIC-mikrokontrolleren vises med 16F73 PIC-mikrokontrolleren:

Mikrokontrollerkretser, bilde 1

Denne kretsen teller bare fremover en-for-en. trykk knappen for å se hvordan det fungerer.

Skjermen skal gå frem en for én.

Dobbeltklikk på MCU for å se ASM-koden i den. (se flere detaljer i Hurtigstart-håndboken).

TINA har en flott funksjon der du kan redigere og endre kildekoden direkte i TINA.

La oss gjøre følgende endring i koden:

Endre instruksjonen (valgt ovenfor) i linje 25 (du kan se linjenummeret i høyre nederste hjørne av kodeditoringsvinduet):

fra addlw 01H

å addlw 02H

Lagre den endrede koden til TINA ved å trykke på ikonet og lukk de åpne MCU-vinduene.

Hvis du trykker på knappen nå, økningen vil bli 2!

Merk at den endrede koden automatisk blir lagret i TINA. TSC-filen.

Bruk av debugger

La oss se et annet program med mer interaktivitet.

Last inn PIC16F84interrupt_rb0.TSC eksempelet på TINA fra eksemplerMicrosoftMicrocontrollersPic-mappen.

Trykk på knapp. Det ser ut til å begynne med at ingenting skjer.

Men hvis du klikker på SW-HL1-bryteren, vil displayet gå fremover med 1 hver gang bryteren endres fra Lav til Høy.

PICs avbruddshåndteringsfunksjon vil tillate oss å oppdage bytteendringer.

La oss nå se operasjonen mer detaljert ved hjelp av TINAs interaktive ASM-debugger.

For å aktivere feilsøkingsprogrammet, velg Valg på Analysemenyen. Deretter angir du «Aktiver MCU-kode feilsøkingsboks», som vist nedenfor i dialogboksen Analysealternativer.

Trykk på OK-knappen og MCU-debuggeren vil vises:

La oss følge programkjøringen trinn for steg ved å trykke på Spor inn i knappen.

Etter rundt 14 klikk kommer vi til PT1: etiketten der programmet ser ut til å være i en uendelig sløyfe.

PT1: INCF TEMP, F GOTO PT1

Klikk nå på SW-HL1-bryteren og endre den til Høy. (Du bør klikke når markøren endrer seg til en pil oppover Î). Gå tilbake til Debugger og klikk på Spor inn knappen to ganger. Programmet vil gjenkjenne avbrytelsen og hoppe inn i


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

øke COUNTER og kopiere til PORT A, og utdataene vil bli 1. Etter dette kommer programmet tilbake til "uendelig loop" på PT1.

Redigerer koden i debuggeren

La oss nå gjøre en liten endring i programmet for å demonstrere bruken av debuggeren. Kopier INCF COUNTER, F-setningen ved å bruke Kopier og lim inn slik:

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

Nå når du trykker på programmet vil spørre:

Trykk Ja og trykk på knappen igjen. Nå vil inkrementet være 2 ved hver lav-høy endring av bryteren.

Du kan også sjekke kretsen i kontinuerlig kjøremodus for debuggeren ved å trykke på knapp.

Selv om debuggeren løper fort, kan du fortsatt se "uendelig syklus" og deretter hoppe til Interrupt-serverdelen (INT_SERV:) når du bytter bryteren.

Å gjøre et bruddpunkt

Ved å bruke trinn-for-trinn-modusen, er det ofte umulig å komme til et bestemt punkt i programmet. Selv om du er tålmodig nok til å trekke tusen trinn, kan programmets strøm ikke tillate deg å gå hvor du vil.

For å stoppe ved en bestemt linje, kan du markere måloppstillingen ved å sette et "breakpoint".

Kjør programmet i kontinuerlig modus for debugger ved hjelp av Kjør kommando og nå stopper programmet på ønsket linje før du utfører den merkede kommandoen.

For å demonstrere dette, klikk på stigningsoppstillingen i interrupt-serveren etter INT_SERV: -merket, og trykk på Bytt bryteknapp.

Trykk nå på Kjør-knapp. Programmet begynner å løpe i en "uendelig syklus".

Selv om du har satt et brytepunkt, vil kodekjøring ikke stoppe fordi det aldri kommer til brytepunktet. Men når du bytter bryter fra Lav til Høy, stopper programmet ved den merkede setningen:

   INT_SERV:
             INCF COUNTER, F

Nå kan du fortsette enten trinnvis eller i kjøremodus