Académique Documents
Professionnel Documents
Culture Documents
PI sous le PIC16F877
2009/2010
Tables des matières
INTRODUCTION GENERALE
LES MICROCONTROLEURS ....................................................................... 2
I. Introduction ......................................................................................................................................... 2
II. Système Embarqué ............................................................................................................................... 3
II.1 Système sur une seule puce (System-on-chip Soc)............................................................................... 3
II.1.1 Élément de traitement......................................................................................................................... 4
II.1.2 Circuit d’E/S ......................................................................................................................................... 4
II.1.3 Circuit mémoire ................................................................................................................................... 4
II.1.4 Structure d’interconnexion .................................................................................................................. 4
II.2 Système embarqué .............................................................................................................................. 5
II.2.1 Idée de base......................................................................................................................................... 5
II.2.2 Définition ............................................................................................................................................. 5
II.2.3 Domaine d’utilisation .......................................................................................................................... 5
II.2.4. Caractéristiques des systèmes embarqués .......................................................................................... 6
III. Les microcontrôleurs ........................................................................................................................... 6
III.1 Les éléments d’un microcontrôleur ..................................................................................................... 9
III.2 Architecture de Von Neumann et de Harvard ........................................................................... 12
III.2.1 L'architecture Von Neumann......................................................................................................... 12
III.2.2 L'architecture Harvard : ..................................................................................................................... 12
III.3 Architecture RISC et CISC ................................................................................................................... 13
III.3.1 L'architecture CISC ............................................................................................................................. 13
III.3.2 L'architecture RISC ............................................................................................................................. 13
IV. Quelque Familles De Constructeur De Microcontrôleur ................................................................... 13
V. Conclusion ......................................................................................................................................... 14
iii
Tables des matières
LE PSD1_SAB80C535 ...................................................................... 39
FIGURE III.1 MODULE PSD1 AVEC CONTROLEUR SIEMENS 80C535 .......... 39
II.1 L’unité PSD1:...................................................................................................................................... 39
II.1 Le moniteur cible ............................................................................................................................... 41
III. Le Microcontrôleur SAB 80C535 ........................................................................................................ 42
III.1 Classification de la famille 8051 ........................................................................................................ 42
III.1 Architecture du Microcontrôleur SAB80C535[] ................................................................................ 44
III.2.1 Architecture externe .......................................................................................................................... 44
III.2.2 Architecture interne........................................................................................................................... 47
III.2.3 Les modes d’adressages: ................................................................................................................... 54
III.2.4 Les Interruptions ................................................................................................................................ 63
III.2.5 Les Timers .......................................................................................................................................... 64
III.2.6 Le mode sleep: Power-Down Mode ................................................................................................... 64
III.2.7 Le jeu d’instruction ............................................................................................................................ 54
IV. Programmation avec IDE ................................................................................................................... 64
IV.1 Le premier programme avec l'IDE..................................................................................................... 65
iv
Tables des matières
V. Application........................................................................................ .ّ
! ارة ا
VI. Conclusion: ........................................................................................................................................ 68
v
Introduction générale
Introduction générale
Aujourd'hui ils sont présents dans la plupart des produits électroniques . Du fait
l'obtention des compétences de programmation de ces composants devienne un besoin impératif
surtout pour les spécialistes du domaines électroniciens et informaticiens.
Le but primordiales de ce travail est de donné des connaissance de base pour une bonne
compréhension de l'architecture et la programmation de ces composants, en insistant d'avantage
sur deux types qui sont disponible dans notre laboratoire de microcontrôleurs: Le premier est de
la famille PIC : le 16F84A-x l'un des microcontrôleur de base de cette famille, et l'autre est le
80C535 avec l' MCLS Modular: le système didacticiel pour l'apprentissage des techniques de
programmation des microprocesseurs et microcontrôleurs.
1
Chapitre I Les microcontrôleurs
Chapitre I
Les microcontrôleurs
I. Introduction
Cette évolution est due à la capacité d’intégration des transistors dans une puce, la
figure (I.1) montre l’évolution de l’intégration développée par Intel.
2
Chapitre I Les microcontrôleurs
3
Chapitre I Les microcontrôleurs
Récemment, des efforts ont été faits par des académiques et des industriels pour le
développement des ASIP (Application Specific Instruction set Processor), qui permettent
l’extension de l’ensemble des instructions par l’utilisateur pour une applications spécifique
Pour la communication avec le monde extérieur, SOC utilise des circuits d’E/S tels
que carte Ethernet, Usb, ……
Un SOC typique contient des centaines de blocs mémoires internes de type SRAM,
ROM, OTP (One-Time Programmable)
Lorsque le bloc mémoire est très large et il ne peut pas être fabrique sur la puce, on
utilise la notion de System-in-package (SIC). Il s’agit de mettre le bloc mémoire sur une
puce différente (Off-chip) et de l’intégré avec SOC, on utilise généralement DRAM,
SDRAM et DDRII.
Le SOC contient des contrôleurs mémoire pour SDRAM, DDR, SD card , MMC
card….
4
Chapitre I Les microcontrôleurs
Microprocessor Bus Architecture (AMBA) . Il existe aussi la notion de Réseau sure puce
(Network-On-Chip : NoC) pour la communication pour éviter les problèmes engendrés par
la croissance exponentielle du trafic.
II.2.2 Définition
Un système qui sa fonction principale n’est une fonction de calcul, mais il est
contrôlé par un calculateur embarqué avec lui est appelé système embarqué.
5
Chapitre I Les microcontrôleurs
Hardware et software
Fiabilité
Les erreurs dans un système embarqué ne sont pas tolérées, l’implémentation d’un
système embarqué avec des erreurs hard ou soft peut conduire à des dégâts matériels ou
humains
Processeurs interconnectés
6
Chapitre I Les microcontrôleurs
Consommation moins
Protection contre le piratage des programmes pour ne pas être utilisés pare d’autre
personne
Mémoire
Périphérique
power Programme
Périphérique
Mémoire
de
Données
E/S
Reset Numérique
Interruption(s) Le noyau
microprocesseur
E Analogique
7
Chapitre I Les microcontrôleurs
Chaque producteur conçu une famille de son propre microcontrôleurs autour d’un
noyau microprocesseur, plusieurs famille peuvent être conçu à l’aide de ce noyau en
combinaison avec les mémoires et les périphérique E/S. la figure (I.3) montre trois familles
de même producteur selon le microprocesseur (8bits, 16 bit, 32bits,..) la taille de mémoire
et de périphérique
Memory: mémoire; Peripherals: Les périphérique; CoreP: 8bits ; Core Q:16 bits ;
Core R:. 32bits
8
Chapitre I Les microcontrôleurs
Mémoire Programme:
Qui Contient les instructions du programme que doit exécuter le
microprocesseur. Ce type de mémoire, est uniquement accessible en lecture. Sa
programmation nécessite une procédure particulière et un matériel adéquat. Ils
existent différents types selon leur mode de programmation :
9
Chapitre I Les microcontrôleurs
a. Mémoire de donnée
Qui Permet de mémoriser temporairement les données générées par le
microprocesseur pendant les différentes phases du traitement numérique (résultats
d’opérations, états des capteurs...). Ces mémoires sont accessibles en écriture et en
lecture. On en trouve deux types :
10
Chapitre I Les microcontrôleurs
Le timer:
Permettant de réaliser les fonctions suivantes:
Temporisation,
Comptage d'événements.
11
Chapitre I Les microcontrôleurs
Cette structure se distingue de l'architecture de Von Neuman par le fait que les
mémoires programmes et données sont séparées. L'accès à chacune des deux mémoires se
fait via un chemin distinct. Cette organisation permet de transférer une instruction et des
données simultanément, ce qui améliore les performances.
12
Chapitre I Les microcontrôleurs
Les microprocesseurs CISC (Complex Instruction Set Computing) sont dotés d’un
jeu étendu d’instructions complexes. Ces instructions sont relativement lentes. Les
microprocesseurs CISC privilégient la puissance de traitement au détriment de la rapidité.
Les microprocesseurs RISC (Reduced Instruction Set Computing) sont munis d’un
jeu réduit d’instructions simples.Ces instructions sont adaptées et sont très rapides.
TinyAVRs
MegaAVRs
XMEGA
Siemens-Infineon: Le C167,..
Freescale
13
Chapitre I Les microcontrôleurs
Zilog :Z80….
V. Conclusion
Dans ce chapitre on a présenté des généralités sur les systèmes embarqués et les
circuits microcontrôleurs. Le prochain chapitre traite le microcontrôleur PIC 16F84
14
Chapitre II Le microcontrôleur PIC
Chapitre II
Le microcontrôleur PIC
Introduction
Les PICs sont des microcontrôleurs de la firme Microchip; se sont des composants
de type RISC (Reduce Instructions Construction Set).
Dans ce chapitre on va présenter les PIC d’une manière générale puis on va entamer
l’étude du Pic 16 F 84-04
La famille des PICs est subdivisée à l’heure actuelle en trois grandes familles:
MID-RANGE qui utilise des mots de 14 bits (et dont font partie les 16F84
et 16F87x).
II.2 Nomenclature
15
Chapitre II Le microcontrôleur PIC
Chiffre2:la référence;
Exemple :
PIC 16 F 84 -04
16 F 84 04
indique la Type de Référence Fréquence
famille mémoire (2ou3 chiffre) max
Le PIC 16F84
16
Chapitre II Le microcontrôleur PIC
MCLR 1 E Etrée de reset.
RA
à RA 17, 18, 1,2 E/S Ligne d'entrée- sortie parallèle du
port A
RB
/INT 6 E/S L'e/S 4 du port B commune avec
l'entrée d'interruption externe.
17
Chapitre II Le microcontrôleur PIC
18
Chapitre II Le microcontrôleur PIC
Le registre W:
C'est un registre fondamental utilisé par les pics pour réaliser toutes sortes de
calcul
19
Chapitre II Le microcontrôleur PIC
Le registre STATUS:
PC: Program Counter, séquenceur du pic, c’est à dire le compteur qui permet de
pointer sur la prochaine instruction à exécuter.
PCL (PC Low): contient l’adresse basse du PC, c’est à dire les 8 bits de
poids faibles
PCLATH (PC LATch counter High): registre de 5 bits et qui participe au
fonctionnement du séquenceur
20
Chapitre II Le microcontrôleur PIC
N.B:
FSR: contient l'adresse pointé
INDF contient le contenu de l'adresse pointé par FSR
Le registre OPTION
Ce registre se trouve à l’adresse 0x81, donc dans la banque1, chaque bit a un
rôle particulier
INTEDG T0CS T0SE PSA PS2 PS1 PS0
21
Chapitre II Le microcontrôleur PIC
PORTA:
TRISA:
Ce registre est situé à la même adresse que PORTA, mais dans la banque1.
Son adresse complète sur 8 bits est donc 0x85. Chaque bit positionné à 1
configure la pin correspondante en entrée. Chaque bit à 0 configure la pin en
sortie. Au reset du PIC, toutes les pins sont mises en entrée
22
Chapitre II Le microcontrôleur PIC
Le registre Tmr0:
Le registre INTCON
N.B. les flags ne se remettent pas à 0 tout seul. C’est le programme qui doit
s’en charger, on les appelle les flags rémanents
23
Chapitre II Le microcontrôleur PIC
24
Chapitre II Le microcontrôleur PIC
25
Chapitre II Le microcontrôleur PIC
Les PICs disposent d'un jeu d'instruction réduit, il s'agit de 35 instructions. Le tableau
ci-dessous présente ces instructions avec une brève description de leur fonctionnement,
ainsi que les flags du registre d'état'' STATUS'' engendrés par chacune d'elles.
Tableau 2.6. : Le jeu d'instruction
26
Chapitre II Le microcontrôleur PIC
27
Chapitre II Le microcontrôleur PIC
TMR0 : Débordement du timer0 (tmr0). Une fois que le contenu du tmr0 passe
de 0xff à 0x00, une interruption peut être générée.
EEPROM : cette interruption peut être générée lorsque l’écriture dans une
case EEPROM interne est terminée.
RB0/INT : Une interruption peut être générée lorsque, la pin RB0, encore
appelée INTerrupt pin, étant configurée en entrée, le niveau qui est appliqué est
modifié.
PORTB : De la même manière, une interruption peut être générée lors du
changement d’un niveau sur une des pins RB4 à RB7. Il n’est pas possible de
limiter l’interruption à une seule de ces pins. L’interruption sera effective pour
les 4 pins ou pour aucune
28
Chapitre II Le microcontrôleur PIC
STATUS
W
Exemple
Des les méthodes de sauvegarde et de restauration sont utilisée lors d'un
déclenchement d'interruption:
;************************************************************
ROUTINE INTERRUPTION
;************************************************************
Sauvegarder registres
;------------------------------------------------------------
org 0x004 ; adresse d'interruption
movwf w_temp ; sauver registre W
swapf STATUS,w ; swap status avec résultat dans w
movwf status_temp ; sauver status swappé
;commutation vers différentes interrupts
; -----------------------------------------------------------------
; ici, on teste éventuellement de quelle interruption il s’agit
; traitement des interruptions
; -----------------------------------------------------------------
;ici, on peut traiter interruption puis effacer son flag
;restaurer registres
;------------------------------------------------------------------
swapf status_temp,w ; swap ancien status, résultat dans w
movwf STATUS ; restaurer status
swapf w_temp,f ; Inversion L et H de l'ancien W
; sans modifier Z
swapf w_temp,w ; Ré-inversion de L et H dans W
; W restauré sans modifier status
retfi ; return from interrupt
29
Chapitre II Le microcontrôleur PIC
III.6 Le TIMER0[4]
1. En premier cas, compter les impulsions reçues sur la pin '( ) /*+,-.: on dit
que le timer0 fonctionne en mode compteur
2. Compter les cycles d’horloge du PIC lui-même. Dans ce cas, comme l’horloge
est fixe, nous compterons donc en réalité du temps. Donc, nous serons en mode
timer .
Le mode d’interruption
C’est évidemment le mode principal d’utilisation du timer0. En effet, lorsque
T0IE est positionné dans le registre INTCON, chaque fois que le flag T0IF passe
à 1, une interruption est générée.
30
Chapitre II Le microcontrôleur PIC
III.6.2. Le prédiviseur
Supposons que nous travaillions avec un quartz de 4MHz. Si nous décidons
d’utiliser le timer0 dans sa fonction timer et en mode interruptions. Nous aurons
donc une interruption toutes les 256µs,
Si nous aurons besoin d'avoir amélioré la temporisation entre deux
interruptions du TIMER0, Nous disposons un PREDIVISEUR qui est
simplement un diviseur d’événements situé Avant l’entrée de comptage du timer0.
Le tableau ci-dessous exprimant toutes les possibilités des bits : PS0 àPS2 du
registre OPTION qui déterminent la valeur du prédiviseur, et le bit PSA, quand à
lui, détermine si le Prédiviseur est affecté au timer0 ou au watchdog
Tableau 2.7. :valeur de prédiviseur
PSA PS2 PS1 PS0 /TMR0 /WD Temps tmr0 Temps typique WD(minimale)
0 0 0 0 2 1 512 µs 18 ms (7ms)
0 0 0 1 4 1 1024 µs 18 ms (7ms)
0 0 1 0 8 1 2048 µs 18 ms (7ms)
0 0 1 1 16 1 4096 µs 18 ms (7ms)
0 1 0 0 32 1 8192 µs 18 ms (7ms)
0 1 0 1 64 1 16384 µs 18 ms (7ms)
0 1 1 0 128 1 32768 µs 18 ms (7ms)
0 1 1 1 256 1 65536 µs 18 ms (7ms)
31
Chapitre II Le microcontrôleur PIC
1 0 0 0 1 1 256µs 18 ms (7ms)
1 0 0 1 1 2 256 µs 36 ms (14ms)
1 0 1 0 1 4 256 µs 72 ms (28ms)
1 0 1 1 1 8 256 µs 144 ms (56ms)
1 1 0 0 1 6 256 µs 288 ms (112ms)
1 1 0 1 1 32 256 µs 576 ms (224ms)
1 1 1 0 1 64 256 µs 1.152 Sec (448ms)
1 1 1 1 1 128 256 µs 2.304 Sec(996ms)
Il n’y a qu’un prédiviseur, qui peut être affecté au choix au timer du watchdog
ou au timer0. Il ne peut être affecté aux deux en même temps.
Il n’existe pas de prédiviseur = 1 pour le timer0. Pour utiliser le prédiviseur,
sélectionner sur le watchdog avec une valeur de 1 (ligne grise du tableau).
La valeur contenue dans le prédiviseur n’est pas accessible.
L’écriture dans le registre tmr0 efface le contenu du prédiviseur. Les
événements survenus au niveau du prédiviseur sont donc perdus.
32
Chapitre II Le microcontrôleur PIC
33
Chapitre II Le microcontrôleur PIC
Placez un en-tête dans le premier ou les premiers octets de votre EEPROM. Par
exemple, nous placerons 0x55 dans l’octet 0.
Lors de l’écriture de nouvelles valeurs dans l’EEPROM, nous commençons par
effacer notre en-tête.
Puis nous écrivons notre ou nos donnée(s) dans l’EEPROM
Pour finir, nous réinscrivons notre en-tête dans l’EEPROM.
Lors d’un démarrage du PIC, si l’en-tête est présent, cela signifie que les données
EEPROM sont valides. Dans le cas contraire, le cycle d’écriture a été interrompu.
Pour augmenter la sécurité du système pour les données critiques, vous
pouvez placer plusieurs octets d’en-tête.
34
Chapitre II Le microcontrôleur PIC
III.8 Le watchdog[4]
Le watchdog, ou chien de garde est un mécanisme de protection du
programme, la mise en service ou l’arrêt du watchdog se décide au moment de la
programmation de PIC, à l’aide de la directive _CONFIG. Si « _WDT_OFF »
hors service. Si au contraire vous précisez « _WDT_ON », le watchdog sera actif.
Le watchdog est destiné à vérifier que le programme ne s’est pas « égaré »
dans une zone non valide du programme (parasite sur l’alimentation par exemple),
ou s’il n’est pas bloqué dans une boucle sans fin (bug du programme). Il sert
également à réveiller un PIC placée en mode « sleep ».
N.B:
35
Chapitre II Le microcontrôleur PIC
IV.1 MPLAB
MPLAB est un outil fournit gratuitement par la société Microchip, ce logiciel
permet de créer un programme pour un PIC, de l'assembler et de le simuler avant
le transfert vers la mémoire flash du PIC.
36
Chapitre II Le microcontrôleur PIC
IV.2 Le programmateur
Pour la programmation d'un pic (le transfert du programme vers la mémoire
flash du pic à, il existe plusieurs programmateur comme: MPLAB ICD2, MPLAB
ICD3,PICkit, MPLAB PM3,…..; ce dernier est disponible dans notre laboratoire
de Microcontrôleur
Copiez les fichiers et les données que vous allez les utiliser dans votre répertoire de
travail.
37
Chapitre II Le microcontrôleur PIC
VII. Conclusion
38
Chapitre III PSD1_SAB80C535
Chapitre III
Le PSD1_SAB80C535
I. Introduction:
L’unité PSD1 est un module de calcul de format carte enfichable avec le contrôleur
SAB, le microcontrôleur pouvant être complété avec RAM et ROM via son bus
39
Chapitre III PSD1_SAB80C535
Noter qu’à part les ports P0 et P2 toutes les ressources du microcontrôleur SAB
80C535 sont disponibles et que certains connecteurs de ports sont multifonctionnels. On
dispose en outre pour les extensions du bus externe du 80C535 avec D0...D7, A0...A11, les
signaux de commande /RD, /WR, ALE et /PSEN, ainsi que les signaux Chip-Select
EW1...EW3 formés par le PSD311.
40
Chapitre III PSD1_SAB80C535
41
Chapitre III PSD1_SAB80C535
Pour que le moniteur puisse être utilisé par l’opérateur, le système cible - dans notre
cas, l’unité PSD1 - doit être couplée avec un ordinateur PC via les ports COM disponibles
et au moyen de l’interface série du module microcontrôleur. Pour l’emploi dans le MCLS-
modular un câble d’interface (câble modem, SUB-D, 9 broches) est donc fourni pour
réaliser la connexion entre l’ordinateur PC hôte et la plate-forme d’expérimentation.
Plus confortable est l’emploi d’un débogueur qui permet de visualiser sur l’écran de
l’ordinateur PC l’ensemble des ressources du microcontrôleur et une commande simple du
moniteur cible. Généralement, les débogueurs font partie des environnements de
développement intégrés.
42
Chapitre III PSD1_SAB80C535
Processeur booléen.
128 resp. 256 octets de mémoire RAM interne.
max. 64 ko de mémoire ROM adressable (interne + externe).
Bus externe pour extension externe de la mémoire de données respectivement de
programme.
4 ports de chacun 8 bits (il existe également des modèles avec 2 ports).
Deux horloges/compteurs de 16 bits.
Interface série (duplex intégral).
Système d’interruption performant.
Horloge On-Chip.
Temps de cycle d’instruction de 1 µs à fréquence d’horloge de 12 MHz.
43
Chapitre III PSD1_SAB80C535
44
Chapitre III PSD1_SAB80C535
4.0 4 4.7 1-3, 5-9 E/S Port 4: 8bits bidirectionnel, port E/S .
6 4 E
789: ;<=>?@ A7B9 9?<CD9
6E6 10 E Reset (active à l'état bas)
6.7 4 6.0 13-20 E Port6: est un port d'entrée 8bits unidirectionnel. Pour les huit
entrées analogiques multiplexées du convertisseur A/ D.
V N3.6O: 27 Le signal de contrôle d'écriture de données du Port0 vers la
mémoire de donnée externe
N3.7O: 28 Le signal de commande de lecture, permet l'accès a la
mémoire de données externes à partir du Port 0
45
Chapitre III PSD1_SAB80C535
E6S 49 S Sortie est un signal de commande qui permet à la mémoire
programme externe par le bus au cours de la récupération des
opérations extérieures.
6Y 51 E
Z[\]^_`a `bb]cc ]_`da]
Lorsque
6Y=1, la SAB 80C535 exécute les instructions de la
ROM interne
Lorsque
6Y=0, le SAB 80C535 récupère toutes les instructions
du mémoire. programme externe
38 - La masse 0V
46
Chapitre III PSD1_SAB80C535
Accumulateur A (8 bits)
Accu auxiliaire B (8 bits)
Registres de travail R0 à R7 dans 4 bases de registre (8 bits)
Mot d’état de programme PSW (8 bits)
Indicateur de données DPTR (16 bits) – indicateur de mémoire de données externe
47
Chapitre III PSD1_SAB80C535
- Inferieur[00h,7Fh]
- Supérieur[80h,FFh] :SFR
Les accès à la mémoire RAM interne est possible dans un cycle machine (CM).
Pour les accès à des mémoires extérieures, 2 (CM). sont requis. Les multiplications
respectivement; divisions 8 bits à nombre entier et sans signe préliminaire sont exécutées
en 4 (CM).. Comme la CPU nécessite 12 impulsions pour un MC, il en résulte, pour une
fréquence d’horloge de 12 MHz, 1, 2 respectivement 4 µs pour l’exécution de l’instruction.
48
Chapitre III PSD1_SAB80C535
49
Chapitre III PSD1_SAB80C535
50
Chapitre III PSD1_SAB80C535
51
Chapitre III PSD1_SAB80C535
52
Chapitre III PSD1_SAB80C535
53
Chapitre III PSD1_SAB80C535
adressage direct
adressage de registre
Avec l’adressage indirect via registre de base et d’index, les indicateurs de données
DPTR ou le compteur de programme PC peut être utilisé comme registre de base. Le
registre d’index à additionner est dans les deux cas l’accumulateur A.
Les dérivations de programme peuvent être réalisées par des instructions de saut
relatif conditionnel. Sont intégrés ici les instructions de saut qui évaluent l’état des Carry-
Flag et de l’accumulateur. Les tests bit par bit, p. ex. de broches de port, permettent
également la configuration simple de dérivations logiques.
Tous les dérivés de la famille 8051 ont le même code d’instruction. Il contient des
instructions de transport, des associations logiques et arithmétiques, des instructions de
manipulation de bits, des instructions de saut, ainsi que des instructions de définition, de
suppression et de déplacement.
54
Chapitre III PSD1_SAB80C535
Mnémonique Syntaxe
MOV A, Rn
MOV A, direct
MOV A, @Ri
MOV A, #data
MOV Rn, A
MOV Rn, direct
MOV Rn, #data
MOV direct, A
MOV direct, Rn
MOV direct, direct
MOV direct, @Ri
MOV direct, #data
MOV @Ri, A
MOV @Ri, direct
MOV @Ri, #data
MOV DPTR, #data16
MOVC A,@A+DPTR
MOVC A,@A+PC
MOVX A,@Ri
MOVX A,@DPTR
MOVX @Ri,A
MOVX @DPTR,A
55
Chapitre III PSD1_SAB80C535
PUSH Direct
POP Direct
XCH A, Rn
XCH A, direct
XCH A, @Ri
- L'instruction XCHD : (XCHD A, @Ri) échange les quartets de poids faible entre
l'accu A et l'octet adressé.
XCHD A, @Ri
ADD A,Rn
ADD A, direct
ADD A, @Ri
ADD A, #data
ADDC A, Rn
ADDC A, direct
ADDC A, @Ri
ADDC A, #data
SUBB A, Rn
SUBB A, direct
SUBB A, @Ri
56
Chapitre III PSD1_SAB80C535
SUBB A, #data
INC @Ri
INC A
INC direct
INC Rn
INC DPTR
DEC @Ri
DEC A
DEC direct
DEC Rn
MUL AB
DIV AB
DA A
ANL A, #data
ANL A, @Ri
ANL A, direct
ANL A, Rn
ANL direct, #data
ANL direct, A
ANL C, /bit
ANL C, bit
57
Chapitre III PSD1_SAB80C535
ORL A, #data
ORL A,@Ri
ORL A, direct
ORL A, Rn
ORL direct, #data
ORL direct, A
ORL C, /bit
ORL C, bit
XRL A, #data
XRL A, @Ri
XRL A, direct
XRL A, Rn
XRL direct, #data
XRL direct, A
CLR A
CLR bit
CLR C
CPL A
CPL bit
CPL C
RL A
RLC A
RR A
58
Chapitre III PSD1_SAB80C535
RRC A
SWAP A
SETB bit
SETB C
AJMP addr11
LJMP addr16
SJMP rel
JMP @A+DPTR
JZ rel
JNZ rel
JC rel
JNC rel
JB bit, rel
JNB bit, rel
JBC bit,rel
- L'instruction CJNE : (CJNE <byte1>, <byte2>, <rel>) saut si byte1 et byte2 sont
différents
59
Chapitre III PSD1_SAB80C535
NOP -
Port série
Mode 0:
Mode registre à décalage. Des données série entre et sort par R'D. T'd
sorties de l'horloge quartz de travail. 8-bits sont transmis et reçus: 8 bits de
données. (LSB en premier).
La vitesse de transmission est fixé à 1 / 12 de la fréquence de l'oscillateur
Mode 1
10-bits sont transmis (par le biais R'D) ou reçus (par le biais T'd): un bit de
départ (0) , 8 bits de données (LSB en premier), et un bit d'arrêt (1). La vitesse de
transmission est variable.
Mode 2
11-bits sont transmis (par le biais R'D) ou reçus (par le biais T'd): un bit de départ
(0),8 bits de données (LSB en premier), un bit de données programmable 9ème, et
60
Chapitre III PSD1_SAB80C535
Mode 3
11-bits sont transmis (par le biais T'd) ou reçus (par le biais R'D): un bit de départ
(0), 8 bits de données (LSB en premier), un bit de données programmable 9ème, et
un bit d'arrêt (1). Le mode 3 est identique au mode 2, sauf pour la vitesse de
transmission. La vitesse de transmission en mode 3 est variable.
La variation de taux transmission dans les modes 1 et 3 peuvent être générés par le
timer 1 ou d'un générateur de vitesse interne.
Le convertisseur A/N
61
Chapitre III PSD1_SAB80C535
fonctionnalité permet une conversion avec une petite plage de tension de référence
interne pour obtenir une résolution plus élevée.
En outre, les tensions de référence interne peut facilement être adapté par le logiciel
dans la position désirée tension d'entrée analogique.
Pour effacer le chien de garde, deux bits dans deux différents registres de fonction s
péciale doit être fixé par deux instructions consécutives (bits IEN0.6 et IEN1.6).
62
Chapitre III PSD1_SAB80C535
Compare
Dans le mode de comparaison, les valeurs 16-bit stocké dans le comparateur
de registres sont dédiés par rapport au contenu du timer2 entrées. Si la valeur de
comptage dans le registre timer 2 correspond à l'une des valeurs stockées, un
signal de sortie approprié est généré et une interruption est demandée. Deux
modes sont fournis comparer:
Mode 0: Sur un match de l'évolution du signal de sortie de faible à élevé. Il
remonte à son plus bas niveau lorsque timer 2 débordements.
Mode 1: La transition du signal de sortie peut être déterminée par le logiciel.
Un débordement du timer 2 ne provoque pas de changement de sortie .
63
Chapitre III PSD1_SAB80C535
Timer 0
Registre de comptage 16 bits comprenant
registre de comptage partie haute TH0 (08CH)
registre de comptage partie basse TL0 (08AH)
Timer 1
Registre de comptage 16 bits comprenant
registre de comptage partie haute TH1 (08DH)
registre de comptage partie basse TL1 (08BH)
Timer 2
Registre de comptage 16 bits comprenant :
registre de comptage partie haute TH2 (0CDH)
registre de comptage partie basse TL2(0CCH)
Dans le mode de mise hors tension, l'oscillateur est arrêté. Par conséquent, toutes
les fonctions sont arrêtés; ALE et PSEN mis à 0.
64
Chapitre III PSD1_SAB80C535
Gestion de projet:
Les fonctions de la gestion de projet sont en outre disponibles via le menu Projet
Sélection spécifique d'un profil microcontrôleur:
La sélection d'un profile intégré requiert une installation préalable des fichier DLL
respectifs et des outils correspondants, une spécification d'outil est aussi déjà
existante et il n'est pas nécessaire de définir manuellement
La sélection d'un profil utilisateur: L'utilisateur a la possibilité d'attribuer un
désignateur propre pour le type de profil à déterminer ensuite quel outils doit être
utilisé
L'exemple suivant explique les étapes à suivre pour travailler avec le profil
utilisateur
65
Chapitre III PSD1_SAB80C535
66
Chapitre III PSD1_SAB80C535
67
Chapitre III PSD1_SAB80C535
Conclusion:
68
Chapitre IV Implémentation d’un PID sous PIC 16F877
Chapitre IV
Introduction
Schéma de commande
Vc
CAN Microcontrôleur CNA RC
Le microcontrôleur
69
Chapitre IV Implémentation d’un PID sous PIC 16F877
Le CNA
70
Chapitre IV Implémentation d’un PID sous PIC 16F877
71
Chapitre IV Implémentation d’un PID sous PIC 16F877
Circuit RC
On a alors :
e(t ) = v r + vc
Avec
v r = Ri
1
vc =
c∫
idt
Ce qui conduit à :
dv c
e(t ) = Rc + vc
dt
E ( p) = ( Rcp + 1)Vc ( p)
Vc ( p ) 1
⇒ G( p) = =
E ( p) 1 + Rcp
C’est un système premier ordre avec une constante du temps choisie à τ = RC = 0.2
et un gain statique unitaire.
72
Chapitre IV Implémentation d’un PID sous PIC 16F877
Step Response
1
0.9
0.8
0.7
0.6
Amplitude
0.5
0.4
0.3
0.2
0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6
Time (sec)
Spécifications désirées
ξ=0.2958
ωn=0.3289
73
Chapitre IV Implémentation d’un PID sous PIC 16F877
Step Response
1.4
1.2
0.8
Amplitude
0.6
0.4
0.2
0
0 10 20 30 40 50 60
Time (sec)
Ces spécifications vont être réalisées par un régulateur PI ayant les paramètres
suivant:
K=Ki=0.1
Organigramme de commande
Insérer votre organigramme et donner une description avec tous les schémas
correspondants et votre programme
74
Chapitre IV Implémentation d’un PID sous PIC 16F877
Schéma de câblage
CNA
Avec :
Schéma global
Résultats de simulation
75
Chapitre IV Implémentation d’un PID sous PIC 16F877
Conclusion
Le contrôleur présenté est un PI pour le réglage d'un circuit RC. Les résultats de
l'expérience et de la simulation coïncident avec une certaine erreur Cette application.
76
Conclusion générale
Conclusion générale
Dans le futur on suggère l'application des ces circuits pour un système physique
avec l'implémentation d'un capteur approprié et pour un système non linéaire tout en
adoptant une loi de commande non linéaire.
77
Bibliographie
Bibliographie
[9]. http://www.techno-science.net
[10]. http://www.developpez.com
[11]. http://fr.wikipedia.org
78