#程序功能:数码管数字0~9快速切换,按下按键会一直显示一个数字,可以比较抽到数字的大小。
# 导入必要的库
from machine import Pin
import time
led_io = [15,2,4,5,18,19,21] #定义7段数码管的接口,对应A,B,C,D,E,F,G 各段LED
leds = [] #创建接口对象列表
bit_one = Pin(32, Pin.OUT)#用作个位的阴极控制
bit_ten = Pin(33, Pin.OUT)#用作十位的阴极控制
pin_key1 = Pin(26,Pin.IN, Pin.PULL_UP) #初始化26 IO口为输入模式并且拉高(即默认为高电平)
pin_key2 = Pin(27,Pin.IN, Pin.PULL_UP) #初始化27 IO口为输入模式并且拉高(即默认为高电平)
for i in range(len(led_io)): #这里len()函数作用是计算led_io列表的长度(即个数),无需人工计算数量。
leds.append(Pin(led_io[i], Pin.OUT)) #创建led对象并追加到列表末尾
def num_0(): #定义一个函数,函数名为num_0,其功能是显示数字0
leds[0].on() # 段A
leds[1].on() # 段B
leds[2].on() # 段C
leds[3].on() # 段D
leds[4].on() # 段E
leds[5].on() # 段F
leds[6].off() # 段G
def num_1(): #定义一个函数,函数名为num_1,其功能是显示数字1
#显示数字1
leds[0].off() # 段A
leds[1].off() # 段B
leds[2].off() # 段C
leds[3].off() # 段D
leds[4].on() # 段E
leds[5].on() # 段F
leds[6].off() # 段G
def num_2(): #定义一个函数,函数名为num_2,其功能是显示数字2
#显示数字2
leds[0].on() # 段A
leds[1].on() # 段B
leds[2].off() # 段C
leds[3].on() # 段D
leds[4].on() # 段E
leds[5].off() # 段F
leds[6].on() # 段G
def num_3(): #定义一个函数,函数名为num_3,其功能是显示数字3
#显示数字3
leds[0].on() # 段A
leds[1].on() # 段B
leds[2].on() # 段C
leds[3].on() # 段D
leds[4].off() # 段E
leds[5].off() # 段F
leds[6].on() # 段G
def num_4(): #定义一个函数,函数名为num_4,其功能是显示数字4
#显示数字4
leds[0].off() # 段A
leds[1].on() # 段B
leds[2].on() # 段C
leds[3].off() # 段D
leds[4].off() # 段E
leds[5].on() # 段F
leds[6].on() # 段G
def num_5(): #定义一个函数,函数名为num_5,其功能是显示数字5
#显示数字5
leds[0].on() # 段A
leds[1].off() # 段B
leds[2].on() # 段C
leds[3].on() # 段D
leds[4].off() # 段E
leds[5].on() # 段F
leds[6].on() # 段G
def num_6(): #定义一个函数,函数名为num_6,其功能是显示数字6
#显示数字6
leds[0].on() # 段A
leds[1].off() # 段B
leds[2].on() # 段C
leds[3].on() # 段D
leds[4].on() # 段E
leds[5].on() # 段F
leds[6].on() # 段G
def num_7(): #定义一个函数,函数名为num_7,其功能是显示数字7
#显示数字7
leds[0].on() # 段A
leds[1].on() # 段B
leds[2].on() # 段C
leds[3].off() # 段D
leds[4].off() # 段E
leds[5].off() # 段F
leds[6].off() # 段G
def num_8(): #定义一个函数,函数名为num_8,其功能是显示数字8
leds[0].on() # 段A
leds[1].on() # 段B
leds[2].on() # 段C
leds[3].on() # 段D
leds[4].on() # 段E
leds[5].on() # 段F
leds[6].on() # 段G
def num_9(): #定义一个函数,函数名为num_9,其功能是显示数字9
#显示数字9
leds[0].on() # 段A
leds[1].on() # 段B
leds[2].on() # 段C
leds[3].on() # 段D
leds[4].off() # 段E
leds[5].on() # 段F
leds[6].on() # 段G
def show_num(number):#定义函数,显示number这个数字
if number == 0:
num_0()
if number == 1:
num_1()
if number == 2:
num_2()
if number == 3:
num_3()
if number == 4:
num_4()
if number == 5:
num_5()
if number == 6:
num_6()
if number == 7:
num_7()
if number == 8:
num_8()
if number == 9:
num_9()
def two_digit_number(number):#显示2位数字的函数
one = number % 10 #取得2位数的个位
ten = number // 10 #取得2位数的十位
bit_one.on()#个位控制端拉高,关闭个位显示
bit_ten.off()#十位控制端拉低,开启十位显示
show_num(ten)#显示十位
time.sleep(T)#延时
bit_one.off()#个位控制端拉低,开启个位显示
bit_ten.on()#十位控制端拉高,关闭十位显示
show_num(one)
time.sleep(T)
print("Start!")#主程序开始标记
a = 0
T = 0.5 #一个时间变量
while True: #主循环,显示一个2位数【a】
if pin_key2.value() == 0: #按键①按下a减小1
time.sleep(0.1)
a += 1
if a > 99 :#限制数字不大于99
a = 99
if pin_key1.value() == 0: #按键②按下a增加1
time.sleep(0.1)
a -= 1
if a < 0 :#限制数字不小于0
a = 0
two_digit_number(a)
print("Stop!")#程序终止标记