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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
Micropython实例之TPYBoardv102位数码管显示实验0 V! s0 Y, z; e% c$ Z
所需原器件
6 F: G. R3 W* N9 a: @4 B4 y4 W    1   TPYBoard V102 一块    2   四位数码管一个    3   杜邦线若干    4   面包板一块(为了接线方便,可不用)3 d1 z6 W1 q5 K/ ^' b1 [, d
    接线图
& e( G! N' N0 A- g9 d4 z6 p: ~
; S+ |6 c% z& G( W
    四位数码管引脚图
3 y9 C* }! T; j9 k* s; L
; T* V' x. p! r6 q    开发板与四位数码管针脚对应:
6 r/ U6 F; l) F* N! H
5 i% r; p! e1 b7 e5 h: h* X& X; |0 X
    程序源代码:
) y6 o4 @9 q/ `4 N+ @& s0 C& Z
import pyb7 m- R' @) N1 e/ a5 [
from pyb import Pin
& U- Y% V9 {% x; k; h. \$ A! g- h/ S, ^+ D9 z* ~  a( l
#数码管a~g dp对应的开发板引脚( Z* D' T; r5 l- b4 T3 w
d_Pins=[Pin(i,Pin.OUT_PP) for i in ['X1','X2','X3','X4','X5','X6','X7','X8']]: u" r% M3 j8 C( d+ A
#数码管位段1 2 3 4对应的引脚
- @2 V5 G8 Q/ w/ k* I- |w_Pins=[Pin(i,Pin.OUT_PP) for i in ['Y9','Y10','Y11','Y12']]
$ W* P4 [9 E, p5 C6 [2 y0 {8 N( K+ ]$ U2 m3 q; X1 a
number={
) A$ l0 g! ~6 `3 x; j'0':
- a1 w( v# n3 u) {5 I[0,0,0,0,0,0,1,1],#03 {0 f: t" A: n
'1':
- {6 e! h0 g7 _& _. ^" O[1,1,1,1,0,0,1,1],#1
4 O( g& A& ~# R/ U" l8 s'2':
% g. Q1 A1 ?1 s, J8 U+ e+ e8 }[0,0,1,0,0,1,0,1],#2& _' m9 J- q; D& k. }5 F$ Q, U
'3':
- r6 @# z5 W& c: @* C8 C7 I* }[0,0,0,0,1,1,0,1],#3
0 a  X7 X! \/ N'4':
( S0 C2 v6 r; {3 B[1,0,0,1,1,0,0,1],#4
( G8 l4 b  n- i/ R: m5 G'5':
+ M: w$ P4 c- Q+ [[0,1,0,0,1,0,0,1],#5* p( q2 K/ {1 V6 y% u
'6':
. d$ I- o" T/ m2 |# ?) s[0,1,0,0,0,0,0,1],#6
' l" M2 ~* i' v) @+ r'7':
8 n, x7 _" s# u' k! |[0,0,0,1,1,1,1,1],#7
" ^0 k  c) @. b# V, V, f" Q8 z'8':; q( H$ }0 Q0 Q& S
[0,0,0,0,0,0,0,1],#8
- }3 q5 n% v( Q& P" C'9':
* {: L9 [8 C( o# \2 r& s2 [2 N[0,0,0,0,1,0,0,1],#93 N/ r, \6 o2 p, @
}
& l9 o6 r5 d+ M: }! K& `) z1 B9 f3 _( Q9 B4 l; H, H; M1 K
def display(num,dp):) J" ~' _7 ^; m2 Q8 x1 |5 e
    global number. N. }+ S2 b' |  p! t
    count=0
( m/ Y; e2 e. V3 E$ q: m& E! o    for pin in d_Pins:#显示num的值
2 {6 d  x( n- i        pin.value(number[num][count])9 R; G* k9 [: A  b; N( W
        count+=1
: q: u4 d0 _: `; u" r. r    if dp==1:4 Z( Z6 _: X3 H. f0 Q8 o8 |5 J
        d_Pins[7].value(0)6 _. [" U9 t8 n- t
def clear():2 x: H1 x& P" s* o3 b9 D$ X' N
    for i in w_Pins:
0 F3 I% o/ o7 N4 H6 s# S7 t        i.value(0)6 W5 Z4 Z) v$ z- m7 z* S1 i) ^
    for i in d_Pins:
5 s  d/ ~; U% c( Q, [, ~) @. V        i.value(1)" n, d5 r! s. I5 B* c  D
def showData(num):& e# T0 w9 X$ H* a& g4 ?
    #分割出数值的百位、千位、个位和小数位的值
+ r9 ]# E, v- O7 d; a7 k) v    d_num=num
8 T  X' q" t$ f    location=d_num.find('.')
2 K' M6 a1 i3 g+ i$ x+ u/ b) f    if location>0:
: q" M3 F6 m4 U$ n$ d5 d# i% N$ @        d_num=d_num.replace('.','')
) C! x) ]* _% z3 n% w1 D        while len(d_num)<4:
  S+ |$ _) k1 k            d_num='0'+d_num9 y; g6 r- A, Z1 `$ H
        for i in range(0,4):* a* y! L, E9 |/ Q, @8 [
            pyb.udelay(2000)& d& d+ B# W4 Q- F" V3 {/ `
            clear(). [! V6 F/ y1 h* q0 o, l, s
            w_Pins[3-i].value(1)
  b' n( K( Q- ^9 V! o4 T            if i==location-1:+ D- F" p, T' v; y
                display(d_num,1)4 {; k. c8 w2 E) n9 O
            else:
. }7 g( B% B2 a6 x                display(d_num,0), d. A* E& j) V' \: N
    if location<0:* n5 l# a0 M6 f9 A7 d7 p$ @
        for i in range(0,4):
0 b1 y/ M7 B% x            pyb.udelay(2000)
% X# |! `9 w/ |* a, t            clear()
4 y' X  @% k: f2 b) @            w_Pins[3-i].value(1)5 x( l" _5 A" O& C+ o" g: @6 M: P. a
            display(d_num,0)2 f- x! @# x# ?
while True:! q* P1 G) `+ ?+ l  c) X: N
9 q" ^8 H4 c$ d9 f2 u1 T5 n" f7 x* C+ F
    num='9016'6 a9 S# E- ?! m
    showData(num)
, y" G2 d4 U* h  z
4 _2 A* @2 d- l& E: o8 w

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-31 07:17 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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