# Ejemplo 3: Implementacion de un DECO binario a 7 segmentos hexadecimal
# Librerias
from machine import Pin
# Entradas del sist. combinatorio
x3=Pin(35,Pin.IN)
x2=Pin(34,Pin.IN)
x1=Pin(39,Pin.IN)
x0=Pin(36,Pin.IN)
# Salidas del sist. combinatorio
a=Pin(25,Pin.OUT)
b=Pin(26,Pin.OUT)
c=Pin(27,Pin.OUT)
d=Pin(14,Pin.OUT)
e=Pin(13,Pin.OUT)
f=Pin(15,Pin.OUT)
g=Pin(4,Pin.OUT)
# Tabla de verdad del sist. combinatorio
tabla7seg=(
(0,0,0,0,0,0,1),
(1,0,0,1,1,1,1),
(0,0,1,0,0,1,0),
(0,0,0,0,1,1,0),
(1,0,0,1,1,0,0),
(0,1,0,0,1,0,0),
(0,1,0,0,0,0,0),
(0,0,0,1,1,1,1),
(0,0,0,0,0,0,0),
(0,0,0,0,1,0,0),
(0,0,0,1,0,0,0),
(1,1,0,0,0,0,0),
(0,1,1,0,0,0,1),
(1,0,0,0,0,1,0),
(0,1,1,0,0,0,0),
(0,1,1,1,0,0,0)
)
# Funcion para mostrar valores en el display
def display7seg(digito):
# Indexa tabla de verdad y envia al display
a.value(tabla7seg[digito][0])
b.value(tabla7seg[digito][1])
c.value(tabla7seg[digito][2])
d.value(tabla7seg[digito][3])
e.value(tabla7seg[digito][4])
f.value(tabla7seg[digito][5])
g.value(tabla7seg[digito][6])
#Lazo principal
while True:
# Lee entradas
x3_val=x3.value()
x2_val=x2.value()
x1_val=x1.value()
x0_val=x0.value()
ent=8*x3_val+4*x2_val+2*x1_val+x0_val
# Llamado a la funci鐠愮珱 para mostrar en el display
display7seg(ent)