# ----------------------------------------
# LAB5-03 (7-Segments LED)
# ----------------------------------------
from machine import Pin
from utime import sleep
#Common anode 7-segment display digit patterns
digits = [
 [0, 0, 0, 0, 0, 0, 1, 1], # 0
 [1, 0, 0, 1, 1, 1, 1, 1], # 1
 [0, 0, 1, 0, 0, 1, 0, 1], # 2
 [0, 0, 0, 0, 1, 1, 0, 1], # 3
 [1, 0, 0, 1, 1, 0, 0, 1], # 4
 [0, 1, 0, 0, 1, 0, 0, 1], # 5
 [0, 1, 0, 0, 0, 0, 0, 1], # 6
 [0, 0, 0, 1, 1, 1, 1, 1], # 7
 [0, 0, 0, 0, 0, 0, 0, 1], # 8
 [0, 0, 0, 1, 1, 0, 0, 1], # 9
 [0, 0, 0, 1, 0, 0, 0, 1], # a
 [1, 1, 0, 0, 0, 0, 0, 1], # b
 [0, 1, 1, 0, 0, 0, 1, 1], # C
 [1, 0, 0, 0, 0, 1, 0, 1], # d
 [0, 1, 1, 0, 0, 0, 0, 1], # E
 [0, 1, 1, 1, 0, 0, 0, 1], # F
]
# a, b, c, d, e, f, g, dp
gpio = (15, 4, 18, 19, 21, 22, 23, 5) # gpio pins
pins = [] # list empty
for i in range(0, len(gpio)):
    pins.append(Pin(gpio[i], Pin.OUT)) # adds an item to list.
switch = Pin(13,Pin.IN) # Create input pin on GPIO12 
def reset():
 """Turns off all segments on the 7-segment display."""
 for pin in pins:
    pin.value(1)
reset()
while True:
    if switch.value() == 1:
        # Ascending counter
        for i in range(len(digits)):
            if switch.value() == 0:
                break
            for j in range(len(pins) - 1):
                pins[j].value(digits[i][j])
            sleep(0.5)
    else:
        # Descending counter
        for i in range(len(digits) - 1, -1, -1): 
            if switch.value() == 1:
                break 
            for j in range(len(pins)):
                pins[j].value(digits[i][j])
            sleep(0.5) 
$abcdeabcde151015202530fghijfghij