找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2060|回復: 0
打印 上一主題 下一主題
收起左側(cè)

Micropython實例之TPYBoardv102位數(shù)碼管顯示實驗

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:130183 發(fā)表于 2018-6-19 15:39 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
    所需原器件

    1   TPYBoard v102 一塊
    2   四位數(shù)碼管一個
    3   杜邦線若干
    4   面包板一塊(為了接線方便,可不用)

    接線圖
    四位數(shù)碼管引腳圖



    開發(fā)板與四位數(shù)碼管針腳對應:



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

  3. #數(shù)碼管a~g dp對應的開發(fā)板引腳
  4. d_Pins=[Pin(i,Pin.OUT_PP) for i in ['X1','X2','X3','X4','X5','X6','X7','X8']]
  5. #數(shù)碼管位段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.     #分割出數(shù)值的百位、千位、個位和小數(shù)位的值
  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)
復制代碼




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表