import time
from machine import Timer, Pin

time.sleep(0.1)

seven_segment = [Pin(i, Pin.OUT) for i in range(7)]
seven_segment_dp = Pin(7, Pin.OUT)
seven_segment_digit = [Pin(i, Pin.OUT) for i in range(8, 12)]

seven_segment_vals = [
    0xC0,
    0xF9,
    0xA4,
    0xB0,
    0x99,
    0x92,
    0x82,
    0xF8,
    0x80,
    0x90,
]

display_value = 1234

seven_segment_scanning_timer = Timer()

def display_digit(number, digit_idx, dp_enable):
    for i in range(7):
        seven_segment[i].value((seven_segment_vals[number] >> i) & 0x01)
    seven_segment_dp.value(0 if dp_enable else 1)
    seven_segment_digit[digit_idx].value(1)
    time.sleep(0.005)
    seven_segment_digit[digit_idx].value(0)

def scan_seven_segment_display(timer_int):
    global display_value
    value = display_value
    for i in range(4):
        digit = value % 10
        dp_enable = (i == 3)
        display_digit(digit, i, dp_enable)
        value = value // 10

def enable_display_timer():
    global seven_segment_scanning_timer
    seven_segment_scanning_timer.init(mode=Timer.PERIODIC, period=4, callback=scan_seven_segment_display)

def setup():
    enable_display_timer()

if __name__ == '__main__':
    setup()
    while True:
        time.sleep(0.2)
$abcdeabcde151015202530354045505560fghijfghij
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT