找回密码
 注册
关于网站域名变更的通知
查看: 536|回复: 1
打印 上一主题 下一主题

Micropython实例之TPYBoardv102位数码管显示实验

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-29 10:07 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
Micropython实例之TPYBoardv102位数码管显示实验
. P  k  a& v2 F( L所需原器件8 h* O5 p# @7 b
    1   TPYBoard V102 一块    2   四位数码管一个    3   杜邦线若干    4   面包板一块(为了接线方便,可不用)4 p! ~$ m9 ]! ], C0 p
    接线图

" x& A) ]4 d  G4 A3 y: ?
7 S3 @$ u4 b( X    四位数码管引脚图% F% J8 O; j- e! \7 C/ H

) Z: I& o5 O& D% x- @( X" W    开发板与四位数码管针脚对应:

6 A) x' l8 Q8 g7 P& L( l9 p4 [ + i5 P$ J8 b6 z/ O4 e
    程序源代码:
3 ?: {* p5 O4 w  u- ~' n5 i" `7 i/ |
import pyb, L! j$ k+ c* Q2 q& U% s& ~: X, c% H
from pyb import Pin
# {! F0 R( J  T6 j# F! ?9 G5 J( m+ L+ j2 `
#数码管a~g dp对应的开发板引脚
3 S, _& [6 G7 `% L, c' S/ Nd_Pins=[Pin(i,Pin.OUT_PP) for i in ['X1','X2','X3','X4','X5','X6','X7','X8']]
; f$ R; E2 ?7 P4 K: b#数码管位段1 2 3 4对应的引脚
& E! ]! H/ ~" G0 \w_Pins=[Pin(i,Pin.OUT_PP) for i in ['Y9','Y10','Y11','Y12']]4 n( a1 z+ g3 Q+ R4 N
* i1 M/ n, L% y9 o
number={
) u* F6 O" u7 A% a8 _  P+ B'0':
( i+ y! r% `' W. d[0,0,0,0,0,0,1,1],#0
& l5 x5 ?3 B4 m. d'1':% H0 B6 n+ k8 m+ p/ ?
[1,1,1,1,0,0,1,1],#1! d! Z+ t$ B* ]" S
'2':
$ z- k" _* g" L4 p, K  O[0,0,1,0,0,1,0,1],#2# O$ D  x$ X* @$ h# o
'3':3 ^6 g+ r# _- D: T( f6 _  j
[0,0,0,0,1,1,0,1],#3: F; J: }. V4 K$ Q" k
'4':
* Y  s* H, n% b1 Z[1,0,0,1,1,0,0,1],#4
5 G6 a2 a4 \3 t) w: O" u'5':
1 ]1 e) k! D- C3 S8 ]) Q[0,1,0,0,1,0,0,1],#5
% H; p& c/ D. t6 S4 A& P0 J'6':
7 V8 S6 ]: k0 v$ \: {6 x[0,1,0,0,0,0,0,1],#6
4 X. b6 _7 C9 \) k# `, q'7':9 |& e3 o) Y. H# z
[0,0,0,1,1,1,1,1],#7
0 `3 Z. Y* A; W- {  w'8':2 Z5 d  J6 ]9 I% ~- h" E# f
[0,0,0,0,0,0,0,1],#8
/ X- S4 {3 W) N3 q'9':3 g6 K. S% w8 @2 E/ y5 F' s8 V7 ~  ~
[0,0,0,0,1,0,0,1],#9- g+ k4 w# Q- S4 r3 [3 H# e$ H9 C) C0 H
}
: m" Z8 B* P0 Q& y, _9 N2 `' y7 Q) T2 }! }7 S0 X
def display(num,dp):
% |1 `7 ]% Q6 U  M7 b    global number/ i7 e- K; j2 M" y. v6 p2 _
    count=0. T( }+ X# `4 o
    for pin in d_Pins:#显示num的值
  }3 H: m$ Y- k- @7 B# D        pin.value(number[num][count]). N: L& B4 ?( A9 G7 H7 S. j
        count+=1( Y9 t3 e5 H7 K" V# e+ P
    if dp==1:
. z/ I. Y) ^0 H; A        d_Pins[7].value(0); H. I$ X( `. f( Q5 a: A+ r8 y
def clear():
  F& y1 H9 m& y5 w$ J4 d! v/ l* W    for i in w_Pins:
( ]3 O  d2 t; E. _! R        i.value(0)
% f4 A: L- s& D& T4 ?. P: o    for i in d_Pins:) o' k* M. o* A2 d6 |0 ]) |' U; k
        i.value(1)! j# E: K1 f% {
def showData(num):$ b  a. O4 |! k. ~. u
    #分割出数值的百位、千位、个位和小数位的值6 M6 m' p' l: a, A6 d3 U, R
    d_num=num& d& f, e; s! Z) _
    location=d_num.find('.')8 K: C9 I0 Y" o
    if location>0:7 {5 ^3 G9 _9 ~! F
        d_num=d_num.replace('.','')
" f% }' y% p8 \2 Y        while len(d_num)<4:, o% h& \/ H( ]) L* s. |+ H7 [$ f
            d_num='0'+d_num: h& c6 E  ?" {4 x" P' b
        for i in range(0,4):% w+ O& }8 r1 r4 S& @
            pyb.udelay(2000)
6 h, u  J% O* v' F% r            clear()
5 c. W; h# U- O+ e; {* L: S            w_Pins[3-i].value(1)* B; {+ w3 `, j% c' i
            if i==location-1:0 e. r; I5 H0 r4 b# J8 |
                display(d_num,1)- X2 W1 v9 U' u: h$ q9 S8 V
            else:0 E, M0 X- B4 y0 y# A
                display(d_num,0)- h5 i5 \" b# ]$ m4 o8 i
    if location<0:
8 U$ x; I( d6 Y$ u" C        for i in range(0,4):
! b; N- H4 Y2 ^: Q, D2 Y9 f* y, B" k$ O            pyb.udelay(2000)
, d! a2 W5 H; C3 }4 Q) l. C            clear()9 T. t$ a5 W# L( Z
            w_Pins[3-i].value(1)
/ ~7 V. b, i8 d            display(d_num,0); F( D& a! L. t, P; E& z
while True:
) J3 C; N& i, }/ d0 L! V# \/ X; Y$ V) h8 }6 ]/ X! I) q
    num='9016'
1 D0 T6 [# Z& P    showData(num); X6 g0 Q$ n4 `4 c

1 z* _6 n6 j/ E; N2 ?# g0 B- f

该用户从未签到

2#
发表于 2019-1-29 16:23 | 只看该作者
学习一下,谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-1 15:17 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表