You are on page 1of 49



TD Microcontrôleur, famille PIC


6pDQFHVHW


Lecture écriture d’une mémoire RAM

'DQVFHSUREOqPHQRXVpWXGLRQVODUpDOLVDWLRQG¶XQHFRQVROHSHUPHWWDQWGHOLUHHWG¶pFULUH
©PDQXHOOHPHQWª GDQV XQH PpPRLUH 5$0 FHV RSpUDWLRQV VH IRQW QRUPDOHPHQW VRXV OH
FRQWU{OH G¶XQ ©SURFHVVHXUª  ORUVTXH OH FDOFXODWHXU HVW GpFRQQHFWp VRUWLHV HQ KDXWH
LPSpGDQFH 
/DPpPRLUH5$0TXHQRXVpWXGLRQVHVWH[WHQVLEOHMXVTX¶jNPRWVGHELWV XQNPRWV
YDXW   PRWV  (OOH VH FRPSRVH GH FLUFXLWV LPSULPpV RX FDUWHV GH  NPRWV FKDFXQH
HQIRQFpHVGDQVOHVFRQQHFWHXUVG¶XQMHXGHOLJQHVRX08/7,%86 YRLUODILJXUH 

/H08/7,%86FRPSUHQG
 XQEXVG¶DGUHVVHVGHOLJQHV $$«$ 
 XQEXVGHGRQQpHVGHOLJQHV ''«' 
 XQHOLJQH5 :   pFULWXUH OHFWXUH 
 GHVOLJQHVG¶DOLPHQWDWLRQV
 pYHQWXHOOHPHQWGHVOLJQHVG¶LQKLELWLRQGXGLVSRVLWLIGHVpOHFWLRQ QRXVQ¶HQIHURQV
SDVXVDJHLFL 
2Q GpVLUH OLUH HW pFULUH OD PpPRLUH 5$0 HQ FRGH KH[DGpFLPDO j SDUWLU G¶XQH FRQVROH
FRPSUHQDQW YRLUILJXUH 
 /HVWRXFKHVGHFRGHVHQSUHVVDQWVXUO¶XQHGHFHVWRXFKHVRQFKDUJHOHFRGHG¶XQ
FKLIIUHKH[DGpFLPDO$%&'()GDQVODPpPRLUHG¶XQUHJLVWUH
WDPSRQ&
 /DWRXFKHGHVpOHFWLRQG¶XQHDGUHVVH6(/
 /D WRXFKH ,1& FHWWH WRXFKH SHUPHW G¶LQFUpPHQWHU OH VpOHFWHXU G¶DGUHVVHV HW
G¶REWHQLUHQPrPHWHPSVXQHOHFWXUHGHODSRVLWLRQPpPRLUHDGUHVVpH
 /DWRXFKH(&5HOOHSHUPHWG¶pFULUHjODSRVLWLRQPpPRLUHVpOHFWLRQQpHOHVGHX[
GHUQLHUVFRGHVHQWUpVDXFODYLHU PRLWLpGURLWHGXUHJLVWUH& HWDXVVLG¶LQFUpPHQWHU
O¶DGUHVVHVpOHFWLRQQpHGHPDQLqUHjIDFLOLWHUO¶pFULWXUHGHVHJPHQWVGHSURJUDPPH
'HX[ GLVSRVLWLIV G¶DIILFKDJH IRQFWLRQQHQW HQ SHUPDQHQFH YLVXDOLVDQW G¶XQH SDUW
O¶DGUHVVHHWG¶DXWUHSDUWOHFRQWHQXGHODPpPRLUHDGUHVVpH


I - Etude de la mémoire (figure 2)
/DILJXUHGRQQHOHVFKpPDG¶XQHGHPLFDUWHPpPRLUHFRPSRVpHGHFLUFXLWVLQWpJUpVGH
 PRWV GH  ELWV FKDFXQ PpPRLUH GX W\SH  GH 0RWRUROD  HW GH FLUFXLWV GH GpFRGDJH
G¶DGUHVVH
&KDTXHFLUFXLWLQWpJUpFRPSRUWHERUQHVGHYDOLGDWLRQ &6   &6  &6   &6   &6  HW
&6  /HFLUFXLWHVWVpOHFWLRQQpORUVTXHVHV&6LVRQWjHWOHV &6L VRQWj

4XHOOHV VRQW OHV ]RQHV PpPRLUHV SODJHV G¶DGUHVVHV DGUHVVH GH GpEXW HW DGUHVVH GH ILQ 
SHUPHWWDQWG¶DFFpGHUDX[FLUFXLWVHWGHODGHPLFDUWHGHODILJXUH"
0rPHTXHVWLRQSRXUO¶DXWUHGHPLFDUWH QRQUHSUpVHQWpHVXUODILJXUH 


  7R*
7'0LFURFRQWU{OHXU  ,16$*(

II - Encodage d’un clavier


2Q GpVLUH FRQFHYRLU XQ GLVSRVLWLI HQFRGDQW  WRXFKHV   « $ % «)  VXU  ILOV
&
HVWjGLUHTXHO¶DSSXLVXUODWRXFKHGRLWIRXUQLUODYDOHXUVXUOHVILOV/DWRXFKHOD
YDOHXUHWDLQVLGHVXLWH
­  → 
°  → 
°°
® # 
° ( → 
°
°¯ ) → 
2QVXSSRVHUDTXHODSUHVVLRQVXUXQHWRXFKHIHUPHXQLQWHUUXSWHXUVLPSOH

(QDQDO\VDQWFHWpQRQFpYpULILHUTXHOHSUREOqPHHVWPDOSRVpOHFRUULJHUSXLVUpDOLVHU
OHV\VWqPHDGpTXDW


III - Réalisation du registre tampon C (figure 3)
2QSURSRVHPDLQWHQDQWGHUpDOLVHUOHUHJLVWUHWDPSRQ&&HUHJLVWUHSHUPHWWUDGHFKDUJHU
OH EXV G¶DGUHVVHV  ELWV  HW OH EXV GH GRQQpHV  ELWV  j SDUWLU GHV YDOHXUV WDSpHV VXU OH
FODYLHU
/HUHJLVWUH&HVWIRUPpGHEDVFXOHVW\SH'&HUHJLVWUHUHoRLWXQQRXYHDXFRGHGXFODYLHU
HQ & & & & HW GpFDOH DXWRPDWLTXHPHQW G¶XQ SDV OHV DQFLHQV FRGHV OH FRGH VLWXp HQ
&&&&HVWSHUGX 

4XHOOHHVWODWDLOOH HQELWV GXUHJLVWUH&"&RPELHQGHEDVFXOHVVRQWQpFHVVDLUHV"
'HVVLQHUHQWLqUHPHQWOHUHJLVWUH&0HWWUHHQpYLGHQFHOHFKHPLQVXLYLSDUOHVGRQQpHV
GXFODYLHUDXVpOHFWHXUG¶DGUHVVHVDLQVLTXHOHVVLJQDX[GHFRQWU{OH


IV - Réalisation du sélecteur d’adresses (figure 3)
&¶HVW OH FLUFXLW TXL DFWLRQQH GLUHFWHPHQW OH EXV G¶DGUHVVHPpPRLUH ,O V¶LQLWLDOLVHDYHF OD
FRPPDQGH6(/HWUHoRLWODFRPPDQGH,1&

'HVVLQHUHQWLqUHPHQWFHFLUFXLWHQLQFOXDQWOHVVLJQDX[GHFRQWU{OH


V - Réalisation du contrôleur de bus de données (figure 3)
&¶HVWOHFLUFXLWTXLSHUPHWG¶pFULUHGDQVODPpPRLUH5HFHYDQWODFRPPDQGH(&5LOSODFH
OD PpPRLUH HQ PRGH G¶pFULWXUH SXLV FKDUJH OH EXV GH GRQQpHV DYHF OHV YDOHXUV GHV ELWV GH
SRLGV IDLEOHV GX UHJLVWUH & ,O LQFUpPHQWH HQVXLWH O¶DGUHVVH PpPRLUH HW SODFH OD PpPRLUH HQ
PRGHGHOHFWXUH

'HVVLQHUFRPSOqWHPHQWFHFLUFXLW4XHOOHFDUDFWpULVWLTXHSDUWLFXOLqUHGRLWLOFRPSRUWHU"





7'0LFURFRQWU{OHXU   ,16$*(




7'0LFURFRQWU{OHXU   ,16$*(



  ,16$*(,)

TD Microcontrôleur, famille PIC


6pDQFH



Démultiplexage d’adresses

2QVRXKDLWHFRPPDQGHUDYHFXQPLFURFRQWU{OHXUVRUWLHVTXHOFRQTXHVDVVRFLpHVjGHV
YR\DQWVGHVLJQDOLVDWLRQ2QYHXWSRXYRLUPRGLILHUO¶pWDWGHFKDTXHVRUWLH DFWLYHRXQRQ
DFWLYH VDQVPRGLILHUO¶pWDWGHVDXWUHVVRUWLHV2QYHXWDXVVLSRXYRLUPHWWUHj]pURWRXWHV
OHVVRUWLHVIDFLOHPHQW
$ILQ GH PLQLPLVHU OH QRPEUH GH ILOV QpFHVVDLUHV DX SLORWDJH GHV  VRUWLHV RQ SURSRVH
G¶XWLOLVHUGHX[GpPXOWLSOH[HXUV+& FI)LJXUH 
/DILQDOLWpGHFHWH[HUFLFHHVWGHUpDOLVHUOHFkEODJHHWODORJLTXHHQWUHXQPLFURFRQWU{OHXU
GHW\SH3,&HWOHVHQWUpHVGHV+&GHOD)LJXUH



)LJXUH6ROXWLRQSURSRVHSRXUOHSLORWDJHGHVRUWLHV/HV/('V\PEROLVHQWOHVVRUWLHV


I – Solution sans circuits 74HC259
6DQVOHVGpPXOWLSOH[HXUV+&FRPELHQGHILOVVHUDLHQWQpFHVVDLUHVDXSLORWDJHGHV
VRUWLHV"

&HWWHVROXWLRQHVWHOOHWRXMRXUVFRQYHQDEOH"


  7R*
7'0LFURFRQWU{OHXU  ,16$*(


II – Solution retenue : utilisation de circuits 74HC259
$QDO\VHUODWDEOHGHYpULWpGXFLUFXLW+& FI)LJXUHHW)LJXUH 

$YHFXQVHXOFLUFXLWFRPELHQGHVRUWLHVSHXYHQWrWUHSLORWpHV"&RPELHQGHELWV RXILOV 
VRQWQpFHVVDLUHVDXSLORWDJHGHFHFLUFXLW"
4XHOVVRQWOHVPRGHVGHIRQFWLRQQHPHQWGHFHFLUFXLW"
 '¶DSUqV OH FDKLHU GHV FKDUJHV TXHOV VRQW OHV PRGHV GH IRQFWLRQQHPHQW GX +&
XWLOHVjQRWUHV\VWqPHHWTXHOOH V IRQFWLRQ V OHXUVVRQWDVVRFLpHV"
 3RXU OHV PRGHV ©GHFRGHUª HW ©DGUHVVDEOH ODWFKª SUpFLVH] TXDQG OD YDOHXU GH OD
GRQQpHGHVWDSSOLTXpHVXUXQHVRUWLH4

III – Liaison microcontrôleur Ù système de 16 voyants
2QVHSODFHPDLQWHQDQWFRWpPLFURFRQWU{OHXU2QDVVRFLHXQHDGUHVVHjFKDTXHYR\DQW RX
VRUWLH 2QSLORWHUDO¶pWDWG¶XQHVRUWLHHQVpOHFWLRQQDQWFHWWHVRUWLHJUkFHjVRQDGUHVVHSXLVHQ
pFULYDQWVRQQRXYHOpWDWVXUOHEXVGHGRQQpHV(QILQRQYDOLGHUDOHFKDQJHPHQWG¶pWDWGHOD
VRUWLH

&RPELHQGHELWVG¶DGUHVVHVVRQWQpFHVVDLUHVDXSLORWDJHGHVYR\DQWV"
'HPrPHSRXUOHVELWVGHGRQQpHV"
 6DFKDQW TXH O¶RQ YHXW SRXYRLU PHWWUH WRXWHV OHV VRUWLHV j  IDFLOHPHQW HW TX¶LO HVW
QpFHVVDLUHGHYDOLGHUOHVGRQQpHVSRXUHIIHFWXHUOHFKDQJHPHQWG¶pWDWG¶XQHVRUWLHFRPELHQ
GHELWVVRQWQpFHVVDLUHVDXFRQWU{OHGHFHV\VWqPH"


IV – Réalisation du câblage
 $ TXRL GRLWRQ UHOLHU OHV HQWUpHV $ $ HW $ SXLV ' GHV +&" 3UpYRLU OD
YDOLGDWLRQGHVGRQQpHV

&RPPHQWSHXWRQSLORWHUVRUWLHV"5pDOLVHUOHVFKpPDGHFkEODJHGXEXVG¶DGUHVVHQH
SDVRXEOLHUODYDOLGDWLRQGHVGRQQpHV«

 $MRXWHU OD ORJLTXH SRXU SHUPHWWUH XQH PLVH j ]pUR GH WRXWHV OHV VRUWLHV RQ GLVSRVHUD
G¶XQELW UHVHW SURYHQDQWGXPLFURFRQWU{OHXU 




 
7'0LFURFRQWU{OHXU  ,16$*(


)LJXUH6FKpPDIRQFWLRQQHOGX+&


)LJXUH7DEOHGHYpULWpGX+&

 
  ,16$*(,)

TD Microcontrôleur, famille PIC


6pDQFH



Première application avec un PIC : faire clignoter une LED

/H EXW GH FHWWH VpDQFH GH 7' HVW G¶pFULUH OH SURJUDPPH DVVHPEOHXU SRXU OH 3,&&
SHUPHWWDQWGHIDLUHFOLJQRWHUXQH/('/HVFKpPDGHO¶DSSOLFDWLRQHVWSURSRVpVXUOD)LJXUH
'qVTXHOHPRQWDJHVHUDPLVVRXVWHQVLRQOD/('GHYUDFOLJQRWHULQGpILQLPHQW SpULRGH
GHPLOOLVHFRQGHV 



)LJXUH6FKpPDGHO¶DSSOLFDWLRQ


I – Organigramme du programme
'HVVLQHU O¶RUJDQLJUDPPH GH O¶DSSOLFDWLRQ 3RXU OD WHPSRULVDWLRQ RQ IHUD DSSDUDvWUH XQH
IRQFWLRQ©7HPSRª


  7R*
7'0LFURFRQWU{OHXU  ,16$*(


II – Fonction Tempo
/H FRGH DVVHPEOHXU VXLYDQW HVW FHOXL G¶XQH IRQFWLRQ GH WHPSRULVDWLRQ /HV YDULDEOHV
Tempo_value_B1 HW Tempo_value_B2 VRQW VWRFNpHV HQ 5$0 DX[ DGUHVVHV [ HW
[/HPLFURFRQWU{OHXUHVWFDGHQFpj0+]
1 Tempo_Wms:
2 BCF STATUS, RP0 ;
3 MOVWF Tempo_value_B1 ;
4 Tempo_B1:
5 MOVLW .249 ;
6 MOVWF Tempo_value_B2 ;
7 Tempo_B2:
8 NOP ;
9 DECFSZ Tempo_value_B2,1;
10 GOTO Tempo_B2 ;
11 DECFSZ Tempo_value_B1,1;
12 GOTO Tempo_B1 ;
13 RETURN ;

D ,QGLTXH]SRXUFKDTXHOLJQHGHFHWWHIRQFWLRQFHTXLHVWUpDOLVpSDUOHPLFURFRQWU{OHXU
FIGRFXPHQWVFRQVWUXFWHXU)LJXUH 
E (QGpGXLUHO¶RUJDQLJUDPPHGHODIRQFWLRQTempo_Wms

F 'RQQHU OH QRPEUH GH F\FOHV FRUUHVSRQGDQW j O¶H[pFXWLRQ GH FKDTXH LQVWUXFWLRQ FI
GRFXPHQWVFRQVWUXFWHXU)LJXUH 
G (Q GpGXLUHOH WHPSV G¶H[pFXWLRQ GHOD IRQFWLRQ Tempo_Wms HQ IRQFWLRQ GH OD YDOHXU
FRQWHQXHGDQVOHUHJLVWUH: FI)LJXUH 
H -XVWLILHUO¶XWLOLVDWLRQGHO¶LQVWUXFWLRQNOPOLJQHHWGHODYDOHXUOLWWpUDOHOLJQH

I $YHF XQ VHXO DSSHO j FHWWH IRQFWLRQ TXHOOH HVW OD GXUpH GH OD WHPSRULVDWLRQ OD SOXV
ORQJXHTXHO¶RQSXLVVHUpDOLVHU"


III – Programme principal
D 'RQQHU OHV LQVWUXFWLRQV SHUPHWWDQW GH FRQILJXUHU OD EURFKH 5% SRXU SLORWHU OD /('
FIGRFXPHQWV)LJXUH)LJXUHHW)LJXUH 


E 'RQQHUOHVLQVWUXFWLRQVSRXUDOOXPHUHWpWHLQGUHOD/(' FI)LJXUHHW)LJXUH 



F (FULUH HQ DVVHPEOHXU OH SURJUDPPH SULQFLSDO 3RXU REWHQLU XQ SURJUDPPH FRPSOHW
YRXVSRXUUH]FRPSOpWHUOHOLVWLQJVXLYDQW 

 
7'0LFURFRQWU{OHXU  ,16$*(


#include <p16F84.inc> ; def. des variables du microprocesseur
__CONFIG _CP_OFF & _WDT_ON & _PWRTE_ON & _RC_OSC; config. du PIC

;***** DEFINITION des VARIABLES


Tempo_value_B1 equ 0x0020
Tempo_value_B2 equ 0x0021

;**************************************************************
ORG 0x0000 ; vecteur reset
GOTO main ; aller au début du programme

Tempo_Wms:

… ; code de la question II

RETURN

main: ; programme principal, à vous…

END ; directive 'fin de programme'





 
7'0LFURFRQWU{OHXU  ,16$*(


Annexes :
Extraits de la documentation Microchip PIC16C84

KWWSZZPLFURFKLSFRPGRZQORDGVHQGHYLFHGRFFSGI





)LJXUH2UJDQLVDWLRQGHODPpPRLUH3,&&




 
7'0LFURFRQWU{OHXU  ,16$*(


)LJXUH-HXG¶LQVWUXFWLRQVGHV3,&&;;;

 
7'0LFURFRQWU{OHXU  ,16$*(


)LJXUH)RQFWLRQQHPHQWGX3257%




 
7'0LFURFRQWU{OHXU  ,16$*(


)LJXUH([HPSOHG¶XWLOLVDWLRQHWGHVFULSWLRQGHVUHJLVWUHVDVVRFLpVDX3257%





)LJXUH&\FOHVKRUORJHHWLQVWUXFWLRQV

 
INSA GE IF2

TD Microcontrôleur, famille PIC


Séances 5 et 6

6FUXWDWLRQSDUEDOD\DJH
DSSOLFDWLRQSRXUOHFRGDJHGHVWRXFKHVG·XQFODYLHU

Le but de cette séance de TD est d’écrire en assembleur (famille PIC16XXX) une fonction
permettant de scruter un clavier de 16 touches et de donner la valeur de la touche pressée (on
parlera de décodage). On supposera qu’une seule touche est appuyée à la fois.
Le schéma interne du clavier est décrit sur la Figure 1.
La fonction de scrutation/décodage sera appelée par le programme principal. Cette
fonction devra attendre qu’une touche soit pressée. Elle retournera la valeur décodée (de 0 à
F).
0 4 8 C
RA0
1 5 9 D
RA1
2 6 A E
RA2
3 7 B F
RA3

RB0 RB1 RB2 RB3

Figure 1 : Schéma fonctionnel du clavier (sans les résistances, les diodes…)


,²6FKpPDGHO·DSSOLFDWLRQ
- Réaliser le schéma global de l’application (cf. Figure 2). On veillera particulièrement aux
résistances de rappels et de protections nécessaires à l’utilisation du clavier.

,,²2UJDQLJUDPPH
- Décrire le principe de fonctionnement de la scrutation du clavier.
- Donner une méthode permettant de faire le décodage.
- Etablir l’organigramme de la fonction de scrutation/décodage (faire apparaitre ces
fonctions).

,,,²3URJUDPPDWLRQGHVIRQFWLRQV
- Ecrire en assembleur les fonctions de scrutation et de décodage. Le code de la touche (de
0 à F) sera retourné via le registre W.

1/7 ToG 2007


TD 5-6 Microcontrôleur INSA GE

,9²3RXUDOOHUSOXVORLQ«
- Exemples d’utilisation : minuterie programmable, digicode à 4 chiffres, …
- Programmation en utilisant uniquement le port B (pour la lecture RB4 à RB7), le port A
est ainsi libéré.
- Critiquer la solution de programmation mise en place pour la scrutation et proposer une
méthode plus adaptée.

Figure 2: Schéma du PIC 16F84

2/7
TD 5-6 Microcontrôleur INSA GE

$QQH[HV
([WUDLWVGHODGRFXPHQWDWLRQ0LFURFKLS3,&&
http://ww1.microchip.com/downloads/en/devicedoc/30445c.pdf

Figure 3: Organisation de la mémoire, PIC 16C84

3/7
TD 5-6 Microcontrôleur INSA GE

Figure 4: Jeu d’instructions des PIC 16CXXX

4/7
TD 5-6 Microcontrôleur INSA GE

Figure 5 : Description du fonctionnement du PORT A

5/7
TD 5-6 Microcontrôleur INSA GE

<
Figure 6 : Description du fonctionnement du PORT B

6/7
TD 5-6 Microcontrôleur INSA GE

Figure 7 : Détails des registres du PIC16C84.

7/7
  ,16$*(,)

TD Microcontrôleur, famille PIC


6pDQFH


Exercices de programmation en assembleur
,OHVWFRQVHLOOpGHVDYRLUIDLUHFHVH[HUFLFHV
&RQVHLOV 
FRPPHQFHUSDUIDLUHXQRUJDQLJUDPPH
HQVXLWHWUDGXLUHULJRXUHXVHPHQWHWpWDSHSDUpWDSHYRWUHRUJDQLJUDPPH
 QH SDV KpVLWHU j DMRXWHU GHV YDULDEOHVWHPSRUDLUHV HQ 5$0  QpFHVVDLUHV DX FRGDJH
DVVHPEOHXU
QHFKHUFKHUSDVWURSjRSWLPLVHUYRWUHFRGHHWO¶XWLOLVDWLRQGHODPpPRLUH
XWLOLVHUGHVQRPVGHYDULDEOHVFODLUV YDOHXUVIRQFWLRQRXGHERXFOH 
HQFRUHXQHIRLVXWLOLVHUGHVYDULDEOHV WHPSRUDLUHVSDUDPqWUHV« HQ5$0

I – Table de retour de fonction
D5pDOLVHUODIRQFWLRQGHGpFRGDJH©KH[DGpFLPDOÎVHJPHQWVª FIFRXUV 
E2QYHXWFRQQDvWUHOHVYDOHXUVDSSURFKpHVGHVLQ [ SRXU[HQWLHUHWFRPSULVHQWUHƒHW
ƒ3URSRVHUXQHVROXWLRQGHPLVHHQ°XYUH DWWHQWLRQDX[YDOHXUVUpHOOHV« 

II – Adressage indexé
D(FULUHOHSURJUDPPHSHUPHWWDQWG¶DGGLWLRQQHUYHFWHXUVGHWDLOOHQ/HVYHFWHXUVVRQW
HQPpPRLUH5$0DX[DGUHVVHVYHWYDLQVLTXHOHXUWDLOOHQ/HYHFWHXUUpVXOWDWVVHUDDXVVL
VWRFNpHQ5$02QVXSSRVHTXHODVRPPHGHFKDTXHFRPSRVDQWHHVWLQIpULHXUHj FI
)LJXUH 
E /HV  YDOHXUV SRXU [ ƒ ƒ ƒ « ƒ GH ¬ VLQ [ ¼  RQW pWp pFULWHV GDQV OHV 
SUHPLqUHV DGUHVVHV GH O¶((3520 GX 3,& (FULUH OD IRQFWLRQ UHWRXUQDQW OD YDOHXU GH VLQ [ 
[ ∈ >ƒƒ@ FI)LJXUHHW)LJXUH 
F0RGLILHUODIRQFWLRQSUpFpGHQWHDILQG¶REWHQLUVLQ [ SRXU[ ∈ >ƒƒ@ FI)LJXUH 

III – Arithmétique : addition 16 bits
 )DLUH OD IRQFWLRQ $GG SHUPHWWDQW G¶DGGLWLRQQHU GHX[ YDOHXUV D HW E GH  ELWV /H
UpVXOWDWGHO¶DGGLWLRQVIHUDDXVVLELWV&KDTXHYDULDEOHELWVVHUDFRPSRVpHGHRFWHWV
ODSDUWLHEDVVH RFWHWGHSRLGVIDLEOHSDUH[HPSOHDOSRXUD HWODSDUWLHKDXWH SRLGVIRUWDK 
(FULUHXQSURJUDPPHXWLOLVDQWODIRQFWLRQ$GG/HVYDULDEOHVDHWEVHURQWjLQLWLDOLVHU
DX[YDOHXUVGHYRWUHFKRL[
6LJQDOHUOHGpSDVVHPHQWGHFDSDFLWp FI)LJXUH HQDOOXPDQWXQH/('VXU3257%!

IV – Arithmétique : Multiplication 8 bits
)DLUHO¶RUJDQLJUDPPHG¶XQHIRQFWLRQSHUPHWWDQWGHPXOWLSOLHUGHX[YDOHXUVELWVDHWE
/HUpVXOWDWVXUELWVVHUDpFULWGDQVYDULDEOHVELWVPO RFWHWGHSRLGVIDLEOH HWPK RFWHW
GHSRLGVIRUW 
(FULUHOHFRGHDVVHPEOHXUGHFHWWHIRQFWLRQ


  7R*
7'0LFURFRQWU{OHXU  ,16$*(


Annexes :
Extraits de la documentation Microchip PIC16C84

KWWSZZPLFURFKLSFRPGRZQORDGVHQGHYLFHGRFFSGI




)LJXUH2UJDQLVDWLRQGHODPpPRLUH3,&&

 
7'0LFURFRQWU{OHXU  ,16$*(


)LJXUH'pWDLOVGHVUHJLVWUHVGX3,&&




 
7'0LFURFRQWU{OHXU  ,16$*(


)LJXUH'pWDLOGXUHJLVWUH67$786

 
7'0LFURFRQWU{OHXU  ,16$*(


)LJXUH'HVFULSWLRQGHO¶DGUHVVDJHLQGLUHFW





 
7'0LFURFRQWU{OHXU  ,16$*(


)LJXUH'HVFULSWLRQGHVDFFqVjO¶((3520  

 
7'0LFURFRQWU{OHXU  ,16$*(


)LJXUH'HVFULSWLRQGHVDFFqVjO¶((3520  





 

 
7'0LFURFRQWU{OHXU  ,16$*(


)LJXUH-HXG¶LQVWUXFWLRQVGHV3,&&;;;

 
7'0LFURFRQWU{OHXU  ,16$*(

 
)LJXUH'HVFULSWLRQGpWDLOOpHGHVLQVWUXFWLRQV68%/:HW68%:)




 
  ,16$*(,)

TD Microcontrôleur, famille PIC


6pDQFH


Application :
Pilotage d’une sortie parmi 8


2Q VRXKDLWH SLORWHU XQH VRUWLH SDUPL  j O¶DLGH G¶XQ FODYLHU  WRXFKHV 6HXOHV OHV 
SUHPLqUHVWRXFKHV GHj VRQWXWLOLVpHVFKDTXHWRXFKHHVWDVVRFLpHjXQHVRUWLH/¶DSSXLH
VXUXQHWRXFKHSURYRTXHO¶LQYHUVLRQGHO¶pWDWORJLTXHGHODVRUWLHFRUUHVSRQGDQWH
$O¶LQLWLDOLVDWLRQRQVRXKDLWHTXHWRXWHVOHVVRUWLHVVRLHQWLQDFWLYHV pWDWORJLTXHEDV 

2QGLVSRVHUDGHVIRQFWLRQVVXLYDQWHV
 7HPSRB:PVTXLSHUPHWG¶DWWHQGUH:PLOOLVHFRQGHVSRXUXQ3,&FDGHQFpj0+]
 6FUXWHB&ODYLHUTXLVFUXWHOHFODYLHUWDQWTX¶DXFXQHWRXFKHQ¶HVWHQIRQFpHHWUHWRXUQH
ODYDOHXUGHODWRXFKHHQIRQFpHGDQV:/HFODYLHUGRLWrWUHFRQQHFWpDX3257%ELWVj
SRXUO¶pFULWXUHFRORQQHDFWLYHELWVjSRXUODOHFWXUHGHVOLJQHV GpWHFWLRQG¶XQHWRXFKHVL
pWDWKDXWpWDWEDVVLDXFXQHWRXFKHQ¶HVWHQIRQFpH 

2QGLVSRVHUDG¶XQ3,&)
2QXWLOLVHUDXQGpPXOWLSOH[HXUSRXUOHSLORWDJHGHVVRUWLHV W\SH+&FI)LJXUH
HW)LJXUH 
/H FODYLHU HVW XQ HQVHPEOH GH  ERXWRQV SRXVVRLU FkEOpV GH PDQLqUH j SHUPHWWUH OD
VFUXWDWLRQSDUEDOD\DJH )LJXUH 


I – Schéma de l’application
D([SOLTXHUHWMXVWLILHUOHFKRL[GHVFRPSRVDQWVGXVFKpPDGHO¶DSSOLFDWLRQ )LJXUH 2Q
V¶LQWpUHVVHUDQRWDPPHQWDX[U{OHVHWDX[YDOHXUVGHVUpVLVWDQFHV5j5

II – Organigramme de l’application
D)DLUHO¶RUJDQLJUDPPHJOREDOGHO¶DSSOLFDWLRQ
E'pWDLOOHUOHSLORWDJHGHVVRUWLHV FIGRFXPHQW+&)LJXUH 

III – Programmation
(FULUHOHSURJUDPPHHQDVVHPEOHXU2QSRXUUDIDLUHDSSHODX[IRQFWLRQV7HPSRB:PVHW
6FUXWHB&ODYLHU QHSDVUppFULUHFHVIRQFWLRQV 

  7R*
7'0LFURFRQWU{OHXU  ,16$*(


)LJXUH6FKpPD$SSOLFDWLRQVRUWLHV

 
7'0LFURFRQWU{OHXU  ,16$*(


Annexe 1:
Extraits de la documentation Microchip PIC16C84





)LJXUH2UJDQLVDWLRQGHODPpPRLUH3,&&

 
7'0LFURFRQWU{OHXU  ,16$*(


)LJXUH'pWDLOVGHVUHJLVWUHVGX3,&&




 
7'0LFURFRQWU{OHXU  ,16$*(


)LJXUH'pWDLOGXUHJLVWUH67$786

 
7'0LFURFRQWU{OHXU  ,16$*(


)LJXUH'HVFULSWLRQGXIRQFWLRQQHPHQWGX3257$

 
7'0LFURFRQWU{OHXU  ,16$*(



)LJXUH'HVFULSWLRQGXIRQFWLRQQHPHQWGX3257%





)LJXUH6FKpPDGX3,&)



 

 
7'0LFURFRQWU{OHXU  ,16$*(


)LJXUH-HXG¶LQVWUXFWLRQVGHV3,&&;;;

 
7'0LFURFRQWU{OHXU  ,16$*(


)LJXUH&DUDFWpULVWLTXHVpOHFWULTXHV

 
7'0LFURFRQWU{OHXU  ,16$*(

Annexe 2:
Extraits de la documentation du 74HC259




)LJXUH6FKpPDIRQFWLRQQHOGX+&


)LJXUH7DEOHGHYpULWpGX+&

 
7'0LFURFRQWU{OHXU  ,16$*(

Annexe 3:
Schéma du clavier.


0 4 8 C

1 5 9 D

2 6 A E

3 7 B F


)LJXUH6FKpPDIRQFWLRQQHOGXFODYLHU VDQVOHVUpVLVWDQFHVOHVGLRGHV« 

 

You might also like