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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
Micropython实例之TPYBoardv102位数码管显示实验
7 a7 W6 _& ]7 }2 I1 @# u* j! d所需原器件
( A0 P6 z* r; w    1   TPYBoard V102 一块    2   四位数码管一个    3   杜邦线若干    4   面包板一块(为了接线方便,可不用)
6 Q9 o! w4 G" C( Z! ]1 o1 d$ x" ^    接线图

0 _6 [. B1 s6 m+ s8 i. l$ Y
; `! h/ p7 n4 c5 Q3 D/ Z* j4 \    四位数码管引脚图) p8 I: g7 a# W7 N

8 H( j' {5 r" m9 f    开发板与四位数码管针脚对应:
6 l5 g1 P# m$ f; S- W& X

1 v: G& A& D% I; [9 \. T    程序源代码:

/ h, p, @$ B- r% Vimport pyb- y# _/ v6 R+ Y' ?2 M1 N+ ]
from pyb import Pin
1 g7 H- L7 D2 R0 q' U1 @9 w  j  z
" P) ^: t7 O. A9 k' m: w; I#数码管a~g dp对应的开发板引脚( @: E1 |- D. Z9 S5 z5 |
d_Pins=[Pin(i,Pin.OUT_PP) for i in ['X1','X2','X3','X4','X5','X6','X7','X8']]
% E( f3 `# K$ h( K, j9 k; e' {#数码管位段1 2 3 4对应的引脚; w1 [8 k2 W' D, T4 `
w_Pins=[Pin(i,Pin.OUT_PP) for i in ['Y9','Y10','Y11','Y12']]5 B5 E; f! p8 G1 X4 X9 h

1 ]3 g, |! C" b- I, Tnumber={& v: r* k3 J( ~9 U/ H, }9 \
'0':
/ T" e' k" L' n$ A) D5 S[0,0,0,0,0,0,1,1],#00 R8 q( {0 ]' Z. S: R% T. ^. S* A
'1':
- |0 h) e4 r- X6 T. z+ p[1,1,1,1,0,0,1,1],#1
0 [' f& ^0 ?! I4 w1 k7 Q'2':$ B9 v2 O$ r( I: ]3 a
[0,0,1,0,0,1,0,1],#2* B4 i) \9 l9 Y7 l. f$ a* w
'3':
9 W9 [$ g% W) f6 v' P# A1 t[0,0,0,0,1,1,0,1],#3# Y# t' ?& m. i
'4':+ Y3 P2 T, B6 I! R9 T- C
[1,0,0,1,1,0,0,1],#4
. |1 F2 b7 O* a/ v* A  x6 i$ G2 u'5':/ b) s$ M+ J5 ]: t) Q3 ]
[0,1,0,0,1,0,0,1],#54 Y+ e6 q4 H' [' c
'6':0 b( I9 G( E; U" w
[0,1,0,0,0,0,0,1],#65 w2 o" N9 _+ d4 j. R# k7 c
'7':
( {  N/ b& R& J" B! _) M. e" F2 [[0,0,0,1,1,1,1,1],#7
5 b+ T: g- r% K'8':
5 D2 V/ _) p% s& H+ B0 n[0,0,0,0,0,0,0,1],#8
' h7 t: ^- {$ t( A( P'9':( O. `1 G. y8 a% x- H1 H& W
[0,0,0,0,1,0,0,1],#9
  M! b( h; Q  e' H! F! n}
, x  b+ ]" k2 S) }$ Q2 z# r, O+ C0 Y+ m; F7 W! q& A$ }% o
def display(num,dp):
% |/ U8 E% g: N# r/ u    global number8 F" q5 K0 N- V" K. w
    count=0( X  z, \( {, X5 u/ A6 u
    for pin in d_Pins:#显示num的值! Y! @3 T( x, B' J* @  B/ u
        pin.value(number[num][count])  m1 K, k- ^4 t5 }
        count+=1
- M( ?" [! l% p- Q. C    if dp==1:
, _1 }1 }# l2 ~! H7 R8 l3 V* S        d_Pins[7].value(0)! P" y; z: a0 B8 _, Y, I
def clear():/ ?7 M3 t. w5 P: a
    for i in w_Pins:
' M' ]1 s0 L! ]+ W  A  {        i.value(0)
3 ]! i) n4 }: S    for i in d_Pins:- \/ D' i) Z( n! [3 J- t" q( L
        i.value(1)
, n' D  j* a3 U& g+ u1 L. {- Edef showData(num):. W7 w1 ?- s" p6 O
    #分割出数值的百位、千位、个位和小数位的值
5 u. r; e$ d% U    d_num=num7 ?$ Q* T; M4 U+ W1 e# T( J7 j
    location=d_num.find('.'); L% ~# F, f+ U6 k% V
    if location>0:
! c0 q4 `+ M& K- D4 e        d_num=d_num.replace('.','')
0 b2 `! _6 R, P' X8 T        while len(d_num)<4:1 [3 x5 F  |' P) m' W5 I2 O- E) k( {8 t
            d_num='0'+d_num# x* k: ^/ G' t. K, ]$ k
        for i in range(0,4):% ~! Z7 S* P" }' Z3 }
            pyb.udelay(2000)
0 t; T, n; W4 ]  t            clear()5 z8 |. Z+ g6 j$ }4 |. B# M' s
            w_Pins[3-i].value(1)& N( ^# W0 {7 d8 ]! ^, W
            if i==location-1:7 p# @+ i. h8 V2 |0 n7 C
                display(d_num,1)
' Y) Y' Z2 C' `5 _2 I            else:
% D, [* O2 @/ X/ v  y3 q                display(d_num,0)2 E: }5 w3 b  a$ @2 _! S
    if location<0:
' h0 j' [$ J* P$ L! z        for i in range(0,4):
/ }" l5 g* \! ?' Q            pyb.udelay(2000)
/ U& R1 }9 l1 k+ ?( q: T            clear()3 h+ M+ |) a/ o, M
            w_Pins[3-i].value(1)+ d" N: z% a7 P9 z  }* N8 v- F
            display(d_num,0)) U/ V, R+ @! l5 |5 a. p) T
while True:6 u8 Y9 I$ y2 e; h7 x
; e: `& P( i5 P* {4 l" C/ `5 T7 @
    num='9016'
  O9 L" E8 B5 f8 }4 o0 K    showData(num)
# L  E% l% q4 F- [

. S. R8 n8 n( |$ n. |

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-11 21:25 , Processed in 0.109375 second(s), 26 queries , Gzip On.

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

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

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