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


    所需原器件

    1 TPYBoard v102 一块
    2 四位数码管一个
    3 杜邦线若干
    4 面包板一块(为了接线方便,可不用)

    接线图
    四位数码管引脚图


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


    程序源代码:

    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)
    

      

  • 相关阅读:
    一次维护经历
    网络线用色环表示
    ★★★错误终于抓到了★★★
    帮别人装IBM本本花了两天
    好记忆不如烂笔头
    凌晨完成的内容
    好久没上网了!
    oseye问答和博文评论通知的设计思路
    简单四步设置debian的vps安全防护
    javascript 的call()与apply()的应用与区别
  • 原文地址:https://www.cnblogs.com/xxosu/p/9199010.html
Copyright © 2020-2023  润新知