Professional Documents
Culture Documents
TD Microcontrôleur, Famille PIC: Lecture Écriture D'une Mémoire RAM
TD Microcontrôleur, Famille PIC: Lecture Écriture D'une Mémoire RAM
7R*
7'0LFURFRQWU{OHXU
,16$*(
#
(
)
2QVXSSRVHUDTXHODSUHVVLRQVXUXQHWRXFKHIHUPHXQLQWHUUXSWHXUVLPSOH
(QDQDO\VDQWFHWpQRQFpYpULILHUTXHOHSUREOqPHHVWPDOSRVpOHFRUULJHUSXLVUpDOLVHU
OHV\VWqPHDGpTXDW
7'0LFURFRQWU{OHXU
,16$*(
7'0LFURFRQWU{OHXU
,16$*(
,16$*(,)
Dmultiplexage dadresses
2QVRXKDLWHFRPPDQGHUDYHFXQPLFURFRQWU{OHXUVRUWLHVTXHOFRQTXHVDVVRFLpHVjGHV
YR\DQWVGHVLJQDOLVDWLRQ2QYHXWSRXYRLUPRGLILHUOpWDWGHFKDTXHVRUWLHDFWLYHRXQRQ
DFWLYHVDQVPRGLILHUOpWDWGHVDXWUHVVRUWLHV2QYHXWDXVVLSRXYRLUPHWWUHj]pURWRXWHV
OHVVRUWLHVIDFLOHPHQW
$ILQ GH PLQLPLVHU OH QRPEUH GH ILOV QpFHVVDLUHV DX SLORWDJH GHV VRUWLHV RQ SURSRVH
GXWLOLVHUGHX[GpPXOWLSOH[HXUV+&FI)LJXUH
/DILQDOLWpGHFHWH[HUFLFHHVWGHUpDOLVHUOHFkEODJHHWODORJLTXHHQWUHXQPLFURFRQWU{OHXU
GHW\SH3,&HWOHVHQWUpHVGHV+&GHOD)LJXUH
)LJXUH6ROXWLRQSURSRVHSRXUOHSLORWDJHGHVRUWLHV/HV/('V\PEROLVHQWOHVVRUWLHV
7R*
7'0LFURFRQWU{OHXU
,16$*(
IV Ralisation du cblage
$ TXRL GRLWRQ UHOLHU OHV HQWUpHV $ $ HW $ SXLV ' GHV +&" 3UpYRLU OD
YDOLGDWLRQGHVGRQQpHV
&RPPHQWSHXWRQSLORWHUVRUWLHV"5pDOLVHUOHVFKpPDGHFkEODJHGXEXVGDGUHVVHQH
SDVRXEOLHUODYDOLGDWLRQGHVGRQQpHV
$MRXWHU OD ORJLTXH SRXU SHUPHWWUH XQH PLVH j ]pUR GH WRXWHV OHV VRUWLHV RQ GLVSRVHUD
GXQELW UHVHW SURYHQDQWGXPLFURFRQWU{OHXU
7'0LFURFRQWU{OHXU
,16$*(
)LJXUH6FKpPDIRQFWLRQQHOGX+&
)LJXUH7DEOHGHYpULWpGX+&
,16$*(,)
)LJXUH6FKpPDGHODSSOLFDWLRQ
I Organigramme du programme
'HVVLQHU ORUJDQLJUDPPH GH ODSSOLFDWLRQ 3RXU OD WHPSRULVDWLRQ RQ IHUD DSSDUDvWUH XQH
IRQFWLRQ7HPSR
7R*
7'0LFURFRQWU{OHXU
,16$*(
II Fonction Tempo
/H FRGH DVVHPEOHXU VXLYDQW HVW FHOXL GXQH 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
3
MOVWF
4 Tempo_B1:
5
MOVLW
6
MOVWF
7 Tempo_B2:
8
NOP
9
DECFSZ
10
GOTO
11
DECFSZ
12
GOTO
13
RETURN
STATUS, RP0
Tempo_value_B1
;
;
.249
Tempo_value_B2
;
;
;
Tempo_value_B2,1;
Tempo_B2
;
Tempo_value_B1,1;
Tempo_B1
;
;
D ,QGLTXH]SRXUFKDTXHOLJQHGHFHWWHIRQFWLRQFHTXLHVWUpDOLVpSDUOHPLFURFRQWU{OHXU
FIGRFXPHQWVFRQVWUXFWHXU)LJXUH
E (QGpGXLUHORUJDQLJUDPPHGHODIRQFWLRQTempo_Wms
F 'RQQHU OH QRPEUH GH F\FOHV FRUUHVSRQGDQW j OH[pFXWLRQ GH FKDTXH LQVWUXFWLRQ FI
GRFXPHQWVFRQVWUXFWHXU)LJXUH
G (Q GpGXLUHOH WHPSV GH[pFXWLRQ GHOD IRQFWLRQ Tempo_Wms HQ IRQFWLRQ GH OD YDOHXU
FRQWHQXHGDQVOHUHJLVWUH:FI)LJXUH
H -XVWLILHUOXWLOLVDWLRQGHOLQVWUXFWLRQNOPOLJQHHWGHODYDOHXUOLWWpUDOHOLJQH
I $YHF XQ VHXO DSSHO j FHWWH IRQFWLRQ TXHOOH HVW OD GXUpH GH OD WHPSRULVDWLRQ OD SOXV
ORQJXHTXHORQSXLVVHUpDOLVHU"
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 dbut du programme
Tempo_Wms:
; code de la question II
RETURN
main:
END
7'0LFURFRQWU{OHXU
,16$*(
Annexes :
Extraits de la documentation Microchip PIC16C84
KWWSZZPLFURFKLSFRPGRZQORDGVHQGHYLFHGRFFSGI
)LJXUH2UJDQLVDWLRQGHODPpPRLUH3,&&
7'0LFURFRQWU{OHXU
,16$*(
)LJXUH-HXGLQVWUXFWLRQVGHV3,&&;;;
7'0LFURFRQWU{OHXU
,16$*(
)LJXUH)RQFWLRQQHPHQWGX3257%
7'0LFURFRQWU{OHXU
,16$*(
)LJXUH([HPSOHGXWLOLVDWLRQHWGHVFULSWLRQGHVUHJLVWUHVDVVRFLpVDX3257%
)LJXUH&\FOHVKRUORJHHWLQVWUXFWLRQV
INSA GE IF2
6FUXWDWLRQSDUEDOD\DJH
DSSOLFDWLRQSRXUOHFRGDJHGHVWRXFKHVGXQFODYLHU
Le but de cette sance de TD est dcrire en assembleur (famille PIC16XXX) une fonction
permettant de scruter un clavier de 16 touches et de donner la valeur de la touche presse (on
parlera de dcodage). On supposera quune seule touche est appuye la fois.
Le schma interne du clavier est dcrit sur la Figure 1.
La fonction de scrutation/dcodage sera appele par le programme principal. Cette
fonction devra attendre quune touche soit presse. Elle retournera la valeur dcode (de 0
F).
0
RA0
RA1
RA2
RA3
RB0
RB1
RB2
RB3
,6FKpPDGHODSSOLFDWLRQ
- Raliser le schma global de lapplication (cf. Figure 2). On veillera particulirement aux
rsistances de rappels et de protections ncessaires lutilisation du clavier.
,,2UJDQLJUDPPH
- Dcrire le principe de fonctionnement de la scrutation du clavier.
- Donner une mthode permettant de faire le dcodage.
- Etablir lorganigramme de la fonction de scrutation/dcodage (faire apparaitre ces
fonctions).
,,,3URJUDPPDWLRQGHVIRQFWLRQV
- Ecrire en assembleur les fonctions de scrutation et de dcodage. Le code de la touche (de
0 F) sera retourn via le registre W.
1/7
ToG 2007
TD 5-6 Microcontrleur
INSA GE
,93RXUDOOHUSOXVORLQ
- Exemples dutilisation : minuterie programmable, digicode 4 chiffres,
- Programmation en utilisant uniquement le port B (pour la lecture RB4 RB7), le port A
est ainsi libr.
- Critiquer la solution de programmation mise en place pour la scrutation et proposer une
mthode plus adapte.
2/7
TD 5-6 Microcontrleur
INSA GE
$QQH[HV
([WUDLWVGHODGRFXPHQWDWLRQ0LFURFKLS3,&&
http://ww1.microchip.com/downloads/en/devicedoc/30445c.pdf
3/7
TD 5-6 Microcontrleur
INSA GE
4/7
TD 5-6 Microcontrleur
INSA GE
5/7
TD 5-6 Microcontrleur
INSA GE
<
Figure 6 : Description du fonctionnement du PORT B
6/7
TD 5-6 Microcontrleur
INSA GE
7/7
,16$*(,)
II Adressage index
D(FULUHOHSURJUDPPHSHUPHWWDQWGDGGLWLRQQHUYHFWHXUVGHWDLOOHQ/HVYHFWHXUVVRQW
HQPpPRLUH5$0DX[DGUHVVHVYHWYDLQVLTXHOHXUWDLOOHQ/HYHFWHXUUpVXOWDWVVHUDDXVVL
VWRFNpHQ5$02QVXSSRVHTXHODVRPPHGHFKDTXHFRPSRVDQWHHVWLQIpULHXUHjFI
)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
F0RGLILHUODIRQFWLRQSUpFpGHQWHDILQGREWHQLUVLQ[SRXU[ >@FI)LJXUH
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'HVFULSWLRQGHODGUHVVDJHLQGLUHFW
7'0LFURFRQWU{OHXU
,16$*(
)LJXUH'HVFULSWLRQGHVDFFqVjO((3520
7'0LFURFRQWU{OHXU
,16$*(
)LJXUH'HVFULSWLRQGHVDFFqVjO((3520
7'0LFURFRQWU{OHXU
,16$*(
)LJXUH-HXGLQVWUXFWLRQVGHV3,&&;;;
7'0LFURFRQWU{OHXU
)LJXUH'HVFULSWLRQGpWDLOOpHGHVLQVWUXFWLRQV68%/:HW68%:)
,16$*(
,16$*(,)
Application :
Pilotage dune sortie parmi 8
2Q VRXKDLWH SLORWHU XQH VRUWLH SDUPL j ODLGH GXQ FODYLHU WRXFKHV 6HXOHV OHV
SUHPLqUHVWRXFKHVGHjVRQWXWLOLVpHVFKDTXHWRXFKHHVWDVVRFLpHjXQHVRUWLH/DSSXLH
VXUXQHWRXFKHSURYRTXHOLQYHUVLRQGHOpWDWORJLTXHGHODVRUWLHFRUUHVSRQGDQWH
$OLQLWLDOLVDWLRQRQVRXKDLWHTXHWRXWHVOHVVRUWLHVVRLHQWLQDFWLYHVpWDWORJLTXHEDV
2QGLVSRVHUDGHVIRQFWLRQVVXLYDQWHV
7HPSRB:PVTXLSHUPHWGDWWHQGUH:PLOOLVHFRQGHVSRXUXQ3,&FDGHQFpj0+]
6FUXWHB&ODYLHUTXLVFUXWHOHFODYLHUWDQWTXDXFXQHWRXFKHQHVWHQIRQFpHHWUHWRXUQH
ODYDOHXUGHODWRXFKHHQIRQFpHGDQV:/HFODYLHUGRLWrWUHFRQQHFWpDX3257%ELWVj
SRXUOpFULWXUHFRORQQHDFWLYHELWVjSRXUODOHFWXUHGHVOLJQHVGpWHFWLRQGXQHWRXFKHVL
pWDWKDXWpWDWEDVVLDXFXQHWRXFKHQHVWHQIRQFpH
2QGLVSRVHUDGXQ3,&)
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 Schma de lapplication
D([SOLTXHUHWMXVWLILHUOHFKRL[GHVFRPSRVDQWVGXVFKpPDGHODSSOLFDWLRQ)LJXUH2Q
VLQWpUHVVHUDQRWDPPHQWDX[U{OHVHWDX[YDOHXUVGHVUpVLVWDQFHV5j5
II Organigramme de lapplication
D)DLUHORUJDQLJUDPPHJOREDOGHODSSOLFDWLRQ
E'pWDLOOHUOHSLORWDJHGHVVRUWLHVFIGRFXPHQW+&)LJXUH
III Programmation
(FULUHOHSURJUDPPHHQDVVHPEOHXU2QSRXUUDIDLUHDSSHODX[IRQFWLRQV7HPSRB:PVHW
6FUXWHB&ODYLHUQHSDVUppFULUHFHVIRQFWLRQV
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-HXGLQVWUXFWLRQVGHV3,&&;;;
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:
Schma du clavier.
0
)LJXUH6FKpPDIRQFWLRQQHOGXFODYLHUVDQVOHVUpVLVWDQFHVOHVGLRGHV