新手必看Micropython只四位數碼管顯示實驗

       原理非常簡單,控制各個針腳的高低電平來顯示數字,這裏我用的是共陽的數碼管。不過有一個問題,我第一次顯示的時候代碼輸入數字是9.876不過數碼管顯示9.875,剛開始我以爲代碼錯了,仔細檢查了幾遍沒有問題。然後用putty跑了一下,打印出來的是9875999  。後來又試了幾組數字有的正常顯示有的最末尾會減一。求助各位大佬到底爲什麼?
所需原器件
1   TPYBoard v102 一塊
2   四位數碼管一個
3   杜邦線若干
4   麪包板一塊(爲了接線方便,可不用)
接線圖
四位數碼管引腳圖




開發板與四位數碼管針腳對應:
  
數碼管引腳
  
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
fritzing接線圖

  程序源代碼:

     
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)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章