circuit électronique, NSI Numérique et Sciences Informatiques, science, MPLAB, Institut Galilée
Ce premier TP nous a permis de nous familiariser avec le logiciel MPLAB et faire nos premiers pas dans la programmation en assembleur. Pour cela, nous avons suivi deux "tutorials", puis programmé nos premiers programmes sur ce logiciel.
[...] Afin de parvenir à cette objectif, nous avons utilisé l'opérateur logique AND avec la représentation hexadécimale de 0x0F forçant donc les 4 bits de poids fort a zéro tout en gardant les 4 bits de poids faibles intactes. Par exemple, notre programme a effectué le masquage avec 0x35 donnant 0x05. ORG goto ORG main MOVLW MOVWF ANDLW MOVWF 0 x0000 main 0 x x35 caractere 0x0F caractere END On peut aussi réaliser le même masque mais, cette fois-ci, les 4 bits de poids fort vont valoir 1. Il suffit juste de remplacer l'opérateur logique AND par IOR et la représentation hexadécimale de 0x0F par 0xFO». [...]
[...] ORG goto ORG 0 x0000 main 0 x0005 main MOVLW 0 x35 MOVWF c a r a c t e r e BCF c a r a c t e r e BCF c a r a c t e r e BCF c a r a c t e r e BCF c a r a c t e r e END 1.2 Mise en place du bit parité Dans cette partie, nous avons déterminé la parité. Si le nombre 1 est pair alors le bit de parité contiendra 0 sinon 1. Nous avons testé le bit de W dans le but de voir si c'est égal à 1 puis incrémenter compteur par 1 sinon on saute l'instruction. [...]
[...] Sinon, il reste dans le main. Quand nous sommes dans le cas set low, il est impossible de sortir du du main, alors qu'avec set high, le programme est exécute dans son intégralité. Ainsi, set low est à analogue au Bouton Poussoir non-enfoncé et set high au Bouton Poussoir enfoncé Modules de temporisations paramétrables Nous avons programmé des modules de temporisations fixes pour les valeurs temporelles 250µs ms ms et 1s. Puis, les temporisations paramétrables dont la durée dépend de la valeur que nous allons définir dans le registre w et qui prend aussi en compte les effets de bord, défini préalables comme 0 si W vaut 0. [...]
[...] Nous avons programmé des modules afin de faire clignoter la led. Ainsi, les modules remplissent les 7 rôles suivants : — Int-port met le PORTB en sortie via le registre de direction TRISB ; — allume-led-D2 allume la LED en l'assignant la valeur 1 ; — éteint-led-D2 éteint la LED en l'assignant la valeur 0. Et voici le programme avec les modules programmés : init_portB BANKSEL TRISB ; a d r e s s a b i l i t e du SFR TRISB MOVLW 0 x00 ; W = 0 x00 MOVWF TRISB ; l e s 8 b i t s de TRISB a 0 r e t u r n ; donc PORTB e n t i e r en s o r t i e allume_led_D2 BANKSEL PORTB ; a d r e s s a b i l i t e du SFR PORTB BSF PORTB ; a l l u m e uniquement l a l e d 2 return eteint_led_D2 BANKSEL PORTB ; a d r e s s a b i l i t e du SFR PORTB BCF PORTB ; e t e i n t uniquement l a l e d 2 return L'objectif ici est de réaliser une petite minuterie de base avec le BP S2 et la led D2, c'est-à-dire faire un main qui allume la LED D2 pendant 5 secondes à chaque appui sur S2. [...]
[...] Pour cela, nous avons suivi les deux "tutorials" proposés dans l'énoncé, puis programmé nos premiers programmes sur ce logiciel Masquage Dans cette partie, nous avons cherché à faire un masque, c'est-à-dire, sélectionner dans un groupe de bits qui vont conserver leurs valeurs et les autres vont être forcément définis par une valeur choisie. Nous allons citer deux méthodes pour y parvenir. Première méthode Ici, nous allons forcer les 4 bits de poids fort de la variable caractère à valoir 0. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture