当前位置:首页>技术支持>典型实例>Micropython TPYBoard V10X系列之四位数码管显示实验

Micropython TPYBoard V10X系列之四位数码管显示实验

    上节讲到一位数码管的显示实验,这节讲一下四位数码管显示实验。总体思路大同小异,现在让我们开始吧。

 

所需原器件

1   TPYBoard v102 一块

2   四位数码管一个

3   杜邦线若干

4   面包板一块(为了接线方便,可不用)

接线图

四位数码管引脚图

 

                                              1516410494(1).jpg

1516410506(1).jpg

开发板与四位数码管针脚对应:

 

数码管引脚

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='9016'
	showData(num)

main.rar