from machine import Pin
from time import sleep
class BusOut:
def __init__(self, *pins):
self.pins = [ Pin(pin, Pin.OUT) for pin in pins ]
self.value = 0
def write(self, value):
self.value = value
for i, pin in enumerate(self.pins):
pin.value((value >> i) & 1)
def read(self):
return self.value
table = {
'0': 0b0000001,
'1': 0b1001111,
'2': 0b0010010,
'3': 0b0000110,
'4': 0b1001100,
'5': 0b0100100,
'6': 0b0100000,
'7': 0b0001111,
'8': 0b0000000,
'9': 0b0000100,
'A': 0b0001000,
'B': 0b1100000,
'C': 0b0110001,
'D': 0b1000010,
'E': 0b0110000,
'F': 0b0111000,
'*': 0b1001000,
' ': 0b1111111
}
segment = BusOut(14, 13, 12, 11, 10, 9, 8)
display = BusOut(4, 5, 6, 7)
def show(x):
#x = x.rjust(4, ' ')
i, j = 0, 1
while i < 4:
segment.write(table.get(' '))
display.write(j)
segment.write(table.get(x[i]))
sleep(0.005)
display.write(0)
i = i + 1
j = j * 2
def testSystem():
for key in table.keys():
show(key + key + key + key)
sleep(0.5)
testSystem()