21
Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b 13 b 12 b 11 b 10 b 9 b 8 b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 Mémoire données RAM File en anglais Banc Reg/RAM SFR Special Function Registers b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 Banc de registres RAM File SFR Special Function Registers b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 Banc de registres RAM b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 Banc de registres Banque 0 Banque 1 Identique Que valent m et n ? 68 octets 16F84 68 octets 16F84 2x96=192 octets 16F873 sur 4 banques dont deux identiques.

Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

  • Upload
    others

  • View
    26

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

Cours 1- 2 : Architecture interne du PIC 16FXXX

16F84

Mémoire programme

1k

16F873

4k

16F887

8k

b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0

Mémoire données

RAM

File en anglaisBanc Reg/RAM

SFRSpecial Function Registers

b7 b6 b5 b4 b3 b2 b1 b0

Banc de registres

RAM

File

SFRSpecial Function Registers

b7 b6 b5 b4 b3 b2 b1 b0

Banc de registres

RAM

b7 b6 b5 b4 b3 b2 b1 b0

Banc de registres

Banque 0 Banque 1

Identique

Que valent m et n ?

68 octets 16F84

68 octets 16F842x96=192 octets 16F873 sur 4 banques dont deux identiques.

Page 2: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

status

RAM

File

SFRSpecial Function Register

b7 b6 b5 b4 b3 b2 b1 b0

Banc de registresb7 b6 b5 b4 b3 b2 b1 b0

W

b9 b8 b7 b6 b5 b4 b3 b2 b1 b0

Pointeur de pile

b9 b8 b7 b6 b5 b4 b3 b2 b1 b0

PCL

Status IRP RP1 RP0 /TO /PD Z DC C

Modèle de programmation du PIC 16F84

L'instruction MOVLW

8 niveaux

PCLATH

Les registres jaunes ne font pas partie du banc de registres

Registre de travail

MOVLW K MOVLW K 11 00xx kkkk kkkk11 00xx kkkk kkkk

16F84

b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0

b7 b6 b5 b4 b3 b2 b1 b0

W

1 1 0 0 0 0 1 0 0 1 1 1 1 0

Mémoire programme

La valeur est transférée à partir de la mémoire programme vers le registre de travail.

Registre de travail

Mnémonique

Opérande Opcode sur 14 bits

Compteur programme

Page 3: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

Assembler et désassembler

Les deux autres instructions MOV

Mnémonique

Opérande Opcode sur 14 bits

MOVLW K MOVLW K 11 00xx kkkk kkkk11 00xx kkkk kkkk

Assembler

Désassembler

MOVF f,dMOVF f,d 00 1000 dfff ffff00 1000 dfff ffff

W

Registre de travailstatus

RAM

Banc de registres

PCL

PCLATH

N'importe où dans File

b7 b6 b5 b4 b3 b2 b1 b0

d=1

d=0

MOVWF fMOVWF f 00 0000 1fff ffff00 0000 1fff ffff

W

Registre de travailstatus

RAM

Banc de registres

PCL

PCLATH

N'importe où dans File

b7 b6 b5 b4 b3 b2 b1 b0

Positionne Z de STATUS

Page 4: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

Les instructions MOV sur architecture complète

Architecture du 16F84A

ALU

ACC W

MUX

STATUS

FSR reg

Adr MUX

RAM Addr

Indirect Addr7

Instruction register

5

direct Addr

Instruction Decode &Control

Timinggénération

OSC2/CLKOUTOSC1/CLKIN

MCLR OSC2/CLKOUTOSC1/CLKIN

Power-upTimer

Oscillator startupTimerPower-onReset

WatchdogTimer

RAMFile Registers68 x 8

7

FLASHProgramMemory1K x 14

Program Counter

8 Level stack(10 bits)

8 Data bus

14

10

TMR0

RA4/T0CKI

I/0 PortsRA3 ..RA0

RB7 ..RB1

RB0/INT

PORTA

PORTB

MOVLW K

MOVWF f

MOVF f,davec d=0

Exécuter un programme avec un compteur programme

Page 5: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

Ampli de puissance

Des PORTs pour les entrées et sorties (notées E/S)

b7

b6

b5

b4

b3

b2

b1

b0

PORTA

PIC16F

E/SE/S

E/SE/S

E/S

E/SE/S

E/S

Bus interne E/S physique

b7

b6

b5

b4

b3

b2

b1

b0

TRISARB2

PORT

Détermine la direction : (1) entrée ou (0) sortie

Les PORTs du PIC 16F84

(1) RA2RA3

RA4/T0CKIMCLR

masse/VSSRB0/INT

RB1RB2

(9) RB3

RA1 (18)RA0OSC1/CLKINOSC2/CLKOUTVDD/VccRB7RB6RB5RB4 (10)

Deux ports :- PORTA 5 bits RA0 -> RA4-PORTB 8 bits RB0 -> RB7

Les PORTs du PIC 16F887

PIC16F

MCLRRA0RA1RA2RA3RA4RA5RE0RE1RE2VCCGNDRA7RA6RC0RC1RC2RC3RD0RD1

RB7RB6RB5RB4RB3RB2RB1RB0Vcc

GNDRD7RD6RD5RD4RC7RC6RC5RC4RD3RD2

Cinq ports :- PORTA 8 bits RA0 -> RA7- PORTB 8 bits RB0 -> RB7- PORTC 8 bits RC0 -> RC7- PORTD 8 bits RD0 -> RD7- PORTE 2 bits RE0 -> RE2

Page 6: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

Les modèles électriques des PORTs

5

4

3

2

1

0 5 10 15 20 25

1.0

0.8

0.6

0.4

0.2

0 5 10 15 20 25

max

min

typ

IOH (mA)

VOH (V)

Les ports du 16F84 sont supposés délivrer ou recevoir jusqu'à 25mA

IOL (mA)

VOL (V)

max

min

typ

Page 7: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

Les résistances de tirage des PORTs

Après avoir déterminé les modèles de Thévenin des PORTs on s'intéresse maintenant aux résistances de tirage.

PIC 16FXXX

b7

b6

b5

b4

b3

b2

b1

b0

PORTVcc

(en) pull-up resistor(fr) Résistance de tirage

interne

Sur PIC pull-up avec bit RPBU du registre OPTION

Rth

UHth = 5V

IOH

R'th

ULth=0V

IOL

On prendra toujours Rth =100 Ω

16<R'th<3656<Rth<180

A quoi cela sert ? On les utilise en général pour les entrées et cela peut éviter d'utiliser ces mêmes résistances en externe.

Sortie haute

Sortiebasse

Page 8: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

Micro-contrôleur

PA1Micro-contrôleur

PA1

Vcc

Cours 3 - 4 Interfaces externes des micro-contrôleurs

II) Interfacer des LEDs

Pour information VOH=4V pour ID=10mA et V0L = 0,4V pour ID=10mA pour le PIC 16F84. Calculer les modèles de Thévenin correspondants.Si on ne connait rien on prend VD = 1,8V et V0L = 0V et VOH=Vcc.Calcul de R 1Source de courant : R1= (VOH-VD) /ID avec VD tension directe de la diode et VOH tension haute du port.Puits de courant : R1= (Vcc-VD-V0L) /ID avec V0L tension basse du portExemple :Kingbright led rouge 10mA l=627nm 15mcd à 10mA VD = 1,95VKingbright led vert 10mA l=565nm 12mcd à 10mA VD = 2,09V

Pour information les résistances utilisées sur EasyPIC5 sont de 1kΩ.

Micro-contrôleur comme source de courant Micro-contrôleur comme puits de courant

I) Horloge

Le 16F84 peut être configuré pour 4 modes d'horloge :- XT- crystal : mode standard pour 1 – 4 MHz- HS – High Speed aux alentours de 4 MHz : grande consommation de courant- LP - Low Power fréquences basses (32,768 kHz jusqu'à 200 kHz) - RC Resistor Capacitor difficile de prévoir la fréquence d'oscillation avec certitude.

Vcc

PIC 16F

(16) OSC1

PIC 16F

(16) OSC1

RF

RS

(17) OSC2

sleep

R1

R1

RExt

CExt

Rappel :Diode bloquée Diode passante

C1=22pF

C2=22pF

RD

UD

UD ou U0 : tension de seuilSi UD inconnue prendre 1,8V.RD : résistance dynamiqueSi RD inconnue prendre 0Ω.

IS

IE

ATTENTION les ports ne sont pas forcément symétriques : IS peut être différent de IE.

Page 9: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

abcdefg

PIC16F877A

RC0RC1RC2RC3RC4RC5RC6

a

290

RB0RB1

sw6

10k

DC56­11EWA Common Cathode

Pour généraliser l'utilisation des LEDs, on peut s'intéresser aux afficheurs sept segments

Anode commune Cathode commune

Comment allume-t-on un afficheur anode commune, un afficheur cathode commune ?

Multiplexage de plusieurs afficheurs :

a ab g gb

PIC16F

MCLRRA0RA1RA2RA3RA4RA5RE0RE1RE2VCCGNDRA7RA6RC0RC1RC2RC3RD0RD1

RB7RB6RB5RB4RB3RB2RB1RB0Vcc

GNDRD7RD6RD5RD4RC7RC6RC5RC4RD3RD2

b

c

d

e

f g

EasyPIC5

a b c d e f g DP

1k 1k

b

c

d

e

f g

DIS0DIS3

DIS0

DIS3

Page 10: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

III) Interfacer des sorties puissantesPour commander des sorties puissantes il faut ajouter des transistors (BJT Bipolar Junction Transistor). Les sorties puissantes peuvent être :- des relais- des bobines- des LEDs- des moteurs

Micro-contrôleur

PA2 R1

RC

Vcc = 5VVcc=12V

R2

2K2

100R680R

1K

2N2222 permet de sortir jusqu'à 60mA

Certains micro-contrôleurs ont une résistance interne pull-up par défaut à la mise sous tension. Le transistor est alors passant. Pour éviter cela on peut ajouter la résistance R2.

IV) Interfacer des sorties puissantes avec des FETOn peut utiliser des transistors à effet de champ à la place des BJT. Nous examinons le cas des MOSFET.

Micro-contrôleur

PA2

RC

Vcc = 5VVcc=12V

R2 2K2

BSS138 permet de sortir jusqu'à 220mA avec VDS=0,13V

V) Encore plus de puissanceIl faut utiliser des opto-coupleurs. Il permettent aussi une isolation galvanique ce qui est important

si la tension d'alimentation est très différente de celle du micro-contrôleur.

Micro-contrôleur

PAi

Vcc=5V

R1 RC

24V

Charge

TLP181

TLP181 :16mA < IDmax < 20mA avec VD <1,3V à 10mA1mA < IC <10mADimensionner R1.

Résistance pull-up = résistance de tirage

Problème des Pull-Up internes pour les entréesSur PIC pull-up avec bit RPBU du registre OPTIONinitialisé à 1 à la mise sous tension mais ????.

Il existe des familles spécialement faites pour être commandées directement par des PORTs. Voir ZVN4206A et ZVN4306A de chez Zetex.

Page 11: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

VI) Commander des bobines moteurs et relais avec BJTIl existe des transistors de puissance adaptés. Par exemple le transistor BD139 propose un gain β compris entre 25 et 250. On peut l'utiliser avec un courant IC=1,5 A (3A en pointe). Son faible gain nécessite un courant IB assez important, allant au-delà des possibilités des ports traditionnels (typiquement 10mA). Par exemple pour commuter 1A, il faut un IB=40mA dans le pire des cas. Il faut donc un transistor supplémentaire.

Micro-contrôleur

PA2 R1

R2

Vcc = 15V

3K3

Le transistor 2N2222 est bloqué, il circule 40mA dans IB1°) Si R2 est choisi à 330 Ω, quelle puissance passe dans R2 ?2°) Si le transistor 2N2222 est saturé (VCEsat=0,2V) quelle puissance passe dans R2 ?3°) Lorsque le BD139 est saturé, il circule Il circule IC=1A et l'on a VCEsat=0,70V. Quelle puissance est dissipée dans le BD139 ?

BD139

Vcc = 15V

M

2N2222 permet de sortir jusqu'à 60mA sous 60V

IB

D1

VII) Quelques circuits spécialisésOn peut trouver des circuits spécialisés destinés à commander directement des moteurs.

Le circuit L293D de chez Texas

Voici le schéma interne :

Page 12: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

Montage simple qui nécessite cependant un bit par interrupteur.On ne peut pas toujours se le permettre.

On suppose que - Pin 4 est reliée à RA3- Pin 5 est reliée à RA2- Pin 7 est reliée à RA1- Pin 6 est reliée à RA0Comment fait-on avancer un robot motorisé par deux moteurs ? Comment le fait-on reculer ?

VIII) Interfacer des entrées- Les boutons

Micro-contrôleur

RA4

Vcc=5V

R1

Cela fonctionne-t-il sans pull-up ?

RA1

Micro-contrôleur

RA4 Vcc=5V

R2

RA1

R1

Vcc=5V

Sans pull-up interne

R3470Ω

4,7kΩ

4,7kΩ

Page 13: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

Ajouter interface afficheur LCD

b7

b6

b5

b4

b3

b2

b1

b0

1 3

5 6

7 9

0*

4

8

#

Vcc

clavier

PORTB 2

Résistances de tirage

Application au clavier

Page 14: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

sw6

10k

PIC16F

MCLRRA0RA1RA2RA3RA4RA5RE0RE1RE2VCCGNDRA7RA6RC0RC1RC2RC3RD0RD1

RB7RB6RB5RB4RB3RB2RB1RB0Vcc

GNDRD7RD6RD5RD4RC7RC6RC5RC4RD3RD2

b

c

d

e

f g

a b c d e f g DP DIS0DIS3

DIS0

DIS2

J15RA3

Vcc

P1

Page 15: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

Cours 4­5 : les périphériques internes de la famille 16F

I) Les registres et noms des bits en Mikro C

OPTION

b7

b6

b5

b4

b3

b2

b1

b0

T0CST0SEPSAPS2

PS1

PS0

Ficher entête Mikro C

//**MikroC fichier P18F84A.c ***//********** bits de OPTIONNOT_RBPU = 0x0007,INTEDG = 0x0006,T0CS = 0x0005,T0SE = 0x0004,PSA = 0x0003,PS2 = 0x0002,PS1 = 0x0001,PS0 = 0x0000,...

Remarque : les noms de la documentation et les noms du fichier d'entête ne correspondent pas toujours !

Ficher programme Mikro C

Void main( void) ....//*** Toujours ***** OPTION_REG.B3 =1;//**** Si on connaît le nom OPTION_REG.PSA =1;// **** ou encore PSA_bit = 1;...

Documentationtechnique

Les trois façons de programmer en Mikro C

RBPUINTEDG

Page 16: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

INTCON

RA4/T0CKI

b7 ..................................

b

0 OPTION

b7

b6

b5

b4

b3

b2

b1

b0

PORTA

b7

b6

b5

b4

b3

b2

b1

b0

Timer0

II) Timer0 dans 16FXXX

T0CS

MCUClock

=1

T0SEPSA

MUX 0

2, 4, ...,256=2(n+1)

MUX 01

1

PS2

PS1

PS0

Timer0

4

T0SE : Source Edge selectb

7

b6

b5

b4

b3

b2

b1

b0

TMR0IF

Overflow (8 bits)

b7

b6

b5

b4

b3

b2

b1

b0

T0IE

INTERBIE

T0IF

INTF

RBIF

GIE

EEIE

INTCON0x0B Banque 0 et 1 &

&

&

&

Timer0

Overflow

III) Interruption timer0

b7 .....................................

b

0

Page 17: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

b15

.................................. b

0

T1CON0xFCD

b7

b6

b5

b4

b3

b2

b1

b0

PORTC

b7

b6

b5

b4

b3

b2

b1

b0

Timer1

IV) Timer1 dans 18F4550 et 16F877A

TMR1CS

MCUClock

T1OSCEN

MUX 0

1, 2, 4,8=2(n)

MUX 10

1

RD16

T1CKPS1

T1CKPS0

TMR1ON

T1Run

Timer10xFB3h TMR1H0xFB2h TMR1L

4

&

NOT_T1SYNC

Détection synchronisée

T1OSI

PIR1

CCP1IF

b7

b6

b5

b4

b3

b2

b1

b0

TMR1IF

overflow

T1OSO/T1CLI

Timer1H

Write TMR1L

Timer1High Byte

8

88

Read TMR1L

Timer1L

Sync with internal clock

1

0

0

1

TMR1CS

Prescaler1,2,4,8

T1OSI

T1CKPS<1:0>

Internal Data Bus

Timer1 dans 16FXXX

T1OSO/T1CLI

FOsc/4

T1OSCEN

NOT_T1SYNC

&TMR1ON

Page 18: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

PORTC

RC2/CCP1

CCP1CON

1,4,16

CCP1M3CCP1M2

CCP1M1

CCP1M0

PIR1

b7

b6

b5

b4

b3

b2

b1

b0

CCP1IF

CCPR1H CCPR1L

TMR1H TMR1L

V) CAPTURE POUR 16F877

0000 : Module CCP1 désactivé0100 : Capture tous les fronts descendants0101 : Capture tous les fronts montants0110 : Capture tous les 4 fronts montants0111 : Capture tous les 16 fronts montants

b7

b6

b5

b4

b3

b2

b1

b0

b7

b6

b5

b4

b3

b2

b1

b0

Page 19: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

PORTC

RC2/CCP1

CCP1CON

CCP1M3

CCP1M2CCP1M1

CCP1M0

Q S R

Special Event Trigger

VI) COMPARAISON PIC 16F877

TRISC

CCPR1H CCPR1L

TMR1H TMR1L

Comparaison

PIR1

CCP1IF

Special Event Trigger déclenchera: ­ un Reset du Timer1 (mais pas un positionnement du drapeau d'interruption de Timer1) ­ positionnement du bit GO/DONE qui démarre une conversion A/D (ECCP1 seulement)

0

0010 : Compare bascule sortie quand comparaison (CCPxIF)1000 : Compare force CCP à un (CCPIF est géré)1001 : Compare force CCP à zéro (CCPIF est géré)1010 : Compare sort rien sur CCP mais sur CCPIF1011 : Compare force Special Event Trigger reset sur timer1 (CCP1IF est géré)

b7

b6

b5

b4

b3

b2

b1

b0

b7

b6

b5

b4

b3

b2

b1

b0

b7

b6

b5

b4

b3

b2

b1

b0

b7

b6

b5

b4

b3

b2

b1

b0

Logique de sortie

TMR1IF

Page 20: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

b7 ..................................

b

0

T2CONb

7

b6

b5

b4

b3

b2

b1

b0

Timer2

VII) Timer2 dans 18F4550 et 16F877A

T2CKPS1

MCUClock

1, 2, .., 16

­

TOUTPS3

4

TMR2ON

PIR1

CCP1IF

b7

b6

b5

b4

b3

b2

b1

b0

TMR1IF

TOUTPS2

TOUTPS1

TOUTPS0

PR2

b7 ..................................

b

0

Comparateur

T2CKPS01, 4, 16

TMR2IF&

0000 = 1: 1 0001 = 1: 2 0010 = 1: 3.... 1111 = 1:16

00 = 1: 1 01 = 1: 4 1x = 1: 16

Reset

Page 21: Cours 1- 2 : Architecture interne du PIC 16FXXX · Cours 1- 2 : Architecture interne du PIC 16FXXX 16F84 Mémoire programme 1k 16F873 4k 16F887 8k b13 b12 b11 b10 b9 b8 b7 b6 b5 b4

b7 ..................................

b

0

T2CON

b7

b6

b5

b4

b3

b2

b1

b0

Timer2

VIII) PWM dans 18F4550 et 16F877A

T2CKPS1

MCUClock

1, 2, .., 16

­TOUTPS3

4

TMR2ON

PIR1

CCP1IF

b7

b6

b5

b4

b3

b2

b1

b0

TMR1IF

TOUTPS2

TOUTPS1

TOUTPS0

PR2

b7 ..................................

b

0

Comparateur

T2CKPS01, 4, 16

TMR2IF

&

0000 = 1: 1 0001 = 1: 2 0010 = 1: 3.... 1111 = 1:16

00 = 1: 1 01 = 1: 4 1x = 1: 16

Reset

b9 ..................................

b

2

Comparateur

CCPR1H

b9 ..................................

b

2

b1

b0

b1

b

0

8

8

10

10

CCP1CON

CCP1M3CCP1M2

CCP1M1

CCP1M0

b7

b6

b5

b4

b3

b2

b1

b0

DC1B0

DC1B1

PORTC

RC2/CCP1 R Q S

TRISC

0

b7

b6

b5

b4

b3

b2

b1

b0

b7

b6

b5

b4

b3

b2

b1

b0

CCPR1Lb

7 ..................................

b

0

Entrée n'importe quand prise en compte en fin de période.

CCP1CON (CCP1M3­2­1­0)1100 : Enable PWM