• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
µP
 

µP

on

  • 231 views

 

Statistics

Views

Total Views
231
Views on SlideShare
231
Embed Views
0

Actions

Likes
1
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    µP µP Document Transcript

    • 1. Déclarer des variables : CBLOCK 0x00C ; début de la zone variables mavariable : 1 ENDC ; Fin 2. Définir une constante : Mavariable EQU H04 H == héxadécimal MavariableEQU D4 D == décimal 3. Définitions : #DEFINE LED1 PORTB,1 ; LED de sortie 1 #DEFINE LEDR PORTB,2 ; LED de témoin de réception #DEFINE INPUT PORTB,0 ; entrée RS485 4. Démarrage sur reset : org 0x000 gotoinit 5. La mémoire : La mémoire RAMCette mémoire est composée de 68 octets. Elle est organisée en 2 banques (bank 0 et bank 1).Dans chacune de ses banques, on va retrouver des « cases mémoires spéciales », appelé« registres spéciaux ». Il faut préciser que la banque 1 est « mapped in bank 0 », donc quand nousvoulons accéder aux 68 octets que ce soit de la banque 0 ou 1, on a accès à la même casemémoire.C’est la mémoire la plus utilisée. Cependant, toutes les données qui y sont stockées sont perdueslors d’une coupure de courant.La « bank 1 » permet de préparer le PIC à certaines tâches. La « bank 0 » correspond àl’utilisation du PIC.
    • 6. Registres de travail :Ce sont des mémoires de 9 bits, possédant des fonctions générales ou spécialisées et étantadressables en bloc ou bit à bit. Celui-ci va permettre de savoir s’il y a eu des modifications ounon. Il sera donc affecté par le résultat. Le registre « w » :Ce registre est utilisé par les PICs pour réaliser toutes sortes de calculs. C’est donc un registrefondamental. Le registre « STATUS »C’est un registre dont chaque bit à une signification particulière. Il est aussi très important.Infos complètes sur le registre STATUS en annexe 1. 7. Les drapeaux (flags)Ce sont des indicateurs d’état, ils sont indispensables pour la programmation. Tous cesindicateurs sont des bits du registre « status ». L’indicateur d’état « Z »C’est l’indicateur d’état « Zéro ». Si le résultat d’une opération, pour lequel il est affecté, donnele résultat « 0 », le flag « Z » passera à 1. Si le résultat est différente de « 0 », le flag « Z »passera à « 0 ». L’indicateur d’état « C »C’est l’indicateur pour « Carry » (= report). Si le résultat d’une opération entraîne undébordement, le bit « C » sera ajouté.Par exemple : 11111110 (254 sur 8 bits) + 00000011 (3 sur 8 bits) = 100000001 (257 sur 9 bits)Nous avons donc 1 bit supplémentaire, notre Carry passe donc à 1.
    • 8. L’horlogeIci, on a une période d’horloge à 4 cycles. Donc après ces 4 cycles, notre instruction est décodée.Il faut en moyenne 25 µsec par période.Le cycle d’horloge interne est donné pour 1/4 de la fréquence nominale du quartz. Donc si l’on aun quartz de 4 MHz (4 / 4 = 1 MHz), on a donc 1/1 MHz = 1 µS de temps de cycle. 9. Les macrosUne macro sert à remplacer un morceau de code que nous utiliserons souvent.La syntaxe consiste à mettre le nom qui sera appelé régulièrement, suivi par la directive« macro ». A la ligne suivante, nous retrouvons la « portion de code » qui constitue la macro, et setermine par « endm » (pour End of Macro).Exemple :LIREIN macro instructions… ; C’est le code exécuté à l’appel de la macro « LIREIN ».endm 10. Codage – « Fonctions » particulières : Appels de procédures : Deux types : - Call : appel une procédure, et reviens au programme principal à la fin de la procédure. - Goto : sortdu programme principal, et va à la procédure, sans revenir ensuite.
    • Initialisation standard :init bsf STATUS,RP0 ;passe en bank 1 clrf PORTB ; mise du port B en sortie (0) clrf PORTA ; mise du port A en sortie (0) bcf STATUS,RP0; repasser en bank0gotostartBoucle « de temps » :  1 ms : tempolong movlw 0x04 movwf compteur3 boucle3 clrf compteur2 boucle2 clrf compteur boucle1 decfsz compteur1 goto boucle1 decfsz compteur2 goto boucle2 decfsz compteur3 goto boucle3 returnSyntaxe des fonctions :Exemple : movwf*type_d’action+ *symboles+Dans ce cas-ci : *type_d’action+ == mov (déplacer) [symboles] == w & fParmi toutes les fonctions, on peut retrouver les symboles suivants : - W: registre de travail (zone « tampon » pour placer une valeur)
    • - F: signifie file. Représente une variable : o soit f (lui-même variable) o soit maVariable - L: signifie litteral. Représente un nombre (décimal, héxadécimal, …)Dans le tableau des fonctions :Fonction : [add] [W] [F] = additionner W et FArguments : -f = variable additionnée à W -d = destination du résultat de W + F (peut être maVariable, ou F)