# Ebauche de Testeur de CI logiques
# P. Mariano
# Lycée PE Martin
# le 16/11/2023
# Doc Raspberry Pi Pico : https://webge.fr/dokuwiki/doku.php?id=microc:uc:rp2
from machine import Pin
import time
time.sleep(0.1) # Attente nécessaire pour l'affichage en console
# GPIO
S_E2 = Pin(20, Pin.OUT) # Ecriture sur l'entrée E2 de la porte XOR
S_E1 = Pin(21, Pin.OUT) # Ecriture sur l'entrée E1 de la porte XOR
E_S = Pin(22, Pin.IN) # Lecture de la sortie S de la porte XOR
# Table de vérité d'une XOR
# [E2,E1] -> S
# V0 [0 , 0] -> 0
# V1 [0 , 1] -> 1
# V2 [1 , 0] -> 1
# V3 [1 , 1] -> 0
# Une liste de tuples matérialise la table des vecteurs de test
# Illustration d'une erreur sur le vecteur V0
Vecteurs_XOR = [(0, 0, 0), (0, 1, 1), (1, 0, 1), (1, 1, 0)]
# Test
print("[E2,E1] -> S ")
for E2, E1, Sa in Vecteurs_XOR: # Sa : sortie attendue
if E2 == 0 :
S_E2.off()
else:
S_E2.on()
if E1 == 0 :
S_E1.off()
else:
S_E1.on()
So = E_S.value() # So : sortie obtenue
if Sa == So:
print(f"[{E2},{E1}] -> {So}")
else:
print(f"[{E2},{E1}] -> Erreur")
S_E2 (20)
S_E1 (21)
E_S (22)