from machine import Pin
import time
dig1=Pin(27,Pin.OUT)
dig2=Pin(14,Pin.OUT)
dig3=Pin(32,Pin.OUT)
dig4=Pin(12,Pin.OUT)
ds = Pin(33, Pin.OUT)
latch = Pin(25, Pin.OUT)
shift = Pin(26, Pin.OUT)
num=float(input("请输入一个数字:"))
dic1 = {'num': [0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0, 0xFE, 0xF6]}
def pos(index,digit,dot,num_str):
digit=[]
for index, digit_str in enumerate(num_str):
if digit_str.isdigit():
digit.append(int(digit_str))
# print(f"浮点数 {num} 中的第 {index} 位数字为 {digit}")
elif digit_str == '.':
dot=index
# print(f"浮点数 {num} 中的小数点位于第 {index} 位")
def led(n):
for i in range(8):
val=n&1
ds.value(val)
shift.on()
shift.off()
n=n>>1
latch.on()
latch.off()
def statment(n):
dig1.value(1)
dig2.value(1)
dig3.value(1)
dig4.value(1)
if n == 1:
dig1.value(0)
elif n == 2:
dig1.value(0)
elif n == 3:
dig1.value(0)
elif n == 4:
dig1.value(0)
else :
pass
i=0
tmp1=[]
tmp2=4
while True:
while i>=0 and i<4:
pos(i,tmp1,tmp2,num) #tmp1存入数字 tmp2存入小数点所在的位置
statment(i)
led(tmp1(i))
i+=1
#tmp2=int(num%10)
# tmp3=int((num-tmp2)*10)
# print(tmp1)
# print(tmp2)
# print(tmp3)
# print(bin(0x60+1))
# if tmp1==0:
# while 1:
# if tmp3!=0:
# dig1.value(1)
# dig2.value(0)
# dig3.value(0)
# dig4.value(0)
# led(dic1['num'][tmp3])
# time.sleep_ms(30)
# led(0x00)
# dig1.value(0)
# dig2.value(1)
# led(dic1['num'][tmp2]+1)
# time.sleep_ms(30)
# led(0x00)# tmp1=int(num//10)
# else:
# dig1.value(0)
# dig2.value(1)
# led(dic1['num'][tmp2])
# time.sleep_ms(30)
# led(0x00)
# elif tmp1>=1:
# while 1:
# dig1.value(0)
# dig2.value(1)
# led(dic1['num'][tmp1])
# time.sleep_ms(30)
# led(0)
# dig1.value(1)
# dig2.value(0)
# led(dic1['num'][tmp2])
# time.sleep_ms(30)
# led(0)
# for index, digit_str in enumerate(num_str):
# if digit_str.isdigit():
# digit = int(digit_str)
# print(f"浮点数 {num} 中的第 {index} 位数字为 {digit}")
# elif digit_str == '.':
# print(f"浮点数 {num} 中的小数点位于第 {index} 位")