Circuits de microcontrôleur

Circuits de microcontrôleur

Jump to TINA Main Page & General Information 

TINA supporte beaucoup de (PIC, AVR, Arduino, 8051, HCS, STM, BRAS, TI-Tiva, TI-Sitara, Infineon-XMC) les microcontrôleurs; de nouveaux MCU sont constamment ajoutés. Vous pouvez voir, modifier et déboguer le programme en cours d'exécution dans le processeur et, bien sûr, vous pouvez créer votre propre code.

Le programme pour les microcontrôleurs dans TINA peut être fourni de deux manières. Vous pouvez utiliser le code binaire et le fichier de débogage créés par un compilateur standard (par exemple, MPLAB pour les PIC) ou simplement charger votre code d'assemblage pour qu'il soit exécuté et débogué dans TINA à l'aide de son assembleur-débogueur intégré.

Création d'un circuit de compteur simple à l'aide d'un microcontrôleur PIC avec programmation en langage assembleur

Création d'un circuit de compteur simple à l'aide d'un microcontrôleur PIC avec programmation en langage C

Débogage de base du microcontrôleur à l'aide de TINA

Dans TINA, les microcontrôleurs peuvent être simulés non seulement seuls, mais également avec des modèles analogiques, numériques, HDL ou autres.

Exécution et modification du code MCU

Chargez le circuit PIC Flasher.TSC à partir du dossier ExamplesMicrocontrollersPic.

Le schéma suivant, utilisant le microcontrôleur 16F73 PIC, apparaît avec le microcontrôleur 16F73 PIC:

Circuits de microcontrôleur, image 1

Ce circuit compte simplement un par un. appuyez sur la bouton pour voir comment cela fonctionne.

L'affichage devrait avancer un par un.

Double-cliquez sur la MCU pour y voir le code ASM. (voir plus de détails dans le manuel de démarrage rapide).

TINA possède une fonctionnalité intéressante vous permettant d’éditer et de modifier le code source directement dans TINA.

Permet de faire le changement suivant dans le code:

Modifiez l'instruction (sélectionnée ci-dessus) dans la ligne 25 (vous pouvez voir le numéro de la ligne dans le coin inférieur droit de la fenêtre de l'éditeur de code):

de addlw 01H

ajouter 02H

Enregistrez le code modifié dans TINA en appuyant sur le bouton icône et fermez la fenêtre MCU ouverte.

Si vous appuyez sur la bouton maintenant, l'incrément sera 2!

Notez que le code modifié sera automatiquement enregistré dans le fichier TINA .TSC.

Utiliser le débogueur

Voyons une autre application avec plus d'interactivité.

Chargez l'exemple PIC16F84interrupt_rb0.TSC de TINA à partir du dossier ExamplesMicrocontrollersPic.

Appuyez sur la touche bouton. Il semble au début que rien ne se passe.

Toutefois, si vous cliquez sur le commutateur SW-HL1., L’affichage avance de 1 chaque fois que le commutateur passe de bas à élevé.

La capacité de traitement des interruptions du PIC nous permettra de détecter les changements de commutateur.

Voyons maintenant l'opération plus en détail à l'aide du débogueur ASM interactif de TINA.

Pour activer le débogueur, sélectionnez Option dans le menu Analyse. Ensuite, cochez la case «Activer le débogueur de code MCU», comme indiqué ci-dessous dans la boîte de dialogue Options d'analyse.

Appuyez sur le bouton OK et le débogueur MCU apparaîtra:

Suivons l’exécution du programme étape par étape en appuyant sur la touche Tracer dans le bouton.

Après environ clics 14, nous arrivons à l'étiquette PT1: où le programme semble être dans une boucle infinie.

PT1: INCF TEMP, F GOTO PT1

Cliquez maintenant sur le commutateur SW-HL1 et réglez-le sur Elevé. (Vous devez cliquer lorsque le curseur se transforme en une flèche vers le haut Î). Retournez au débogueur et cliquez sur le bouton Tracer dans le bouton deux fois. Le programme reconnaîtra l’interruption et sautera dans le


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

incrémente le COMPTEUR et copie au PORT A, et la sortie sera 1. Après cela, le programme reviendra à la «boucle infinie» de PT1.

Editer le code dans le débogueur

Faisons maintenant un petit changement dans le programme pour illustrer l'utilisation du débogueur. Dupliquez l'instruction INCF COUNTER, F en utilisant les fonctions Copier / Coller comme ceci:

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

Maintenant, quand vous appuyez sur le le programme demandera:

Appuyez sur Oui et appuyez sur le bouton bouton à nouveau. Maintenant, l'incrément sera 2 à chaque changement de commutateur bas-haut.

Vous pouvez également vérifier le circuit en mode de fonctionnement continu du débogueur en appuyant sur le bouton .

Même si le débogueur fonctionnera rapidement, vous pouvez toujours voir le «cycle infini», puis le passage à la partie serveur d'interruption (INT_SERV:) lorsque vous modifiez le commutateur.

Faire un point d'arrêt

En mode pas à pas, il est souvent impossible d’atteindre un point particulier du programme. Même si vous êtes suffisamment patient pour franchir mille étapes, le déroulement du programme ne vous permettra peut-être pas de vous déplacer où vous le souhaitez.

Pour arrêter à une ligne particulière, vous pouvez marquer l'instruction cible en définissant un «point d'arrêt».

Exécutez le programme en mode continu du débogueur en utilisant le Exécutez la commande et le programme s’arrêtera maintenant à la ligne souhaitée avant d’exécuter la commande marquée.

Pour le démontrer, cliquez sur l’instruction d’incrément dans notre serveur d’interruption après le libellé INT_SERV: et appuyez sur le bouton Basculer le bouton de pause.

Maintenant, appuyez sur Bouton Run. Le programme commence à fonctionner dans un «cycle infini».

Même si vous avez défini un point d'arrêt, l'exécution du code ne s'arrête pas car il ne parvient jamais au point d'arrêt. Toutefois, lorsque vous passez le commutateur de bas à élevé, le programme s’arrête à l’instruction marquée:

   INT_SERV:
             INCF COUNTER, F

Maintenant, vous pouvez continuer soit étape par étape ou en mode Run