Bonjour,
Est-ce que quelqu'un est en mesure de me dire si c'est possible de faire une comparaison de type TTL dans le microcontrolleur?
J'utilise un PIC16F887 de microchip, c'est le même que le PIC16F877 en nouvelle version.
J'utilise des commandes de portes logiques de type ET (AND) et j'ai également testé l'expérience avec des portes NON-OU (XOR).
Ce que j'essaie de faire, c'est la lecture de deux pins d'entrée sur mon PIC et de les comparer. Un montage bien simple m'indique si la comparaison c'est effectué en allumant un LED en sortie. m'a sortie est bien configuré car des tests d'activation forcé avec une entée activé me l'à prouvé. Alors c'est quand je met ma partie de programmation d'algèbre booléen pour faire des tests avec cette même entrée forcé que sa ne fonctionne plus.
Ici j'ai commencé part la comparaison entre une entrée et le masque mais dans une logique complète je rajouterais les lignes pour faire une comparaison avec une autre entrée
Voici la portion de programme:
VERIF
MOVLW PORTD ;8 BIT DU PORT D MIS DANS W
MOVWF INPUT1 ;W MIS DANS LA VARIABLE 'INPUT1'
MOVLW B'00000001' ;MASQUE POUR AVOIR SEULEMENT LE RÉSULTAT AVEC LA PIN RD0 (BIT0)
ANDWF INPUT1,F ;PREND LE MASQUE ET L'APPLIQUER EN LOGIQUE 'ET'(AND) AVEC LA
;VALEUR ENREGISTRÉ EN VARIABLE.
BTFSC STATUS,Z ;LE BIT Z (ZÉRO) DU REGISTRE STATUS EST LE BIT AFFECTÉ PAR
;L'OPÉRATION 'AND'
GOTO VERIF ;SI LE BIT Z EST PAS ACTIVÉ, 'GOTO VÉRIF', S'IL N'EST PAS ACTIVÉ
;SAUTER LE GOTO ET CONTINUER DANS LE PROGRAMME.
CALL L_VERT_ON ;ALLUMER LE LED VERT (CETTE COMMANDE VA FAIRE ALLUMER LE LED VERT
GOTO VERIF ;DANS UNE SOUS ROUTINE. ENSUITE RETOUR POUR VOIR SI LA PIN DU PORTD
;EST TOUJOURS DANS LA POSITION QUI PERMET AU LED D'ALLUMER.[/LEFT]
J'ai tenté d'autre façon de faire mais sans succès
Merci beaucoup!
-----