info indus
Corrigé
PortC
PortB
DDRC
TFLG1
TMSK2
TOC4
EQU
EQU
EQU
EQU
EQU
EQU
$1003
$1004
$1007
$1023
$1024
$101C
Déclaration des registres utilisés
Compt
RMB
1
Déclaration de la variable de comptage (1 octet)
ORG
$F000
Adresse d’origine du programme
Attente
Adresse de l’octet haut du registre 16 bits
LDAA #%0000 0001
STAA TMSK2
Configuration du prédiviseur du Timer
PR0 = 1 et PR1 = 0 (Division par 4)
CLR
PortB
Actionneurs à l’Arrêt
CLR
DDRC
Configuration des E/S sur le PortC
PC0 à PC7 : Entrées
CLR
Compt
Initialisation de la variable Compt
LDAA PortC
Lecture des Capteurs
CMPA #%0000 0101
BEQ Type0
Si : A = 1, B = 0 et C = 1
Alors c’est une pièce de type 0
CMPA #%0000 0110
BEQ Type1
Si : A = 0, B = 1 et C = 1
Alors c’est une pièce de type 1
CMPA #%0000 0010
BEQ Type2
Si : A = 0, B = 1 et C = 0
Alors c’est une pièce de type 2
CMPA #%0000 0011
BEQ Type3
Si : A = 1, B = 1 et C = 0
Alors c’est une pièce de type 3
CMPA #%0000 0001
BEQ Defect
1 seul trou sur A
CMPA #%0000 0100
BEQ Defect
1 seul trou sur C
BRA
Boucle infinie
Attente
1
Par : Hassan AIT BOUH
Compléments du Cours d’Informatique Industrielle – ENSAM –MEKNES, 2014 / 2015
Problème I
LDAA #%0010 0000
STAA PortB
Action d’évacuation et N° 0 sur l’Afficheur
B0
LDAA PortC
CMPA #%0000 1000
BNE B0
Lecture des Capteurs
Pièce sur Tapis 0 ?
(elle n’est plus devant les capteurs de trous)
CLR
PortB
Arrêter l’évacuation et effacer l’afficheur
INC
LDAA
CMPA
BNE
BRA
Compt
Compt
#250
Attente
Fin
Incrémenter le compteur de pièces
Nb de pièces < 250 Retour à la boucle infinie
Le cycle se termine lorsque le Compt = 250
Type1
LDAA #%0010 0001
STAA PortB
Action d’évacuation et N° 1 sur l’Afficheur
B1
LDAA PortC
CMPA #%0001 0001
BNE B1
Lecture des Capteurs
Pièce