鱼C论坛

 找回密码
 立即注册
查看: 1922|回复: 0

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

[复制链接]
发表于 2018-6-19 16:09:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

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

x
    所需原器件

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

    接线图
    四位数码管引脚图
1.jpg
2.jpg

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

    程序源代码:
  1. import pyb
  2. from pyb import Pin

  3. #数码管a~g dp对应的开发板引脚
  4. d_Pins=[Pin(i,Pin.OUT_PP) for i in ['X1','X2','X3','X4','X5','X6','X7','X8']]
  5. #数码管位段1 2 3 4对应的引脚
  6. w_Pins=[Pin(i,Pin.OUT_PP) for i in ['Y9','Y10','Y11','Y12']]

  7. number={
  8. '0':
  9. [0,0,0,0,0,0,1,1],#0
  10. '1':
  11. [1,1,1,1,0,0,1,1],#1
  12. '2':
  13. [0,0,1,0,0,1,0,1],#2
  14. '3':
  15. [0,0,0,0,1,1,0,1],#3
  16. '4':
  17. [1,0,0,1,1,0,0,1],#4
  18. '5':
  19. [0,1,0,0,1,0,0,1],#5
  20. '6':
  21. [0,1,0,0,0,0,0,1],#6
  22. '7':
  23. [0,0,0,1,1,1,1,1],#7
  24. '8':
  25. [0,0,0,0,0,0,0,1],#8
  26. '9':
  27. [0,0,0,0,1,0,0,1],#9
  28. }

  29. def display(num,dp):
  30.     global number
  31.     count=0
  32.     for pin in d_Pins:#显示num的值
  33.         pin.value(number[num][count])
  34.         count+=1
  35.     if dp==1:
  36.         d_Pins[7].value(0)
  37. def clear():
  38.     for i in w_Pins:
  39.         i.value(0)
  40.     for i in d_Pins:
  41.         i.value(1)
  42. def showData(num):
  43.     #分割出数值的百位、千位、个位和小数位的值
  44.     d_num=num
  45.     location=d_num.find('.')
  46.     if location>0:
  47.         d_num=d_num.replace('.','')
  48.         while len(d_num)<4:
  49.             d_num='0'+d_num
  50.         for i in range(0,4):
  51.             pyb.udelay(2000)
  52.             clear()
  53.             w_Pins[3-i].value(1)
  54.             if i==location-1:
  55.                 display(d_num[i],1)
  56.             else:
  57.                 display(d_num[i],0)
  58.     if location<0:
  59.         for i in range(0,4):
  60.             pyb.udelay(2000)
  61.             clear()
  62.             w_Pins[3-i].value(1)
  63.             display(d_num[i],0)
  64. while True:

  65.     num='9016'
  66.     showData(num)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 19:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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