#
#
#
from machine import Pin
from utime import sleep, sleep_ms
# 数码管的7个引脚连接到GPIO上
pins = [
Pin(3, Pin.OUT), # A
Pin(7, Pin.OUT), # B
Pin(20, Pin.OUT), # C
Pin(21, Pin.OUT), # D
Pin(22, Pin.OUT), # E
Pin(4, Pin.OUT), # F
Pin(19, Pin.OUT) # G
]
numbers = [
#[A,B,C,D,E,F,G]
[0,0,0,0,0,0,1], #0
[1,0,0,1,1,1,1], #1
[0,0,1,0,0,1,0], #2
[0,0,0,0,1,1,0], #3
[1,0,0,1,1,0,0], #4
[0,1,0,0,1,0,0], #5
[0,1,0,0,0,0,0], #6
[0,0,0,1,1,1,1], #7
[0,0,0,0,0,0,0], #8
[0,0,0,1,1,0,0] #9
]
# 数码管位选连接的GPIO口
DIGS = [
Pin(2, Pin.OUT), # dig1
Pin(5, Pin.OUT), # dig2
Pin(6, Pin.OUT), # dig3
Pin(18, Pin.OUT) # dig4
]
def close_led():
for pin in pins:
display_number([1,1,1,1,1,1,1])
# def get_num_len(number):
# ret = 0
# while number != 0:
# ret = ret + 1
# number = number // 10
# return ret
# def get_digit_of_index(number, i):
# """
# 这里的i从右往左
# """
# num = number // (10 ** (i - 1))
# if num > 9:
# return num % 10
# return num
def display_segments(segments):
"""
点亮一个数码管的所有段
"""
for i in range(len(segments)):
pins[i].value(segments[i])
def display_a_digit(digit, index):
#位选
for i in range(len(DIGS)):
if i == index - 1:
DIGS[index - 1].value(1)
else:
DIGS[i].value(0)
#数字的段码
number_info = numbers[digit]
display_segments(number_info)
# def display_a_number(number):
# """
# 显示一个数字
# """
# #这个数字的位数,用来判断占用几位数码管
# length = get_num_len(number))
# if length > 4:
# #超过4位数的不支持
# return
# for i in range(length, 0, -1):
# digit = get_digit_at_index(number, i)
# display_digit(digit, i)
def deselection():
for i in range(len(DIGS)):
DIGS[i].value(0)
def close_all():
for i in range(len(DIGS)):
DIGS[i].value(1)
close_led()
while True:
# close_all()
deselection()
DIGS[0].value(1)
display_segments(numbers[1])
DIGS[0].value(0)
sleep_ms(20)
# close_all()
deselection()
DIGS[2].value(1)
display_segments(numbers[2])
DIGS[2].value(0)
sleep_ms(20)
# close_led()
# print(f"error")
# while True:
# display_a_digit(6, 1)
# sleep(0.01)
# display_a_digit(5, 2)
# display_a_digit(4, 3)
# display_a_digit(3, 4)
# DIGS[3].value(1)
# display_number(numbers[1])
# display_number(1234)
# while True:
# for i in range(100, 9999):
# print(1)
while True:
# for i in range(len(numbers)):
# number_info = numbers[i]
# close_led()
# display_number(number_info)
sleep(1)
print("error")