數碼管引腳
|
a
|
b
|
c
|
d
|
e
|
f
|
g
|
dp
|
1
|
2
|
3
|
4
|
TPYBoard開發板
|
X1
|
X2
|
X3
|
X4
|
X5
|
X6
|
X7
|
X8
|
Y9
|
Y10
|
Y11
|
Y12
|
import pyb from pyb import Pin #數碼管a~g dp對應的開發板引腳 d_Pins=[Pin(i,Pin.OUT_PP) for i in ['X1','X2','X3','X4','X5','X6','X7','X8']] #數碼管位段1 2 3 4對應的引腳 w_Pins=[Pin(i,Pin.OUT_PP) for i in ['Y9','Y10','Y11','Y12']] number={ '0': [0,0,0,0,0,0,1,1],#0 '1': [1,1,1,1,0,0,1,1],#1 '2': [0,0,1,0,0,1,0,1],#2 '3': [0,0,0,0,1,1,0,1],#3 '4': [1,0,0,1,1,0,0,1],#4 '5': [0,1,0,0,1,0,0,1],#5 '6': [0,1,0,0,0,0,0,1],#6 '7': [0,0,0,1,1,1,1,1],#7 '8': [0,0,0,0,0,0,0,1],#8 '9': [0,0,0,0,1,0,0,1],#9 } def display(num,dp): global number count=0 for pin in d_Pins:#顯示num的值 pin.value(number[num][count]) count+=1 if dp==1: d_Pins[7].value(0) def clear(): for i in w_Pins: i.value(0) for i in d_Pins: i.value(1) def showData(num): #分割出數值的百位、千位、個位和小數位的值 d_num=num location=d_num.find('.') if location>0: d_num=d_num.replace('.','') while len(d_num)<4: d_num='0'+d_num for i in range(0,4): pyb.udelay(2000) clear() w_Pins[3-i].value(1) if i==location-1: display(d_num[i],1) else: display(d_num[i],0) if location<0: for i in range(0,4): pyb.udelay(2000) clear() w_Pins[3-i].value(1) display(d_num[i],0) while True: num='9.601' showData(num)