Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
1
Déclaration des variables
2
Bank0 Bank1
SFR
A
0x0C D
0x0D
GPR
0x0E
3
Bank0 Bank1
SFR
0x0C
GPR
0x0D C
A
0x0E
0x0F
0x10
4
La fonction d’attente
5
Horloge
• "le cycle d’instruction " est le temps nécessaire à l’exécution d’une instruction.
• Quelque soit l'oscillateur utilisé, l'horloge système dite aussi horloge instruction est obtenue en divisant la
fréquence de l’oscillateur par 4
On suppose que :
Fréquence du µc = 4MHZ Cycle Horloge = 1/F = 0.25µs , Cycle Instruction = 4/F = 1µs
CLK
1 1 2
µs µs µs
6
Comment calculer le temps d’execution d’un code?
7
Exemple
Calculer le temps d’exécution du code suivant pour F = 8MHZ ?
8
Principe de la fonction d’attente
• Pour faire une temporisation on utilise la // attente de 256 cycles
fonction d’attente
int compteur
• La fonction d’attente permet de mettre en void attente(){
pause le programme pendant un certain
nombre de secondes. compteur =256 ;
while( compteur --) {
}
9
l’instruction DECFSZ f,d
instruction Arguments de l’instructions
Exemple :
Si condition est Fausse (A différent de 0) ,Exécuter la ligne suivante
DECFSZ A,f ; A = A-1 ; si (A == 0) Exécuter PORTB.RB2=1
BSF PORTB,2 ;
BCF PORTB,2 ; Si condition est vrai (A==0) : sauter une
ligne
Exécuter PORTB.RB2=0
10
La fonction d’attente en assembleur
1. CI = 4*106/4 = 1*10-6 s = 1 µs
2. NB = 1+(1+2)*256 + 1 = 770
3. T = 770*1= 770µs
attente
Exemple :
12
APPLICATION
13
Exercice
On se propose d’implémenter, sur un PIC16F84, Un feu
tricolore de croisement ayant comme entrée un capteur de
luminosité et un feu tricolore en sortie.
• il clignotera la diode orange chaque 0,5 seconde la nuit.
• Pour le mode jour, le cycle de fonctionnement est le
suivant :
Rouge (1 seconde)
Orange (0,5 seconde)
Vert (1 seconde)
CONFIGURARTION
Choisir Bank1
RA0 entrée , RB0,RB1,RB2 sorties,
INITIALISATION
Choisir Bank0
Leds éteintes,
Boucle
jour
RA0 ==0
Allumer la rouge
Nuit Eteindre les autres
Attente 1s
Allumer la orange
Allumer la orange Eteindre les autres
Eteindre les autres Attente 0.5s
Attente 0.5s Allumer la verte
Eteindre orange Eteindre les autres
Attente 0.5s Attente 1s
15
la routine tempo donnée
16