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¶jNPRWVGHELWVXQNPRWV YDXW PRWV (OOH VH FRPSRVH GH FLUFXLWV LPSULPpV RX FDUWHV GH NPRWV FKDFXQH HQIRQFpHVGDQVOHVFRQQHFWHXUVG¶XQMHXGHOLJQHVRX08/7,%86YRLUODILJXUH
/H08/7,%86FRPSUHQG
XQEXVG¶DGUHVVHVGHOLJQHV$$«$
XQEXVGHGRQQpHVGHOLJQHV''«'
XQHOLJQH5: pFULWXUH OHFWXUH GHVOLJQHVG¶DOLPHQWDWLRQV
pYHQWXHOOHPHQWGHVOLJQHVG¶LQKLELWLRQGXGLVSRVLWLIGHVpOHFWLRQQRXVQ¶HQIHURQV SDVXVDJHLFL
2Q GpVLUH OLUH HW pFULUH OD PpPRLUH 5$0 HQ FRGH KH[DGpFLPDO j SDUWLU G¶XQH FRQVROH FRPSUHQDQWYRLUILJXUH
/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[
GHUQLHUVFRGHVHQWUpVDXFODYLHUPRLWLpGURLWHGXUHJLVWUH&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&6HW
&6 /HFLUFXLWHVWVpOHFWLRQQpORUVTXHVHV&6LVRQWjHWOHV&6LVRQWj
4XHOOHV VRQW OHV ]RQHV PpPRLUHV SODJHV G¶DGUHVVHV DGUHVVH GH GpEXW HW DGUHVVH GH ILQ SHUPHWWDQWG¶DFFpGHUDX[FLUFXLWVHWGHODGHPLFDUWHGHODILJXUH"
0rPHTXHVWLRQSRXUO¶DXWUHGHPLFDUWHQRQUHSUpVHQWpHVXUODILJXUH
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
4XHOOHHVWODWDLOOHHQELWVGXUHJLVWUH&"&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¶DGUHVVH PpPRLUH ,O V¶LQLWLDOLVH DYHF 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$*(
TD Microcontrôleur, famille PIC
6pDQFH
Démultiplexage d’adresses
2QVRXKDLWHFRPPDQGHUDYHFXQPLFURFRQWU{OHXUVRUWLHVTXHOFRQTXHVDVVRFLpHVjGHV YR\DQWVGHVLJQDOLVDWLRQ2QYHXWSRXYRLUPRGLILHUO¶pWDWGHFKDTXHVRUWLHDFWLYHRXQRQ DFWLYHVDQVPRGLILHUO¶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"
7'0LFURFRQWU{OHXU ,16$*(
II – Solution retenue : utilisation de circuits 74HC259
$QDO\VHUODWDEOHGHYpULWpGXFLUFXLW+&FI)LJXUHHW)LJXUH
$YHFXQVHXOFLUFXLWFRPELHQGHVRUWLHVSHXYHQWrWUHSLORWpHV"&RPELHQGHELWVRXILOV VRQWQpFHVVDLUHVDXSLORWDJHGHFHFLUFXLW"
4XHOVVRQWOHVPRGHVGHIRQFWLRQQHPHQWGHFHFLUFXLW"
'¶DSUqV OH FDKLHU GHV FKDUJHV TXHOV VRQW OHV PRGHV GH IRQFWLRQQHPHQW GX +&
XWLOHVjQRWUHV\VWqPHHWTXHOOHVIRQFWLRQVOHXUVVRQWDVVRFLpHV"
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\DQWRX VRUWLH2QSLORWHUDO¶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 QpFHVVDLUH GH YDOLGHU OHV GRQQpHV SRXU HIIHFWXHU OH FKDQJHPHQW G¶pWDW G¶XQH VRUWLH FRPELHQ 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¶XQELWUHVHWSURYHQDQWGXPLFURFRQWU{OHXU
)LJXUH6FKpPDIRQFWLRQQHOGX+&
)LJXUH7DEOHGHYpULWpGX+&
,16$*(,)
7R*
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/('GHYUDFOLJQRWHULQGpILQLPHQWSpULRGH GHPLOOLVHFRQGHV
)LJXUH6FKpPDGHO¶DSSOLFDWLRQ
I – Organigramme du programme
'HVVLQHU O¶RUJDQLJUDPPH GH O¶DSSOLFDWLRQ 3RXU OD WHPSRULVDWLRQ RQ IHUD DSSDUDvWUH XQH IRQFWLRQ©7HPSRª
II – Fonction Tempo
/H FRGH DVVHPEOHXU VXLYDQW HVW FHOXL G¶XQH IRQFWLRQ GH WHPSRULVDWLRQ /HV YDULDEOHV Tempo_value_B1 HWTempo_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 GpGXLUH OH WHPSV G¶H[pFXWLRQ GH OD IRQFWLRQTempo_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'
Annexes :
Extraits de la documentation Microchip PIC16C84
KWWSZZPLFURFKLSFRPGRZQORDGVHQGHYLFHGRFFSGI
)LJXUH2UJDQLVDWLRQGHODPpPRLUH3,&&
7'0LFURFRQWU{OHXU ,16$*(
)LJXUH-HXG¶LQVWUXFWLRQVGHV3,&&;;;
)LJXUH)RQFWLRQQHPHQWGX3257%
7'0LFURFRQWU{OHXU ,16$*(
)LJXUH([HPSOHG¶XWLOLVDWLRQHWGHVFULSWLRQGHVUHJLVWUHVDVVRFLpVDX3257%
)LJXUH&\FOHVKRUORJHHWLQVWUXFWLRQV
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
1 2 3
4
5 6 7
8
9 A B
C
D E F RA0
RA1 RA2 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.
TD 5-6 Microcontrôleur INSA GE
2/7
,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
$QQH[HV
([WUDLWVGHODGRFXPHQWDWLRQ0LFURFKLS3,&&
http://ww1.microchip.com/downloads/en/devicedoc/30445c.pdf
Figure 3: Organisation de la mémoire, PIC 16C84
TD 5-6 Microcontrôleur INSA GE
4/7
Figure 4: Jeu d’instructions des PIC 16CXXX
Figure 5 : Description du fonctionnement du PORT A
TD 5-6 Microcontrôleur INSA GE
6/7
<
Figure 6 : Description du fonctionnement du PORT B
Figure 7 : Détails des registres du PIC16C84.
,16$*(,)
7R*
TD Microcontrôleur, famille PIC
6pDQFH
Exercices de programmation en assembleur
,OHVWFRQVHLOOpGHVDYRLUIDLUHFHVH[HUFLFHV
&RQVHLOV
FRPPHQFHUSDUIDLUHXQRUJDQLJUDPPH
HQVXLWHWUDGXLUHULJRXUHXVHPHQWHWpWDSHSDUpWDSHYRWUHRUJDQLJUDPPH
QH SDV KpVLWHU j DMRXWHU GHV YDULDEOHV WHPSRUDLUHV HQ 5$0 QpFHVVDLUHV DX FRGDJH DVVHPEOHXU
QHFKHUFKHUSDVWURSjRSWLPLVHUYRWUHFRGHHWO¶XWLOLVDWLRQGHODPpPRLUH XWLOLVHUGHVQRPVGHYDULDEOHVFODLUVYDOHXUVIRQFWLRQRXGHERXFOH
HQFRUHXQHIRLVXWLOLVHUGHVYDULDEOHVWHPSRUDLUHVSDUDPqWUHV«HQ5$0
I – Table de retour de fonction
D5pDOLVHUODIRQFWLRQGHGpFRGDJH©KH[DGpFLPDOÎVHJPHQWVªFIFRXUV
E2QYHXWFRQQDvWUHOHVYDOHXUVDSSURFKpHVGHVLQ[SRXU[HQWLHUHWFRPSULVHQWUHHW
3URSRVHUXQHVROXWLRQGHPLVHHQ°XYUHDWWHQWLRQDX[YDOHXUVUpHOOHV«
II – Adressage indexé
D(FULUHOHSURJUDPPHSHUPHWWDQWG¶DGGLWLRQQHUYHFWHXUVGHWDLOOHQ/HVYHFWHXUVVRQW HQPpPRLUH5$0DX[DGUHVVHVYHWYDLQVLTXHOHXUWDLOOHQ/HYHFWHXUUpVXOWDWVVHUDDXVVL VWRFNp HQ 5$0 2Q VXSSRVH TXH OD VRPPH GH FKDTXH FRPSRVDQWH HVW LQIpULHXUHj 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 GHVLQ[[∈>@FI)LJXUHHW)LJXUH
F0RGLILHUODIRQFWLRQSUpFpGHQWHDILQG¶REWHQLUVLQ[SRXU[∈>@FI)LJXUH
III – Arithmétique : addition 16 bits
)DLUH OD IRQFWLRQ$GG SHUPHWWDQW G¶DGGLWLRQQHU GHX[ YDOHXUVD HWE GH ELWV /H UpVXOWDWGHO¶DGGLWLRQVIHUDDXVVLELWV&KDTXHYDULDEOHELWVVHUDFRPSRVpHGHRFWHWV ODSDUWLHEDVVHRFWHWGHSRLGVIDLEOHSDUH[HPSOHDOSRXUDHWODSDUWLHKDXWHSRLGVIRUWDK
(FULUHXQSURJUDPPHXWLOLVDQWODIRQFWLRQ$GG/HVYDULDEOHVDHWEVHURQWjLQLWLDOLVHU DX[YDOHXUVGHYRWUHFKRL[
6LJQDOHUOHGpSDVVHPHQWGHFDSDFLWpFI)LJXUHHQDOOXPDQWXQH/('VXU3257%!
IV – Arithmétique : Multiplication 8 bits
)DLUHO¶RUJDQLJUDPPHG¶XQHIRQFWLRQSHUPHWWDQWGHPXOWLSOLHUGHX[YDOHXUVELWVDHWE /HUpVXOWDWVXUELWVVHUDpFULWGDQVYDULDEOHVELWVPORFWHWGHSRLGVIDLEOHHWPKRFWHW GHSRLGVIRUW
(FULUHOHFRGHDVVHPEOHXUGHFHWWHIRQFWLRQ
Annexes :
Extraits de la documentation Microchip PIC16C84
KWWSZZPLFURFKLSFRPGRZQORDGVHQGHYLFHGRFFSGI
)LJXUH2UJDQLVDWLRQGHODPpPRLUH3,&&
7'0LFURFRQWU{OHXU ,16$*(
)LJXUH'pWDLOVGHVUHJLVWUHVGX3,&&
)LJXUH'pWDLOGXUHJLVWUH67$786
7'0LFURFRQWU{OHXU ,16$*(
)LJXUH'HVFULSWLRQGHO¶DGUHVVDJHLQGLUHFW
)LJXUH'HVFULSWLRQGHVDFFqVjO¶((3520
7'0LFURFRQWU{OHXU ,16$*(
)LJXUH'HVFULSWLRQGHVDFFqVjO¶((3520
)LJXUH-HXG¶LQVWUXFWLRQVGHV3,&&;;;
7'0LFURFRQWU{OHXU ,16$*(
)LJXUH'HVFULSWLRQGpWDLOOpHGHVLQVWUXFWLRQV68%/:HW68%:)
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 SUHPLqUHVWRXFKHVGHjVRQWXWLOLVpHVFKDTXHWRXFKHHVWDVVRFLpHjXQHVRUWLH/¶DSSXLH VXUXQHWRXFKHSURYRTXHO¶LQYHUVLRQGHO¶pWDWORJLTXHGHODVRUWLHFRUUHVSRQGDQWH
$O¶LQLWLDOLVDWLRQRQVRXKDLWHTXHWRXWHVOHVVRUWLHVVRLHQWLQDFWLYHVpWDWORJLTXHEDV
2QGLVSRVHUDGHVIRQFWLRQVVXLYDQWHV
7HPSRB:PVTXLSHUPHWG¶DWWHQGUH:PLOOLVHFRQGHVSRXUXQ3,&FDGHQFpj0+]
6FUXWHB&ODYLHUTXLVFUXWHOHFODYLHUWDQWTX¶DXFXQHWRXFKHQ¶HVWHQIRQFpHHWUHWRXUQH ODYDOHXUGHODWRXFKHHQIRQFpHGDQV:/HFODYLHUGRLWrWUHFRQQHFWpDX3257%ELWVj SRXUO¶pFULWXUHFRORQQHDFWLYHELWVjSRXUODOHFWXUHGHVOLJQHVGpWHFWLRQG¶XQHWRXFKHVL pWDWKDXWpWDWEDVVLDXFXQHWRXFKHQ¶HVWHQIRQFpH
2QGLVSRVHUDG¶XQ3,&)
2QXWLOLVHUDXQGpPXOWLSOH[HXUSRXUOHSLORWDJHGHVVRUWLHVW\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)LJXUH2Q V¶LQWpUHVVHUDQRWDPPHQWDX[U{OHVHWDX[YDOHXUVGHVUpVLVWDQFHV5j5
II – Organigramme de l’application
D)DLUHO¶RUJDQLJUDPPHJOREDOGHO¶DSSOLFDWLRQ
E'pWDLOOHUOHSLORWDJHGHVVRUWLHVFIGRFXPHQW+&)LJXUH
III – Programmation
(FULUHOHSURJUDPPHHQDVVHPEOHXU2QSRXUUDIDLUHDSSHODX[IRQFWLRQV7HPSRB:PVHW 6FUXWHB&ODYLHUQHSDVUppFULUHFHVIRQFWLRQV
7'0LFURFRQWU{OHXU ,16$*(
)LJXUH6FKpPD$SSOLFDWLRQVRUWLHV
Annexe 1:
Extraits de la documentation Microchip PIC16C84
)LJXUH2UJDQLVDWLRQGHODPpPRLUH3,&&
7'0LFURFRQWU{OHXU ,16$*(
)LJXUH'pWDLOVGHVUHJLVWUHVGX3,&&
)LJXUH'pWDLOGXUHJLVWUH67$786
7'0LFURFRQWU{OHXU ,16$*(
)LJXUH'HVFULSWLRQGXIRQFWLRQQHPHQWGX3257$
)LJXUH'HVFULSWLRQGXIRQFWLRQQHPHQWGX3257%
)LJXUH6FKpPDGX3,&)
7'0LFURFRQWU{OHXU ,16$*(
)LJXUH-HXG¶LQVWUXFWLRQVGHV3,&&;;;
)LJXUH&DUDFWpULVWLTXHVpOHFWULTXHV
7'0LFURFRQWU{OHXU ,16$*(
Annexe 2:
Extraits de la documentation du 74HC259
)LJXUH6FKpPDIRQFWLRQQHOGX+&
)LJXUH7DEOHGHYpULWpGX+&
Annexe 3:
Schéma du clavier.
0
1 2 3
4
5 6 7
8
9 A B
C
D E F
)LJXUH6FKpPDIRQFWLRQQHOGXFODYLHUVDQVOHVUpVLVWDQFHVOHVGLRGHV«